sanity 3.74.2-corel.18 → 3.74.2-coreui.20

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 (121) hide show
  1. package/lib/_chunks-cjs/runtime.js +8 -4
  2. package/lib/_chunks-cjs/runtime.js.map +1 -1
  3. package/lib/_chunks-cjs/version.js +1 -1
  4. package/lib/_chunks-es/version.mjs +1 -1
  5. package/lib/_legacy/version.esm.js +1 -1
  6. package/package.json +10 -11
  7. package/src/_internal/cli/server/renderDocument.tsx +12 -0
  8. package/src/_internal/cli/server/runtime.ts +13 -10
  9. package/src/_internal/cli/server/vite/plugin-sanity-build-entries.ts +14 -12
  10. package/dist/BroadcastDisplayedDocument-BHYI8o6u.mjs +0 -19
  11. package/dist/BroadcastDisplayedDocument-BHYI8o6u.mjs.map +0 -1
  12. package/dist/DisplayedDocumentBroadcaster-DfHPxc7C.mjs +0 -58
  13. package/dist/DisplayedDocumentBroadcaster-DfHPxc7C.mjs.map +0 -1
  14. package/dist/LiveQueries-sYvgBCKh.mjs +0 -267
  15. package/dist/LiveQueries-sYvgBCKh.mjs.map +0 -1
  16. package/dist/LoaderQueries-AQneabiG.mjs +0 -581
  17. package/dist/LoaderQueries-AQneabiG.mjs.map +0 -1
  18. package/dist/Observable-wwWYwtkh.mjs +0 -551
  19. package/dist/Observable-wwWYwtkh.mjs.map +0 -1
  20. package/dist/PostMessageDocuments-DLMdHDk6.mjs +0 -75
  21. package/dist/PostMessageDocuments-DLMdHDk6.mjs.map +0 -1
  22. package/dist/PostMessageFeatures-CazMQz3f.mjs +0 -21
  23. package/dist/PostMessageFeatures-CazMQz3f.mjs.map +0 -1
  24. package/dist/PostMessagePerspective-m4uZ6sI5.mjs +0 -23
  25. package/dist/PostMessagePerspective-m4uZ6sI5.mjs.map +0 -1
  26. package/dist/PostMessagePreviewSnapshots-Dr7CEAiM.mjs +0 -66
  27. package/dist/PostMessagePreviewSnapshots-Dr7CEAiM.mjs.map +0 -1
  28. package/dist/PostMessageRefreshMutations-CWb9UqSy.mjs +0 -66
  29. package/dist/PostMessageRefreshMutations-CWb9UqSy.mjs.map +0 -1
  30. package/dist/PostMessageSchema-BVFyZOH1.mjs +0 -514
  31. package/dist/PostMessageSchema-BVFyZOH1.mjs.map +0 -1
  32. package/dist/PostMessageTelemetry-CSluBvcC.mjs +0 -51
  33. package/dist/PostMessageTelemetry-CSluBvcC.mjs.map +0 -1
  34. package/dist/PresentationToolGrantsCheck-4zo266wj.mjs +0 -3919
  35. package/dist/PresentationToolGrantsCheck-4zo266wj.mjs.map +0 -1
  36. package/dist/QRCodeSVG-D6VfGEbM.mjs +0 -648
  37. package/dist/QRCodeSVG-D6VfGEbM.mjs.map +0 -1
  38. package/dist/SourceContext-T8zcpOpp.mjs +0 -33
  39. package/dist/SourceContext-T8zcpOpp.mjs.map +0 -1
  40. package/dist/StructureToolProvider-BMLps71e.mjs +0 -13815
  41. package/dist/StructureToolProvider-BMLps71e.mjs.map +0 -1
  42. package/dist/Subject-DP0DoUP_.mjs +0 -108
  43. package/dist/Subject-DP0DoUP_.mjs.map +0 -1
  44. package/dist/ViteDevServerStopped-DdibXNvO.mjs +0 -44
  45. package/dist/ViteDevServerStopped-DdibXNvO.mjs.map +0 -1
  46. package/dist/_createContext.mjs +0 -36
  47. package/dist/_createContext.mjs.map +0 -1
  48. package/dist/_singletons.mjs +0 -195
  49. package/dist/_singletons.mjs.map +0 -1
  50. package/dist/browser-BzDH2pyp.mjs +0 -455
  51. package/dist/browser-BzDH2pyp.mjs.map +0 -1
  52. package/dist/browser-DWCoWoiH.mjs +0 -3988
  53. package/dist/browser-DWCoWoiH.mjs.map +0 -1
  54. package/dist/debounceTime-BeoKrERE.mjs +0 -130
  55. package/dist/debounceTime-BeoKrERE.mjs.map +0 -1
  56. package/dist/desk.mjs +0 -52
  57. package/dist/desk.mjs.map +0 -1
  58. package/dist/first-Di4GZDIY.mjs +0 -42
  59. package/dist/first-Di4GZDIY.mjs.map +0 -1
  60. package/dist/get-psIoeD-z.mjs +0 -327
  61. package/dist/get-psIoeD-z.mjs.map +0 -1
  62. package/dist/hooks-4sgcd521.mjs +0 -90
  63. package/dist/hooks-4sgcd521.mjs.map +0 -1
  64. package/dist/index-9PJcXUTv.mjs +0 -87
  65. package/dist/index-9PJcXUTv.mjs.map +0 -1
  66. package/dist/index-ByFK-IwD.mjs +0 -528
  67. package/dist/index-ByFK-IwD.mjs.map +0 -1
  68. package/dist/index-C2OAo3To.mjs +0 -7079
  69. package/dist/index-C2OAo3To.mjs.map +0 -1
  70. package/dist/index-C3OvVLVP.mjs +0 -4636
  71. package/dist/index-C3OvVLVP.mjs.map +0 -1
  72. package/dist/index-DBPVDKJN.mjs +0 -1198
  73. package/dist/index-DBPVDKJN.mjs.map +0 -1
  74. package/dist/index-DkvUNBNf.mjs +0 -73
  75. package/dist/index-DkvUNBNf.mjs.map +0 -1
  76. package/dist/index-Sp9w8lMg.mjs +0 -118
  77. package/dist/index-Sp9w8lMg.mjs.map +0 -1
  78. package/dist/index.browser-BxT2qp9y.mjs +0 -104
  79. package/dist/index.browser-BxT2qp9y.mjs.map +0 -1
  80. package/dist/index.mjs +0 -129019
  81. package/dist/index.mjs.map +0 -1
  82. package/dist/isObservable-ByOheaM8.mjs +0 -8
  83. package/dist/isObservable-ByOheaM8.mjs.map +0 -1
  84. package/dist/never-ChKjLemk.mjs +0 -6
  85. package/dist/never-ChKjLemk.mjs.map +0 -1
  86. package/dist/pane-C4tskUPg.mjs +0 -5
  87. package/dist/pane-C4tskUPg.mjs.map +0 -1
  88. package/dist/pane-Dhx8FvsK.mjs +0 -5
  89. package/dist/pane-Dhx8FvsK.mjs.map +0 -1
  90. package/dist/presentation-CSS9GR9X.mjs +0 -984
  91. package/dist/presentation-CSS9GR9X.mjs.map +0 -1
  92. package/dist/presentation.mjs +0 -14
  93. package/dist/presentation.mjs.map +0 -1
  94. package/dist/resources-4cbq8YlR.mjs +0 -124
  95. package/dist/resources-4cbq8YlR.mjs.map +0 -1
  96. package/dist/resources-BVETz6Ur.mjs +0 -57
  97. package/dist/resources-BVETz6Ur.mjs.map +0 -1
  98. package/dist/resources-D4AaU75F.mjs +0 -434
  99. package/dist/resources-D4AaU75F.mjs.map +0 -1
  100. package/dist/resources-Dc-6ZcPg.mjs +0 -157
  101. package/dist/resources-Dc-6ZcPg.mjs.map +0 -1
  102. package/dist/resources-DgU0prBM.mjs +0 -179
  103. package/dist/resources-DgU0prBM.mjs.map +0 -1
  104. package/dist/resources-MD8RsYhH.mjs +0 -288
  105. package/dist/resources-MD8RsYhH.mjs.map +0 -1
  106. package/dist/router.mjs +0 -689
  107. package/dist/router.mjs.map +0 -1
  108. package/dist/share-bcOpIdQz.mjs +0 -71
  109. package/dist/share-bcOpIdQz.mjs.map +0 -1
  110. package/dist/shareReplay-Dj1O6fKV.mjs +0 -43
  111. package/dist/shareReplay-Dj1O6fKV.mjs.map +0 -1
  112. package/dist/stegaEncodeSourceMap-DXdUZQye.mjs +0 -342
  113. package/dist/stegaEncodeSourceMap-DXdUZQye.mjs.map +0 -1
  114. package/dist/structure.mjs +0 -56
  115. package/dist/structure.mjs.map +0 -1
  116. package/dist/takeUntil-CgZP1bze.mjs +0 -111
  117. package/dist/takeUntil-CgZP1bze.mjs.map +0 -1
  118. package/dist/v4-C78sE4Gb.mjs +0 -27082
  119. package/dist/v4-C78sE4Gb.mjs.map +0 -1
  120. package/dist/version-D7UZEoYI.mjs +0 -5
  121. package/dist/version-D7UZEoYI.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C2OAo3To.mjs","sources":["../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/Immediate.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/scheduler/asap.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/observable/throwError.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/firstValueFrom.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/isDate.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/observable/concat.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/observable/timer.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/util/not.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/observable/partition.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/catchError.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/debounce.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/delay.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/finalize.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/startWith.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/tap.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/throttle.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js","../../../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js","../../@sanity/types/src/helpers.ts","../../@sanity/types/src/documents/asserters.ts","../../@sanity/types/src/markers/asserters.ts","../../@sanity/types/src/paths/asserters.ts","../../@sanity/types/src/schema/asserters.ts","../../@sanity/util/src/paths.ts","../../../node_modules/.pnpm/react-fast-compare@3.2.2/node_modules/react-fast-compare/index.js","../../../node_modules/.pnpm/observable-callback@1.0.3_rxjs@7.8.1/node_modules/observable-callback/dist/esm/observableCallback.js","../../../node_modules/.pnpm/react-rx@4.1.15_react@18.3.1_rxjs@7.8.1/node_modules/react-rx/dist/index.js","../../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/toInteger/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/requiredArgs/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/toDate/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/addDays/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/addMilliseconds/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/defaultOptions/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/addWeeks/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/isDate/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/isValid/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/subMilliseconds/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/format/formatters/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/locale/en-US/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/format/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/isAfter/index.js","../../../node_modules/.pnpm/date-fns@2.30.0/node_modules/date-fns/esm/isBefore/index.js","../../../node_modules/.pnpm/quick-lru@5.1.1/node_modules/quick-lru/index.js","../src/ui-components/conditionalWrapper/ConditionalWrapper.tsx","../src/ui-components/button/Button.tsx","../../../node_modules/.pnpm/react-i18next@14.0.2_i18next@23.16.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/utils.js","../../../node_modules/.pnpm/react-i18next@14.0.2_i18next@23.16.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/unescape.js","../../../node_modules/.pnpm/react-i18next@14.0.2_i18next@23.16.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/defaults.js","../../../node_modules/.pnpm/react-i18next@14.0.2_i18next@23.16.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/i18nInstance.js","../../../node_modules/.pnpm/react-i18next@14.0.2_i18next@23.16.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/context.js","../../../node_modules/.pnpm/react-i18next@14.0.2_i18next@23.16.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-i18next/dist/es/useTranslation.js","../src/ui-components/dialog/Dialog.tsx","../src/ui-components/errorBoundary/ErrorBoundary.tsx","../src/ui-components/menuButton/MenuButton.tsx","../src/ui-components/menuGroup/MenuGroup.tsx","../src/core/components/Hotkeys.tsx","../src/ui-components/menuItem/MenuItem.tsx","../src/ui-components/popover/Popover.tsx","../src/ui-components/tab/Tab.tsx","../src/ui-components/tooltip/constants.ts","../src/ui-components/tooltip/Tooltip.tsx","../src/ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider.tsx","../../../node_modules/.pnpm/@sanity+telemetry@0.7.9_react@18.3.1/node_modules/@sanity/telemetry/dist/_chunks/noopLogger-b5b1676e.js","../../../node_modules/.pnpm/@sanity+telemetry@0.7.9_react@18.3.1/node_modules/@sanity/telemetry/dist/react/index.js","../../../node_modules/.pnpm/shallow-equals@1.0.0/node_modules/shallow-equals/index.js","../../../node_modules/.pnpm/typeid-js@0.3.0/node_modules/typeid-js/dist/chunk-4WQUCFGE.mjs","../../../node_modules/.pnpm/typeid-js@0.3.0/node_modules/typeid-js/dist/chunk-5QL2QZCM.mjs","../../../node_modules/.pnpm/typeid-js@0.3.0/node_modules/typeid-js/dist/chunk-R5Q6Z3GN.mjs","../../../node_modules/.pnpm/typeid-js@0.3.0/node_modules/typeid-js/dist/chunk-FOHWUNKU.mjs","../../../node_modules/.pnpm/@sanity+telemetry@0.7.9_react@18.3.1/node_modules/@sanity/telemetry/dist/index.js","../../../node_modules/.pnpm/is-hotkey-esm@1.0.0/node_modules/is-hotkey-esm/dist/index.js","../../../node_modules/.pnpm/@sanity+generate-help-url@3.0.0/node_modules/@sanity/generate-help-url/dist/generate-help-url.esm.js","../../../node_modules/.pnpm/groq-js@1.14.2/node_modules/groq-js/dist/1.mjs","../../../node_modules/.pnpm/rxjs-exhaustmap-with-trailing@2.1.1_rxjs@7.8.1/node_modules/rxjs-exhaustmap-with-trailing/dist/esm/index.js","../../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js","../../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js"],"sourcesContent":["var nextHandle = 1;\nvar resolved;\nvar activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n if (!resolved) {\n resolved = Promise.resolve();\n }\n resolved.then(function () { return findAndClearHandle(handle) && cb(); });\n return handle;\n },\n clearImmediate: function (handle) {\n findAndClearHandle(handle);\n },\n};\nexport var TestTools = {\n pending: function () {\n return Object.keys(activeHandles).length;\n }\n};\n//# sourceMappingURL=Immediate.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nvar setImmediate = Immediate.setImmediate, clearImmediate = Immediate.clearImmediate;\nexport var immediateProvider = {\n setImmediate: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args)));\n },\n clearImmediate: function (handle) {\n var delegate = immediateProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=immediateProvider.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { immediateProvider } from './immediateProvider';\nvar AsapAction = (function (_super) {\n __extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (delay != null ? delay > 0 : this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n var actions = scheduler.actions;\n if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n immediateProvider.clearImmediate(id);\n if (scheduler._scheduled === id) {\n scheduler._scheduled = undefined;\n }\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import { __extends } from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n __extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this._active = true;\n var flushId = this._scheduled;\n this._scheduled = undefined;\n var actions = this.actions;\n var error;\n action = action || actions.shift();\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n this._active = false;\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asapScheduler = new AsapScheduler(AsapAction);\nexport var asap = asapScheduler;\n//# sourceMappingURL=asap.js.map","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n var errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function () { return errorOrErrorFactory; };\n var init = function (subscriber) { return subscriber.error(errorFactory()); };\n return new Observable(scheduler ? function (subscriber) { return scheduler.schedule(init, 0, subscriber); } : init);\n}\n//# sourceMappingURL=throwError.js.map","import { EmptyError } from './util/EmptyError';\nimport { SafeSubscriber } from './Subscriber';\nexport function firstValueFrom(source, config) {\n var hasConfig = typeof config === 'object';\n return new Promise(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n resolve(value);\n subscriber.unsubscribe();\n },\n error: reject,\n complete: function () {\n if (hasConfig) {\n resolve(config.defaultValue);\n }\n else {\n reject(new EmptyError());\n }\n },\n });\n source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=firstValueFrom.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable(function (subscriber) {\n var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n var n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","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 { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate(function (source, subscriber) {\n var innerSub = null;\n var syncUnsub = false;\n var handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, function (err) {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n//# sourceMappingURL=catchError.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';\nexport function mapTo(value) {\n return map(function () { return value; });\n}\n//# sourceMappingURL=mapTo.js.map","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nimport { innerFrom } from '../observable/innerFrom';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n };\n }\n return mergeMap(function (value, index) { return innerFrom(delayDurationSelector(value, index)).pipe(take(1), mapTo(value)); });\n}\n//# sourceMappingURL=delayWhen.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration = timer(due, scheduler);\n return delayWhen(function () { return duration; });\n}\n//# sourceMappingURL=delay.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector) {\n if (keySelector === void 0) { keySelector = identity; }\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate(function (source, subscriber) {\n var previousKey;\n var first = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.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 { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate(function (source, subscriber) {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n//# sourceMappingURL=finalize.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = popScheduler(values);\n return operate(function (source, subscriber) {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n var tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error: error, complete: complete }\n : observerOrNext;\n return tapObserver\n ? operate(function (source, subscriber) {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n var isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, function () {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, function (err) {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, function () {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function throttle(durationSelector, config) {\n return operate(function (source, subscriber) {\n var _a = config !== null && config !== void 0 ? config : {}, _b = _a.leading, leading = _b === void 0 ? true : _b, _c = _a.trailing, trailing = _c === void 0 ? false : _c;\n var hasValue = false;\n var sendValue = null;\n var throttled = null;\n var isComplete = false;\n var endThrottling = function () {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n var cleanupThrottling = function () {\n throttled = null;\n isComplete && subscriber.complete();\n };\n var startThrottle = function (value) {\n return (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n };\n var send = function () {\n if (hasValue) {\n hasValue = false;\n var value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, function () {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=throttle.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","export function isObject(obj: unknown): obj is Record<string, unknown> {\n return typeof obj === 'object' && obj !== null && !Array.isArray(obj)\n}\n","import {isObject} from '../helpers'\nimport {type KeyedObject, type SanityDocument, type TypedObject} from './types'\n\n/** @public */\nexport function isSanityDocument(document: unknown): document is SanityDocument {\n return (\n isObject(document) && typeof document._id === 'string' && typeof document._type === 'string'\n )\n}\n\n/** @public */\nexport function isTypedObject(obj: unknown): obj is TypedObject {\n return isObject(obj) && typeof obj._type === 'string'\n}\n\n/** @public */\nexport function isKeyedObject(obj: unknown): obj is KeyedObject {\n return isObject(obj) && typeof obj._key === 'string'\n}\n","import {type ValidationMarker} from './types'\n\n/** @internal */\nexport function isValidationErrorMarker(\n marker: ValidationMarker,\n): marker is ValidationMarker & {level: 'error'} {\n return marker.level === 'error'\n}\n\n/** @internal */\nexport function isValidationWarningMarker(\n marker: ValidationMarker,\n): marker is ValidationMarker & {level: 'warning'} {\n return marker.level === 'warning'\n}\n\n/** @internal */\nexport function isValidationInfoMarker(\n marker: ValidationMarker,\n): marker is ValidationMarker & {level: 'info'} {\n return marker.level === 'info'\n}\n","import {type IndexTuple, type KeyedSegment, type PathSegment} from './types'\n\nconst reKeySegment = /_key\\s*==\\s*['\"](.*)['\"]/\nconst reIndexTuple = /^\\d*:\\d*$/\n\n/** @internal */\nexport function isIndexSegment(segment: PathSegment): segment is number {\n return typeof segment === 'number' || (typeof segment === 'string' && /^\\[\\d+\\]$/.test(segment))\n}\n\n/** @internal */\nexport function isKeySegment(segment: PathSegment): segment is KeyedSegment {\n if (typeof segment === 'string') {\n return reKeySegment.test(segment.trim())\n }\n\n return typeof segment === 'object' && '_key' in segment\n}\n\n/** @internal */\nexport function isIndexTuple(segment: PathSegment): segment is IndexTuple {\n if (typeof segment === 'string' && reIndexTuple.test(segment)) {\n return true\n }\n\n if (!Array.isArray(segment) || segment.length !== 2) {\n return false\n }\n\n const [from, to] = segment\n return (typeof from === 'number' || from === '') && (typeof to === 'number' || to === '')\n}\n","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 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","import {\n type IndexTuple,\n isIndexSegment,\n isIndexTuple,\n isKeySegment,\n type KeyedSegment,\n type Path,\n type PathSegment,\n} from '@sanity/types'\n\nconst rePropName =\n /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g\nconst reKeySegment = /_key\\s*==\\s*['\"](.*)['\"]/\nconst EMPTY_PATH: Path = []\n\nexport const FOCUS_TERMINATOR = '$'\n\n// Fields named as GROQ data types cannot be accessed using dot notation. These fields must instead\n// be serialized using square bracket notation.\nconst GROQ_DATA_TYPE_VALUES = ['true', 'false', 'null']\n\nexport function get<R>(obj: unknown, path: Path | string): R | undefined\nexport function get<R>(obj: unknown, path: Path | string, defaultValue: R): R\nexport function get(obj: unknown, path: Path | string, defaultVal?: unknown): unknown {\n const select = typeof path === 'string' ? fromString(path) : path\n if (!Array.isArray(select)) {\n throw new Error('Path must be an array or a string')\n }\n\n let acc: unknown | undefined = obj\n for (let i = 0; i < select.length; i++) {\n const segment = select[i]\n if (isIndexSegment(segment)) {\n if (!Array.isArray(acc)) {\n return defaultVal\n }\n\n acc = acc[segment]\n }\n\n if (isKeySegment(segment)) {\n if (!Array.isArray(acc)) {\n return defaultVal\n }\n\n acc = acc.find((item) => item._key === segment._key)\n }\n\n if (typeof segment === 'string') {\n acc =\n typeof acc === 'object' && acc !== null\n ? ((acc as Record<string, unknown>)[segment] as Record<string, unknown>)\n : undefined\n }\n\n if (typeof acc === 'undefined') {\n return defaultVal\n }\n }\n\n return acc\n}\n\nconst pathsMemo = new Map<string, Path>()\nexport function pathFor(path: Path): Path {\n if (path.length === 0) {\n return EMPTY_PATH\n }\n const asString = toString(path)\n if (pathsMemo.has(asString)) {\n return pathsMemo.get(asString)!\n }\n pathsMemo.set(asString, path)\n Object.freeze(path)\n return path\n}\n\nexport function isEqual(path: Path, otherPath: Path): boolean {\n return (\n path.length === otherPath.length &&\n path.every((segment, i) => isSegmentEqual(segment, otherPath[i]))\n )\n}\n\nexport function numEqualSegments(path: Path, otherPath: Path): number {\n const length = Math.min(path.length, otherPath.length)\n for (let i = 0; i < length; i++) {\n if (!isSegmentEqual(path[i], otherPath[i])) {\n return i\n }\n }\n return length\n}\n\nexport function isSegmentEqual(segmentA: PathSegment, segmentB: PathSegment): boolean {\n if (isKeySegment(segmentA) && isKeySegment(segmentB)) {\n return segmentA._key === segmentB._key\n }\n\n if (isIndexSegment(segmentA)) {\n return Number(segmentA) === Number(segmentB)\n }\n\n if (isIndexTuple(segmentA) && isIndexTuple(segmentB)) {\n return segmentA[0] === segmentB[0] && segmentA[1] === segmentB[1]\n }\n\n return segmentA === segmentB\n}\n\nexport function hasFocus(focusPath: Path, path: Path): boolean {\n const withoutTerminator =\n focusPath[focusPath.length - 1] === FOCUS_TERMINATOR ? focusPath.slice(0, -1) : focusPath\n return isEqual(withoutTerminator, path)\n}\n\nexport function hasItemFocus(focusPath: Path, item: PathSegment): boolean {\n return focusPath.length === 1 && isSegmentEqual(focusPath[0], item)\n}\n\nexport function isExpanded(segment: PathSegment, focusPath: Path): boolean {\n const [head, ...tail] = focusPath\n return tail.length > 0 && isSegmentEqual(segment, head)\n}\n\nexport function startsWith(prefix: Path, path: Path): boolean {\n return prefix.every((segment, i) => isSegmentEqual(segment, path[i]))\n}\n\nexport function trimLeft(prefix: Path, path: Path): Path {\n if (prefix.length === 0 || path.length === 0) {\n return path\n }\n const [prefixHead, ...prefixTail] = prefix\n const [pathHead, ...pathTail] = path\n if (!isSegmentEqual(prefixHead, pathHead)) {\n return path\n }\n return pathFor(trimLeft(prefixTail, pathTail))\n}\n\nexport function trimRight(suffix: Path, path: Path): Path {\n const sufLen = suffix.length\n const pathLen = path.length\n if (sufLen === 0 || pathLen === 0) {\n return path\n }\n\n let i = 0\n while (\n i < sufLen &&\n i < pathLen &&\n isSegmentEqual(path[pathLen - i - 1], suffix[sufLen - i - 1])\n ) {\n i++\n }\n\n return pathFor(path.slice(0, pathLen - i))\n}\n\nexport function trimChildPath(path: Path, childPath: Path): Path {\n return startsWith(path, childPath) ? trimLeft(path, childPath) : EMPTY_PATH\n}\n\nexport function toString(path: Path): string {\n if (!Array.isArray(path)) {\n throw new Error('Path is not an array')\n }\n\n return path.reduce<string>((target, segment, i) => {\n const isHead = i === 0\n\n if (typeof segment === 'number') {\n return `${target}[${segment}]`\n }\n\n if (typeof segment === 'string') {\n if (isHead) {\n return segment\n }\n\n if (GROQ_DATA_TYPE_VALUES.includes(segment)) {\n return `${target}[\"${segment}\"]`\n }\n\n return `${target}.${segment}`\n }\n\n if (isKeySegment(segment) && segment._key) {\n return `${target}[_key==\"${segment._key}\"]`\n }\n\n if (Array.isArray(segment)) {\n const [from, to] = segment\n return `${target}[${from}:${to}]`\n }\n\n throw new Error(`Unsupported path segment \\`${JSON.stringify(segment)}\\``)\n }, '')\n}\n\nexport function _resolveKeyedPath(value: unknown, path: Path): Path {\n if (path.length === 0) {\n return path\n }\n const [next, ...rest] = path\n if (typeof next === 'number') {\n if (!Array.isArray(value) || !(next in value)) {\n return []\n }\n const item = value[next]\n const key = item?._key\n return [typeof key === 'string' ? {_key: item._key} : next, ..._resolveKeyedPath(item, rest)]\n }\n const nextVal = get(value, [next])\n return [next, ..._resolveKeyedPath(nextVal, rest)]\n}\n\n/**\n * Takes a value and a path that may include numeric indices and attempts to replace numeric indices with keyed paths\n *\n * @param value - any json value\n * @param path - a Path that may include numeric indices\n * @returns a path where numeric indices has been replaced by keyed segments (e.g. `{_key: <key>}`)\n * Will do as good attempt as possible, but in case of missing array items, it will return the best possible match:\n * - `resolveKeyedPath([0, 'bar'], [])` will return [] since array has no value at index 0\n * - `resolveKeyedPath([0, 'foo'], [{_key: 'xyz', 'foo': 'bar'}, {_key: 'abc'}])` will return `[{_key: 'xyz'}, 'foo']` since array has no value at index 0\n * - `resolveKeyedPath([0, 'foo', 'bar'], [{_key: 'xyz'}])` will return `[{_key: 'xyz'}, 'foo', 'bar']` since array has no value at index 0\n * Object keys will be preserved as-is, e.g. `resolveKeyedPath(['foo', 'bar'], undefined)` will return `['foo', 'bar']`\n */\nexport function resolveKeyedPath(value: unknown, path: Path): Path {\n if (!Array.isArray(path)) {\n throw new Error('Path is not an array')\n }\n return pathFor(_resolveKeyedPath(value, path))\n}\n\nexport function fromString(path: string): Path {\n if (typeof path !== 'string') {\n throw new Error('Path is not a string')\n }\n\n const segments = path.match(rePropName)\n if (!segments) {\n throw new Error('Invalid path string')\n }\n\n return segments.map(normalizePathSegment)\n}\n\nfunction normalizePathSegment(segment: string): PathSegment {\n if (isIndexSegment(segment)) {\n return normalizeIndexSegment(segment)\n }\n\n if (isKeySegment(segment)) {\n return normalizeKeySegment(segment)\n }\n\n if (isIndexTuple(segment)) {\n return normalizeIndexTupleSegment(segment)\n }\n\n return segment\n}\n\nfunction normalizeIndexSegment(segment: string): PathSegment {\n return Number(segment.replace(/[^\\d]/g, ''))\n}\n\nfunction normalizeKeySegment(segment: string): KeyedSegment {\n const segments = segment.match(reKeySegment)\n return {_key: segments![1]}\n}\n\nfunction normalizeIndexTupleSegment(segment: string): IndexTuple {\n const [from, to] = segment.split(':').map((seg) => (seg === '' ? seg : Number(seg)))\n return [from, to]\n}\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import { Subject } from \"rxjs\";\nvar pass = function (input$) { return input$; };\nexport function observableCallback(operator) {\n if (operator === void 0) { operator = pass; }\n var subject = new Subject();\n return [subject.pipe(operator), function (arg) { return subject.next(arg); }];\n}\n","\"use client\";\nimport { c } from \"react-compiler-runtime\";\nimport { useSyncExternalStore, useState, useEffect } from \"react\";\nimport { catchError, finalize, share, timer, asapScheduler, of } from \"rxjs\";\nimport { map, tap } from \"rxjs/operators\";\nimport { observableCallback } from \"observable-callback\";\nimport { useEffectEvent } from \"use-effect-event\";\nfunction getValue(value) {\n return typeof value == \"function\" ? value() : value;\n}\nconst cache = /* @__PURE__ */ new WeakMap();\nfunction useObservable(observable, initialValue) {\n const $ = c(9);\n let t0;\n if (!cache.has(observable)) {\n const state = {\n didEmit: !1\n }, entry = {\n state,\n observable: observable.pipe(map(_temp$1), catchError(_temp2), tap((t12) => {\n const {\n snapshot,\n error: error_0\n } = t12;\n state.didEmit = !0, state.snapshot = snapshot, state.error = error_0;\n }), map(_temp3), finalize(() => cache.delete(observable)), share({\n resetOnRefCountZero: _temp4\n })),\n getSnapshot: (initialValue_0) => {\n if (state.error)\n throw state.error;\n return state.didEmit ? state.snapshot : getValue(initialValue_0);\n }\n };\n entry.observable.subscribe().unsubscribe(), cache.set(observable, entry);\n }\n let t1;\n $[0] !== observable ? (t1 = cache.get(observable), $[0] = observable, $[1] = t1) : t1 = $[1], t0 = t1;\n const instance = t0;\n let t2;\n $[2] !== instance.observable ? (t2 = (onStoreChange) => {\n const subscription_0 = instance.observable.subscribe(onStoreChange);\n return () => {\n subscription_0.unsubscribe();\n };\n }, $[2] = instance.observable, $[3] = t2) : t2 = $[3];\n const subscribe = t2;\n let t3;\n $[4] !== initialValue || $[5] !== instance ? (t3 = () => instance.getSnapshot(initialValue), $[4] = initialValue, $[5] = instance, $[6] = t3) : t3 = $[6];\n let t4;\n return $[7] !== initialValue ? (t4 = typeof initialValue > \"u\" ? void 0 : () => getValue(initialValue), $[7] = initialValue, $[8] = t4) : t4 = $[8], useSyncExternalStore(subscribe, t3, t4);\n}\nfunction _temp4() {\n return timer(0, asapScheduler);\n}\nfunction _temp3(value_0) {\n}\nfunction _temp2(error) {\n return of({\n snapshot: void 0,\n error\n });\n}\nfunction _temp$1(value) {\n return {\n snapshot: value,\n error: void 0\n };\n}\nfunction useObservableEvent(handleEvent) {\n const $ = c(6), [t0] = useState(_temp), [calls$, call] = t0;\n let t1;\n $[0] !== handleEvent ? (t1 = (observable) => handleEvent(observable), $[0] = handleEvent, $[1] = t1) : t1 = $[1];\n const onEvent = useEffectEvent(t1);\n let t2, t3;\n return $[2] !== calls$ || $[3] !== onEvent ? (t2 = () => {\n const subscription = calls$.pipe((observable_0) => onEvent(observable_0)).subscribe();\n return () => subscription.unsubscribe();\n }, t3 = [calls$, onEvent], $[2] = calls$, $[3] = onEvent, $[4] = t2, $[5] = t3) : (t2 = $[4], t3 = $[5]), useEffect(t2, t3), call;\n}\nfunction _temp() {\n return observableCallback();\n}\nexport {\n useObservable,\n useObservableEvent\n};\n//# sourceMappingURL=index.js.map\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","'use strict';\n\nclass QuickLRU {\n\tconstructor(options = {}) {\n\t\tif (!(options.maxSize && options.maxSize > 0)) {\n\t\t\tthrow new TypeError('`maxSize` must be a number greater than 0');\n\t\t}\n\n\t\tthis.maxSize = options.maxSize;\n\t\tthis.onEviction = options.onEviction;\n\t\tthis.cache = new Map();\n\t\tthis.oldCache = new Map();\n\t\tthis._size = 0;\n\t}\n\n\t_set(key, value) {\n\t\tthis.cache.set(key, value);\n\t\tthis._size++;\n\n\t\tif (this._size >= this.maxSize) {\n\t\t\tthis._size = 0;\n\n\t\t\tif (typeof this.onEviction === 'function') {\n\t\t\t\tfor (const [key, value] of this.oldCache.entries()) {\n\t\t\t\t\tthis.onEviction(key, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.oldCache = this.cache;\n\t\t\tthis.cache = new Map();\n\t\t}\n\t}\n\n\tget(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\tconst value = this.oldCache.get(key);\n\t\t\tthis.oldCache.delete(key);\n\t\t\tthis._set(key, value);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tset(key, value) {\n\t\tif (this.cache.has(key)) {\n\t\t\tthis.cache.set(key, value);\n\t\t} else {\n\t\t\tthis._set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\thas(key) {\n\t\treturn this.cache.has(key) || this.oldCache.has(key);\n\t}\n\n\tpeek(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\treturn this.oldCache.get(key);\n\t\t}\n\t}\n\n\tdelete(key) {\n\t\tconst deleted = this.cache.delete(key);\n\t\tif (deleted) {\n\t\t\tthis._size--;\n\t\t}\n\n\t\treturn this.oldCache.delete(key) || deleted;\n\t}\n\n\tclear() {\n\t\tthis.cache.clear();\n\t\tthis.oldCache.clear();\n\t\tthis._size = 0;\n\t}\n\n\t* keys() {\n\t\tfor (const [key] of this) {\n\t\t\tyield key;\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const [, value] of this) {\n\t\t\tyield value;\n\t\t}\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tfor (const item of this.cache) {\n\t\t\tyield item;\n\t\t}\n\n\t\tfor (const item of this.oldCache) {\n\t\t\tconst [key] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t}\n\t}\n\n\tget size() {\n\t\tlet oldCacheSize = 0;\n\t\tfor (const key of this.oldCache.keys()) {\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\toldCacheSize++;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this._size + oldCacheSize, this.maxSize);\n\t}\n}\n\nmodule.exports = QuickLRU;\n","export type ConditionalWrapperRenderWrapperCallback = (children: React.ReactNode) => React.ReactNode\n\n/**\n * A helper component that conditionally wraps its children in a wrapper component.\n *\n * @internal\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: React.ReactNode\n condition: boolean\n wrapper: ConditionalWrapperRenderWrapperCallback\n}): React.ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n","/* eslint-disable no-restricted-imports */\n\nimport {Button as UIButton, type ButtonProps as UIButtonProps} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef, type HTMLProps, useCallback} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip, type TooltipProps} from '..'\nimport {\n ConditionalWrapper,\n type ConditionalWrapperRenderWrapperCallback,\n} from '../conditionalWrapper'\n\ntype BaseButtonProps = Pick<\n UIButtonProps,\n | 'as'\n | 'icon'\n | 'iconRight'\n | 'justify'\n | 'loading'\n | 'mode'\n | 'paddingY'\n | 'selected'\n | 'tone'\n | 'type'\n | 'width'\n> & {\n size?: 'default' | 'large'\n radius?: 'full'\n}\n\ntype ButtonWithText = {\n text: string\n tooltipProps?: TooltipProps | null\n icon?: UIButtonProps['icon']\n}\n\ntype IconButton = {\n text?: undefined\n icon?: UIButtonProps['icon']\n /**\n * When using a button with an icon, tooltipProps are required to enforce consistency in UI.\n */\n tooltipProps: TooltipProps | null\n}\n\n/** @internal */\nexport type ButtonProps = BaseButtonProps & (ButtonWithText | IconButton)\n\nconst LARGE_BUTTON_PROPS = {\n space: 3,\n padding: 3,\n}\nconst DEFAULT_BUTTON_PROPS = {\n space: 2,\n padding: 2,\n}\n\nconst TooltipButtonWrapper = styled.span`\n display: inline-flex;\n`\n/**\n * Customized Sanity UI <Button> with pre-defined layout options.\n *\n * @internal\n */\nexport const Button = forwardRef(function Button(\n {\n size = 'default',\n mode = 'default',\n paddingY,\n tone = 'default',\n tooltipProps,\n ...rest\n }: ButtonProps & Omit<HTMLProps<HTMLButtonElement>, 'as' | 'size' | 'title'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const renderWrapper = useCallback<ConditionalWrapperRenderWrapperCallback>(\n (children) => {\n return (\n <Tooltip content={tooltipProps?.content} portal {...tooltipProps}>\n {/* This span is needed to make the tooltip work in disabled buttons */}\n <TooltipButtonWrapper>{children}</TooltipButtonWrapper>\n </Tooltip>\n )\n },\n [tooltipProps],\n )\n\n const sizeProps = size === 'default' ? DEFAULT_BUTTON_PROPS : LARGE_BUTTON_PROPS\n\n return (\n <ConditionalWrapper condition={!!tooltipProps} wrapper={renderWrapper}>\n <UIButton {...rest} {...sizeProps} paddingY={paddingY} ref={ref} mode={mode} tone={tone} />\n </ConditionalWrapper>\n )\n})\n","export function warn() {\n if (console && console.warn) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'string') args[0] = `react-i18next:: ${args[0]}`;\n console.warn(...args);\n }\n}\nconst alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn(...args);\n}\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n}\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const lng = i18n.languages[0];\n const fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n const lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = i18n.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function hasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n const isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport function setDefaults() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n}\nexport function getDefaults() {\n return defaultOptions;\n}","let i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport function composeInitialProps(ForComponent) {\n return ctx => new Promise(resolve => {\n const i18nInitialProps = getInitialProps();\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(componentsInitialProps => {\n resolve({\n ...componentsInitialProps,\n ...i18nInitialProps\n });\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n}\nexport function getInitialProps() {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nfunction alwaysNewT(i18n, language, namespace, keyPrefix) {\n return i18n.getFixedT(language, namespace, keyPrefix);\n}\nfunction useMemoizedT(i18n, language, namespace, keyPrefix) {\n return useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\n}\nexport function useTranslation(ns) {\n let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && typeof optsOrDefaultValue === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) {\n setT(() => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix));\n }\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n const isInitial = useRef(true);\n useEffect(() => {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n}","/* eslint-disable no-restricted-imports */\nimport {\n Box,\n type BoxHeight,\n Button as UIButton,\n Dialog as UIDialog,\n type DialogProps as UIDialogProps,\n Flex,\n} from '@sanity/ui'\nimport {type ComponentProps, forwardRef, type HTMLProps, type ReactNode, type Ref} from 'react'\nimport {useTranslation} from 'react-i18next'\n\n/** @internal */\nexport type DialogProps = Pick<\n UIDialogProps,\n | '__unstable_autoFocus'\n | '__unstable_hideCloseButton'\n | 'contentRef'\n | 'header'\n | 'id'\n | 'onActivate'\n | 'onClickOutside'\n | 'onClose'\n | 'portal'\n | 'position'\n | 'scheme'\n | 'width'\n> & {\n /**\n * Dialog body height.\n * Set this to 'fill' (i.e. 100%) if you want overflow body content to be contained\n * and not trigger dynamic border visibility.\n */\n bodyHeight?: BoxHeight\n children?: ReactNode\n footer?: {\n cancelButton?: Omit<ComponentProps<typeof UIButton>, 'fontSize' | 'padding'>\n confirmButton?: Omit<ComponentProps<typeof UIButton>, 'fontSize' | 'padding'>\n }\n /**\n * If enabled, removes all default padding from dialog content.\n */\n padding?: boolean\n}\n\n/**\n * Customized Sanity UI <Dialog> that enforces an opinionated footer layout with a max of two buttons (confirm and cancel).\n *\n * @internal\n */\nexport const Dialog = forwardRef(function Dialog(\n {\n bodyHeight,\n children,\n footer,\n padding = true,\n ...props\n }: DialogProps & Pick<HTMLProps<HTMLDivElement>, 'onDragEnter' | 'onDrop'>,\n ref: Ref<HTMLDivElement>,\n) {\n const {t} = useTranslation()\n\n return (\n <UIDialog\n {...props}\n animate\n ref={ref}\n footer={\n (footer?.confirmButton || footer?.cancelButton) && (\n <Flex width=\"full\" gap={3} justify=\"flex-end\" padding={3}>\n {props.onClose && (\n <UIButton\n mode=\"bleed\"\n padding={2}\n text={t('common.dialog.cancel-button.text')}\n tone=\"default\"\n onClick={props.onClose}\n data-testid=\"cancel-button\"\n {...footer.cancelButton}\n />\n )}\n {footer.confirmButton && (\n <UIButton\n mode=\"default\"\n padding={2}\n text={t('common.dialog.confirm-button.text')}\n tone=\"critical\"\n data-testid=\"confirm-button\"\n {...footer.confirmButton}\n />\n )}\n </Flex>\n )\n }\n >\n <Box height={bodyHeight} padding={padding ? 4 : 0}>\n {children}\n </Box>\n </UIDialog>\n )\n})\n","import {\n // eslint-disable-next-line no-restricted-imports\n ErrorBoundary as UIErrorBoundary,\n type ErrorBoundaryProps as UIErrorBoundaryProps,\n} from '@sanity/ui'\nimport {useCallback, useContext} from 'react'\n\nimport {SourceContext} from '../../_singletons'\n\nexport type ErrorBoundaryProps = UIErrorBoundaryProps\n\n/**\n * ErrorBoundary component that catches errors and uses onUncaughtError config property\n * It also calls the onCatch prop if it exists.\n */\nexport function ErrorBoundary({onCatch, ...rest}: ErrorBoundaryProps): React.JSX.Element {\n // Use context, because source could be undefined and we don't want to throw in that case\n const source = useContext(SourceContext)\n\n const handleCatch = useCallback(\n ({error: caughtError, info: caughtInfo}: {error: Error; info: React.ErrorInfo}) => {\n // Send the error to the source if it has an onUncaughtError method\n source?.onUncaughtError?.(caughtError, caughtInfo)\n\n // Call the onCatch prop if it exists\n onCatch?.({error: caughtError, info: caughtInfo})\n },\n [source, onCatch],\n )\n\n return <UIErrorBoundary {...rest} onCatch={handleCatch} />\n}\n","/* eslint-disable no-restricted-imports */\nimport {\n MenuButton as UIMenuButton,\n type MenuButtonProps as UIMenuButtonProps,\n type PopoverProps,\n} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef} from 'react'\n\n/** @internal */\nexport type MenuButtonProps = Omit<UIMenuButtonProps, 'popover'> & {\n popover?: Omit<PopoverProps, 'animate' | 'content' | 'open'>\n}\n\n/**\n * Customized Sanity UI <MenuButton> that enforces popover animation.\n *\n * @internal\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n return (\n <UIMenuButton\n {...props}\n ref={ref}\n popover={{\n ...props.popover,\n animate: true,\n }}\n />\n )\n})\n","/* eslint-disable no-restricted-imports */\nimport {MenuGroup as UIMenuGroup, type MenuGroupProps as UIMenuGroupProps} from '@sanity/ui'\nimport {type HTMLProps} from 'react'\n\n/** @internal */\nexport type MenuGroupProps = Pick<UIMenuGroupProps, 'icon' | 'popover' | 'text' | 'tone'>\n\n/**\n * Customized Sanity UI <MenuGroup> component with pre-defined layout options.\n *\n * @internal\n */\nexport const MenuGroup = (\n props: MenuGroupProps &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex' | 'popover'>,\n) => {\n return <UIMenuGroup {...props} fontSize={1} padding={3} />\n}\n","import {Hotkeys as UIHotkeys, type HotkeysProps as UIHotkeysProps} from '@sanity/ui'\nimport {type HTMLProps, type RefAttributes} from 'react'\n\n/**\n * Properties for the `Hotkeys` component.\n *\n * @public\n */\nexport type HotkeysProps = UIHotkeysProps & {\n /**\n * Whether to make the keys platform-aware (eg `alt` to `option` on Apple devices).\n *\n * @defaultValue true\n */\n makePlatformAware?: boolean\n} & Omit<HTMLProps<HTMLElement>, 'ref' | 'size' | 'as'> &\n RefAttributes<HTMLElement>\n\n/**\n * Renders given `keys` as \"keycaps\" visually.\n *\n * This is a wrapper around `@sanity/ui`'s `Hotkeys` component, which allows for altering keys\n * (eg `alt` to `option`) on Apple devices unless `makePlatformAware` is set to `false`.\n *\n * @param props - Properties to render with\n * @returns React element\n * @public\n */\nexport function Hotkeys({makePlatformAware = true, keys: hotKeys = [], ...props}: HotkeysProps) {\n const keys = makePlatformAware ? hotKeys.map(platformifyKey) : hotKeys\n return <UIHotkeys {...props} keys={keys} />\n}\n\n/**\n * @internal\n */\nconst IS_APPLE_DEVICE =\n typeof navigator === 'undefined' || typeof navigator.platform !== 'string'\n ? false\n : /Mac|iPod|iPhone|iPad/.test(navigator.platform || '')\n\n/**\n * Given key 'Alt', or 'Option' (case-insensitive), return the platform-appropriate key name\n * (eg 'Alt' on non-Apple devices, 'Option' on Apple devices).\n *\n * @param key - Key to platformify\n * @returns Platform-appropriate key name\n * @internal\n */\nfunction platformifyKey(key: string): string {\n const lowerKey = key.toLowerCase()\n\n if (lowerKey === 'alt' && IS_APPLE_DEVICE) {\n return matchCase(key, 'option')\n }\n\n if (lowerKey === 'option' && !IS_APPLE_DEVICE) {\n return matchCase(key, 'alt')\n }\n\n return key\n}\n\n/**\n * Apply the case (lowercase/uppercase) of `original` to `target`, character by character,\n * eg matching ALL CAPS, all lowercase or Mixed Case.\n *\n * @param original - The original string to match case of\n * @param target - The target string to apply case to\n * @returns Target string with case applied from original\n * @internal\n */\nfunction matchCase(original: string, target: string): string {\n const orgLength = original.length\n\n return target.replace(/./g, (char, i) => {\n // Replace character by character matching case of original\n // If running out of original, just return the target case as-is\n return i < orgLength && original[i] === original[i].toUpperCase() ? char.toUpperCase() : char\n })\n}\n","/* eslint-disable no-restricted-imports */\nimport {\n Badge,\n Box,\n Flex,\n MenuItem as UIMenuItem,\n type MenuItemProps as UIMenuItemProps,\n Stack,\n Text,\n} from '@sanity/ui'\nimport {\n forwardRef,\n type HTMLProps,\n isValidElement,\n type ReactNode,\n type Ref,\n useCallback,\n useMemo,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {Hotkeys} from '../../core/components/Hotkeys'\nimport {Tooltip, type TooltipProps} from '..'\nimport {\n ConditionalWrapper,\n type ConditionalWrapperRenderWrapperCallback,\n} from '../conditionalWrapper'\n\nconst FONT_SIZE = 1\nconst SUBTITLE_FONT_SIZE = 0\n\n/* Using px value here to make title/subtitles align with icon */\nconst SubtitleText = styled(Text)`\n margin-top: 2px;\n`\n\n/** @internal */\nexport type MenuItemProps = Pick<\n UIMenuItemProps,\n 'as' | 'icon' | 'iconRight' | 'pressed' | 'selected' | 'tone' | 'hotkeys'\n> & {\n badgeText?: string\n /**\n * Usage of `children` is not supported, import `MenuItem` from `@sanity/ui` instead.\n */\n children?: undefined\n /**\n * Previews should be 25x25.\n */\n preview?: ReactNode\n /**\n * Optional render callback which receives menu item content.\n */\n renderMenuItem?: (menuItemContent: React.JSX.Element) => ReactNode\n text?: string\n tooltipProps?: TooltipProps | null\n /**\n * Optional subtitle prop for the menu item.\n * While not recommended, it is utilized for the workspace menu button.\n */\n __unstable_subtitle?: string\n /**\n * An optional property to adjust spacing in the preview between the icon and the text.\n * Not recommended, but is applied to the workspace menu button..\n */\n __unstable_space?: number\n}\n\nconst PreviewWrapper = styled(Box)`\n height: 25px;\n width: 25px;\n overflow: hidden;\n`\n\n/**\n * Customized Sanity UI <MenuItem> that restricts usage of `children` to encourage simple,\n * single line menu items.\n *\n * The workspace menu button needed a subtitle - hence, the StudioUI MenuIten now takes a subtitle prop.\n * This is only an escape hatch for the workspace menu button and is not recommended for general use.\n *\n * It also accepts a prop to attach tooltips as well as custom badges too.\n *\n * @internal\n */\nexport const MenuItem = forwardRef(function MenuItem(\n {\n badgeText,\n children: childrenProp,\n disabled,\n hotkeys,\n icon: Icon,\n iconRight: IconRight,\n preview = null,\n renderMenuItem,\n text,\n tooltipProps,\n __unstable_subtitle,\n __unstable_space,\n ...rest\n }: MenuItemProps &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex' | 'size'>,\n ref: Ref<HTMLDivElement>,\n) {\n const menuItemContent = useMemo(() => {\n return (\n <Flex align=\"center\" gap={2}>\n {preview && (\n <PreviewWrapper\n style={{opacity: disabled ? 0.25 : undefined}}\n paddingRight={__unstable_space ? 1 : 0}\n >\n <Flex align=\"center\" height=\"fill\" justify=\"center\">\n {preview}\n </Flex>\n </PreviewWrapper>\n )}\n {Icon && (\n <Box paddingRight={1}>\n <Text size={FONT_SIZE}>\n {isValidElement(Icon) && Icon}\n {isValidElementType(Icon) && <Icon />}\n </Text>\n </Box>\n )}\n {text && (\n <Stack\n flex={1}\n space={__unstable_subtitle ? 1 : 2}\n paddingLeft={__unstable_subtitle ? 1 : 0}\n >\n <Text size={FONT_SIZE} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n {__unstable_subtitle && (\n <SubtitleText size={SUBTITLE_FONT_SIZE} textOverflow=\"ellipsis\" weight=\"medium\" muted>\n {__unstable_subtitle}\n </SubtitleText>\n )}\n </Stack>\n )}\n {(badgeText || hotkeys || IconRight) && (\n <Flex align=\"center\" gap={3} marginLeft={3}>\n {hotkeys && <Hotkeys keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />}\n\n {badgeText && (\n <Badge fontSize={0} style={{marginTop: -4, marginBottom: -4}}>\n {badgeText}\n </Badge>\n )}\n\n {IconRight && (\n <Text size={FONT_SIZE}>\n {isValidElement(IconRight) && IconRight}\n {isValidElementType(IconRight) && <IconRight />}\n </Text>\n )}\n </Flex>\n )}\n </Flex>\n )\n }, [\n preview,\n disabled,\n __unstable_space,\n Icon,\n text,\n __unstable_subtitle,\n badgeText,\n hotkeys,\n IconRight,\n ])\n\n const renderWrapper = useCallback<ConditionalWrapperRenderWrapperCallback>(\n (children) => {\n return (\n <Tooltip content={tooltipProps?.content} portal {...tooltipProps}>\n {/* This div is needed to make the tooltip work in disabled menu items */}\n <div>{children}</div>\n </Tooltip>\n )\n },\n [tooltipProps],\n )\n\n return (\n <ConditionalWrapper condition={!!tooltipProps} wrapper={renderWrapper}>\n <UIMenuItem\n disabled={disabled}\n paddingLeft={preview ? 1 : 3}\n paddingRight={3}\n paddingY={preview ? 1 : 3}\n ref={ref}\n {...rest}\n >\n {typeof childrenProp === 'undefined' && typeof renderMenuItem === 'function'\n ? renderMenuItem(menuItemContent)\n : menuItemContent}\n </UIMenuItem>\n </ConditionalWrapper>\n )\n})\n","/* eslint-disable no-restricted-imports */\nimport {Popover as UIPopover, type PopoverProps as UIPopoverProps} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef, type HTMLProps} from 'react'\n\n/** @internal */\nexport type PopoverProps = Omit<UIPopoverProps, 'animate'>\n\n/**\n * Customized Sanity UI <Popover> that forces `animate=true`\n *\n * All Popovers in the studio should be animated.\n *\n * @internal\n */\nexport const Popover = forwardRef(function Popover(\n props: PopoverProps & Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return <UIPopover {...props} animate ref={ref} />\n})\n","/* eslint-disable no-restricted-imports */\nimport {Tab as UITab, type TabProps as UITabProps} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef, type HTMLProps} from 'react'\n\n/**\n * @internal\n *\n * Padding and font sizes are fixed in Studio UI <Tab> components.\n */\nexport type TabProps = Pick<\n UITabProps,\n 'aria-controls' | 'focused' | 'icon' | 'id' | 'label' | 'selected' | 'tone'\n>\n\n/**\n * Customized Sanity UI <Tab> with limited layout options.\n *\n * @internal\n */\nexport const Tab = forwardRef(function Tab(\n {tone = 'default', ...props}: TabProps & Omit<HTMLProps<HTMLButtonElement>, 'as' | 'size'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n return <UITab {...props} muted padding={2} ref={ref} tone={tone} />\n})\n","export const TOOLTIP_DELAY_PROPS = {\n open: 400,\n}\n","import {\n Box,\n Flex,\n type HotkeysProps,\n Text,\n // eslint-disable-next-line no-restricted-imports\n Tooltip as UITooltip,\n // eslint-disable-next-line no-restricted-imports\n type TooltipProps as UITooltipProps,\n} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef} from 'react'\n\nimport {Hotkeys} from '../../core/components/Hotkeys'\nimport {TOOLTIP_DELAY_PROPS} from './constants'\n\n/** @internal */\n\nexport type TooltipProps = Omit<UITooltipProps, 'arrow' | 'padding' | 'shadow'> & {\n hotkeys?: HotkeysProps['keys']\n}\n\nconst TOOLTIP_SHARED_PROPS: UITooltipProps = {\n animate: true,\n arrow: false,\n boundaryElement: null,\n delay: TOOLTIP_DELAY_PROPS,\n fallbackPlacements: ['bottom-start', 'bottom-end', 'top-start', 'top-end'],\n placement: 'bottom',\n portal: true,\n}\n\n/**\n * Customized Sanity UI <Tooltip> with limited layout options and support for showing hotkeys.\n *\n * In just about all cases, its strongly recommended that you pass a string to the `content` prop.\n * This helps simplify i18n and encourages short and concise.\n *\n * Passing ReactNode values to `content` is supported, but discouraged.\n *\n * @internal\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {content, hotkeys, ...rest} = props\n\n if (typeof content === 'string') {\n return (\n <UITooltip\n {...TOOLTIP_SHARED_PROPS}\n content={\n <Flex align=\"center\">\n {content && (\n <Box flex={1} padding={1}>\n <Text size={1}>{content}</Text>\n </Box>\n )}\n {hotkeys && (\n <Box flex=\"none\">\n <Hotkeys keys={hotkeys} />\n </Box>\n )}\n </Flex>\n }\n padding={1}\n ref={ref}\n {...rest}\n />\n )\n }\n\n return <UITooltip {...TOOLTIP_SHARED_PROPS} content={content} ref={ref} {...rest} />\n})\n","/* eslint-disable no-restricted-imports */\nimport {\n TooltipDelayGroupProvider as UITooltipDelayGroupProvider,\n type TooltipDelayGroupProviderProps as UITooltipDelayGroupProviderProps,\n} from '@sanity/ui'\n\nimport {TOOLTIP_DELAY_PROPS} from '../tooltip/constants'\n\n/** @internal */\nexport type TooltipDelayGroupProviderProps = Omit<UITooltipDelayGroupProviderProps, 'delay'>\n\n/**\n * Opinionated Sanity UI <TooltipDelayGroupProvider> which forces the same delay to all tooltips.\n *\n * @internal\n */\nexport const TooltipDelayGroupProvider = (props: TooltipDelayGroupProviderProps) => {\n return (\n <UITooltipDelayGroupProvider delay={TOOLTIP_DELAY_PROPS}>\n {props.children}\n </UITooltipDelayGroupProvider>\n )\n}\n","const capture = {\n capture: true\n};\nfunction listen(target, type, cb) {\n target.addEventListener(type, cb, capture);\n return () => target.removeEventListener(type, cb, capture);\n}\nfunction onPageHide(listener) {\n if (\"onpagehide\" in window) {\n return listen(window, \"pagehide\", listener);\n }\n const cleanupUnload = listen(window, \"unload\", listener);\n const cleanupBeforeUnload = listen(window, \"unload\", listener);\n return () => {\n cleanupUnload();\n cleanupBeforeUnload();\n };\n}\nfunction onVisibilityHidden(cb) {\n return listen(document, \"visibilitychange\", () => {\n if (document.visibilityState === \"hidden\") {\n cb();\n }\n });\n}\nfunction registerLifecycleEvents(store) {\n const unregisterVisibilityHidden = onVisibilityHidden(() => store.flush());\n const unregisterPageHide = onPageHide(() => store.endWithBeacon());\n return () => {\n unregisterPageHide();\n unregisterVisibilityHidden();\n };\n}\nfunction createNoopLogger() {\n const logger = {\n updateUserProperties() {},\n trace,\n log\n };\n function trace(telemetryTrace) {\n return {\n start() {},\n log(data) {},\n complete() {},\n newContext(name) {\n return logger;\n },\n error(error) {},\n await: promise => promise\n };\n }\n function log(event, data) {}\n return logger;\n}\nconst noopLogger = createNoopLogger();\nexport { noopLogger, onPageHide, onVisibilityHidden, registerLifecycleEvents };\n//# sourceMappingURL=noopLogger-b5b1676e.js.map\n","import { useEffect, createContext, useContext } from 'react';\nimport { jsx } from 'react/jsx-runtime';\nimport { onVisibilityHidden, onPageHide, noopLogger } from '../_chunks/noopLogger-b5b1676e.js';\nfunction useTelemetryStoreLifeCycleEvents(store) {\n useEffect(() => onVisibilityHidden(store.flush), [store.flush]);\n useEffect(() => onPageHide(store.endWithBeacon), [store.endWithBeacon]);\n}\nconst TelemetryLoggerContext = createContext(noopLogger);\nfunction TelemetryProvider(_ref) {\n let {\n children,\n store\n } = _ref;\n useTelemetryStoreLifeCycleEvents(store);\n return /* @__PURE__ */jsx(TelemetryLoggerContext.Provider, {\n value: store.logger,\n children\n });\n}\nfunction useTelemetry() {\n return useContext(TelemetryLoggerContext);\n}\nexport { TelemetryProvider, useTelemetry, useTelemetryStoreLifeCycleEvents };\n//# sourceMappingURL=index.js.map\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","// src/base32.ts\nvar alphabet = \"0123456789abcdefghjkmnpqrstvwxyz\";\nvar dec = new Uint8Array([\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 255,\n 18,\n 19,\n 255,\n 20,\n 21,\n 255,\n 22,\n 23,\n 24,\n 25,\n 26,\n 255,\n 27,\n 28,\n 29,\n 30,\n 31,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255,\n 255\n]);\nfunction encode(src) {\n const dst = new Array(26).fill(\"\");\n if (src.length !== 16) {\n throw new Error(\"Invalid length\");\n }\n dst[0] = alphabet[(src[0] & 224) >> 5];\n dst[1] = alphabet[src[0] & 31];\n dst[2] = alphabet[(src[1] & 248) >> 3];\n dst[3] = alphabet[(src[1] & 7) << 2 | (src[2] & 192) >> 6];\n dst[4] = alphabet[(src[2] & 62) >> 1];\n dst[5] = alphabet[(src[2] & 1) << 4 | (src[3] & 240) >> 4];\n dst[6] = alphabet[(src[3] & 15) << 1 | (src[4] & 128) >> 7];\n dst[7] = alphabet[(src[4] & 124) >> 2];\n dst[8] = alphabet[(src[4] & 3) << 3 | (src[5] & 224) >> 5];\n dst[9] = alphabet[src[5] & 31];\n dst[10] = alphabet[(src[6] & 248) >> 3];\n dst[11] = alphabet[(src[6] & 7) << 2 | (src[7] & 192) >> 6];\n dst[12] = alphabet[(src[7] & 62) >> 1];\n dst[13] = alphabet[(src[7] & 1) << 4 | (src[8] & 240) >> 4];\n dst[14] = alphabet[(src[8] & 15) << 1 | (src[9] & 128) >> 7];\n dst[15] = alphabet[(src[9] & 124) >> 2];\n dst[16] = alphabet[(src[9] & 3) << 3 | (src[10] & 224) >> 5];\n dst[17] = alphabet[src[10] & 31];\n dst[18] = alphabet[(src[11] & 248) >> 3];\n dst[19] = alphabet[(src[11] & 7) << 2 | (src[12] & 192) >> 6];\n dst[20] = alphabet[(src[12] & 62) >> 1];\n dst[21] = alphabet[(src[12] & 1) << 4 | (src[13] & 240) >> 4];\n dst[22] = alphabet[(src[13] & 15) << 1 | (src[14] & 128) >> 7];\n dst[23] = alphabet[(src[14] & 124) >> 2];\n dst[24] = alphabet[(src[14] & 3) << 3 | (src[15] & 224) >> 5];\n dst[25] = alphabet[src[15] & 31];\n return dst.join(\"\");\n}\nfunction decode(s) {\n if (s.length !== 26) {\n throw new Error(\"Invalid length\");\n }\n const encoder = new TextEncoder();\n const v = encoder.encode(s);\n if (dec[v[0]] === 255 || dec[v[1]] === 255 || dec[v[2]] === 255 || dec[v[3]] === 255 || dec[v[4]] === 255 || dec[v[5]] === 255 || dec[v[6]] === 255 || dec[v[7]] === 255 || dec[v[8]] === 255 || dec[v[9]] === 255 || dec[v[10]] === 255 || dec[v[11]] === 255 || dec[v[12]] === 255 || dec[v[13]] === 255 || dec[v[14]] === 255 || dec[v[15]] === 255 || dec[v[16]] === 255 || dec[v[17]] === 255 || dec[v[18]] === 255 || dec[v[19]] === 255 || dec[v[20]] === 255 || dec[v[21]] === 255 || dec[v[22]] === 255 || dec[v[23]] === 255 || dec[v[24]] === 255 || dec[v[25]] === 255) {\n throw new Error(\"Invalid base32 character\");\n }\n const id = new Uint8Array(16);\n id[0] = dec[v[0]] << 5 | dec[v[1]];\n id[1] = dec[v[2]] << 3 | dec[v[3]] >> 2;\n id[2] = (dec[v[3]] & 3) << 6 | dec[v[4]] << 1 | dec[v[5]] >> 4;\n id[3] = (dec[v[5]] & 15) << 4 | dec[v[6]] >> 1;\n id[4] = (dec[v[6]] & 1) << 7 | dec[v[7]] << 2 | dec[v[8]] >> 3;\n id[5] = (dec[v[8]] & 7) << 5 | dec[v[9]];\n id[6] = dec[v[10]] << 3 | dec[v[11]] >> 2;\n id[7] = (dec[v[11]] & 3) << 6 | dec[v[12]] << 1 | dec[v[13]] >> 4;\n id[8] = (dec[v[13]] & 15) << 4 | dec[v[14]] >> 1;\n id[9] = (dec[v[14]] & 1) << 7 | dec[v[15]] << 2 | dec[v[16]] >> 3;\n id[10] = (dec[v[16]] & 7) << 5 | dec[v[17]];\n id[11] = dec[v[18]] << 3 | dec[v[19]] >> 2;\n id[12] = (dec[v[19]] & 3) << 6 | dec[v[20]] << 1 | dec[v[21]] >> 4;\n id[13] = (dec[v[21]] & 15) << 4 | dec[v[22]] >> 1;\n id[14] = (dec[v[22]] & 1) << 7 | dec[v[23]] << 2 | dec[v[24]] >> 3;\n id[15] = (dec[v[24]] & 7) << 5 | dec[v[25]];\n return id;\n}\n\nexport {\n encode,\n decode\n};\n//# sourceMappingURL=chunk-4WQUCFGE.mjs.map","// src/parse_uuid.ts\nfunction parseUUID(uuid) {\n let v;\n const arr = new Uint8Array(16);\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 255;\n arr[2] = v >>> 8 & 255;\n arr[3] = v & 255;\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 255;\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 255;\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 255;\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255;\n arr[11] = v / 4294967296 & 255;\n arr[12] = v >>> 24 & 255;\n arr[13] = v >>> 16 & 255;\n arr[14] = v >>> 8 & 255;\n arr[15] = v & 255;\n return arr;\n}\n\nexport {\n parseUUID\n};\n//# sourceMappingURL=chunk-5QL2QZCM.mjs.map","var __pow = Math.pow;\n\nexport {\n __pow\n};\n//# sourceMappingURL=chunk-R5Q6Z3GN.mjs.map","import {\n decode,\n encode\n} from \"./chunk-4WQUCFGE.mjs\";\nimport {\n parseUUID\n} from \"./chunk-5QL2QZCM.mjs\";\nimport {\n __pow\n} from \"./chunk-R5Q6Z3GN.mjs\";\n\n// node_modules/.pnpm/uuidv7@0.4.4/node_modules/uuidv7/dist/index.js\nvar DIGITS = \"0123456789abcdef\";\nvar UUID = class {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.length !== 16) {\n throw new TypeError(\"not 128-bit length\");\n }\n }\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n */\n static fromFieldsV7(unixTsMs, randA, randBHi, randBLo) {\n if (!Number.isInteger(unixTsMs) || !Number.isInteger(randA) || !Number.isInteger(randBHi) || !Number.isInteger(randBLo) || unixTsMs < 0 || randA < 0 || randBHi < 0 || randBLo < 0 || unixTsMs > 281474976710655 || randA > 4095 || randBHi > 1073741823 || randBLo > 4294967295) {\n throw new RangeError(\"invalid field value\");\n }\n const bytes = new Uint8Array(16);\n bytes[0] = unixTsMs / __pow(2, 40);\n bytes[1] = unixTsMs / __pow(2, 32);\n bytes[2] = unixTsMs / __pow(2, 24);\n bytes[3] = unixTsMs / __pow(2, 16);\n bytes[4] = unixTsMs / __pow(2, 8);\n bytes[5] = unixTsMs;\n bytes[6] = 112 | randA >>> 8;\n bytes[7] = randA;\n bytes[8] = 128 | randBHi >>> 24;\n bytes[9] = randBHi >>> 16;\n bytes[10] = randBHi >>> 8;\n bytes[11] = randBHi;\n bytes[12] = randBLo >>> 24;\n bytes[13] = randBLo >>> 16;\n bytes[14] = randBLo >>> 8;\n bytes[15] = randBLo;\n return new UUID(bytes);\n }\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toString() {\n let text = \"\";\n for (let i = 0; i < this.bytes.length; i++) {\n text += DIGITS.charAt(this.bytes[i] >>> 4);\n text += DIGITS.charAt(this.bytes[i] & 15);\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += \"-\";\n }\n }\n return text;\n }\n /** Creates an object from `this`. */\n clone() {\n return new UUID(this.bytes.slice(0));\n }\n /** Returns true if `this` is equivalent to `other`. */\n equals(other) {\n return this.compareTo(other) === 0;\n }\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other) {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i];\n if (diff !== 0) {\n return Math.sign(diff);\n }\n }\n return 0;\n }\n};\nvar V7Generator = class {\n constructor() {\n this.timestamp = 0;\n this.counter = 0;\n this.random = new DefaultRandom();\n }\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method resets the generator and returns a new\n * UUID based on the current timestamp.\n */\n generate() {\n const value = this.generateOrAbort();\n if (value !== void 0) {\n return value;\n } else {\n this.timestamp = 0;\n return this.generateOrAbort();\n }\n }\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method aborts and returns `undefined`.\n */\n generateOrAbort() {\n const MAX_COUNTER = 4398046511103;\n const ROLLBACK_ALLOWANCE = 1e4;\n const ts = Date.now();\n if (ts > this.timestamp) {\n this.timestamp = ts;\n this.resetCounter();\n } else if (ts + ROLLBACK_ALLOWANCE > this.timestamp) {\n this.counter++;\n if (this.counter > MAX_COUNTER) {\n this.timestamp++;\n this.resetCounter();\n }\n } else {\n return void 0;\n }\n return UUID.fromFieldsV7(this.timestamp, Math.trunc(this.counter / __pow(2, 30)), this.counter & __pow(2, 30) - 1, this.random.nextUint32());\n }\n /** Initializes the counter at a 42-bit random integer. */\n resetCounter() {\n this.counter = this.random.nextUint32() * 1024 + (this.random.nextUint32() & 1023);\n }\n};\nvar getRandomValues = (buffer) => {\n if (typeof UUIDV7_DENY_WEAK_RNG !== \"undefined\" && UUIDV7_DENY_WEAK_RNG) {\n throw new Error(\"no cryptographically strong RNG available\");\n }\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] = Math.trunc(Math.random() * 65536) * 65536 + Math.trunc(Math.random() * 65536);\n }\n return buffer;\n};\nif (typeof crypto !== \"undefined\" && crypto.getRandomValues) {\n getRandomValues = (buffer) => crypto.getRandomValues(buffer);\n}\nvar DefaultRandom = class {\n constructor() {\n this.buffer = new Uint32Array(8);\n this.cursor = 99;\n }\n nextUint32() {\n if (this.cursor >= this.buffer.length) {\n getRandomValues(this.buffer);\n this.cursor = 0;\n }\n return this.buffer[this.cursor++];\n }\n};\nvar defaultGenerator;\nvar uuidv7obj = () => (defaultGenerator || (defaultGenerator = new V7Generator())).generate();\n\n// src/typeid.ts\nfunction isValidPrefix(str) {\n if (str.length > 63) {\n return false;\n }\n let code;\n let i;\n let len;\n for (i = 0, len = str.length; i < len; i += 1) {\n code = str.charCodeAt(i);\n if (!(code > 96 && code < 123)) {\n return false;\n }\n }\n return true;\n}\nvar TypeID = class {\n constructor(prefix, suffix = \"\") {\n this.prefix = prefix;\n this.suffix = suffix;\n if (!isValidPrefix(prefix)) {\n throw new Error(\"Invalid prefix. Must be at most 63 ascii letters [a-z]\");\n }\n this.prefix = prefix;\n if (suffix) {\n this.suffix = suffix;\n } else {\n const uuid = uuidv7obj();\n this.suffix = encode(uuid.bytes);\n }\n if (this.suffix.length !== 26) {\n throw new Error(`Invalid length. Suffix should have 26 characters, got ${suffix.length}`);\n }\n if (this.suffix[0] > \"7\") {\n throw new Error(\"Invalid suffix. First character must be in the range [0-7]\");\n }\n const unused = decode(this.suffix);\n }\n getType() {\n return this.prefix;\n }\n getSuffix() {\n return this.suffix;\n }\n asType(prefix) {\n const self = this;\n if (self.prefix !== prefix) {\n throw new Error(`Cannot convert TypeID of type ${self.prefix} to type ${prefix}`);\n }\n return self;\n }\n toUUIDBytes() {\n return decode(this.suffix);\n }\n toUUID() {\n const uuid = new UUID(this.toUUIDBytes());\n return uuid.toString();\n }\n toString() {\n if (this.prefix === \"\") {\n return this.suffix;\n }\n return `${this.prefix}_${this.suffix}`;\n }\n static fromString(str) {\n const parts = str.split(\"_\");\n if (parts.length === 1) {\n return new TypeID(\"\", parts[0]);\n }\n if (parts.length === 2) {\n if (parts[0] === \"\") {\n throw new Error(`Invalid TypeID. Prefix cannot be empty when there's a separator: ${str}`);\n }\n return new TypeID(parts[0], parts[1]);\n }\n throw new Error(`Invalid TypeID string: ${str}`);\n }\n static fromUUIDBytes(prefix, bytes) {\n const suffix = encode(bytes);\n return new TypeID(prefix, suffix);\n }\n static fromUUID(prefix, uuid) {\n const suffix = encode(parseUUID(uuid));\n return new TypeID(prefix, suffix);\n }\n};\nfunction typeid(prefix = \"\", suffix = \"\") {\n return new TypeID(prefix, suffix);\n}\n\nexport {\n TypeID,\n typeid\n};\n/*! Bundled license information:\n\nuuidv7/dist/index.js:\n (**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n *)\n*/\n//# sourceMappingURL=chunk-FOHWUNKU.mjs.map","import { typeid } from 'typeid-js';\nimport { Subject, tap, map, throttle, concatMap, Observable, EMPTY, combineLatest, of, mergeMap, from, catchError, lastValueFrom } from 'rxjs';\nexport { noopLogger, onPageHide, onVisibilityHidden, registerLifecycleEvents } from './_chunks/noopLogger-b5b1676e.js';\nfunction createSessionId() {\n return typeid(\"session\").toString();\n}\nfunction createTraceId() {\n return typeid(\"trace\").toString();\n}\nfunction splitAt(str, index) {\n return index < 1 ? [str, \"\"] : [str.substring(0, index), str.substring(index)];\n}\nconst MAX_LENGTH = 1024;\nfunction trimErrorMessage(errorMessage) {\n const newLineIndex = errorMessage.indexOf(\"\\n\");\n const splitIndex = newLineIndex === -1 ? MAX_LENGTH : Math.min(newLineIndex, MAX_LENGTH);\n const [first, rest] = splitAt(errorMessage, splitIndex);\n return first + (rest ? \"\\u2026 (+\".concat(rest.length, \")\") : \"\");\n}\nfunction createStore(sessionId) {\n const logEntries$ = new Subject();\n function pushTraceError(traceId, telemetryTrace, error, context) {\n logEntries$.next({\n sessionId,\n type: \"trace.error\",\n traceId,\n name: telemetryTrace.name,\n version: telemetryTrace.version,\n data: {\n message: trimErrorMessage(error.message)\n },\n context,\n createdAt: /* @__PURE__ */new Date().toISOString()\n });\n }\n function pushTraceEntry(type, traceId, telemetryTrace, data, context) {\n logEntries$.next({\n sessionId,\n type,\n traceId,\n name: telemetryTrace.name,\n version: telemetryTrace.version,\n data,\n context,\n createdAt: /* @__PURE__ */new Date().toISOString()\n });\n }\n function pushLogEntry(type, event, data) {\n logEntries$.next({\n sessionId,\n type,\n version: event.version,\n name: event.name,\n data,\n createdAt: /* @__PURE__ */new Date().toISOString()\n });\n }\n function pushUserPropertiesEntry(properties) {\n logEntries$.next({\n sessionId,\n type: \"userProperties\",\n properties,\n createdAt: /* @__PURE__ */new Date().toISOString()\n });\n }\n function createTrace(traceId, traceDef, context) {\n return {\n start() {\n pushTraceEntry(\"trace.start\", traceId, traceDef, void 0, context);\n },\n newContext(name) {\n return {\n trace(innerTraceDef) {\n return createTrace(\"\".concat(traceId, \".\").concat(name), innerTraceDef, context);\n },\n updateUserProperties() {},\n log\n };\n },\n log(data) {\n pushTraceEntry(\"trace.log\", traceId, traceDef, data, context);\n },\n complete() {\n pushTraceEntry(\"trace.complete\", traceId, traceDef, void 0, context);\n },\n error(error) {\n pushTraceError(traceId, traceDef, error, context);\n },\n await(promise, data) {\n this.start();\n promise.then(result => {\n this.log(data ? data : result);\n this.complete();\n return result;\n }, error => {\n this.error(error);\n throw error;\n });\n return promise;\n }\n };\n }\n function log(event, data) {\n pushLogEntry(\"log\", event, data);\n }\n return {\n events$: logEntries$.asObservable(),\n logger: {\n updateUserProperties(properties) {\n pushUserPropertiesEntry(properties);\n },\n trace: (traceDef, context) => {\n const traceId = createTraceId();\n return createTrace(traceId, traceDef, context);\n },\n log\n }\n };\n}\nconst unrefTimer = ms => new Observable(subscriber => {\n const timeout = setTimeout(() => {\n subscriber.next();\n subscriber.complete();\n }, ms);\n if (typeof timeout.unref === \"function\") {\n timeout.unref();\n }\n return () => clearTimeout(timeout);\n});\nfunction createBatchedStore(sessionId, options) {\n var _a;\n const store = createStore(sessionId);\n function resolveConsent() {\n return options.resolveConsent().catch(err => (\n // if we for some reason can't fetch consent we treat it as \"undetermined\", and try again at next flush\n {\n status: \"undetermined\"\n }));\n }\n const _buffer = [];\n function consume() {\n const buf = _buffer.slice();\n _buffer.length = 0;\n return buf;\n }\n function submit() {\n const pending = consume();\n if (pending.length === 0) {\n return EMPTY;\n }\n return combineLatest([of(pending), resolveConsent()]).pipe(mergeMap(_ref => {\n let [events, consent] = _ref;\n if (events.length === 0 || consent.status !== \"granted\") {\n return EMPTY;\n }\n return from(options.sendEvents(events)).pipe(catchError(err => {\n _buffer.unshift(...events);\n return EMPTY;\n }));\n }));\n }\n const flushInterval = (_a = options.flushInterval) != null ? _a : 3e4;\n const flush$ = store.events$.pipe(tap(ev => _buffer.push(ev)), map(() => {}),\n // void to avoid accidental use of events further down the pipe\n throttle(() => unrefTimer(flushInterval), {\n leading: false,\n trailing: true\n }), concatMap(() => submit()));\n function flush() {\n return lastValueFrom(submit(), {\n defaultValue: void 0\n }).then(() => {});\n }\n const subscription = flush$.subscribe();\n function endWithBeacon() {\n if (!options.sendBeacon) {\n end();\n return true;\n }\n const events = consume();\n subscription.unsubscribe();\n return events.length > 0 ? options.sendBeacon(events) : true;\n }\n function end() {\n return flush().then(() => {},\n // void promise\n () => {}\n // ignore errors\n ).finally(() => {\n subscription.unsubscribe();\n });\n }\n return {\n end,\n endWithBeacon,\n // Note: flush may fail\n flush,\n logger: store.logger\n };\n}\nfunction defineEvent(options) {\n return {\n type: \"log\",\n name: options.name,\n version: options.version,\n description: options.description,\n schema: void 0\n };\n}\nfunction defineTrace(options) {\n return {\n type: \"trace\",\n name: options.name,\n version: options.version,\n description: options.description,\n schema: void 0,\n context: void 0\n };\n}\nexport { createBatchedStore, createSessionId, defineEvent, defineTrace };\n//# sourceMappingURL=index.js.map\n","const IS_MAC = typeof window < \"u\" && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform), MODIFIERS = {\n alt: \"altKey\",\n control: \"ctrlKey\",\n meta: \"metaKey\",\n shift: \"shiftKey\"\n}, ALIASES = {\n add: \"+\",\n break: \"pause\",\n cmd: \"meta\",\n command: \"meta\",\n ctl: \"control\",\n ctrl: \"control\",\n del: \"delete\",\n down: \"arrowdown\",\n esc: \"escape\",\n ins: \"insert\",\n left: \"arrowleft\",\n mod: IS_MAC ? \"meta\" : \"control\",\n opt: \"alt\",\n option: \"alt\",\n return: \"enter\",\n right: \"arrowright\",\n space: \" \",\n spacebar: \" \",\n up: \"arrowup\",\n win: \"meta\",\n windows: \"meta\"\n}, CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n \" \": 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n \";\": 186,\n \"=\": 187,\n \",\": 188,\n \"-\": 189,\n \".\": 190,\n \"/\": 191,\n \"`\": 192,\n \"[\": 219,\n \"\\\\\": 220,\n \"]\": 221,\n \"'\": 222\n};\nfor (var f = 1; f < 20; f++)\n CODES[\"f\" + f] = 111 + f;\nfunction isHotkey(hotkey, options, event) {\n options && !(\"byKey\" in options) && (event = options, options = null), Array.isArray(hotkey) || (hotkey = [hotkey]);\n const array = hotkey.map((string) => parseHotkey(string, options)), check = (e) => array.some((object) => compareHotkey(object, e));\n return event == null ? check : check(event);\n}\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: !0 }, event);\n}\nfunction parseHotkey(hotkey, options) {\n const byKey = options && options.byKey, ret = {};\n hotkey = hotkey.replace(\"++\", \"+add\");\n const values = hotkey.split(\"+\"), { length } = values;\n for (const k in MODIFIERS)\n ret[MODIFIERS[k]] = !1;\n for (let value of values) {\n const optional = value.endsWith(\"?\") && value.length > 1;\n optional && (value = value.slice(0, -1));\n const name = toKeyName(value), modifier = MODIFIERS[name];\n if (value.length > 1 && !modifier && !ALIASES[value] && !CODES[name])\n throw new TypeError(`Unknown modifier: \"${value}\"`);\n (length === 1 || !modifier) && (byKey ? ret.key = name : ret.which = toKeyCode(value)), modifier && (ret[modifier] = optional ? null : !0);\n }\n return ret;\n}\nfunction compareHotkey(object, event) {\n for (const key in object) {\n const expected = object[key];\n let actual;\n if (expected != null && (key === \"key\" && event.key != null ? actual = event.key.toLowerCase() : key === \"which\" ? actual = expected === 91 && event.which === 93 ? 91 : event.which : actual = event[key], !(actual == null && expected === !1) && actual !== expected))\n return !1;\n }\n return !0;\n}\nfunction toKeyCode(name) {\n return name = toKeyName(name), CODES[name] || name.toUpperCase().charCodeAt(0);\n}\nfunction toKeyName(name) {\n return name = name.toLowerCase(), name = ALIASES[name] || name, name;\n}\nexport {\n compareHotkey,\n isCodeHotkey,\n isHotkey,\n isKeyHotkey,\n parseHotkey,\n toKeyCode,\n toKeyName\n};\n//# sourceMappingURL=index.js.map\n","const BASE_URL = \"https://docs.sanity.io/help/\";\nfunction generateHelpUrl(slug) {\n return BASE_URL + slug;\n}\nexport { generateHelpUrl };\n//# sourceMappingURL=generate-help-url.esm.js.map\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(text) {\n return text.replace(EDGE_CHARS, \"\").match(CHARS) || [];\n}\nfunction matchAnalyzePattern(text) {\n return matchPatternRegex(text).map((re) => (tokens) => tokens.some((token) => re.test(token)));\n}\nfunction matchPatternRegex(text) {\n return (text.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 text = blockText(block.data);\n text !== null && result.push(text);\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 text = await execute(left, scope), pattern = await execute(right, scope);\n let tokens = [], terms = [];\n if (await gatherText(text, (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), text = await portableTextContent(value);\n return text === null ? NULL_VALUE : fromString(text);\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 val && \"_id\" in val && val._id.split(\".\").length === 2 && val._id.endsWith(`.${baseId}`) && \"_version\" in val && typeof val._version == \"object\" && versionIds.push(val._id);\n }\n return fromJS(versionIds);\n};\nsanity.versionOf.arity = 1;\nsanity.documentsOf = 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, documentIdsInBundle = [];\n for await (const value2 of scope.source)\n if (getType(value2) === \"object\") {\n const val = await value2.get();\n val && \"_id\" in val && val._id.split(\".\").length === 2 && val._id.startsWith(`${baseId}.`) && \"_version\" in val && typeof val._version == \"object\" && documentIdsInBundle.push(val._id);\n }\n return fromJS(documentIdsInBundle);\n};\nsanity.documentsOf.arity = 1;\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 namespaces = {\n global: _global,\n string: string2,\n array,\n pt,\n delta,\n diff,\n sanity,\n math,\n dateTime: dateTime2\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}\nfunction hashField(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.documentsOf\": {\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","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","(function (root) {\n 'use strict';\n\n /**\n * charMap\n * @type {Object}\n */\n var charMap = {\n\n // latin\n 'À': 'A',\n 'Á': 'A',\n 'Â': 'A',\n 'Ã': 'A',\n 'Ä': 'Ae',\n 'Å': 'A',\n 'Æ': 'AE',\n 'Ç': 'C',\n 'È': 'E',\n 'É': 'E',\n 'Ê': 'E',\n 'Ë': 'E',\n 'Ì': 'I',\n 'Í': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ð': 'D',\n 'Ñ': 'N',\n 'Ò': 'O',\n 'Ó': 'O',\n 'Ô': 'O',\n 'Õ': 'O',\n 'Ö': 'Oe',\n 'Ő': 'O',\n 'Ø': 'O',\n 'Ù': 'U',\n 'Ú': 'U',\n 'Û': 'U',\n 'Ü': 'Ue',\n 'Ű': 'U',\n 'Ý': 'Y',\n 'Þ': 'TH',\n 'ß': 'ss',\n 'à': 'a',\n 'á': 'a',\n 'â': 'a',\n 'ã': 'a',\n 'ä': 'ae',\n 'å': 'a',\n 'æ': 'ae',\n 'ç': 'c',\n 'è': 'e',\n 'é': 'e',\n 'ê': 'e',\n 'ë': 'e',\n 'ì': 'i',\n 'í': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ð': 'd',\n 'ñ': 'n',\n 'ò': 'o',\n 'ó': 'o',\n 'ô': 'o',\n 'õ': 'o',\n 'ö': 'oe',\n 'ő': 'o',\n 'ø': 'o',\n 'ù': 'u',\n 'ú': 'u',\n 'û': 'u',\n 'ü': 'ue',\n 'ű': 'u',\n 'ý': 'y',\n 'þ': 'th',\n 'ÿ': 'y',\n 'ẞ': 'SS',\n\n // language specific\n\n // Arabic\n 'ا': 'a',\n 'أ': 'a',\n 'إ': 'i',\n 'آ': 'aa',\n 'ؤ': 'u',\n 'ئ': 'e',\n 'ء': 'a',\n 'ب': 'b',\n 'ت': 't',\n 'ث': 'th',\n 'ج': 'j',\n 'ح': 'h',\n 'خ': 'kh',\n 'د': 'd',\n 'ذ': 'th',\n 'ر': 'r',\n 'ز': 'z',\n 'س': 's',\n 'ش': 'sh',\n 'ص': 's',\n 'ض': 'dh',\n 'ط': 't',\n 'ظ': 'z',\n 'ع': 'a',\n 'غ': 'gh',\n 'ف': 'f',\n 'ق': 'q',\n 'ك': 'k',\n 'ل': 'l',\n 'م': 'm',\n 'ن': 'n',\n 'ه': 'h',\n 'و': 'w',\n 'ي': 'y',\n 'ى': 'a',\n 'ة': 'h',\n 'ﻻ': 'la',\n 'ﻷ': 'laa',\n 'ﻹ': 'lai',\n 'ﻵ': 'laa',\n\n // Persian additional characters than Arabic\n 'گ': 'g',\n 'چ': 'ch',\n 'پ': 'p',\n 'ژ': 'zh',\n 'ک': 'k',\n 'ی': 'y',\n\n // Arabic diactrics\n 'َ': 'a',\n 'ً': 'an',\n 'ِ': 'e',\n 'ٍ': 'en',\n 'ُ': 'u',\n 'ٌ': 'on',\n 'ْ': '',\n\n // Arabic numbers\n '٠': '0',\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n\n // Persian numbers\n '۰': '0',\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n\n // Burmese consonants\n 'က': 'k',\n 'ခ': 'kh',\n 'ဂ': 'g',\n 'ဃ': 'ga',\n 'င': 'ng',\n 'စ': 's',\n 'ဆ': 'sa',\n 'ဇ': 'z',\n 'စျ': 'za',\n 'ည': 'ny',\n 'ဋ': 't',\n 'ဌ': 'ta',\n 'ဍ': 'd',\n 'ဎ': 'da',\n 'ဏ': 'na',\n 'တ': 't',\n 'ထ': 'ta',\n 'ဒ': 'd',\n 'ဓ': 'da',\n 'န': 'n',\n 'ပ': 'p',\n 'ဖ': 'pa',\n 'ဗ': 'b',\n 'ဘ': 'ba',\n 'မ': 'm',\n 'ယ': 'y',\n 'ရ': 'ya',\n 'လ': 'l',\n 'ဝ': 'w',\n 'သ': 'th',\n 'ဟ': 'h',\n 'ဠ': 'la',\n 'အ': 'a',\n // consonant character combos\n 'ြ': 'y',\n 'ျ': 'ya',\n 'ွ': 'w',\n 'ြွ': 'yw',\n 'ျွ': 'ywa',\n 'ှ': 'h',\n // independent vowels\n 'ဧ': 'e',\n '၏': '-e',\n 'ဣ': 'i',\n 'ဤ': '-i',\n 'ဉ': 'u',\n 'ဦ': '-u',\n 'ဩ': 'aw',\n 'သြော': 'aw',\n 'ဪ': 'aw',\n // numbers\n '၀': '0',\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n // virama and tone marks which are silent in transliteration\n '္': '',\n '့': '',\n 'း': '',\n\n // Czech\n 'č': 'c',\n 'ď': 'd',\n 'ě': 'e',\n 'ň': 'n',\n 'ř': 'r',\n 'š': 's',\n 'ť': 't',\n 'ů': 'u',\n 'ž': 'z',\n 'Č': 'C',\n 'Ď': 'D',\n 'Ě': 'E',\n 'Ň': 'N',\n 'Ř': 'R',\n 'Š': 'S',\n 'Ť': 'T',\n 'Ů': 'U',\n 'Ž': 'Z',\n\n // Dhivehi\n 'ހ': 'h',\n 'ށ': 'sh',\n 'ނ': 'n',\n 'ރ': 'r',\n 'ބ': 'b',\n 'ޅ': 'lh',\n 'ކ': 'k',\n 'އ': 'a',\n 'ވ': 'v',\n 'މ': 'm',\n 'ފ': 'f',\n 'ދ': 'dh',\n 'ތ': 'th',\n 'ލ': 'l',\n 'ގ': 'g',\n 'ޏ': 'gn',\n 'ސ': 's',\n 'ޑ': 'd',\n 'ޒ': 'z',\n 'ޓ': 't',\n 'ޔ': 'y',\n 'ޕ': 'p',\n 'ޖ': 'j',\n 'ޗ': 'ch',\n 'ޘ': 'tt',\n 'ޙ': 'hh',\n 'ޚ': 'kh',\n 'ޛ': 'th',\n 'ޜ': 'z',\n 'ޝ': 'sh',\n 'ޞ': 's',\n 'ޟ': 'd',\n 'ޠ': 't',\n 'ޡ': 'z',\n 'ޢ': 'a',\n 'ޣ': 'gh',\n 'ޤ': 'q',\n 'ޥ': 'w',\n 'ަ': 'a',\n 'ާ': 'aa',\n 'ި': 'i',\n 'ީ': 'ee',\n 'ު': 'u',\n 'ޫ': 'oo',\n 'ެ': 'e',\n 'ޭ': 'ey',\n 'ޮ': 'o',\n 'ޯ': 'oa',\n 'ް': '',\n\n // Georgian https://en.wikipedia.org/wiki/Romanization_of_Georgian\n // National system (2002)\n 'ა': 'a',\n 'ბ': 'b',\n 'გ': 'g',\n 'დ': 'd',\n 'ე': 'e',\n 'ვ': 'v',\n 'ზ': 'z',\n 'თ': 't',\n 'ი': 'i',\n 'კ': 'k',\n 'ლ': 'l',\n 'მ': 'm',\n 'ნ': 'n',\n 'ო': 'o',\n 'პ': 'p',\n 'ჟ': 'zh',\n 'რ': 'r',\n 'ს': 's',\n 'ტ': 't',\n 'უ': 'u',\n 'ფ': 'p',\n 'ქ': 'k',\n 'ღ': 'gh',\n 'ყ': 'q',\n 'შ': 'sh',\n 'ჩ': 'ch',\n 'ც': 'ts',\n 'ძ': 'dz',\n 'წ': 'ts',\n 'ჭ': 'ch',\n 'ხ': 'kh',\n 'ჯ': 'j',\n 'ჰ': 'h',\n\n // Greek\n 'α': 'a',\n 'β': 'v',\n 'γ': 'g',\n 'δ': 'd',\n 'ε': 'e',\n 'ζ': 'z',\n 'η': 'i',\n 'θ': 'th',\n 'ι': 'i',\n 'κ': 'k',\n 'λ': 'l',\n 'μ': 'm',\n 'ν': 'n',\n 'ξ': 'ks',\n 'ο': 'o',\n 'π': 'p',\n 'ρ': 'r',\n 'σ': 's',\n 'τ': 't',\n 'υ': 'y',\n 'φ': 'f',\n 'χ': 'x',\n 'ψ': 'ps',\n 'ω': 'o',\n 'ά': 'a',\n 'έ': 'e',\n 'ί': 'i',\n 'ό': 'o',\n 'ύ': 'y',\n 'ή': 'i',\n 'ώ': 'o',\n 'ς': 's',\n 'ϊ': 'i',\n 'ΰ': 'y',\n 'ϋ': 'y',\n 'ΐ': 'i',\n 'Α': 'A',\n 'Β': 'B',\n 'Γ': 'G',\n 'Δ': 'D',\n 'Ε': 'E',\n 'Ζ': 'Z',\n 'Η': 'I',\n 'Θ': 'TH',\n 'Ι': 'I',\n 'Κ': 'K',\n 'Λ': 'L',\n 'Μ': 'M',\n 'Ν': 'N',\n 'Ξ': 'KS',\n 'Ο': 'O',\n 'Π': 'P',\n 'Ρ': 'R',\n 'Σ': 'S',\n 'Τ': 'T',\n 'Υ': 'Y',\n 'Φ': 'F',\n 'Χ': 'X',\n 'Ψ': 'PS',\n 'Ω': 'O',\n 'Ά': 'A',\n 'Έ': 'E',\n 'Ί': 'I',\n 'Ό': 'O',\n 'Ύ': 'Y',\n 'Ή': 'I',\n 'Ώ': 'O',\n 'Ϊ': 'I',\n 'Ϋ': 'Y',\n\n // Latvian\n 'ā': 'a',\n // 'č': 'c', // duplicate\n 'ē': 'e',\n 'ģ': 'g',\n 'ī': 'i',\n 'ķ': 'k',\n 'ļ': 'l',\n 'ņ': 'n',\n // 'š': 's', // duplicate\n 'ū': 'u',\n // 'ž': 'z', // duplicate\n 'Ā': 'A',\n // 'Č': 'C', // duplicate\n 'Ē': 'E',\n 'Ģ': 'G',\n 'Ī': 'I',\n 'Ķ': 'k',\n 'Ļ': 'L',\n 'Ņ': 'N',\n // 'Š': 'S', // duplicate\n 'Ū': 'U',\n // 'Ž': 'Z', // duplicate\n\n // Macedonian\n 'Ќ': 'Kj',\n 'ќ': 'kj',\n 'Љ': 'Lj',\n 'љ': 'lj',\n 'Њ': 'Nj',\n 'њ': 'nj',\n 'Тс': 'Ts',\n 'тс': 'ts',\n\n // Polish\n 'ą': 'a',\n 'ć': 'c',\n 'ę': 'e',\n 'ł': 'l',\n 'ń': 'n',\n // 'ó': 'o', // duplicate\n 'ś': 's',\n 'ź': 'z',\n 'ż': 'z',\n 'Ą': 'A',\n 'Ć': 'C',\n 'Ę': 'E',\n 'Ł': 'L',\n 'Ń': 'N',\n 'Ś': 'S',\n 'Ź': 'Z',\n 'Ż': 'Z',\n\n // Ukranian\n 'Є': 'Ye',\n 'І': 'I',\n 'Ї': 'Yi',\n 'Ґ': 'G',\n 'є': 'ye',\n 'і': 'i',\n 'ї': 'yi',\n 'ґ': 'g',\n\n // Romanian\n 'ă': 'a',\n 'Ă': 'A',\n 'ș': 's',\n 'Ș': 'S',\n // 'ş': 's', // duplicate\n // 'Ş': 'S', // duplicate\n 'ț': 't',\n 'Ț': 'T',\n 'ţ': 't',\n 'Ţ': 'T',\n\n // Russian https://en.wikipedia.org/wiki/Romanization_of_Russian\n // ICAO\n\n 'а': 'a',\n 'б': 'b',\n 'в': 'v',\n 'г': 'g',\n 'д': 'd',\n 'е': 'e',\n 'ё': 'yo',\n 'ж': 'zh',\n 'з': 'z',\n 'и': 'i',\n 'й': 'i',\n 'к': 'k',\n 'л': 'l',\n 'м': 'm',\n 'н': 'n',\n 'о': 'o',\n 'п': 'p',\n 'р': 'r',\n 'с': 's',\n 'т': 't',\n 'у': 'u',\n 'ф': 'f',\n 'х': 'kh',\n 'ц': 'c',\n 'ч': 'ch',\n 'ш': 'sh',\n 'щ': 'sh',\n 'ъ': '',\n 'ы': 'y',\n 'ь': '',\n 'э': 'e',\n 'ю': 'yu',\n 'я': 'ya',\n 'А': 'A',\n 'Б': 'B',\n 'В': 'V',\n 'Г': 'G',\n 'Д': 'D',\n 'Е': 'E',\n 'Ё': 'Yo',\n 'Ж': 'Zh',\n 'З': 'Z',\n 'И': 'I',\n 'Й': 'I',\n 'К': 'K',\n 'Л': 'L',\n 'М': 'M',\n 'Н': 'N',\n 'О': 'O',\n 'П': 'P',\n 'Р': 'R',\n 'С': 'S',\n 'Т': 'T',\n 'У': 'U',\n 'Ф': 'F',\n 'Х': 'Kh',\n 'Ц': 'C',\n 'Ч': 'Ch',\n 'Ш': 'Sh',\n 'Щ': 'Sh',\n 'Ъ': '',\n 'Ы': 'Y',\n 'Ь': '',\n 'Э': 'E',\n 'Ю': 'Yu',\n 'Я': 'Ya',\n\n // Serbian\n 'ђ': 'dj',\n 'ј': 'j',\n // 'љ': 'lj', // duplicate\n // 'њ': 'nj', // duplicate\n 'ћ': 'c',\n 'џ': 'dz',\n 'Ђ': 'Dj',\n 'Ј': 'j',\n // 'Љ': 'Lj', // duplicate\n // 'Њ': 'Nj', // duplicate\n 'Ћ': 'C',\n 'Џ': 'Dz',\n\n // Slovak\n 'ľ': 'l',\n 'ĺ': 'l',\n 'ŕ': 'r',\n 'Ľ': 'L',\n 'Ĺ': 'L',\n 'Ŕ': 'R',\n\n // Turkish\n 'ş': 's',\n 'Ş': 'S',\n 'ı': 'i',\n 'İ': 'I',\n // 'ç': 'c', // duplicate\n // 'Ç': 'C', // duplicate\n // 'ü': 'u', // duplicate, see langCharMap\n // 'Ü': 'U', // duplicate, see langCharMap\n // 'ö': 'o', // duplicate, see langCharMap\n // 'Ö': 'O', // duplicate, see langCharMap\n 'ğ': 'g',\n 'Ğ': 'G',\n\n // Vietnamese\n 'ả': 'a',\n 'Ả': 'A',\n 'ẳ': 'a',\n 'Ẳ': 'A',\n 'ẩ': 'a',\n 'Ẩ': 'A',\n 'đ': 'd',\n 'Đ': 'D',\n 'ẹ': 'e',\n 'Ẹ': 'E',\n 'ẽ': 'e',\n 'Ẽ': 'E',\n 'ẻ': 'e',\n 'Ẻ': 'E',\n 'ế': 'e',\n 'Ế': 'E',\n 'ề': 'e',\n 'Ề': 'E',\n 'ệ': 'e',\n 'Ệ': 'E',\n 'ễ': 'e',\n 'Ễ': 'E',\n 'ể': 'e',\n 'Ể': 'E',\n 'ỏ': 'o',\n 'ọ': 'o',\n 'Ọ': 'o',\n 'ố': 'o',\n 'Ố': 'O',\n 'ồ': 'o',\n 'Ồ': 'O',\n 'ổ': 'o',\n 'Ổ': 'O',\n 'ộ': 'o',\n 'Ộ': 'O',\n 'ỗ': 'o',\n 'Ỗ': 'O',\n 'ơ': 'o',\n 'Ơ': 'O',\n 'ớ': 'o',\n 'Ớ': 'O',\n 'ờ': 'o',\n 'Ờ': 'O',\n 'ợ': 'o',\n 'Ợ': 'O',\n 'ỡ': 'o',\n 'Ỡ': 'O',\n 'Ở': 'o',\n 'ở': 'o',\n 'ị': 'i',\n 'Ị': 'I',\n 'ĩ': 'i',\n 'Ĩ': 'I',\n 'ỉ': 'i',\n 'Ỉ': 'i',\n 'ủ': 'u',\n 'Ủ': 'U',\n 'ụ': 'u',\n 'Ụ': 'U',\n 'ũ': 'u',\n 'Ũ': 'U',\n 'ư': 'u',\n 'Ư': 'U',\n 'ứ': 'u',\n 'Ứ': 'U',\n 'ừ': 'u',\n 'Ừ': 'U',\n 'ự': 'u',\n 'Ự': 'U',\n 'ữ': 'u',\n 'Ữ': 'U',\n 'ử': 'u',\n 'Ử': 'ư',\n 'ỷ': 'y',\n 'Ỷ': 'y',\n 'ỳ': 'y',\n 'Ỳ': 'Y',\n 'ỵ': 'y',\n 'Ỵ': 'Y',\n 'ỹ': 'y',\n 'Ỹ': 'Y',\n 'ạ': 'a',\n 'Ạ': 'A',\n 'ấ': 'a',\n 'Ấ': 'A',\n 'ầ': 'a',\n 'Ầ': 'A',\n 'ậ': 'a',\n 'Ậ': 'A',\n 'ẫ': 'a',\n 'Ẫ': 'A',\n // 'ă': 'a', // duplicate\n // 'Ă': 'A', // duplicate\n 'ắ': 'a',\n 'Ắ': 'A',\n 'ằ': 'a',\n 'Ằ': 'A',\n 'ặ': 'a',\n 'Ặ': 'A',\n 'ẵ': 'a',\n 'Ẵ': 'A',\n \"⓪\": \"0\",\n \"①\": \"1\",\n \"②\": \"2\",\n \"③\": \"3\",\n \"④\": \"4\",\n \"⑤\": \"5\",\n \"⑥\": \"6\",\n \"⑦\": \"7\",\n \"⑧\": \"8\",\n \"⑨\": \"9\",\n \"⑩\": \"10\",\n \"⑪\": \"11\",\n \"⑫\": \"12\",\n \"⑬\": \"13\",\n \"⑭\": \"14\",\n \"⑮\": \"15\",\n \"⑯\": \"16\",\n \"⑰\": \"17\",\n \"⑱\": \"18\",\n \"⑲\": \"18\",\n \"⑳\": \"18\",\n\n \"⓵\": \"1\",\n \"⓶\": \"2\",\n \"⓷\": \"3\",\n \"⓸\": \"4\",\n \"⓹\": \"5\",\n \"⓺\": \"6\",\n \"⓻\": \"7\",\n \"⓼\": \"8\",\n \"⓽\": \"9\",\n \"⓾\": \"10\",\n\n \"⓿\": \"0\",\n \"⓫\": \"11\",\n \"⓬\": \"12\",\n \"⓭\": \"13\",\n \"⓮\": \"14\",\n \"⓯\": \"15\",\n \"⓰\": \"16\",\n \"⓱\": \"17\",\n \"⓲\": \"18\",\n \"⓳\": \"19\",\n \"⓴\": \"20\",\n\n \"Ⓐ\": \"A\",\n \"Ⓑ\": \"B\",\n \"Ⓒ\": \"C\",\n \"Ⓓ\": \"D\",\n \"Ⓔ\": \"E\",\n \"Ⓕ\": \"F\",\n \"Ⓖ\": \"G\",\n \"Ⓗ\": \"H\",\n \"Ⓘ\": \"I\",\n \"Ⓙ\": \"J\",\n \"Ⓚ\": \"K\",\n \"Ⓛ\": \"L\",\n \"Ⓜ\": \"M\",\n \"Ⓝ\": \"N\",\n \"Ⓞ\": \"O\",\n \"Ⓟ\": \"P\",\n \"Ⓠ\": \"Q\",\n \"Ⓡ\": \"R\",\n \"Ⓢ\": \"S\",\n \"Ⓣ\": \"T\",\n \"Ⓤ\": \"U\",\n \"Ⓥ\": \"V\",\n \"Ⓦ\": \"W\",\n \"Ⓧ\": \"X\",\n \"Ⓨ\": \"Y\",\n \"Ⓩ\": \"Z\",\n\n \"ⓐ\": \"a\",\n \"ⓑ\": \"b\",\n \"ⓒ\": \"c\",\n \"ⓓ\": \"d\",\n \"ⓔ\": \"e\",\n \"ⓕ\": \"f\",\n \"ⓖ\": \"g\",\n \"ⓗ\": \"h\",\n \"ⓘ\": \"i\",\n \"ⓙ\": \"j\",\n \"ⓚ\": \"k\",\n \"ⓛ\": \"l\",\n \"ⓜ\": \"m\",\n \"ⓝ\": \"n\",\n \"ⓞ\": \"o\",\n \"ⓟ\": \"p\",\n \"ⓠ\": \"q\",\n \"ⓡ\": \"r\",\n \"ⓢ\": \"s\",\n \"ⓣ\": \"t\",\n \"ⓤ\": \"u\",\n \"ⓦ\": \"v\",\n \"ⓥ\": \"w\",\n \"ⓧ\": \"x\",\n \"ⓨ\": \"y\",\n \"ⓩ\": \"z\",\n\n // symbols\n '“': '\"',\n '”': '\"',\n '‘': \"'\",\n '’': \"'\",\n '∂': 'd',\n 'ƒ': 'f',\n '™': '(TM)',\n '©': '(C)',\n 'œ': 'oe',\n 'Œ': 'OE',\n '®': '(R)',\n '†': '+',\n '℠': '(SM)',\n '…': '...',\n '˚': 'o',\n 'º': 'o',\n 'ª': 'a',\n '•': '*',\n '၊': ',',\n '။': '.',\n\n // currency\n '$': 'USD',\n '€': 'EUR',\n '₢': 'BRN',\n '₣': 'FRF',\n '£': 'GBP',\n '₤': 'ITL',\n '₦': 'NGN',\n '₧': 'ESP',\n '₩': 'KRW',\n '₪': 'ILS',\n '₫': 'VND',\n '₭': 'LAK',\n '₮': 'MNT',\n '₯': 'GRD',\n '₱': 'ARS',\n '₲': 'PYG',\n '₳': 'ARA',\n '₴': 'UAH',\n '₵': 'GHS',\n '¢': 'cent',\n '¥': 'CNY',\n '元': 'CNY',\n '円': 'YEN',\n '﷼': 'IRR',\n '₠': 'EWE',\n '฿': 'THB',\n '₨': 'INR',\n '₹': 'INR',\n '₰': 'PF',\n '₺': 'TRY',\n '؋': 'AFN',\n '₼': 'AZN',\n 'лв': 'BGN',\n '៛': 'KHR',\n '₡': 'CRC',\n '₸': 'KZT',\n 'ден': 'MKD',\n 'zł': 'PLN',\n '₽': 'RUB',\n '₾': 'GEL'\n\n };\n\n /**\n * special look ahead character array\n * These characters form with consonants to become 'single'/consonant combo\n * @type [Array]\n */\n var lookAheadCharArray = [\n // burmese\n '်',\n\n // Dhivehi\n 'ް'\n ];\n\n /**\n * diatricMap for languages where transliteration changes entirely as more diatrics are added\n * @type {Object}\n */\n var diatricMap = {\n // Burmese\n // dependent vowels\n 'ာ': 'a',\n 'ါ': 'a',\n 'ေ': 'e',\n 'ဲ': 'e',\n 'ိ': 'i',\n 'ီ': 'i',\n 'ို': 'o',\n 'ု': 'u',\n 'ူ': 'u',\n 'ေါင်': 'aung',\n 'ော': 'aw',\n 'ော်': 'aw',\n 'ေါ': 'aw',\n 'ေါ်': 'aw',\n '်': '်', // this is special case but the character will be converted to latin in the code\n 'က်': 'et',\n 'ိုက်': 'aik',\n 'ောက်': 'auk',\n 'င်': 'in',\n 'ိုင်': 'aing',\n 'ောင်': 'aung',\n 'စ်': 'it',\n 'ည်': 'i',\n 'တ်': 'at',\n 'ိတ်': 'eik',\n 'ုတ်': 'ok',\n 'ွတ်': 'ut',\n 'ေတ်': 'it',\n 'ဒ်': 'd',\n 'ိုဒ်': 'ok',\n 'ုဒ်': 'ait',\n 'န်': 'an',\n 'ာန်': 'an',\n 'ိန်': 'ein',\n 'ုန်': 'on',\n 'ွန်': 'un',\n 'ပ်': 'at',\n 'ိပ်': 'eik',\n 'ုပ်': 'ok',\n 'ွပ်': 'ut',\n 'န်ုပ်': 'nub',\n 'မ်': 'an',\n 'ိမ်': 'ein',\n 'ုမ်': 'on',\n 'ွမ်': 'un',\n 'ယ်': 'e',\n 'ိုလ်': 'ol',\n 'ဉ်': 'in',\n 'ံ': 'an',\n 'ိံ': 'ein',\n 'ုံ': 'on',\n\n // Dhivehi\n 'ައް': 'ah',\n 'ަށް': 'ah'\n };\n\n /**\n * langCharMap language specific characters translations\n * @type {Object}\n */\n var langCharMap = {\n 'en': {}, // default language\n\n 'az': { // Azerbaijani\n 'ç': 'c',\n 'ə': 'e',\n 'ğ': 'g',\n 'ı': 'i',\n 'ö': 'o',\n 'ş': 's',\n 'ü': 'u',\n 'Ç': 'C',\n 'Ə': 'E',\n 'Ğ': 'G',\n 'İ': 'I',\n 'Ö': 'O',\n 'Ş': 'S',\n 'Ü': 'U'\n },\n\n 'cs': { // Czech\n 'č': 'c',\n 'ď': 'd',\n 'ě': 'e',\n 'ň': 'n',\n 'ř': 'r',\n 'š': 's',\n 'ť': 't',\n 'ů': 'u',\n 'ž': 'z',\n 'Č': 'C',\n 'Ď': 'D',\n 'Ě': 'E',\n 'Ň': 'N',\n 'Ř': 'R',\n 'Š': 'S',\n 'Ť': 'T',\n 'Ů': 'U',\n 'Ž': 'Z'\n },\n\n 'fi': { // Finnish\n // 'å': 'a', duplicate see charMap/latin\n // 'Å': 'A', duplicate see charMap/latin\n 'ä': 'a', // ok\n 'Ä': 'A', // ok\n 'ö': 'o', // ok\n 'Ö': 'O' // ok\n },\n\n 'hu': { // Hungarian\n 'ä': 'a', // ok\n 'Ä': 'A', // ok\n // 'á': 'a', duplicate see charMap/latin\n // 'Á': 'A', duplicate see charMap/latin\n 'ö': 'o', // ok\n 'Ö': 'O', // ok\n // 'ő': 'o', duplicate see charMap/latin\n // 'Ő': 'O', duplicate see charMap/latin\n 'ü': 'u',\n 'Ü': 'U',\n 'ű': 'u',\n 'Ű': 'U'\n },\n\n 'lt': { // Lithuanian\n 'ą': 'a',\n 'č': 'c',\n 'ę': 'e',\n 'ė': 'e',\n 'į': 'i',\n 'š': 's',\n 'ų': 'u',\n 'ū': 'u',\n 'ž': 'z',\n 'Ą': 'A',\n 'Č': 'C',\n 'Ę': 'E',\n 'Ė': 'E',\n 'Į': 'I',\n 'Š': 'S',\n 'Ų': 'U',\n 'Ū': 'U'\n },\n\n 'lv': { // Latvian\n 'ā': 'a',\n 'č': 'c',\n 'ē': 'e',\n 'ģ': 'g',\n 'ī': 'i',\n 'ķ': 'k',\n 'ļ': 'l',\n 'ņ': 'n',\n 'š': 's',\n 'ū': 'u',\n 'ž': 'z',\n 'Ā': 'A',\n 'Č': 'C',\n 'Ē': 'E',\n 'Ģ': 'G',\n 'Ī': 'i',\n 'Ķ': 'k',\n 'Ļ': 'L',\n 'Ņ': 'N',\n 'Š': 'S',\n 'Ū': 'u',\n 'Ž': 'Z'\n },\n\n 'pl': { // Polish\n 'ą': 'a',\n 'ć': 'c',\n 'ę': 'e',\n 'ł': 'l',\n 'ń': 'n',\n 'ó': 'o',\n 'ś': 's',\n 'ź': 'z',\n 'ż': 'z',\n 'Ą': 'A',\n 'Ć': 'C',\n 'Ę': 'e',\n 'Ł': 'L',\n 'Ń': 'N',\n 'Ó': 'O',\n 'Ś': 'S',\n 'Ź': 'Z',\n 'Ż': 'Z'\n },\n\n 'sv': { // Swedish\n // 'å': 'a', duplicate see charMap/latin\n // 'Å': 'A', duplicate see charMap/latin\n 'ä': 'a', // ok\n 'Ä': 'A', // ok\n 'ö': 'o', // ok\n 'Ö': 'O' // ok\n },\n\n 'sk': { // Slovak\n 'ä': 'a',\n 'Ä': 'A'\n },\n\n 'sr': { // Serbian\n 'љ': 'lj',\n 'њ': 'nj',\n 'Љ': 'Lj',\n 'Њ': 'Nj',\n 'đ': 'dj',\n 'Đ': 'Dj'\n },\n\n 'tr': { // Turkish\n 'Ü': 'U',\n 'Ö': 'O',\n 'ü': 'u',\n 'ö': 'o'\n }\n };\n\n /**\n * symbolMap language specific symbol translations\n * translations must be transliterated already\n * @type {Object}\n */\n var symbolMap = {\n 'ar': {\n '∆': 'delta',\n '∞': 'la-nihaya',\n '♥': 'hob',\n '&': 'wa',\n '|': 'aw',\n '<': 'aqal-men',\n '>': 'akbar-men',\n '∑': 'majmou',\n '¤': 'omla'\n },\n\n 'az': {},\n\n 'ca': {\n '∆': 'delta',\n '∞': 'infinit',\n '♥': 'amor',\n '&': 'i',\n '|': 'o',\n '<': 'menys que',\n '>': 'mes que',\n '∑': 'suma dels',\n '¤': 'moneda'\n },\n\n 'cs': {\n '∆': 'delta',\n '∞': 'nekonecno',\n '♥': 'laska',\n '&': 'a',\n '|': 'nebo',\n '<': 'mensi nez',\n '>': 'vetsi nez',\n '∑': 'soucet',\n '¤': 'mena'\n },\n\n 'de': {\n '∆': 'delta',\n '∞': 'unendlich',\n '♥': 'Liebe',\n '&': 'und',\n '|': 'oder',\n '<': 'kleiner als',\n '>': 'groesser als',\n '∑': 'Summe von',\n '¤': 'Waehrung'\n },\n\n 'dv': {\n '∆': 'delta',\n '∞': 'kolunulaa',\n '♥': 'loabi',\n '&': 'aai',\n '|': 'noonee',\n '<': 'ah vure kuda',\n '>': 'ah vure bodu',\n '∑': 'jumula',\n '¤': 'faisaa'\n },\n\n 'en': {\n '∆': 'delta',\n '∞': 'infinity',\n '♥': 'love',\n '&': 'and',\n '|': 'or',\n '<': 'less than',\n '>': 'greater than',\n '∑': 'sum',\n '¤': 'currency'\n },\n\n 'es': {\n '∆': 'delta',\n '∞': 'infinito',\n '♥': 'amor',\n '&': 'y',\n '|': 'u',\n '<': 'menos que',\n '>': 'mas que',\n '∑': 'suma de los',\n '¤': 'moneda'\n },\n\n 'fa': {\n '∆': 'delta',\n '∞': 'bi-nahayat',\n '♥': 'eshgh',\n '&': 'va',\n '|': 'ya',\n '<': 'kamtar-az',\n '>': 'bishtar-az',\n '∑': 'majmooe',\n '¤': 'vahed'\n },\n\n 'fi': {\n '∆': 'delta',\n '∞': 'aarettomyys',\n '♥': 'rakkaus',\n '&': 'ja',\n '|': 'tai',\n '<': 'pienempi kuin',\n '>': 'suurempi kuin',\n '∑': 'summa',\n '¤': 'valuutta'\n },\n\n 'fr': {\n '∆': 'delta',\n '∞': 'infiniment',\n '♥': 'Amour',\n '&': 'et',\n '|': 'ou',\n '<': 'moins que',\n '>': 'superieure a',\n '∑': 'somme des',\n '¤': 'monnaie'\n },\n\n 'ge': {\n '∆': 'delta',\n '∞': 'usasruloba',\n '♥': 'siqvaruli',\n '&': 'da',\n '|': 'an',\n '<': 'naklebi',\n '>': 'meti',\n '∑': 'jami',\n '¤': 'valuta'\n },\n\n 'gr': {},\n\n 'hu': {\n '∆': 'delta',\n '∞': 'vegtelen',\n '♥': 'szerelem',\n '&': 'es',\n '|': 'vagy',\n '<': 'kisebb mint',\n '>': 'nagyobb mint',\n '∑': 'szumma',\n '¤': 'penznem'\n },\n\n 'it': {\n '∆': 'delta',\n '∞': 'infinito',\n '♥': 'amore',\n '&': 'e',\n '|': 'o',\n '<': 'minore di',\n '>': 'maggiore di',\n '∑': 'somma',\n '¤': 'moneta'\n },\n\n 'lt': {\n '∆': 'delta',\n '∞': 'begalybe',\n '♥': 'meile',\n '&': 'ir',\n '|': 'ar',\n '<': 'maziau nei',\n '>': 'daugiau nei',\n '∑': 'suma',\n '¤': 'valiuta'\n },\n\n 'lv': {\n '∆': 'delta',\n '∞': 'bezgaliba',\n '♥': 'milestiba',\n '&': 'un',\n '|': 'vai',\n '<': 'mazak neka',\n '>': 'lielaks neka',\n '∑': 'summa',\n '¤': 'valuta'\n },\n\n 'my': {\n '∆': 'kwahkhyaet',\n '∞': 'asaonasme',\n '♥': 'akhyait',\n '&': 'nhin',\n '|': 'tho',\n '<': 'ngethaw',\n '>': 'kyithaw',\n '∑': 'paungld',\n '¤': 'ngwekye'\n },\n\n 'mk': {},\n\n 'nl': {\n '∆': 'delta',\n '∞': 'oneindig',\n '♥': 'liefde',\n '&': 'en',\n '|': 'of',\n '<': 'kleiner dan',\n '>': 'groter dan',\n '∑': 'som',\n '¤': 'valuta'\n },\n\n 'pl': {\n '∆': 'delta',\n '∞': 'nieskonczonosc',\n '♥': 'milosc',\n '&': 'i',\n '|': 'lub',\n '<': 'mniejsze niz',\n '>': 'wieksze niz',\n '∑': 'suma',\n '¤': 'waluta'\n },\n\n 'pt': {\n '∆': 'delta',\n '∞': 'infinito',\n '♥': 'amor',\n '&': 'e',\n '|': 'ou',\n '<': 'menor que',\n '>': 'maior que',\n '∑': 'soma',\n '¤': 'moeda'\n },\n\n 'ro': {\n '∆': 'delta',\n '∞': 'infinit',\n '♥': 'dragoste',\n '&': 'si',\n '|': 'sau',\n '<': 'mai mic ca',\n '>': 'mai mare ca',\n '∑': 'suma',\n '¤': 'valuta'\n },\n\n 'ru': {\n '∆': 'delta',\n '∞': 'beskonechno',\n '♥': 'lubov',\n '&': 'i',\n '|': 'ili',\n '<': 'menshe',\n '>': 'bolshe',\n '∑': 'summa',\n '¤': 'valjuta'\n },\n\n 'sk': {\n '∆': 'delta',\n '∞': 'nekonecno',\n '♥': 'laska',\n '&': 'a',\n '|': 'alebo',\n '<': 'menej ako',\n '>': 'viac ako',\n '∑': 'sucet',\n '¤': 'mena'\n },\n\n 'sr': {},\n\n 'tr': {\n '∆': 'delta',\n '∞': 'sonsuzluk',\n '♥': 'ask',\n '&': 've',\n '|': 'veya',\n '<': 'kucuktur',\n '>': 'buyuktur',\n '∑': 'toplam',\n '¤': 'para birimi'\n },\n\n 'uk': {\n '∆': 'delta',\n '∞': 'bezkinechnist',\n '♥': 'lubov',\n '&': 'i',\n '|': 'abo',\n '<': 'menshe',\n '>': 'bilshe',\n '∑': 'suma',\n '¤': 'valjuta'\n },\n\n 'vn': {\n '∆': 'delta',\n '∞': 'vo cuc',\n '♥': 'yeu',\n '&': 'va',\n '|': 'hoac',\n '<': 'nho hon',\n '>': 'lon hon',\n '∑': 'tong',\n '¤': 'tien te'\n }\n };\n\n var uricChars = [';', '?', ':', '@', '&', '=', '+', '$', ',', '/'].join('');\n\n var uricNoSlashChars = [';', '?', ':', '@', '&', '=', '+', '$', ','].join('');\n\n var markChars = ['.', '!', '~', '*', \"'\", '(', ')'].join('');\n\n /**\n * getSlug\n * @param {string} input input string\n * @param {object|string} opts config object or separator string/char\n * @api public\n * @return {string} sluggified string\n */\n var getSlug = function getSlug(input, opts) {\n var separator = '-';\n var result = '';\n var diatricString = '';\n var convertSymbols = true;\n var customReplacements = {};\n var maintainCase;\n var titleCase;\n var truncate;\n var uricFlag;\n var uricNoSlashFlag;\n var markFlag;\n var symbol;\n var langChar;\n var lucky;\n var i;\n var ch;\n var l;\n var lastCharWasSymbol;\n var lastCharWasDiatric;\n var allowedChars = '';\n\n if (typeof input !== 'string') {\n return '';\n }\n\n if (typeof opts === 'string') {\n separator = opts;\n }\n\n symbol = symbolMap.en;\n langChar = langCharMap.en;\n\n if (typeof opts === 'object') {\n maintainCase = opts.maintainCase || false;\n customReplacements = (opts.custom && typeof opts.custom === 'object') ? opts.custom : customReplacements;\n truncate = (+opts.truncate > 1 && opts.truncate) || false;\n uricFlag = opts.uric || false;\n uricNoSlashFlag = opts.uricNoSlash || false;\n markFlag = opts.mark || false;\n convertSymbols = (opts.symbols === false || opts.lang === false) ? false : true;\n separator = opts.separator || separator;\n\n if (uricFlag) {\n allowedChars += uricChars;\n }\n\n if (uricNoSlashFlag) {\n allowedChars += uricNoSlashChars;\n }\n\n if (markFlag) {\n allowedChars += markChars;\n }\n\n symbol = (opts.lang && symbolMap[opts.lang] && convertSymbols) ?\n symbolMap[opts.lang] : (convertSymbols ? symbolMap.en : {});\n\n langChar = (opts.lang && langCharMap[opts.lang]) ?\n langCharMap[opts.lang] :\n opts.lang === false || opts.lang === true ? {} : langCharMap.en;\n\n // if titleCase config is an Array, rewrite to object format\n if (opts.titleCase && typeof opts.titleCase.length === 'number' && Array.prototype.toString.call(opts.titleCase)) {\n opts.titleCase.forEach(function (v) {\n customReplacements[v + ''] = v + '';\n });\n\n titleCase = true;\n } else {\n titleCase = !!opts.titleCase;\n }\n\n // if custom config is an Array, rewrite to object format\n if (opts.custom && typeof opts.custom.length === 'number' && Array.prototype.toString.call(opts.custom)) {\n opts.custom.forEach(function (v) {\n customReplacements[v + ''] = v + '';\n });\n }\n\n // custom replacements\n Object.keys(customReplacements).forEach(function (v) {\n var r;\n\n if (v.length > 1) {\n r = new RegExp('\\\\b' + escapeChars(v) + '\\\\b', 'gi');\n } else {\n r = new RegExp(escapeChars(v), 'gi');\n }\n\n input = input.replace(r, customReplacements[v]);\n });\n\n // add all custom replacement to allowed charlist\n for (ch in customReplacements) {\n allowedChars += ch;\n }\n }\n\n allowedChars += separator;\n\n // escape all necessary chars\n allowedChars = escapeChars(allowedChars);\n\n // trim whitespaces\n input = input.replace(/(^\\s+|\\s+$)/g, '');\n\n lastCharWasSymbol = false;\n lastCharWasDiatric = false;\n\n for (i = 0, l = input.length; i < l; i++) {\n ch = input[i];\n\n if (isReplacedCustomChar(ch, customReplacements)) {\n // don't convert a already converted char\n lastCharWasSymbol = false;\n } else if (langChar[ch]) {\n // process language specific diactrics chars conversion\n ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? ' ' + langChar[ch] : langChar[ch];\n\n lastCharWasSymbol = false;\n } else if (ch in charMap) {\n // the transliteration changes entirely when some special characters are added\n if (i + 1 < l && lookAheadCharArray.indexOf(input[i + 1]) >= 0) {\n diatricString += ch;\n ch = '';\n } else if (lastCharWasDiatric === true) {\n ch = diatricMap[diatricString] + charMap[ch];\n diatricString = '';\n } else {\n // process diactrics chars\n ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? ' ' + charMap[ch] : charMap[ch];\n }\n\n lastCharWasSymbol = false;\n lastCharWasDiatric = false;\n } else if (ch in diatricMap) {\n diatricString += ch;\n ch = '';\n // end of string, put the whole meaningful word\n if (i === l - 1) {\n ch = diatricMap[diatricString];\n }\n lastCharWasDiatric = true;\n } else if (\n // process symbol chars\n symbol[ch] && !(uricFlag && uricChars\n .indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars\n // .indexOf(ch) !== -1) && !(markFlag && markChars\n .indexOf(ch) !== -1)) {\n ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch];\n ch += input[i + 1] !== void 0 && input[i + 1].match(/[A-Za-z0-9]/) ? separator : '';\n\n lastCharWasSymbol = true;\n } else {\n if (lastCharWasDiatric === true) {\n ch = diatricMap[diatricString] + ch;\n diatricString = '';\n lastCharWasDiatric = false;\n } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) {\n // process latin chars\n ch = ' ' + ch;\n }\n lastCharWasSymbol = false;\n }\n\n // add allowed chars\n result += ch.replace(new RegExp('[^\\\\w\\\\s' + allowedChars + '_-]', 'g'), separator);\n }\n\n if (titleCase) {\n result = result.replace(/(\\w)(\\S*)/g, function (_, i, r) {\n var j = i.toUpperCase() + (r !== null ? r : '');\n return (Object.keys(customReplacements).indexOf(j.toLowerCase()) < 0) ? j : j.toLowerCase();\n });\n }\n\n // eliminate duplicate separators\n // add separator\n // trim separators from start and end\n result = result.replace(/\\s+/g, separator)\n .replace(new RegExp('\\\\' + separator + '+', 'g'), separator)\n .replace(new RegExp('(^\\\\' + separator + '+|\\\\' + separator + '+$)', 'g'), '');\n\n if (truncate && result.length > truncate) {\n lucky = result.charAt(truncate) === separator;\n result = result.slice(0, truncate);\n\n if (!lucky) {\n result = result.slice(0, result.lastIndexOf(separator));\n }\n }\n\n if (!maintainCase && !titleCase) {\n result = result.toLowerCase();\n }\n\n return result;\n };\n\n /**\n * createSlug curried(opts)(input)\n * @param {object|string} opts config object or input string\n * @return {Function} function getSlugWithConfig()\n **/\n var createSlug = function createSlug(opts) {\n\n /**\n * getSlugWithConfig\n * @param {string} input string\n * @return {string} slug string\n */\n return function getSlugWithConfig(input) {\n return getSlug(input, opts);\n };\n };\n\n /**\n * escape Chars\n * @param {string} input string\n */\n var escapeChars = function escapeChars(input) {\n return input.replace(/[-\\\\^$*+?.()|[\\]{}\\/]/g, '\\\\$&');\n };\n\n /**\n * check if the char is an already converted char from custom list\n * @param {char} ch character to check\n * @param {object} customReplacements custom translation map\n */\n var isReplacedCustomChar = function (ch, customReplacements) {\n for (var c in customReplacements) {\n if (customReplacements[c] === ch) {\n return true;\n }\n }\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n\n // export functions for use in Node\n module.exports = getSlug;\n module.exports.createSlug = createSlug;\n } else if (typeof define !== 'undefined' && define.amd) {\n\n // export function for use in AMD\n define([], function () {\n return getSlug;\n });\n } else {\n\n // don't overwrite global if exists\n try {\n if (root.getSlug || root.createSlug) {\n throw 'speakingurl: globals exists /(getSlug|createSlug)/';\n } else {\n root.getSlug = getSlug;\n root.createSlug = createSlug;\n }\n } catch (e) {}\n }\n})(this);","module.exports = require('./lib/speakingurl');\n"],"names":["nextHandle","resolved","activeHandles","findAndClearHandle","handle","Immediate","cb","setImmediate","clearImmediate","immediateProvider","args","_i","__spreadArray","__read","AsapAction","_super","__extends","scheduler","work","_this","id","delay","_a","actions","AsyncAction","AsapScheduler","action","flushId","error","AsyncScheduler","asapScheduler","throwError","errorOrErrorFactory","errorFactory","isFunction","init","subscriber","Observable","firstValueFrom","source","config","resolve","reject","SafeSubscriber","value","EmptyError","isValidDate","concatAll","mergeAll","concat","from","popScheduler","timer","dueTime","intervalOrScheduler","asyncScheduler","intervalDuration","isScheduler","due","n","not","pred","thisArg","index","partition","predicate","filter","innerFrom","catchError","selector","operate","innerSub","syncUnsub","handledResult","createOperatorSubscriber","err","debounce","durationSelector","hasValue","lastValue","durationSubscriber","emit","noop","mapTo","map","delayWhen","delayDurationSelector","subscriptionDelay","mergeMap","take","duration","distinctUntilChanged","comparator","keySelector","identity","defaultCompare","previousKey","first","currentKey","a","b","exhaustMap","project","resultSelector","isComplete","outerValue","finalize","callback","startWith","values","tap","observerOrNext","complete","tapObserver","isUnsub","_b","throttle","leading","_c","trailing","sendValue","throttled","endThrottling","send","cleanupThrottling","startThrottle","throttleTime","duration$","withLatestFrom","inputs","popResultSelector","len","otherValues","ready","_loop_1","i","isObject","obj","Array","isArray","isSanityDocument","document","_id","_type","isTypedObject","isKeyedObject","_key","isValidationErrorMarker","marker","level","isValidationWarningMarker","isValidationInfoMarker","reKeySegment","reIndexTuple","isIndexSegment","segment","test","isKeySegment","trim","isIndexTuple","length","to","isRecord","isDocumentSchemaType","type","isObjectSchemaType","current","name","jsonType","isArraySchemaType","isArrayOfBlocksSchemaType","of","some","memberType","isBlockSchemaType","isArrayOfObjectsSchemaType","every","isArrayOfPrimitivesSchemaType","isPrimitiveSchemaType","isBooleanSchemaType","isStringSchemaType","isNumberSchemaType","isReferenceSchemaType","isImageSchemaType","isFileSchemaType","isDeprecatedSchemaType","deprecated","isDeprecationConfiguration","isCrossDatasetReferenceSchemaType","isTitledListValue","item","isSpanSchemaType","annotations","decorators","fields","maybeSpanChildren","find","isBlockChildrenObjectField","maybeStyle","isBlockStyleObjectField","maybeList","isBlockListObjectField","field","rePropName","EMPTY_PATH","FOCUS_TERMINATOR","GROQ_DATA_TYPE_VALUES","get","path","defaultVal","select","fromString","Error","acc","undefined","pathsMemo","Map","pathFor","asString","toString","has","set","Object","freeze","isEqual","otherPath","isSegmentEqual","numEqualSegments","Math","min","segmentA","segmentB","Number","startsWith","prefix","trimLeft","prefixHead","prefixTail","pathHead","pathTail","trimChildPath","childPath","reduce","target","isHead","includes","JSON","stringify","_resolveKeyedPath","next","rest","nextVal","resolveKeyedPath","segments","match","normalizePathSegment","normalizeIndexSegment","normalizeKeySegment","normalizeIndexTupleSegment","replace","split","seg","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","keys","it","reactFastCompare","pass","input$","observableCallback","operator","subject","Subject","arg","getValue","cache","useObservable","observable","initialValue","$","c","t0","state","entry","_temp$1","_temp2","t12","snapshot","error_0","_temp3","share","_temp4","initialValue_0","t1","instance","t2","onStoreChange","subscription_0","subscribe","t3","t4","useSyncExternalStore","value_0","useObservableEvent","handleEvent","useState","_temp","calls$","call","onEvent","useEffectEvent","subscription","observable_0","useEffect","_typeof","o","toInteger","dirtyNumber","number","requiredArgs","required","toDate","argument","argStr","addDays","dirtyDate","dirtyAmount","date","amount","addMilliseconds","timestamp","defaultOptions","getDefaultOptions","getTimezoneOffsetInMilliseconds","utcDate","addWeeks","days","isDate","isValid","subMilliseconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","startOfYearTimestamp","difference","startOfUTCISOWeek","weekStartsOn","day","diff","getUTCISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","options","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","getUTCWeek","addLeadingZeros","targetLength","sign","output","formatters","token","signedYear","month","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","dayPeriodEnum","localize","era","lightFormatters","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","quarter","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","dateTimeLongFormatter","matchResult","datePattern","timePattern","dateTimeFormat","longFormatters","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","format","input","formatDistanceLocale","formatDistance","count","result","tokenValue","buildFormatLongFn","width","dateFormats","timeFormats","dateTimeFormats","formatRelativeLocale","formatRelative","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","context","valuesArray","defaultWidth","_defaultWidth","_width","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","rem100","buildMatchFn","string","matchPattern","matchedString","parsePatterns","key","findIndex","findKey","object","array","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","locale","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","formatterOptions","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","matched","isAfter","dirtyDateToCompare","dateToCompare","isBefore","QuickLRU","deleted","oldCacheSize","quickLru","ConditionalWrapper","children","condition","wrapper","LARGE_BUTTON_PROPS","space","padding","DEFAULT_BUTTON_PROPS","TooltipButtonWrapper","styled","span","Button","forwardRef","ref","paddingY","tooltipProps","size","mode","tone","jsx","Tooltip","content","renderWrapper","sizeProps","t5","t6","UIButton","t7","warn","_len","alreadyWarned","warnOnce","_len2","_key2","loadedClb","i18n","initialized","loadNamespaces","ns","loadLanguages","lng","oldI18nextHasLoadedNamespace","fallbackLng","lastLng","loadNotPending","l","loadState","hasLoadedNamespace","i18nInstance","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","m","unescape","text","setDefaults","getDefaults","setI18n","getI18n","I18nContext","createContext","ReportNamespaces","namespaces","usePrevious","ignore","useRef","alwaysNewT","language","namespace","keyPrefix","useMemoizedT","useCallback","useTranslation","props","i18nFromProps","i18nFromContext","defaultNSFromContext","useContext","notReadyT","k","optsOrDefaultValue","retNotReady","i18nOptions","useSuspense","memoGetT","getT","t","setT","joinedNS","previousJoinedNS","isMounted","bindI18n","bindI18nStore","boundReset","e","isInitial","ret","Dialog","bodyHeight","footer","confirmButton","cancelButton","jsxs","Flex","onClose","Box","UIDialog","ErrorBoundary","onCatch","SourceContext","caughtError","info","caughtInfo","onUncaughtError","handleCatch","UIErrorBoundary","MenuButton","popover","animate","UIMenuButton","MenuGroup","UIMenuGroup","Hotkeys","makePlatformAware","hotKeys","platformifyKey","UIHotkeys","IS_APPLE_DEVICE","navigator","platform","lowerKey","toLowerCase","matchCase","original","orgLength","char","toUpperCase","FONT_SIZE","SUBTITLE_FONT_SIZE","SubtitleText","Text","PreviewWrapper","MenuItem","Icon","IconRight","__unstable_space","__unstable_subtitle","badgeText","childrenProp","disabled","hotkeys","renderMenuItem","icon","iconRight","preview","opacity","isValidElement","isValidElementType","Stack","marginTop","marginBottom","Badge","menuItemContent","t8","t9","t10","t11","t13","UIMenuItem","t14","Popover","UIPopover","Tab","UITab","TOOLTIP_DELAY_PROPS","open","TOOLTIP_SHARED_PROPS","arrow","boundaryElement","fallbackPlacements","placement","portal","UITooltip","TooltipDelayGroupProvider","UITooltipDelayGroupProvider","capture","listen","onPageHide","listener","cleanupUnload","cleanupBeforeUnload","onVisibilityHidden","createNoopLogger","logger","trace","log","telemetryTrace","data","promise","event","noopLogger","useTelemetryStoreLifeCycleEvents","store","TelemetryLoggerContext","TelemetryProvider","useTelemetry","shallowEquals","shallow","compare","aIsNull","bIsNull","aIsArray","bIsArray","aTypeof","bTypeof","flat","shallowArray","shallowObject","ka","kb","alphabet","dec","encode","src","dst","decode","s","v","parseUUID","uuid","arr","__pow","DIGITS","UUID","bytes","unixTsMs","randA","randBHi","randBLo","other","V7Generator","DefaultRandom","ts","getRandomValues","buffer","defaultGenerator","uuidv7obj","isValidPrefix","str","code","TypeID","suffix","self","parts","typeid","createSessionId","createTraceId","splitAt","MAX_LENGTH","trimErrorMessage","errorMessage","newLineIndex","splitIndex","createStore","sessionId","logEntries$","pushTraceError","traceId","pushTraceEntry","pushLogEntry","pushUserPropertiesEntry","properties","createTrace","traceDef","innerTraceDef","unrefTimer","ms","timeout","createBatchedStore","resolveConsent","_buffer","consume","buf","submit","pending","EMPTY","combineLatest","events","consent","flushInterval","flush$","ev","concatMap","flush","lastValueFrom","endWithBeacon","end","defineEvent","IS_MAC","MODIFIERS","ALIASES","CODES","f","isHotkey","hotkey","parseHotkey","check","compareHotkey","byKey","optional","toKeyName","modifier","toKeyCode","expected","actual","BASE_URL","generateHelpUrl","slug","escapeRegExp","pathRegExp","re","part","Path","__publicField","StreamValue","generator","currentResolver","setupTicker","tick","fetch","RFC3339_REGEX","parseRFC3339","formatRFC3339","d","addLeadingZero","hour","minute","second","fractionalSecond","millis","num","StaticValue","element","fromJS","NULL_VALUE","TRUE_VALUE","FALSE_VALUE","DateTime","secs","copy","fromNumber","fromDateTime","dt","fromPath","isIterator","val","getType","CHARS","CHARS_WITH_WILDCARD","EDGE_CHARS","matchText","tokens","patterns","matchTokenize","matchAnalyzePattern","matchPatternRegex","term","gatherText","success","TYPE_ORDER","partialCompare","aType","bType","totalCompare","aTypeOrder","bTypeOrder","operators","left","right","numericOperator","impl","Scope$1","Scope","params","parent","evaluate","node","scope","execute","func","EXECUTORS","promiselessApply","_","op","leftValue","rightValue","alternatives","fallback","alt","altCond","base","isInclusive","leftCmp","rightCmp","expr","baseValue","elem","newScope","exprValue","finalIndex","array2","leftIdx","rightIdx","doc","attributes","attr","attrType","cond","elements","innerValue","inner","evaluateQuery","tree","root","dataset","canConstantEvaluate","DUMMY_SCOPE","tryConstantEvaluate","constantEvaluate","portableTextContent","blockText","texts","arrayText","block","child","BM25k","evaluateScore","evaluateMatchScore","innerScore","boost","leftScore","rightScore","res","terms","score","freq","hasReference","pathSet","countUTF8","count2","_global","_args","path2","scopeValue","prec","precValue","string2","sep","needSep","added","iter","arr1","arr2","v1","v2","pt","sanity","baseId","versionIds","value2","documentIdsInBundle","pipeFunctions","mappers","directions","mapper","direction","aux","idx","tuple","aTuple","bTuple","unknown","scored","valueScore","newObject","delta","hasBefore","hasAfter","math","dateTime2","MarkProcessor","marks","parseOptions","pos","visitor","mark","prev","curr","WS","NUM","IDENT","parse$1","skipWS","parseExpr","startPos","rhs","parseObject","parseString","identLen","parseRegex","numLen","fracLen","expLen","parseFuncCall","lhsLevel","trav","loop","innerPos","parseTraversal","rhs2","nextPos","identPos","parseRegexStr","isGroup","rangePos","failPosition","identStart","identLen2","nameLen","lastPos","pairPos","join","flatMap","traverseArray","build","traversePlain","traverseElement","traverseProjection","ESCAPE_SEQUENCE","expandHex","charCode","GroqQueryError","EXPR_BUILDER","p","traversalList","TRAVERSE_BUILDER","traversal","strValue","OBJECT_BUILDER","isSplat","members","argumentShouldBeSelector","SELECTOR_BUILDER","funcs","validateArity","oldAllowBoost","markName","extractPropertyKey","wrap","arity","functionName","argCount","functionsRequiringSelectors","GroqSyntaxError","position","parse","$trace$1","debug","$trace","$debug","exhaustMapWithTrailing","defer","release","scheduled","charMap","lookAheadCharArray","diatricMap","langCharMap","symbolMap","uricChars","uricNoSlashChars","markChars","getSlug","opts","separator","diatricString","convertSymbols","customReplacements","maintainCase","titleCase","truncate","uricFlag","uricNoSlashFlag","markFlag","symbol","langChar","lucky","ch","lastCharWasSymbol","lastCharWasDiatric","allowedChars","r","escapeChars","isReplacedCustomChar","j","createSlug","module","this","speakingurl","require$$0"],"mappings":"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AAG7B,SAAOD,MAAOC;AAChB;AAEA,SAASJ,GAAK9jB,GAAM;AAClB,SACEA,MAAS,cACTA,MAAS;AAEb;;AC7EA,IAAImkB,IAAW,oCACXC,IAAM,IAAI,WAAW;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,E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ACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,KAAK;AAAA;AAAA;AAAA,MAKL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAGL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAGL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,MAAM;AAAA,MACN,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA;AAAA,MAEL,GAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,QAAQ;AAAA,MACR,GAAK;AAAA;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA;AAAA,MAIL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA;AAAA,MAEL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAEL,GAAK;AAAA;AAAA,MAEL,GAAK;AAAA;AAAA,MAEL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAEL,GAAK;AAAA;AAAA;AAAA,MAIL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,IAAM;AAAA,MACN,IAAM;AAAA;AAAA,MAGN,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAEL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA;AAAA,MAKL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MAEL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAGL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MAGL,GAAK;AAAA,MACL,KAAK;AAAA,MACL,K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ACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA;AAAA,QACF,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA;AAAA,QACF,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA;AAAA;AAAA;AAAA,QAGF,GAAK;AAAA;AAAA,QACL,GAAK;AAAA;AAAA,QACL,GAAK;AAAA;AAAA,QACL,GAAK;AAAA;AAAA,MACR;AAAA,MAED,IAAM;AAAA;AAAA,QACF,GAAK;AAAA,QACL,GAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA;AAAA,QACF,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA;AAAA,QACF,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA,QACL,GAAK;AAAA;IAEZ,GAOGC,IAAY;AAAA,MACZ,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM,CAAE;AAAA,MAER,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM,CAAE;AAAA,MAER,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM,CAAE;AAAA,MAER,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,MACR;AAAA,MAED,IAAM;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,77,78,79,80,81,82,94,95,96,97,98,99,100,101,102,103,104,105,106,107]}