@pasko70/pibo 1.7.2 → 1.7.4

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 (185) hide show
  1. package/README.md +183 -0
  2. package/context/codex-base-prompt.md +0 -0
  3. package/context/compute-worker.md +0 -0
  4. package/context/pibo-compaction-prompt.md +0 -0
  5. package/context/pibo-native-tooling.md +0 -0
  6. package/context/pibo-system-prompt.md +0 -0
  7. package/dist/apps/chat/chat-trace-helpers.js +3 -1
  8. package/dist/apps/chat/data/session-query-service.js +66 -3
  9. package/dist/apps/chat/data/timeline-query-service.js +8 -2
  10. package/dist/apps/chat/trace-v2.js +9 -4
  11. package/dist/apps/chat/trace.js +189 -4
  12. package/dist/apps/chat/web-app.js +164 -34
  13. package/dist/apps/chat-ui/assets/{dist-Ddn6n4ge.js → dist-B8jyBeFH.js} +1 -1
  14. package/dist/apps/chat-ui/assets/{dist-eRtG3vUM.js → dist-BS-A0VYR.js} +1 -1
  15. package/dist/apps/chat-ui/assets/{dist-Jc0njXt3.js → dist-BZoXuF9y.js} +1 -1
  16. package/dist/apps/chat-ui/assets/{dist-CCHtiwhr.js → dist-Bl9cf-yT.js} +1 -1
  17. package/dist/apps/chat-ui/assets/{dist-CxWQqjbA.js → dist-BzmsjE6I.js} +1 -1
  18. package/dist/apps/chat-ui/assets/{dist-Cfyo-Bgw.js → dist-C6kgrKy2.js} +1 -1
  19. package/dist/apps/chat-ui/assets/{dist-8eLx-6HY.js → dist-CSKVaxJI.js} +1 -1
  20. package/dist/apps/chat-ui/assets/{dist-BXT6rjJn.js → dist-ChDQZXGN.js} +1 -1
  21. package/dist/apps/chat-ui/assets/{dist-DjmyW251.js → dist-D6v32djn.js} +1 -1
  22. package/dist/apps/chat-ui/assets/{dist-cyStkSiF.js → dist-MCSKIQ04.js} +1 -1
  23. package/dist/apps/chat-ui/assets/{dist-CCt9U3Or.js → dist-OTFZZTiY.js} +1 -1
  24. package/dist/apps/chat-ui/assets/index-CXXHizfD.js +166 -0
  25. package/dist/apps/chat-ui/assets/{index-Dz6asKNQ.css → index-DgVHk3gL.css} +1 -1
  26. package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-144x144.png +0 -0
  27. package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-192x192.png +0 -0
  28. package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-48x48.png +0 -0
  29. package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-512x512.png +0 -0
  30. package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-72x72.png +0 -0
  31. package/dist/apps/chat-ui/assets/pwa-images/android/launchericon-96x96.png +0 -0
  32. package/dist/apps/chat-ui/assets/pwa-images/ios/100.png +0 -0
  33. package/dist/apps/chat-ui/assets/pwa-images/ios/1024.png +0 -0
  34. package/dist/apps/chat-ui/assets/pwa-images/ios/114.png +0 -0
  35. package/dist/apps/chat-ui/assets/pwa-images/ios/120.png +0 -0
  36. package/dist/apps/chat-ui/assets/pwa-images/ios/128.png +0 -0
  37. package/dist/apps/chat-ui/assets/pwa-images/ios/144.png +0 -0
  38. package/dist/apps/chat-ui/assets/pwa-images/ios/152.png +0 -0
  39. package/dist/apps/chat-ui/assets/pwa-images/ios/16.png +0 -0
  40. package/dist/apps/chat-ui/assets/pwa-images/ios/167.png +0 -0
  41. package/dist/apps/chat-ui/assets/pwa-images/ios/180.png +0 -0
  42. package/dist/apps/chat-ui/assets/pwa-images/ios/192.png +0 -0
  43. package/dist/apps/chat-ui/assets/pwa-images/ios/20.png +0 -0
  44. package/dist/apps/chat-ui/assets/pwa-images/ios/256.png +0 -0
  45. package/dist/apps/chat-ui/assets/pwa-images/ios/29.png +0 -0
  46. package/dist/apps/chat-ui/assets/pwa-images/ios/32.png +0 -0
  47. package/dist/apps/chat-ui/assets/pwa-images/ios/40.png +0 -0
  48. package/dist/apps/chat-ui/assets/pwa-images/ios/50.png +0 -0
  49. package/dist/apps/chat-ui/assets/pwa-images/ios/512.png +0 -0
  50. package/dist/apps/chat-ui/assets/pwa-images/ios/57.png +0 -0
  51. package/dist/apps/chat-ui/assets/pwa-images/ios/58.png +0 -0
  52. package/dist/apps/chat-ui/assets/pwa-images/ios/60.png +0 -0
  53. package/dist/apps/chat-ui/assets/pwa-images/ios/64.png +0 -0
  54. package/dist/apps/chat-ui/assets/pwa-images/ios/72.png +0 -0
  55. package/dist/apps/chat-ui/assets/pwa-images/ios/76.png +0 -0
  56. package/dist/apps/chat-ui/assets/pwa-images/ios/80.png +0 -0
  57. package/dist/apps/chat-ui/assets/pwa-images/ios/87.png +0 -0
  58. package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-100.png +0 -0
  59. package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-125.png +0 -0
  60. package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-150.png +0 -0
  61. package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-200.png +0 -0
  62. package/dist/apps/chat-ui/assets/pwa-images/windows/LargeTile.scale-400.png +0 -0
  63. package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-100.png +0 -0
  64. package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-125.png +0 -0
  65. package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-150.png +0 -0
  66. package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-200.png +0 -0
  67. package/dist/apps/chat-ui/assets/pwa-images/windows/SmallTile.scale-400.png +0 -0
  68. package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-100.png +0 -0
  69. package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-125.png +0 -0
  70. package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-150.png +0 -0
  71. package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-200.png +0 -0
  72. package/dist/apps/chat-ui/assets/pwa-images/windows/SplashScreen.scale-400.png +0 -0
  73. package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-100.png +0 -0
  74. package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-125.png +0 -0
  75. package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-150.png +0 -0
  76. package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-200.png +0 -0
  77. package/dist/apps/chat-ui/assets/pwa-images/windows/Square150x150Logo.scale-400.png +0 -0
  78. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-16.png +0 -0
  79. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-20.png +0 -0
  80. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-24.png +0 -0
  81. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-256.png +0 -0
  82. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-30.png +0 -0
  83. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-32.png +0 -0
  84. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-36.png +0 -0
  85. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-40.png +0 -0
  86. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-44.png +0 -0
  87. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-48.png +0 -0
  88. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-60.png +0 -0
  89. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-64.png +0 -0
  90. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-72.png +0 -0
  91. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-80.png +0 -0
  92. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-lightunplated_targetsize-96.png +0 -0
  93. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-16.png +0 -0
  94. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-20.png +0 -0
  95. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-24.png +0 -0
  96. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-256.png +0 -0
  97. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-30.png +0 -0
  98. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-32.png +0 -0
  99. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-36.png +0 -0
  100. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-40.png +0 -0
  101. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-44.png +0 -0
  102. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-48.png +0 -0
  103. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-60.png +0 -0
  104. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-64.png +0 -0
  105. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-72.png +0 -0
  106. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-80.png +0 -0
  107. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.altform-unplated_targetsize-96.png +0 -0
  108. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-100.png +0 -0
  109. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-125.png +0 -0
  110. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-150.png +0 -0
  111. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-200.png +0 -0
  112. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.scale-400.png +0 -0
  113. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-16.png +0 -0
  114. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-20.png +0 -0
  115. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-24.png +0 -0
  116. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-256.png +0 -0
  117. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-30.png +0 -0
  118. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-32.png +0 -0
  119. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-36.png +0 -0
  120. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-40.png +0 -0
  121. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-44.png +0 -0
  122. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-48.png +0 -0
  123. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-60.png +0 -0
  124. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-64.png +0 -0
  125. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-72.png +0 -0
  126. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-80.png +0 -0
  127. package/dist/apps/chat-ui/assets/pwa-images/windows/Square44x44Logo.targetsize-96.png +0 -0
  128. package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-100.png +0 -0
  129. package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-125.png +0 -0
  130. package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-150.png +0 -0
  131. package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-200.png +0 -0
  132. package/dist/apps/chat-ui/assets/pwa-images/windows/StoreLogo.scale-400.png +0 -0
  133. package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-100.png +0 -0
  134. package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-125.png +0 -0
  135. package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-150.png +0 -0
  136. package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-200.png +0 -0
  137. package/dist/apps/chat-ui/assets/pwa-images/windows/Wide310x150Logo.scale-400.png +0 -0
  138. package/dist/apps/chat-ui/index.html +2 -2
  139. package/dist/apps/chat-ui/manifest.webmanifest +0 -0
  140. package/dist/apps/chat-ui/sw.js +0 -0
  141. package/dist/apps/chat-vscode-web/assets/index-B4Jk2P5o.js +41 -0
  142. package/dist/apps/chat-vscode-web/index.html +1 -1
  143. package/dist/apps/vscode-artifacts/latest.vsix +0 -0
  144. package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.7.4.vsix +0 -0
  145. package/dist/bin/pibo.js +0 -0
  146. package/dist/bin/rg.js +0 -0
  147. package/dist/data/schema.js +2 -0
  148. package/dist/shared/trace-page-merge.js +40 -0
  149. package/dist/web/http.js +7 -1
  150. package/docs/README.md +23 -0
  151. package/docs/ops/install-developer-host.md +112 -0
  152. package/docs/ops/install-user-host.md +96 -0
  153. package/docs/ops/upgrade-user-to-developer-host.md +69 -0
  154. package/docs/ops/vscode-extension-release.md +160 -0
  155. package/package.json +93 -93
  156. package/skills/builtin/graphify/SKILL.md +0 -0
  157. package/skills/builtin/pi-agent-harness/SKILL.md +0 -0
  158. package/skills/builtin/pi-agent-harness/agents/openai.yaml +0 -0
  159. package/skills/builtin/pibo-docker-system/SKILL.md +0 -0
  160. package/skills/builtin/pibo-spec-writing/SKILL.md +0 -0
  161. package/skills/builtin/prd/SKILL.md +0 -0
  162. package/skills/builtin/ralph-loop/SKILL.md +0 -0
  163. package/skills/builtin/ralph-prd-json/SKILL.md +0 -0
  164. package/skills/builtin/skill-creator/LICENSE.txt +0 -0
  165. package/skills/builtin/skill-creator/SKILL.md +0 -0
  166. package/skills/builtin/skill-creator/agents/analyzer.md +0 -0
  167. package/skills/builtin/skill-creator/agents/comparator.md +0 -0
  168. package/skills/builtin/skill-creator/agents/grader.md +0 -0
  169. package/skills/builtin/skill-creator/assets/eval_review.html +0 -0
  170. package/skills/builtin/skill-creator/eval-viewer/generate_review.py +0 -0
  171. package/skills/builtin/skill-creator/eval-viewer/viewer.html +0 -0
  172. package/skills/builtin/skill-creator/references/schemas.md +0 -0
  173. package/skills/builtin/skill-creator/scripts/__init__.py +0 -0
  174. package/skills/builtin/skill-creator/scripts/aggregate_benchmark.py +0 -0
  175. package/skills/builtin/skill-creator/scripts/generate_report.py +0 -0
  176. package/skills/builtin/skill-creator/scripts/improve_description.py +0 -0
  177. package/skills/builtin/skill-creator/scripts/package_skill.py +0 -0
  178. package/skills/builtin/skill-creator/scripts/quick_validate.py +0 -0
  179. package/skills/builtin/skill-creator/scripts/run_eval.py +0 -0
  180. package/skills/builtin/skill-creator/scripts/run_loop.py +0 -0
  181. package/skills/builtin/skill-creator/scripts/utils.py +0 -0
  182. package/skills/builtin/web-annotations/SKILL.md +0 -0
  183. package/src/mcp/LICENSE.mcp-cli +0 -0
  184. package/dist/apps/chat-ui/assets/index-COp5Hme0.js +0 -166
  185. package/dist/apps/chat-vscode-web/assets/index-CfeNUaRh.js +0 -41
@@ -6,7 +6,7 @@ import { OutputCompactor } from "./output-compactor.js";
6
6
  import { isLiveOnlyOutputEvent, isPersistableOutputEvent } from "./output-event-policy.js";
7
7
  import { chatRoomIdFromMetadata, isDefaultPiboRoom, isPiboRoomArchived, roomWorkspaceFromMetadata, withChatRoomId, withPiboRoomWorkspace, } from "./types/rooms.js";
8
8
  import { chatStreamFramesFromOutputEvent, createChatStreamState, nextTransientChatStreamFrameId } from "./stream.js";
9
- import { buildSessionNodes, buildTraceView, createTraceViewVersion, loadPiSessionMetadata, readTailEntries } from "./trace.js";
9
+ import { buildSessionNodes, buildTraceView, createTraceViewVersion, loadPiSessionFastMetadata, loadPiSessionMetadata, readTailEntries, readTranscriptHistoryPage } from "./trace.js";
10
10
  import { DEFAULT_TRACE_EVENTS_PAGE_SIZE, annotateTracePage, etagForVersion, estimateTraceViewBytes, traceCacheEstimatedBytes, liveSnapshotVersion, requestMatchesVersion, setTraceCache, traceCacheKey, withLiveSnapshots, withRawTraceTail, } from "./chat-trace-helpers.js";
11
11
  import { TRACE_V2_DEFAULT_TIMELINE_LIMIT, TRACE_V2_MAX_TIMELINE_LIMIT, TRACE_V2_PAYLOAD_DEFAULT_LIMIT_BYTES, TRACE_V2_PAYLOAD_MAX_LIMIT_BYTES, TRACE_V2_RAW_EVENTS_DEFAULT_LIMIT, TRACE_V2_RAW_EVENTS_MAX_LIMIT, TRACE_V2_TIMELINE_HARD_BYTES, parseTracePayloadRef, readTracePayloadChunk, traceRawEventsPageFromEvents, traceTimelinePageFromView, } from "./trace-v2.js";
12
12
  import { isChatWebSessionArchived } from "./session-metadata.js";
@@ -2254,14 +2254,76 @@ function recordTransientReplayEvent(state, event) {
2254
2254
  function parseTimelineBeforeCursor(url) {
2255
2255
  const before = parseOptionalPositiveIntSearchParam(url, "beforeSequence");
2256
2256
  if (before !== undefined)
2257
- return before;
2257
+ return { kind: "event", beforeSequence: before, raw: String(before) };
2258
2258
  const cursor = url.searchParams.get("before") ?? url.searchParams.get("cursor");
2259
2259
  if (!cursor || cursor === "tail")
2260
- return undefined;
2260
+ return { kind: "tail" };
2261
+ const transcript = parseTranscriptTimelineCursor(cursor);
2262
+ if (transcript)
2263
+ return transcript;
2261
2264
  const parsed = Number.parseInt(cursor, 10);
2262
2265
  if (!Number.isFinite(parsed) || parsed <= 0)
2263
- throw new PiboWebHttpError("Trace cursor must be tail or a positive sequence", 400);
2264
- return parsed;
2266
+ throw new PiboWebHttpError("Trace cursor must be tail, transcript, or a positive sequence", 400);
2267
+ return { kind: "event", beforeSequence: parsed, raw: String(parsed) };
2268
+ }
2269
+ function parseTranscriptTimelineCursor(cursor) {
2270
+ if (!cursor.startsWith("transcript:"))
2271
+ return undefined;
2272
+ const [, byteValue, encodedTimestamp] = cursor.split(":");
2273
+ const beforeByte = Number.parseInt(byteValue ?? "", 10);
2274
+ if (!Number.isFinite(beforeByte) || beforeByte < 0)
2275
+ throw new PiboWebHttpError("Invalid transcript trace cursor", 400);
2276
+ let beforeTimestamp;
2277
+ if (encodedTimestamp) {
2278
+ try {
2279
+ const decoded = Buffer.from(encodedTimestamp, "base64url").toString("utf8");
2280
+ if (decoded)
2281
+ beforeTimestamp = decoded;
2282
+ }
2283
+ catch {
2284
+ throw new PiboWebHttpError("Invalid transcript trace cursor", 400);
2285
+ }
2286
+ }
2287
+ return { kind: "transcript", beforeByte, beforeTimestamp, raw: cursor };
2288
+ }
2289
+ function encodeTranscriptTimelineCursor(beforeByte, beforeTimestamp) {
2290
+ const encodedTimestamp = beforeTimestamp ? Buffer.from(beforeTimestamp, "utf8").toString("base64url") : "";
2291
+ return `transcript:${Math.max(0, Math.floor(beforeByte))}:${encodedTimestamp}`;
2292
+ }
2293
+ function compactionCutoffTimestamp(events) {
2294
+ const compaction = events.find((event) => event.type === "execution_result" && event.payload.type === "execution_result" && event.payload.action === "compact")
2295
+ ?? events.find((event) => event.type === "compaction_end" || event.type === "compaction_start");
2296
+ return compaction?.createdAt;
2297
+ }
2298
+ function originTranscriptTailCursor(input) {
2299
+ if (!input.session.originId)
2300
+ return undefined;
2301
+ const sessionPath = input.metadata?.sessionPath;
2302
+ const sessionSize = input.metadata?.sessionSize;
2303
+ if (!sessionPath || !sessionSize || sessionSize <= 0)
2304
+ return undefined;
2305
+ const firstVisibleTranscript = firstVisibleTailTranscriptNode(input.trace.nodes, input.limit);
2306
+ if (!firstVisibleTranscript?.startedAt)
2307
+ return undefined;
2308
+ const probe = readTranscriptHistoryPage(sessionPath, {
2309
+ beforeByte: sessionSize,
2310
+ beforeTimestamp: firstVisibleTranscript.startedAt,
2311
+ limit: 1,
2312
+ });
2313
+ if (probe.entries.length === 0)
2314
+ return undefined;
2315
+ return encodeTranscriptTimelineCursor(sessionSize, firstVisibleTranscript.startedAt);
2316
+ }
2317
+ function firstVisibleTailTranscriptNode(nodes, limit) {
2318
+ const flat = [];
2319
+ const visit = (items) => {
2320
+ for (const item of items) {
2321
+ flat.push(item);
2322
+ visit(item.children);
2323
+ }
2324
+ };
2325
+ visit(nodes);
2326
+ return flat.slice(-Math.max(1, limit)).find((node) => node.source === "transcript" && node.startedAt);
2265
2327
  }
2266
2328
  function transientReplayScopeKeys(input) {
2267
2329
  const keys = [];
@@ -3962,7 +4024,7 @@ export function createChatWebApp(options = {}) {
3962
4024
  state.sessionQuery.upsertSession(selectedSession);
3963
4025
  const indexedSession = state.sessionQuery.getSession(selectedSession.id);
3964
4026
  const metadataStartedAt = performance.now();
3965
- const metadata = await loadPiSessionMetadata(selectedSession, selectedSession.workspace ?? process.cwd());
4027
+ const metadata = await loadPiSessionFastMetadata(selectedSession, selectedSession.workspace ?? process.cwd());
3966
4028
  const metadataMs = performance.now() - metadataStartedAt;
3967
4029
  const lastEventSequence = state.timelineQuery.getLatestEventSequence(selectedSession.id);
3968
4030
  const latestStreamId = state.timelineQuery.getLatestStreamId({ piboSessionId: selectedSession.id });
@@ -4002,7 +4064,8 @@ export function createChatWebApp(options = {}) {
4002
4064
  if (url.pathname === `${CHAT_WEB_API_PREFIX}/trace/timeline` && request.method === "GET") {
4003
4065
  const startedAt = performance.now();
4004
4066
  const webSession = await requireSession(request, context);
4005
- const beforeSequence = parseTimelineBeforeCursor(url);
4067
+ const timelineCursor = parseTimelineBeforeCursor(url);
4068
+ const beforeSequence = timelineCursor.kind === "event" ? timelineCursor.beforeSequence : undefined;
4006
4069
  const limit = parsePositiveIntSearchParam(url, "limit", TRACE_V2_DEFAULT_TIMELINE_LIMIT, TRACE_V2_MAX_TIMELINE_LIMIT);
4007
4070
  const selectedSession = resolveRequestedSession(state, context, webSession, defaultProfile, url.searchParams.get("piboSessionId") || undefined);
4008
4071
  state.sessionQuery.upsertSession(selectedSession);
@@ -4011,10 +4074,12 @@ export function createChatWebApp(options = {}) {
4011
4074
  let metadataMs = 0;
4012
4075
  const lastEventSequence = state.timelineQuery.getLatestEventSequence(selectedSession.id);
4013
4076
  const latestStreamId = state.timelineQuery.getLatestStreamId({ piboSessionId: selectedSession.id });
4014
- const liveSnapshots = beforeSequence === undefined ? state.outputCompactor.snapshotsForSession(selectedSession.id) : [];
4015
- const transcriptMetadata = beforeSequence === undefined
4016
- ? await loadPiSessionMetadata(selectedSession, selectedSession.workspace ?? process.cwd())
4077
+ const liveSnapshots = timelineCursor.kind === "tail" ? state.outputCompactor.snapshotsForSession(selectedSession.id) : [];
4078
+ const metadataStartedAt = performance.now();
4079
+ const transcriptMetadata = timelineCursor.kind === "tail" || timelineCursor.kind === "transcript"
4080
+ ? await loadPiSessionFastMetadata(selectedSession, selectedSession.workspace ?? process.cwd())
4017
4081
  : undefined;
4082
+ metadataMs += performance.now() - metadataStartedAt;
4018
4083
  const baseVersion = createFastTraceV2Version({
4019
4084
  session: selectedSession,
4020
4085
  sessions: ownedSessions,
@@ -4026,7 +4091,7 @@ export function createChatWebApp(options = {}) {
4026
4091
  });
4027
4092
  const snapshotVersion = liveSnapshotVersion(liveSnapshots);
4028
4093
  const version = snapshotVersion ? `${baseVersion}:live:${snapshotVersion}` : baseVersion;
4029
- const pageCursorKey = beforeSequence === undefined ? "tail" : `before:${beforeSequence}`;
4094
+ const pageCursorKey = timelineCursor.kind === "tail" ? "tail" : `before:${timelineCursor.raw}`;
4030
4095
  const cacheKey = traceCacheKey(selectedSession.id, `${baseVersion}:v2:limit:${limit}:${pageCursorKey}`);
4031
4096
  const pageCacheKey = traceCacheKey(selectedSession.id, `${version}:v2-page:limit:${limit}:${pageCursorKey}`);
4032
4097
  const cachedPage = state.traceTimelinePageCache.get(pageCacheKey);
@@ -4036,7 +4101,7 @@ export function createChatWebApp(options = {}) {
4036
4101
  "x-pibo-trace-version": version,
4037
4102
  "cache-control": "no-store",
4038
4103
  };
4039
- if (beforeSequence === undefined && requestMatchesVersion(request, version)) {
4104
+ if (timelineCursor.kind === "tail" && requestMatchesVersion(request, version)) {
4040
4105
  return new Response(null, { status: 304, headers: baseHeaders });
4041
4106
  }
4042
4107
  if (cachedPage) {
@@ -4055,26 +4120,79 @@ export function createChatWebApp(options = {}) {
4055
4120
  let trace = cached;
4056
4121
  let eventCount = 0;
4057
4122
  if (!trace) {
4058
- const events = state.timelineQuery.listTraceEvents({
4059
- piboSessionId: selectedSession.id,
4060
- limit,
4061
- ...(beforeSequence !== undefined ? { beforeSequence } : {}),
4062
- });
4063
- const transcriptEntries = beforeSequence === undefined && transcriptMetadata?.sessionPath
4064
- ? readTailEntries(transcriptMetadata.sessionPath)
4065
- : [];
4066
- eventCount = events.length;
4067
- trace = await buildTraceView({
4068
- session: selectedSession,
4069
- sessions: ownedSessions,
4070
- events,
4071
- status: indexedSession?.status,
4072
- metadata: transcriptMetadata ?? {},
4073
- transcriptEntries,
4074
- includeRawEvents: false,
4075
- latestStreamId,
4076
- });
4077
- trace = annotateTracePage(trace, events, { lastEventSequence, pageSize: limit, beforeSequence });
4123
+ if (timelineCursor.kind === "transcript") {
4124
+ const history = transcriptMetadata?.sessionPath
4125
+ ? readTranscriptHistoryPage(transcriptMetadata.sessionPath, {
4126
+ beforeByte: timelineCursor.beforeByte,
4127
+ beforeTimestamp: timelineCursor.beforeTimestamp,
4128
+ limit,
4129
+ })
4130
+ : { entries: [], hasOlder: false, scannedBytes: 0, startByte: 0, endByte: 0 };
4131
+ trace = await buildTraceView({
4132
+ session: selectedSession,
4133
+ sessions: ownedSessions,
4134
+ events: [],
4135
+ status: indexedSession?.status,
4136
+ metadata: transcriptMetadata ?? {},
4137
+ transcriptEntries: history.entries,
4138
+ transcriptOrderOffset: history.startByte,
4139
+ includeRawEvents: false,
4140
+ latestStreamId,
4141
+ });
4142
+ trace = {
4143
+ ...trace,
4144
+ eventCount: lastEventSequence,
4145
+ eventLimit: limit,
4146
+ pageSize: limit,
4147
+ beforeCursor: timelineCursor.raw,
4148
+ nextBeforeCursor: history.hasOlder && history.nextBeforeByte !== undefined
4149
+ ? encodeTranscriptTimelineCursor(history.nextBeforeByte, timelineCursor.beforeTimestamp)
4150
+ : undefined,
4151
+ hasOlderEvents: history.hasOlder,
4152
+ };
4153
+ }
4154
+ else {
4155
+ const events = state.timelineQuery.listTraceEvents({
4156
+ piboSessionId: selectedSession.id,
4157
+ limit,
4158
+ ...(beforeSequence !== undefined ? { beforeSequence } : {}),
4159
+ });
4160
+ const transcriptEntries = timelineCursor.kind === "tail" && transcriptMetadata?.sessionPath
4161
+ ? readTailEntries(transcriptMetadata.sessionPath)
4162
+ : [];
4163
+ eventCount = events.length;
4164
+ trace = await buildTraceView({
4165
+ session: selectedSession,
4166
+ sessions: ownedSessions,
4167
+ events,
4168
+ status: indexedSession?.status,
4169
+ metadata: transcriptMetadata ?? {},
4170
+ transcriptEntries,
4171
+ includeRawEvents: false,
4172
+ latestStreamId,
4173
+ });
4174
+ trace = annotateTracePage(trace, events, {
4175
+ lastEventSequence,
4176
+ pageSize: limit,
4177
+ beforeSequence,
4178
+ beforeCursor: timelineCursor.kind === "event" ? timelineCursor.raw : undefined,
4179
+ });
4180
+ if (trace.hasOlderEvents !== true && events.length > 0) {
4181
+ const cutoff = compactionCutoffTimestamp(events);
4182
+ if (cutoff) {
4183
+ const metadataStartedAt = performance.now();
4184
+ const metadata = transcriptMetadata ?? await loadPiSessionMetadata(selectedSession, selectedSession.workspace ?? process.cwd());
4185
+ metadataMs += performance.now() - metadataStartedAt;
4186
+ if (metadata.sessionPath && metadata.sessionSize && metadata.sessionSize > 0) {
4187
+ trace = {
4188
+ ...trace,
4189
+ nextBeforeCursor: encodeTranscriptTimelineCursor(metadata.sessionSize, cutoff),
4190
+ hasOlderEvents: true,
4191
+ };
4192
+ }
4193
+ }
4194
+ }
4195
+ }
4078
4196
  setTraceCache(state.traceCache, cacheKey, trace, TRACE_CACHE_MAX_ENTRIES);
4079
4197
  }
4080
4198
  trace = withLiveSnapshots(trace, liveSnapshots, {
@@ -4083,12 +4201,21 @@ export function createChatWebApp(options = {}) {
4083
4201
  status: liveSnapshots.length ? "running" : indexedSession?.status,
4084
4202
  });
4085
4203
  trace = { ...trace, version };
4204
+ const transcriptTailCursor = timelineCursor.kind === "tail"
4205
+ ? originTranscriptTailCursor({
4206
+ session: selectedSession,
4207
+ trace,
4208
+ metadata: transcriptMetadata,
4209
+ limit,
4210
+ })
4211
+ : undefined;
4086
4212
  const page = traceTimelinePageFromView({
4087
4213
  trace,
4088
4214
  payloadStore: state.dataStore.payloads,
4089
4215
  limit,
4090
4216
  byteLimit: TRACE_V2_TIMELINE_HARD_BYTES,
4091
- fromTail: beforeSequence === undefined,
4217
+ fromTail: timelineCursor.kind === "tail",
4218
+ transcriptTailCursor,
4092
4219
  });
4093
4220
  setTraceTimelinePageCache(state.traceTimelinePageCache, pageCacheKey, page);
4094
4221
  return responseJson(page, {
@@ -4119,7 +4246,10 @@ export function createChatWebApp(options = {}) {
4119
4246
  }
4120
4247
  if (url.pathname === `${CHAT_WEB_API_PREFIX}/trace/raw-events` && request.method === "GET") {
4121
4248
  const webSession = await requireSession(request, context);
4122
- const beforeSequence = parseTimelineBeforeCursor(url);
4249
+ const rawCursor = parseTimelineBeforeCursor(url);
4250
+ if (rawCursor.kind === "transcript")
4251
+ throw new PiboWebHttpError("Raw event cursor must be tail or a positive sequence", 400);
4252
+ const beforeSequence = rawCursor.kind === "event" ? rawCursor.beforeSequence : undefined;
4123
4253
  const limit = parsePositiveIntSearchParam(url, "limit", TRACE_V2_RAW_EVENTS_DEFAULT_LIMIT, TRACE_V2_RAW_EVENTS_MAX_LIMIT);
4124
4254
  const selectedSession = resolveRequestedSession(state, context, webSession, defaultProfile, url.searchParams.get("piboSessionId") || undefined);
4125
4255
  const events = state.timelineQuery.listTraceEvents({
@@ -1 +1 @@
1
- import{C as e,K as t,N as n,P as r,U as i,_t as a,j as o,m as s,o as c,r as l,y as u}from"./dist-SVPsM5Oi.js";import{n as d,r as f}from"./dist-tGfufz3b.js";import{html as p}from"./dist-CCHtiwhr.js";var m=1,h=2,g=3,_=180,v=4,y=181,b=5,x=182,S=6;function C(e){return e>=65&&e<=90||e>=97&&e<=122}var w=new d(e=>{let t=e.pos;for(;;){let{next:n}=e;if(n<0)break;if(n==123){let n=e.peek(1);if(n==123){if(e.pos>t)break;e.acceptToken(m,2);return}else if(n==37){if(e.pos>t)break;let n=2,r=2;for(;;){let t=e.peek(n);if(t==32||t==10)++n;else if(t==35)for(++n;;){let t=e.peek(n);if(t<0||t==10)break;n++}else if(t==45&&r==2)r=++n;else{let i=t==101&&e.peek(n+1)==110&&e.peek(n+2)==100;e.acceptToken(i?g:h,r);return}}}}if(e.advance(),n==10)break}e.pos>t&&e.acceptToken(_)});function T(e,t,n){return new d(r=>{let i=r.pos;for(;;){let{next:t}=r;if(t==123&&r.peek(1)==37){let t=2;for(;;t++){let e=r.peek(t);if(e!=32&&e!=10)break}let a=``;for(;;t++){let e=r.peek(t);if(!C(e))break;a+=String.fromCharCode(e)}if(a==e){if(r.pos>i)break;r.acceptToken(n,2);break}}else if(t<0)break;if(r.advance(),t==10)break}r.pos>i&&r.acceptToken(t)})}var E=T(`endcomment`,x,b),D=T(`endraw`,y,v),O=new d(e=>{if(e.next==35){for(e.advance();!(e.next==10||e.next<0||(e.next==37||e.next==125)&&e.peek(1)==125);)e.advance();e.acceptToken(S)}}),k={__proto__:null,contains:34,or:38,and:38,true:52,false:52,empty:54,forloop:57,tablerowloop:59,continue:61,in:131,with:197,for:199,as:201,if:237,endif:241,unless:247,endunless:251,elsif:255,else:259,case:265,endcase:269,when:273,endfor:281,tablerow:287,endtablerow:291,break:295,cycle:301,echo:305,render:309,include:313,assign:317,capture:323,endcapture:327,increment:331,decrement:335},A={__proto__:null,if:86,endif:90,elsif:94,else:98,unless:104,endunless:108,case:114,endcase:118,when:122,for:128,endfor:138,tablerow:144,endtablerow:148,break:152,continue:156,cycle:160,comment:166,endcomment:172,raw:178,endraw:184,echo:188,render:192,include:204,assign:208,capture:214,endcapture:218,increment:222,decrement:226,liquid:230},j=f.deserialize({version:14,states:"KtQYOPOOOOOP'#F{'#F{OeOaO'#CdOsQhO'#CfO!bQxO'#DSO#{OPO'#DVO$ZOPO'#D`O$iOPO'#DeO$wOPO'#DlO%VOPO'#DtO%eOSO'#EPO%jOQO'#EVO%oOPO'#EiOOOP'#Ge'#GeOOOP'#G]'#G]OOOP'#Fz'#FzQYOPOOOOOP-E9y-E9yOOQW'#Cg'#CgO&cQ!jO,59QO&jQ!jO'#G^OsQhO'#CtOOQW'#Gb'#GbOOQW'#Gc'#GcOOQW'#Gd'#GdOOQW'#G^'#G^OOOP,59n,59nO)YQhO,59nOsQhO,59rOsQhO,59vO)dQhO,59xOsQhO,59{OsQhO,5:QOsQhO,5:UO!]QhO,5:XO!]QhO,5:aO)iQhO,5:eO)nQhO,5:gO)sQhO,5:iO)xQhO,5:lO)}QhO,5:rOsQhO,5:wOsQhO,5:yOsQhO,5;POsQhO,5;ROsQhO,5;UOsQhO,5;YOsQhO,5;[O+^QhO,5;^O+eOPO'#CdOOOP,59q,59qO#{OPO,59qO+sQxO'#DYOOOP,59z,59zO$ZOPO,59zO+xQxO'#DcOOOP,5:P,5:PO$iOPO,5:PO+}QxO'#DhOOOP,5:W,5:WO$wOPO,5:WO,SQxO'#DrOOOP,5:`,5:`O%VOPO,5:`O,XQxO'#DwOOOS'#GQ'#GQO,^OSO'#ESO,fOSO,5:kOOOQ'#GR'#GRO,kOQO'#EYO,sOQO,5:qOOOP,5;T,5;TO%oOPO,5;TO,xQxO'#ElOOOP-E9x-E9xO,}Q#|O,59SOsQhO,59VOsQhO,59WOsQhO,59WO-SQhO'#C}OOQW'#F|'#F|O-XQhO1G.lOOOP1G.l1G.lOsQhO,59WOsQhO,59[O-rQ!jO,59`O-yQ!jO1G/YO.QQhO1G/YOOOP1G/Y1G/YO.YQ!jO1G/^O.aQ!jO1G/bOOOP1G/d1G/dO.hQ!jO1G/gO.oQ!jO1G/lO.vQ!jO1G/pO/QQhO1G/sO/QQhO1G/{OOOP1G0P1G0POOOP1G0R1G0RO/VQhO1G0TOOOS1G0W1G0WOOOQ1G0^1G0^O/bQ!jO1G0cO/iQ!jO1G0eO/yQ!jO1G0kO0QQ!jO1G0mO0XQ!jO1G0pO0`Q!jO1G0tO0gQ!jO1G0vOOQW'#Gh'#GhOOQW'#Gk'#GkOsQhO'#EuO0nQhO'#EtOOQW'#Gm'#GmOsQhO'#EzO0uQhO'#EyOOQW'#Go'#GoOsQhO'#FOOOQW'#Gp'#GpOOQW'#FQ'#FQOOQW'#Gq'#GqOsQhO'#FTO0|QhO'#FSOOQW'#Gs'#GsOsQhO'#FXO!]QhO'#F[O1TQhO'#FZOOQW'#Gu'#GuO!]QhO'#F`O1[QhO'#F_OOQW'#Gw'#GwOOQW'#Fd'#FdOOQW'#Ff'#FfOOQW'#Gx'#GxO1cQhO'#FgOOQW'#Gy'#GyOsQhO'#FiOOQW'#Gz'#GzOsQhO'#FkOOQW'#G{'#G{OsQhO'#FmOOQW'#G|'#G|OsQhO'#FoOOQW'#G}'#G}OsQhO'#FrO1hQhO'#FqOOQW'#HP'#HPOsQhO'#FvOOQW'#HQ'#HQOsQhO'#FxOOQW'#Gj'#GjOOQW'#GT'#GTO1oQhO1G0xOOOP1G0x1G0xOOOP1G/]1G/]O1vQhO,59tOOOP1G/f1G/fO1{QhO,59}OOOP1G/k1G/kO2QQhO,5:SOOOP1G/r1G/rO2VQhO,5:^OOOP1G/z1G/zO2[QhO,5:cOOOS-E:O-E:OOOOP1G0V1G0VO2aQxO'#ETOOOQ-E:P-E:POOOP1G0]1G0]O2fQxO'#EZOOOP1G0o1G0oO2kQhO,5;WOOQW1G.n1G.nO2pQ!jO1G.qO5aQ!jO1G.rO5hQ!jO1G.rOOQW'#DP'#DPO7vQhO,59iOOQW-E9z-E9zOOOP7+$W7+$WO9pQ!jO1G.rO9wQ!jO1G.vOsQhO1G.zO<VQhO7+$tOOOP7+$t7+$tOOOP7+$x7+$xOOOP7+$|7+$|OOOP7+%R7+%ROOOP7+%W7+%WOsQhO'#F}O<_QhO7+%[OOOP7+%[7+%[OOQW'#Gf'#GfOsQhO7+%_OsQhO7+%gO<gQhO'#GPO<lQhO7+%oOOOP7+%o7+%oO<tQhO7+%oO<yQhO7+%}OOOP7+%}7+%}OOQW'#Gg'#GgO!]QhO'#EaOsQhO'#EaOOQW'#GS'#GSO=RQhO7+&POOOP7+&P7+&POOOP7+&V7+&VO=aQhO7+&XOOOP7+&X7+&XOOOP7+&[7+&[OOOP7+&`7+&`OOOP7+&b7+&bO=iQ!jO,5;aOOQW'#Gl'#GlOOQW'#Ew'#EwOOQW,5;`,5;`O0nQhO,5;`O>xQ!jO,5;fOOQW'#Gn'#GnOOQW'#E|'#E|OOQW,5;e,5;eO0uQhO,5;eO@XQ!jO,5;jOAzQ!jO,5;oOOQW'#Gr'#GrOOQW'#FV'#FVOOQW,5;n,5;nO0|QhO,5;nOCZQ!jO,5;sO/QQhO,5;vOOQW'#Gt'#GtOOQW'#F]'#F]OOQW,5;u,5;uO1TQhO,5;uO/QQhO,5;zOOQW'#Gv'#GvOOQW'#Fb'#FbOOQW,5;y,5;yO1[QhO,5;yOEPQhO,5<ROFvQ!jO,5<TOHiQ!jO,5<VOJbQ!jO,5<XOLTQ!jO,5<ZOMvQ!jO,5<^OOQW'#HO'#HOOOQW'#Ft'#FtOOQW,5<],5<]O1hQhO,5<]O! VQ!jO,5<bO!!xQ!jO,5<dOOQW-E:R-E:ROOOP7+&d7+&dOOOP1G/`1G/`OOOP1G/i1G/iOOOP1G/n1G/nOOOP1G/x1G/xOOOP1G/}1G/}O!$kQhO,5:oO!$pQhO,5:uOOOP1G0r1G0rOOQW7+$]7+$]OsQhO1G/TO!$uQ!jO7+$fOOOP<<H`<<H`O!$|Q!jO,5<iOOQW-E9{-E9{OOOP<<Hv<<HvO!&xQ!jO<<HyO!'SQ!jO<<IROOQW,5<k,5<kOOQW-E9}-E9}OOOP<<IZ<<IZO!'^QhO<<IZOOOP<<Ii<<IiO!'fQhO,5:{O!'kQ!jO,5:{OOQW-E:Q-E:QOOOP<<Ik<<IkOOOP<<Is<<IsOOQW1G0z1G0zOOQW1G1P1G1POOQW1G1Y1G1YO!)gQhO1G1_OsQhO1G1bOOQW1G1a1G1aOsQhO1G1fOOQW1G1e1G1eO!+ZQhO1G1mO!,}QhO1G1mO!-SQhO1G1oOOQW'#GU'#GUO!.vQhO1G1qO!0mQhO1G1uOOQW1G1w1G1wOOOP1G0Z1G0ZOOOP1G0a1G0aO!2aQ!jO7+$oOOQW<<HQ<<HQOOQW'#Dq'#DqO!4]QhO'#DpOOQW'#GO'#GOO!5vQhOAN>eOOOPAN>eAN>eO!6OQhOAN>mOOOPAN>mAN>mO!6WQhOAN>uOOOPAN>uAN>uOsQhO1G0gOOQW'#Gi'#GiO!]QhO1G0gO!6`Q!jO7+&|O!7rQ!jO7+'QO!9UQhO7+'XOOQW-E:S-E:SO!:xQhO<<HZOsQhO,5:[OOQW-E9|-E9|OOOPG24PG24POOOPG24XG24XOOOPG24aG24aO!<rQ!jO7+&ROOQW7+&R7+&RO!>kQhO<<JhO!?{QhO<<JlO!A]QhO<<JsO!CPQ!jO1G/v",stateData:"!Di~O%OOSUOS~OPROQSO$zPO~O$zPOPWXQWX$yWX~OgeOjiOkiOlfOmgOnhOoiOpiO%RbO~OwkOxjO{lO!PmO!RnO!UoO!ZpO!_qO!brO!jsO!ntO!puO!rvO!uwO!{xO#QyO#SzO#Y{O#[|O#_}O#c!OO#e!PO#g!QO~OPROQSOR!UO$zPO~OPROQSOR!XO$zPO~OPROQSOR![O$zPO~OPROQSOR!_O$zPO~OPROQSOR!bO$zPO~O$|!cO~O${!fO~OPROQSOR!kO$zPO~O]!mOa!uOb!oOc!pOr!qO%T!nO~OX!tO~P%}Oe!vOX%QX]%QXa%QXb%QXc%QXr%QX%T%QXi%QXx%QXu%QX#U%QX#V%QX%S%QXn%QX#j%QX#l%QX#o%QX#s%QX#u%QX#x%QX#|%QX$T%QX$X%QX$[%QX$^%QX$`%QX$b%QX$d%QX$g%QX$k%QX$m%QX#q%QX#z%QX$i%QXf%QX%R%QX#W%QX$Q%QX$V%QX~Or!qOx!zO~PsOx!}O~Ox#TO~Ox#UO~Oo#VO~Ox#WO~Ox#XO~OnhO#V#aO#j#bO#o#eO#s#hO#u#jO#x#lO#|#oO$T#sO$X#vO$[#yO$^#{O$`#}O$b$PO$d$RO$g$TO$k$WO$m$YO~Ox$_O~P*SO$zPOPWXQWXRWX~O}$aO~O!W$cO~O!]$eO~O!g$gO~O!l$iO~O$|!cOT!vX~OT$lO~O${!fOS!|X~OS$oO~O#a$qO~O^$rO~O%R$vO~OX$yOr!qO~O]!mOa!uOb!oOc!pO%T!nO~Oi$|O~P-aOx%OO~P%}Or!qOx%OO~Ox%PO~P-aOx%QO~P-aOx%RO~P-aOx%SO~P-aOu%TOx%VO~P-aO!c%WO~Ot%^Ou%ZOx%]O~Ox%`O~P%}Ou%bOx%fO#U%aO#V#aO~P-aOx%gO~P-aOx%iO~P%}Ox%jO~P-aOx%kO~P-aOx%lO~P-aO#l%nO~P*SO#q%sO~P*SO#z%yO~P*SO$Q&PO~P*SO$V&UO~P*SOo&YO~O$i&`O~P*SOx&gO~P*SOx&hO~Ox&iO~Ox&jO~Ox&kO~Ox&lO~O!x&mO~O#O&nO~Ox&oO~O%S&pO~P-aO]!mO%T!nOX`ia`ic`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~Ob`i~P2wOX`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~P-aOt&qOXqarqaxqanqa#Vqa#jqa#oqa#sqa#uqa#xqa#|qa$Tqa$Xqa$[qa$^qa$`qa$bqa$dqa$gqa$kqa$mqa#lqa#qqa#zqa$Qqa$Vqa$iqa~Ob!oO~P2wOXdirdiidixdiudi#Udi#Vdi%Sdindi#jdi#ldi#odi#sdi#udi#xdi#|di$Tdi$Xdi$[di$^di$`di$bdi$ddi$gdi$kdi$mdi#qdi#zdi$idifdi%Rdi#Wdi$Qdi$Vdi~P-aOr!qOx&sO~Ou%TOx&vO~Oo&yO~Ou%ZOx&{O~Oo&|O~Or!qOx&}O~Ou%bOx'RO#U%aO#V#aO~Or!qOx'SO~On#ia#V#ia#j#ia#l#ia#o#ia#s#ia#u#ia#x#ia#|#ia$T#ia$X#ia$[#ia$^#ia$`#ia$b#ia$d#ia$g#ia$k#ia$m#ia~P-aOn#na#V#na#j#na#o#na#q#na#s#na#u#na#x#na#|#na$T#na$X#na$[#na$^#na$`#na$b#na$d#na$g#na$k#na$m#na~P-aOn#rax#ra#V#ra#j#ra#o#ra#s#ra#u#ra#x#ra#|#ra$T#ra$X#ra$[#ra$^#ra$`#ra$b#ra$d#ra$g#ra$k#ra$m#ra#l#ra#q#ra#z#ra$Q#ra$V#ra$i#ra~P-aOn#wa#V#wa#j#wa#o#wa#s#wa#u#wa#x#wa#z#wa#|#wa$T#wa$X#wa$[#wa$^#wa$`#wa$b#wa$d#wa$g#wa$k#wa$m#wa~P-aOu%TOn#{ax#{a#V#{a#j#{a#o#{a#s#{a#u#{a#x#{a#|#{a$T#{a$X#{a$[#{a$^#{a$`#{a$b#{a$d#{a$g#{a$k#{a$m#{a#l#{a#q#{a#z#{a$Q#{a$V#{a$i#{a~P-aOt'^Ou%ZOn$Zax$Za#V$Za#j$Za#o$Za#s$Za#u$Za#x$Za#|$Za$T$Za$X$Za$[$Za$^$Za$`$Za$b$Za$d$Za$g$Za$k$Za$m$Za#l$Za#q$Za#z$Za$Q$Za$V$Za$i$Za~On$]ax$]a#V$]a#j$]a#o$]a#s$]a#u$]a#x$]a#|$]a$T$]a$X$]a$[$]a$^$]a$`$]a$b$]a$d$]a$g$]a$k$]a$m$]a#l$]a#q$]a#z$]a$Q$]a$V$]a$i$]a~P%}Ou%bO#U%aO#V#aOn$_ax$_a#j$_a#o$_a#s$_a#u$_a#x$_a#|$_a$T$_a$X$_a$[$_a$^$_a$`$_a$b$_a$d$_a$g$_a$k$_a$m$_a#l$_a#q$_a#z$_a$Q$_a$V$_a$i$_a~P-aOn$aax$aa#V$aa#j$aa#o$aa#s$aa#u$aa#x$aa#|$aa$T$aa$X$aa$[$aa$^$aa$`$aa$b$aa$d$aa$g$aa$k$aa$m$aa#l$aa#q$aa#z$aa$Q$aa$V$aa$i$aa~P-aOn$cax$ca#V$ca#j$ca#o$ca#s$ca#u$ca#x$ca#|$ca$T$ca$X$ca$[$ca$^$ca$`$ca$b$ca$d$ca$g$ca$k$ca$m$ca#l$ca#q$ca#z$ca$Q$ca$V$ca$i$ca~P%}On$fa#V$fa#j$fa#o$fa#s$fa#u$fa#x$fa#|$fa$T$fa$X$fa$[$fa$^$fa$`$fa$b$fa$d$fa$g$fa$i$fa$k$fa$m$fa~P-aOn$jax$ja#V$ja#j$ja#o$ja#s$ja#u$ja#x$ja#|$ja$T$ja$X$ja$[$ja$^$ja$`$ja$b$ja$d$ja$g$ja$k$ja$m$ja#l$ja#q$ja#z$ja$Q$ja$V$ja$i$ja~P-aOn$lax$la#V$la#j$la#o$la#s$la#u$la#x$la#|$la$T$la$X$la$[$la$^$la$`$la$b$la$d$la$g$la$k$la$m$la#l$la#q$la#z$la$Q$la$V$la$i$la~P-aOx'dO~Ox'eO~Of'gO~P-aOu$qax$qan$qa#V$qa#j$qa#o$qa#s$qa#u$qa#x$qa#|$qa$T$qa$X$qa$[$qa$^$qa$`$qa$b$qa$d$qa$g$qa$k$qa$m$qa#l$qa#q$qa#z$qa$Q$qa$V$qa$i$qaX$qar$qa~P-aOx'lO%R'hO~P-aOx'nO%R'hO~P-aOu%ZOx'pO~Ot'qO~O#W'rOu#Tax#Ta#U#Ta#V#Tan#Ta#j#Ta#o#Ta#s#Ta#u#Ta#x#Ta#|#Ta$T#Ta$X#Ta$[#Ta$^#Ta$`#Ta$b#Ta$d#Ta$g#Ta$k#Ta$m#Ta#l#Ta#q#Ta#z#Ta$Q#Ta$V#Ta$i#Ta~P-aOu%TOn#{ix#{i#V#{i#j#{i#o#{i#s#{i#u#{i#x#{i#|#{i$T#{i$X#{i$[#{i$^#{i$`#{i$b#{i$d#{i$g#{i$k#{i$m#{i#l#{i#q#{i#z#{i$Q#{i$V#{i$i#{i~Ou%ZOn$Zix$Zi#V$Zi#j$Zi#o$Zi#s$Zi#u$Zi#x$Zi#|$Zi$T$Zi$X$Zi$[$Zi$^$Zi$`$Zi$b$Zi$d$Zi$g$Zi$k$Zi$m$Zi#l$Zi#q$Zi#z$Zi$Q$Zi$V$Zi$i$Zi~Oo'vO~Or!qOn$]ix$]i#V$]i#j$]i#o$]i#s$]i#u$]i#x$]i#|$]i$T$]i$X$]i$[$]i$^$]i$`$]i$b$]i$d$]i$g$]i$k$]i$m$]i#l$]i#q$]i#z$]i$Q$]i$V$]i$i$]i~Ou%bO#U%aO#V#aOn$_ix$_i#j$_i#o$_i#s$_i#u$_i#x$_i#|$_i$T$_i$X$_i$[$_i$^$_i$`$_i$b$_i$d$_i$g$_i$k$_i$m$_i#l$_i#q$_i#z$_i$Q$_i$V$_i$i$_i~Or!qOn$cix$ci#V$ci#j$ci#o$ci#s$ci#u$ci#x$ci#|$ci$T$ci$X$ci$[$ci$^$ci$`$ci$b$ci$d$ci$g$ci$k$ci$m$ci#l$ci#q$ci#z$ci$Q$ci$V$ci$i$ci~Ou%TOXqqrqqxqqnqq#Vqq#jqq#oqq#sqq#uqq#xqq#|qq$Tqq$Xqq$[qq$^qq$`qq$bqq$dqq$gqq$kqq$mqq#lqq#qqq#zqq$Qqq$Vqq$iqq~P-aOt'yOx!dX%R!dXn!dX#V!dX#j!dX#o!dX#s!dX#u!dX#x!dX#|!dX$Q!dX$T!dX$X!dX$[!dX$^!dX$`!dX$b!dX$d!dX$g!dX$k!dX$m!dX$V!dX~Ox'{O%R'hO~Ox'|O%R'hO~Ou%ZOx'}O~O%R'hOn$Oq#V$Oq#j$Oq#o$Oq#s$Oq#u$Oq#x$Oq#|$Oq$Q$Oq$T$Oq$X$Oq$[$Oq$^$Oq$`$Oq$b$Oq$d$Oq$g$Oq$k$Oq$m$Oq~P-aO%R'hOn$Sq#V$Sq#j$Sq#o$Sq#s$Sq#u$Sq#x$Sq#|$Sq$T$Sq$V$Sq$X$Sq$[$Sq$^$Sq$`$Sq$b$Sq$d$Sq$g$Sq$k$Sq$m$Sq~P-aOu%ZOn$Zqx$Zq#V$Zq#j$Zq#o$Zq#s$Zq#u$Zq#x$Zq#|$Zq$T$Zq$X$Zq$[$Zq$^$Zq$`$Zq$b$Zq$d$Zq$g$Zq$k$Zq$m$Zq#l$Zq#q$Zq#z$Zq$Q$Zq$V$Zq$i$Zq~Ou%TOXqyrqyxqynqy#Vqy#jqy#oqy#sqy#uqy#xqy#|qy$Tqy$Xqy$[qy$^qy$`qy$bqy$dqy$gqy$kqy$mqy#lqy#qqy#zqy$Qqy$Vqy$iqy~Ou#Tqx#Tq#U#Tq#V#Tqn#Tq#j#Tq#o#Tq#s#Tq#u#Tq#x#Tq#|#Tq$T#Tq$X#Tq$[#Tq$^#Tq$`#Tq$b#Tq$d#Tq$g#Tq$k#Tq$m#Tq#l#Tq#q#Tq#z#Tq$Q#Tq$V#Tq$i#Tq~P-aO%R'hOn$Oy#V$Oy#j$Oy#o$Oy#s$Oy#u$Oy#x$Oy#|$Oy$Q$Oy$T$Oy$X$Oy$[$Oy$^$Oy$`$Oy$b$Oy$d$Oy$g$Oy$k$Oy$m$Oy~O%R'hOn$Sy#V$Sy#j$Sy#o$Sy#s$Sy#u$Sy#x$Sy#|$Sy$T$Sy$V$Sy$X$Sy$[$Sy$^$Sy$`$Sy$b$Sy$d$Sy$g$Sy$k$Sy$m$Sy~Ou%ZOn$Zyx$Zy#V$Zy#j$Zy#o$Zy#s$Zy#u$Zy#x$Zy#|$Zy$T$Zy$X$Zy$[$Zy$^$Zy$`$Zy$b$Zy$d$Zy$g$Zy$k$Zy$m$Zy#l$Zy#q$Zy#z$Zy$Q$Zy$V$Zy$i$Zy~Ox!di%R!din!di#V!di#j!di#o!di#s!di#u!di#x!di#|!di$Q!di$T!di$X!di$[!di$^!di$`!di$b!di$d!di$g!di$k!di$m!di$V!di~P-aO",goto:"@p%uPPPPPPPP%vP%v&W'hPP'h'hPPP'hPPP'hPPPPPPPP(fP(vPP(yPP(y)ZP)kP(yP(yP(y)qP*RP(y*XP*iP(yP(y*oPP+P+Z+eP(y+kP+{P(yP(yP(yP(y,RP,c,fP(y,iP,y,|P(yP(yP-PPPP(yP(yP(y-XP-iP(yP(yP(yP-o.PP.aP-o.gP.wP-oP-oP-o.}P/_P-oP-o/e/uP-o/{P0]P-oP-o-oP-oP-oP-oP-oP-o0cP0sP-oP-oP0y1i2P2o2}3a3s3y4P4V4uPPPPPP4{5]PPP'h'h8P%v9_9k9q:X:[:l:|;Q;b;f;v<W<h<l<|=Q=b=f=v>W>h>x?Y?j?z@O@`m^OTUVWX[`!T!W!Z!^!a!j!vdReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'yQ#RrQ#SsQ&O#qQ&T#tQ'O%bR(P's!wiReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym!rck!s!x!y#Y#]$}%_%h&Z&^'_'bR$w!qm]OTUVWX[`!T!W!Z!^!a!jmTOTUVWX[`!T!W!Z!^!a!jQ!STR$`!TmUOTUVWX[`!T!W!Z!^!a!jQ!VUR$b!WmVOTUVWX[`!T!W!Z!^!a!jQ!YVR$d!ZmWOTUVWX[`!T!W!Z!^!a!ja'j&w&x'k'm't'u(Q(Ra'i&w&x'k'm't'u(Q(RQ!]WR$f!^mXOTUVWX[`!T!W!Z!^!a!jQ!`XR$h!amYOTUVWX[`!T!W!Z!^!a!jR!eYR$k!emZOTUVWX[`!T!W!Z!^!a!jR!hZR$n!hS%d#Z%eT'`&['am[OTUVWX[`!T!W!Z!^!a!jQ!i[R$p!jm$[!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#d!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%p#dR'T%qm#g!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%u#gR'U%vm#n!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%{#nR'V%|m#r!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&R#rR'Y&Sm#u!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&W#uR'[&Xm$V!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&b$VR'c&cQ`OQ!TTQ!WUQ!ZVQ!^WQ!aXQ!j[_!l`!T!W!Z!^!a!jSQO`SaQ!Ri!RTUVWX[!T!W!Z!^!a!jQ!scQ!yk^$x!s!y$}%_%h'_'bQ$}!xQ%_#YQ%h#]Q'_&ZR'b&^Q%U#QU&u%U'W'xQ'W%}R'x'fQ'k&wQ'm&xW'z'k'm(Q(RQ(Q'tR(R'uQ%[#VW&z%[']'o(SQ']&YQ'o&|R(S'vQ!dYR$j!dQ!gZR$m!gQ%e#ZR'Q%eQ$^!QQ%q#dQ%v#gQ%|#nQ&S#rQ&X#uQ&c$V_&f$^%q%v%|&S&X&cQ'a&[R'w'am_OTUVWX[`!T!W!Z!^!a!jQcRQ!weQ!xkQ!{lQ!|mQ#OoQ#PpQ#QqQ#YyQ#ZzQ#[{Q#]|Q#^}Q#_!OQ#`!PQ$s!nQ$t!oQ$u!pQ$z!uQ${!vQ%m#cQ%r#fQ%w#iQ%x#mQ%}#pQ&Z#|Q&[$OQ&]$QQ&^$SQ&_$UQ&d$XQ&e$ZQ&r$|Q&t%TQ&w%XQ&x%YQ'P%cQ'f&qQ't'XQ'u'ZQ(O'qR(T'y!viReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym#x!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%X#RQ%Y#SQ'X&OR'Z&TX%c#Z%e&['al#q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cX%c#Z%e&['aR's'Pm$]!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#c!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%o#d%qm#f!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%t#g%vm#i!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#k!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#m!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%z#n%|m#p!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&Q#r&Sm#t!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&V#u&Xm#w!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#z!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#|!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$O!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$S!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$U!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&a$V&cm$X!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Z!Q#d#g#n#r#u$V$^%q%v%|&S&X&c",nodeNames:`⚠ {{ {% {% {% {% InlineComment Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression contains CompareOp LogicOp AssignmentExpression AssignOp ) ( RangeExpression .. BooleanLiteral empty forloop tablerowloop continue StringLiteral NumberLiteral Filter | FilterName : , Tag TagName %} IfDirective Tag if EndTag endif Tag elsif Tag else UnlessDirective Tag unless EndTag endunless CaseDirective Tag case EndTag endcase Tag when ForDirective Tag for in Parameter ParameterName EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag continue Tag cycle Comment Tag comment CommentText EndTag endcomment RawDirective Tag raw RawText EndTag endraw Tag echo Tag render RenderParameter with for as Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement Tag liquid IfDirective Tag if EndTag endif UnlessDirective Tag unless EndTag endunless Tag elsif Tag else CaseDirective Tag case EndTag endcase Tag when ForDirective Tag EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag Tag cycle Tag echo Tag render Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement`,maxTerm:220,nodeProps:[[`closedBy`,1,`}}`,-4,2,3,4,5,`%}`,23,`)`],[`openedBy`,9,`{{`,22,`(`,40,`{%`],[`group`,-13,11,12,15,16,20,24,26,27,28,29,30,31,32,`Expression`]],skippedNodes:[0,6],repeatNodeCount:11,tokenData:")e~RmXY!|YZ!|]^!|pq!|qr#_rs#juv$[wx$gxy%Syz%X{|%^|}&x}!O&}!O!P'Z!Q![&g![!]'k!^!_'p!_!`'x!`!a'p!c!}(Q!}#O(y#P#Q)O#R#S(Q#T#o(Q#p#q)T#q#r)Y%W;'S(Q;'S;:j(s<%lO(Q~#RS%O~XY!|YZ!|]^!|pq!|~#bP!_!`#e~#jOb~~#mUOY#jZr#jrs$Ps;'S#j;'S;=`$U<%lO#j~$UOo~~$XP;=`<%l#j~$_P#q#r$b~$gOx~~$jUOY$gZw$gwx$Px;'S$g;'S;=`$|<%lO$g~%PP;=`<%l$g~%XOg~~%^Of~P%aQ!O!P%g!Q![&gP%jP!Q![%mP%rRpP!Q![%m!g!h%{#X#Y%{P&OR{|&X}!O&X!Q![&_P&[P!Q![&_P&dPpP!Q![&_P&lSpP!O!P%g!Q![&g!g!h%{#X#Y%{~&}Ou~~'QRuv$[!O!P%g!Q![&g~'`Q]S!O!P'f!Q![%m~'kOi~~'pOt~~'uPb~!_!`#e~'}Pe~!_!`#e_(ZW^WwQ%RT}!O(Q!Q![(Q!c!}(Q#R#S(Q#T#o(Q%W;'S(Q;'S;:j(s<%lO(Q_(vP;=`<%l(Q~)OO%T~~)TO%S~~)YOr~~)]P#q#r)`~)eOX~",tokenizers:[w,D,E,O,0,1,2,3],topRules:{Template:[0,7]},dynamicPrecedences:{190:1,191:1,192:1,194:1,195:1,196:1,197:1,199:1,200:1,201:1,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,210:1,211:1,212:1,213:1,214:1,215:1,216:1,217:1,218:1,219:1,220:1},specialized:[{term:187,get:e=>k[e]||-1},{term:39,get:e=>A[e]||-1}],tokenPrec:0});function M(e,t){return e.split(` `).map(e=>({label:e,type:t}))}var N=M(`abs append at_least at_most capitalize ceil compact concat date default divided_by downcase escape escape_once first floor join last lstrip map minus modulo newline_to_br plus prepend remove remove_first replace replace_first reverse round rstrip size slice sort sort_natural split strip strip_html strip_newlines sum times truncate truncatewords uniq upcase url_decode url_encode where`,`function`),P=M(`cycle comment endcomment raw endraw echo increment decrement liquid if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue assign capture endcapture render include`,`keyword`),F=M(`empty forloop tablerowloop in with as`,`keyword`),I=M(`first index index0 last length rindex`,`property`),L=M(`col col0 col_first col_last first index index0 last length rindex rindex0 row`,`property`);function R(e){let{state:t,pos:n}=e,r=o(t).resolveInner(n,-1).enterUnfinishedNodesBefore(n),i=r.childBefore(n)?.name||r.name;if(r.name==`FilterName`)return{type:`filter`,node:r};if(e.explicit&&i==`|`)return{type:`filter`};if(r.name==`TagName`)return{type:`tag`,node:r};if(e.explicit&&i==`{%`)return{type:`tag`};if(r.name==`PropertyName`&&r.parent.name==`MemberExpression`)return{type:`property`,node:r,target:r.parent};if(r.name==`.`&&r.parent.name==`MemberExpression`)return{type:`property`,target:r.parent};if(r.name==`MemberExpression`&&i==`.`)return{type:`property`,target:r};if(r.name==`VariableName`)return{type:`expression`,from:r.from};let a=e.matchBefore(/[\w\u00c0-\uffff]+$/);return a?{type:`expression`,from:a.from}:e.explicit&&r.name!=`CommentText`&&r.name!=`StringLiteral`&&r.name!=`NumberLiteral`&&r.name!=`InlineComment`?{type:`expression`}:null}function z(e,t,n,r){let i=[];for(;;){let n=t.getChild(`Expression`);if(!n)return[];if(n.name==`VariableName`||n.name==`forloop`||n.name==`tablerowloop`){let t=e.sliceDoc(n.from,n.to);if(t==`forloop`)return i.length?[]:I;if(t==`tablerowloop`)return i.length?[]:L;i.unshift(t);break}else if(n.name==`MemberExpression`){let r=n.getChild(`PropertyName`);r&&i.unshift(e.sliceDoc(r.from,r.to)),t=n}else if(n.name==`SubscriptExpression`){let r=n.getChildren(`Expression`)[1];i.unshift(r?.name==`StringLiteral`?e.sliceDoc(r.from+1,r.to-1):`[]`),t=n}else return[]}return r?r(i,e,n):[]}function B(e={}){let t=e.filters?e.filters.concat(N):N,n=e.tags?e.tags.concat(P):P,r=e.variables?e.variables.concat(F):F,{properties:i}=e;return e=>{let a=R(e);if(!a)return null;let o=a.from??(a.node?a.node.from:e.pos),s;return s=a.type==`filter`?t:a.type==`tag`?n:a.type==`expression`?r:z(e.state,a.target,e,i),s.length?{options:s,from:o,validFor:/^[\w\u00c0-\uffff]*$/}:null}}var V=t.inputHandler.of((e,t,n,r)=>r!=`%`||t!=n||e.state.doc.sliceString(t-1,n+1)!=`{}`?!1:(e.dispatch(e.state.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:`%%`},range:a.cursor(e.from+1)})),{scrollIntoView:!0,userEvent:`input.type`}),!0));function H(e){return t=>{let n=e.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)}}var U=l.define({name:`liquid`,parser:j.configure({props:[n({"cycle comment endcomment raw endraw echo increment decrement liquid in with as":r.keyword,"empty forloop tablerowloop":r.atom,"if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue":r.controlKeyword,"assign capture endcapture":r.definitionKeyword,contains:r.operatorKeyword,"render include":r.moduleKeyword,VariableName:r.variableName,TagName:r.tagName,FilterName:r.function(r.variableName),PropertyName:r.propertyName,CompareOp:r.compareOperator,AssignOp:r.definitionOperator,LogicOp:r.logicOperator,NumberLiteral:r.number,StringLiteral:r.string,BooleanLiteral:r.bool,InlineComment:r.lineComment,CommentText:r.blockComment,"{% %} {{ }}":r.brace,"[ ]":r.bracket,"( )":r.paren,".":r.derefOperator,", .. : |":r.punctuation}),e.add({Tag:s({closing:`%}`}),"UnlessDirective ForDirective TablerowDirective CaptureDirective":H(/^\s*(\{%-?\s*)?end\w/),IfDirective:H(/^\s*(\{%-?\s*)?(endif|else|elsif)\b/),CaseDirective:H(/^\s*(\{%-?\s*)?(endcase|when)\b/)}),u.add({"UnlessDirective ForDirective TablerowDirective CaptureDirective IfDirective CaseDirective RawDirective Comment"(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!=`Tag`?null:{from:t.to,to:n.name==`EndTag`?n.from:e.to}}})]}),languageData:{commentTokens:{line:`#`},indentOnInput:/^\s*{%-?\s*(?:end|elsif|else|when|)$/}}),W=p();function G(e){return U.configure({wrap:i(t=>t.type.isTop?{parser:e.parser,overlay:e=>e.name==`Text`||e.name==`RawText`}:null)},`liquid`)}var K=G(W.language);function q(e={}){let t=e.base||W,n=t.language==W.language?K:G(t.language);return new c(n,[t.support,n.data.of({autocomplete:B(e)}),t.language.data.of({closeBrackets:{brackets:[`{`]}}),V])}export{q as liquid};
1
+ import{C as e,K as t,N as n,P as r,U as i,_t as a,j as o,m as s,o as c,r as l,y as u}from"./dist-SVPsM5Oi.js";import{n as d,r as f}from"./dist-tGfufz3b.js";import{html as p}from"./dist-Bl9cf-yT.js";var m=1,h=2,g=3,_=180,v=4,y=181,b=5,x=182,S=6;function C(e){return e>=65&&e<=90||e>=97&&e<=122}var w=new d(e=>{let t=e.pos;for(;;){let{next:n}=e;if(n<0)break;if(n==123){let n=e.peek(1);if(n==123){if(e.pos>t)break;e.acceptToken(m,2);return}else if(n==37){if(e.pos>t)break;let n=2,r=2;for(;;){let t=e.peek(n);if(t==32||t==10)++n;else if(t==35)for(++n;;){let t=e.peek(n);if(t<0||t==10)break;n++}else if(t==45&&r==2)r=++n;else{let i=t==101&&e.peek(n+1)==110&&e.peek(n+2)==100;e.acceptToken(i?g:h,r);return}}}}if(e.advance(),n==10)break}e.pos>t&&e.acceptToken(_)});function T(e,t,n){return new d(r=>{let i=r.pos;for(;;){let{next:t}=r;if(t==123&&r.peek(1)==37){let t=2;for(;;t++){let e=r.peek(t);if(e!=32&&e!=10)break}let a=``;for(;;t++){let e=r.peek(t);if(!C(e))break;a+=String.fromCharCode(e)}if(a==e){if(r.pos>i)break;r.acceptToken(n,2);break}}else if(t<0)break;if(r.advance(),t==10)break}r.pos>i&&r.acceptToken(t)})}var E=T(`endcomment`,x,b),D=T(`endraw`,y,v),O=new d(e=>{if(e.next==35){for(e.advance();!(e.next==10||e.next<0||(e.next==37||e.next==125)&&e.peek(1)==125);)e.advance();e.acceptToken(S)}}),k={__proto__:null,contains:34,or:38,and:38,true:52,false:52,empty:54,forloop:57,tablerowloop:59,continue:61,in:131,with:197,for:199,as:201,if:237,endif:241,unless:247,endunless:251,elsif:255,else:259,case:265,endcase:269,when:273,endfor:281,tablerow:287,endtablerow:291,break:295,cycle:301,echo:305,render:309,include:313,assign:317,capture:323,endcapture:327,increment:331,decrement:335},A={__proto__:null,if:86,endif:90,elsif:94,else:98,unless:104,endunless:108,case:114,endcase:118,when:122,for:128,endfor:138,tablerow:144,endtablerow:148,break:152,continue:156,cycle:160,comment:166,endcomment:172,raw:178,endraw:184,echo:188,render:192,include:204,assign:208,capture:214,endcapture:218,increment:222,decrement:226,liquid:230},j=f.deserialize({version:14,states:"KtQYOPOOOOOP'#F{'#F{OeOaO'#CdOsQhO'#CfO!bQxO'#DSO#{OPO'#DVO$ZOPO'#D`O$iOPO'#DeO$wOPO'#DlO%VOPO'#DtO%eOSO'#EPO%jOQO'#EVO%oOPO'#EiOOOP'#Ge'#GeOOOP'#G]'#G]OOOP'#Fz'#FzQYOPOOOOOP-E9y-E9yOOQW'#Cg'#CgO&cQ!jO,59QO&jQ!jO'#G^OsQhO'#CtOOQW'#Gb'#GbOOQW'#Gc'#GcOOQW'#Gd'#GdOOQW'#G^'#G^OOOP,59n,59nO)YQhO,59nOsQhO,59rOsQhO,59vO)dQhO,59xOsQhO,59{OsQhO,5:QOsQhO,5:UO!]QhO,5:XO!]QhO,5:aO)iQhO,5:eO)nQhO,5:gO)sQhO,5:iO)xQhO,5:lO)}QhO,5:rOsQhO,5:wOsQhO,5:yOsQhO,5;POsQhO,5;ROsQhO,5;UOsQhO,5;YOsQhO,5;[O+^QhO,5;^O+eOPO'#CdOOOP,59q,59qO#{OPO,59qO+sQxO'#DYOOOP,59z,59zO$ZOPO,59zO+xQxO'#DcOOOP,5:P,5:PO$iOPO,5:PO+}QxO'#DhOOOP,5:W,5:WO$wOPO,5:WO,SQxO'#DrOOOP,5:`,5:`O%VOPO,5:`O,XQxO'#DwOOOS'#GQ'#GQO,^OSO'#ESO,fOSO,5:kOOOQ'#GR'#GRO,kOQO'#EYO,sOQO,5:qOOOP,5;T,5;TO%oOPO,5;TO,xQxO'#ElOOOP-E9x-E9xO,}Q#|O,59SOsQhO,59VOsQhO,59WOsQhO,59WO-SQhO'#C}OOQW'#F|'#F|O-XQhO1G.lOOOP1G.l1G.lOsQhO,59WOsQhO,59[O-rQ!jO,59`O-yQ!jO1G/YO.QQhO1G/YOOOP1G/Y1G/YO.YQ!jO1G/^O.aQ!jO1G/bOOOP1G/d1G/dO.hQ!jO1G/gO.oQ!jO1G/lO.vQ!jO1G/pO/QQhO1G/sO/QQhO1G/{OOOP1G0P1G0POOOP1G0R1G0RO/VQhO1G0TOOOS1G0W1G0WOOOQ1G0^1G0^O/bQ!jO1G0cO/iQ!jO1G0eO/yQ!jO1G0kO0QQ!jO1G0mO0XQ!jO1G0pO0`Q!jO1G0tO0gQ!jO1G0vOOQW'#Gh'#GhOOQW'#Gk'#GkOsQhO'#EuO0nQhO'#EtOOQW'#Gm'#GmOsQhO'#EzO0uQhO'#EyOOQW'#Go'#GoOsQhO'#FOOOQW'#Gp'#GpOOQW'#FQ'#FQOOQW'#Gq'#GqOsQhO'#FTO0|QhO'#FSOOQW'#Gs'#GsOsQhO'#FXO!]QhO'#F[O1TQhO'#FZOOQW'#Gu'#GuO!]QhO'#F`O1[QhO'#F_OOQW'#Gw'#GwOOQW'#Fd'#FdOOQW'#Ff'#FfOOQW'#Gx'#GxO1cQhO'#FgOOQW'#Gy'#GyOsQhO'#FiOOQW'#Gz'#GzOsQhO'#FkOOQW'#G{'#G{OsQhO'#FmOOQW'#G|'#G|OsQhO'#FoOOQW'#G}'#G}OsQhO'#FrO1hQhO'#FqOOQW'#HP'#HPOsQhO'#FvOOQW'#HQ'#HQOsQhO'#FxOOQW'#Gj'#GjOOQW'#GT'#GTO1oQhO1G0xOOOP1G0x1G0xOOOP1G/]1G/]O1vQhO,59tOOOP1G/f1G/fO1{QhO,59}OOOP1G/k1G/kO2QQhO,5:SOOOP1G/r1G/rO2VQhO,5:^OOOP1G/z1G/zO2[QhO,5:cOOOS-E:O-E:OOOOP1G0V1G0VO2aQxO'#ETOOOQ-E:P-E:POOOP1G0]1G0]O2fQxO'#EZOOOP1G0o1G0oO2kQhO,5;WOOQW1G.n1G.nO2pQ!jO1G.qO5aQ!jO1G.rO5hQ!jO1G.rOOQW'#DP'#DPO7vQhO,59iOOQW-E9z-E9zOOOP7+$W7+$WO9pQ!jO1G.rO9wQ!jO1G.vOsQhO1G.zO<VQhO7+$tOOOP7+$t7+$tOOOP7+$x7+$xOOOP7+$|7+$|OOOP7+%R7+%ROOOP7+%W7+%WOsQhO'#F}O<_QhO7+%[OOOP7+%[7+%[OOQW'#Gf'#GfOsQhO7+%_OsQhO7+%gO<gQhO'#GPO<lQhO7+%oOOOP7+%o7+%oO<tQhO7+%oO<yQhO7+%}OOOP7+%}7+%}OOQW'#Gg'#GgO!]QhO'#EaOsQhO'#EaOOQW'#GS'#GSO=RQhO7+&POOOP7+&P7+&POOOP7+&V7+&VO=aQhO7+&XOOOP7+&X7+&XOOOP7+&[7+&[OOOP7+&`7+&`OOOP7+&b7+&bO=iQ!jO,5;aOOQW'#Gl'#GlOOQW'#Ew'#EwOOQW,5;`,5;`O0nQhO,5;`O>xQ!jO,5;fOOQW'#Gn'#GnOOQW'#E|'#E|OOQW,5;e,5;eO0uQhO,5;eO@XQ!jO,5;jOAzQ!jO,5;oOOQW'#Gr'#GrOOQW'#FV'#FVOOQW,5;n,5;nO0|QhO,5;nOCZQ!jO,5;sO/QQhO,5;vOOQW'#Gt'#GtOOQW'#F]'#F]OOQW,5;u,5;uO1TQhO,5;uO/QQhO,5;zOOQW'#Gv'#GvOOQW'#Fb'#FbOOQW,5;y,5;yO1[QhO,5;yOEPQhO,5<ROFvQ!jO,5<TOHiQ!jO,5<VOJbQ!jO,5<XOLTQ!jO,5<ZOMvQ!jO,5<^OOQW'#HO'#HOOOQW'#Ft'#FtOOQW,5<],5<]O1hQhO,5<]O! VQ!jO,5<bO!!xQ!jO,5<dOOQW-E:R-E:ROOOP7+&d7+&dOOOP1G/`1G/`OOOP1G/i1G/iOOOP1G/n1G/nOOOP1G/x1G/xOOOP1G/}1G/}O!$kQhO,5:oO!$pQhO,5:uOOOP1G0r1G0rOOQW7+$]7+$]OsQhO1G/TO!$uQ!jO7+$fOOOP<<H`<<H`O!$|Q!jO,5<iOOQW-E9{-E9{OOOP<<Hv<<HvO!&xQ!jO<<HyO!'SQ!jO<<IROOQW,5<k,5<kOOQW-E9}-E9}OOOP<<IZ<<IZO!'^QhO<<IZOOOP<<Ii<<IiO!'fQhO,5:{O!'kQ!jO,5:{OOQW-E:Q-E:QOOOP<<Ik<<IkOOOP<<Is<<IsOOQW1G0z1G0zOOQW1G1P1G1POOQW1G1Y1G1YO!)gQhO1G1_OsQhO1G1bOOQW1G1a1G1aOsQhO1G1fOOQW1G1e1G1eO!+ZQhO1G1mO!,}QhO1G1mO!-SQhO1G1oOOQW'#GU'#GUO!.vQhO1G1qO!0mQhO1G1uOOQW1G1w1G1wOOOP1G0Z1G0ZOOOP1G0a1G0aO!2aQ!jO7+$oOOQW<<HQ<<HQOOQW'#Dq'#DqO!4]QhO'#DpOOQW'#GO'#GOO!5vQhOAN>eOOOPAN>eAN>eO!6OQhOAN>mOOOPAN>mAN>mO!6WQhOAN>uOOOPAN>uAN>uOsQhO1G0gOOQW'#Gi'#GiO!]QhO1G0gO!6`Q!jO7+&|O!7rQ!jO7+'QO!9UQhO7+'XOOQW-E:S-E:SO!:xQhO<<HZOsQhO,5:[OOQW-E9|-E9|OOOPG24PG24POOOPG24XG24XOOOPG24aG24aO!<rQ!jO7+&ROOQW7+&R7+&RO!>kQhO<<JhO!?{QhO<<JlO!A]QhO<<JsO!CPQ!jO1G/v",stateData:"!Di~O%OOSUOS~OPROQSO$zPO~O$zPOPWXQWX$yWX~OgeOjiOkiOlfOmgOnhOoiOpiO%RbO~OwkOxjO{lO!PmO!RnO!UoO!ZpO!_qO!brO!jsO!ntO!puO!rvO!uwO!{xO#QyO#SzO#Y{O#[|O#_}O#c!OO#e!PO#g!QO~OPROQSOR!UO$zPO~OPROQSOR!XO$zPO~OPROQSOR![O$zPO~OPROQSOR!_O$zPO~OPROQSOR!bO$zPO~O$|!cO~O${!fO~OPROQSOR!kO$zPO~O]!mOa!uOb!oOc!pOr!qO%T!nO~OX!tO~P%}Oe!vOX%QX]%QXa%QXb%QXc%QXr%QX%T%QXi%QXx%QXu%QX#U%QX#V%QX%S%QXn%QX#j%QX#l%QX#o%QX#s%QX#u%QX#x%QX#|%QX$T%QX$X%QX$[%QX$^%QX$`%QX$b%QX$d%QX$g%QX$k%QX$m%QX#q%QX#z%QX$i%QXf%QX%R%QX#W%QX$Q%QX$V%QX~Or!qOx!zO~PsOx!}O~Ox#TO~Ox#UO~Oo#VO~Ox#WO~Ox#XO~OnhO#V#aO#j#bO#o#eO#s#hO#u#jO#x#lO#|#oO$T#sO$X#vO$[#yO$^#{O$`#}O$b$PO$d$RO$g$TO$k$WO$m$YO~Ox$_O~P*SO$zPOPWXQWXRWX~O}$aO~O!W$cO~O!]$eO~O!g$gO~O!l$iO~O$|!cOT!vX~OT$lO~O${!fOS!|X~OS$oO~O#a$qO~O^$rO~O%R$vO~OX$yOr!qO~O]!mOa!uOb!oOc!pO%T!nO~Oi$|O~P-aOx%OO~P%}Or!qOx%OO~Ox%PO~P-aOx%QO~P-aOx%RO~P-aOx%SO~P-aOu%TOx%VO~P-aO!c%WO~Ot%^Ou%ZOx%]O~Ox%`O~P%}Ou%bOx%fO#U%aO#V#aO~P-aOx%gO~P-aOx%iO~P%}Ox%jO~P-aOx%kO~P-aOx%lO~P-aO#l%nO~P*SO#q%sO~P*SO#z%yO~P*SO$Q&PO~P*SO$V&UO~P*SOo&YO~O$i&`O~P*SOx&gO~P*SOx&hO~Ox&iO~Ox&jO~Ox&kO~Ox&lO~O!x&mO~O#O&nO~Ox&oO~O%S&pO~P-aO]!mO%T!nOX`ia`ic`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~Ob`i~P2wOX`ir`ii`ix`iu`i#U`i#V`i%S`in`i#j`i#l`i#o`i#s`i#u`i#x`i#|`i$T`i$X`i$[`i$^`i$``i$b`i$d`i$g`i$k`i$m`i#q`i#z`i$i`if`i%R`i#W`i$Q`i$V`i~P-aOt&qOXqarqaxqanqa#Vqa#jqa#oqa#sqa#uqa#xqa#|qa$Tqa$Xqa$[qa$^qa$`qa$bqa$dqa$gqa$kqa$mqa#lqa#qqa#zqa$Qqa$Vqa$iqa~Ob!oO~P2wOXdirdiidixdiudi#Udi#Vdi%Sdindi#jdi#ldi#odi#sdi#udi#xdi#|di$Tdi$Xdi$[di$^di$`di$bdi$ddi$gdi$kdi$mdi#qdi#zdi$idifdi%Rdi#Wdi$Qdi$Vdi~P-aOr!qOx&sO~Ou%TOx&vO~Oo&yO~Ou%ZOx&{O~Oo&|O~Or!qOx&}O~Ou%bOx'RO#U%aO#V#aO~Or!qOx'SO~On#ia#V#ia#j#ia#l#ia#o#ia#s#ia#u#ia#x#ia#|#ia$T#ia$X#ia$[#ia$^#ia$`#ia$b#ia$d#ia$g#ia$k#ia$m#ia~P-aOn#na#V#na#j#na#o#na#q#na#s#na#u#na#x#na#|#na$T#na$X#na$[#na$^#na$`#na$b#na$d#na$g#na$k#na$m#na~P-aOn#rax#ra#V#ra#j#ra#o#ra#s#ra#u#ra#x#ra#|#ra$T#ra$X#ra$[#ra$^#ra$`#ra$b#ra$d#ra$g#ra$k#ra$m#ra#l#ra#q#ra#z#ra$Q#ra$V#ra$i#ra~P-aOn#wa#V#wa#j#wa#o#wa#s#wa#u#wa#x#wa#z#wa#|#wa$T#wa$X#wa$[#wa$^#wa$`#wa$b#wa$d#wa$g#wa$k#wa$m#wa~P-aOu%TOn#{ax#{a#V#{a#j#{a#o#{a#s#{a#u#{a#x#{a#|#{a$T#{a$X#{a$[#{a$^#{a$`#{a$b#{a$d#{a$g#{a$k#{a$m#{a#l#{a#q#{a#z#{a$Q#{a$V#{a$i#{a~P-aOt'^Ou%ZOn$Zax$Za#V$Za#j$Za#o$Za#s$Za#u$Za#x$Za#|$Za$T$Za$X$Za$[$Za$^$Za$`$Za$b$Za$d$Za$g$Za$k$Za$m$Za#l$Za#q$Za#z$Za$Q$Za$V$Za$i$Za~On$]ax$]a#V$]a#j$]a#o$]a#s$]a#u$]a#x$]a#|$]a$T$]a$X$]a$[$]a$^$]a$`$]a$b$]a$d$]a$g$]a$k$]a$m$]a#l$]a#q$]a#z$]a$Q$]a$V$]a$i$]a~P%}Ou%bO#U%aO#V#aOn$_ax$_a#j$_a#o$_a#s$_a#u$_a#x$_a#|$_a$T$_a$X$_a$[$_a$^$_a$`$_a$b$_a$d$_a$g$_a$k$_a$m$_a#l$_a#q$_a#z$_a$Q$_a$V$_a$i$_a~P-aOn$aax$aa#V$aa#j$aa#o$aa#s$aa#u$aa#x$aa#|$aa$T$aa$X$aa$[$aa$^$aa$`$aa$b$aa$d$aa$g$aa$k$aa$m$aa#l$aa#q$aa#z$aa$Q$aa$V$aa$i$aa~P-aOn$cax$ca#V$ca#j$ca#o$ca#s$ca#u$ca#x$ca#|$ca$T$ca$X$ca$[$ca$^$ca$`$ca$b$ca$d$ca$g$ca$k$ca$m$ca#l$ca#q$ca#z$ca$Q$ca$V$ca$i$ca~P%}On$fa#V$fa#j$fa#o$fa#s$fa#u$fa#x$fa#|$fa$T$fa$X$fa$[$fa$^$fa$`$fa$b$fa$d$fa$g$fa$i$fa$k$fa$m$fa~P-aOn$jax$ja#V$ja#j$ja#o$ja#s$ja#u$ja#x$ja#|$ja$T$ja$X$ja$[$ja$^$ja$`$ja$b$ja$d$ja$g$ja$k$ja$m$ja#l$ja#q$ja#z$ja$Q$ja$V$ja$i$ja~P-aOn$lax$la#V$la#j$la#o$la#s$la#u$la#x$la#|$la$T$la$X$la$[$la$^$la$`$la$b$la$d$la$g$la$k$la$m$la#l$la#q$la#z$la$Q$la$V$la$i$la~P-aOx'dO~Ox'eO~Of'gO~P-aOu$qax$qan$qa#V$qa#j$qa#o$qa#s$qa#u$qa#x$qa#|$qa$T$qa$X$qa$[$qa$^$qa$`$qa$b$qa$d$qa$g$qa$k$qa$m$qa#l$qa#q$qa#z$qa$Q$qa$V$qa$i$qaX$qar$qa~P-aOx'lO%R'hO~P-aOx'nO%R'hO~P-aOu%ZOx'pO~Ot'qO~O#W'rOu#Tax#Ta#U#Ta#V#Tan#Ta#j#Ta#o#Ta#s#Ta#u#Ta#x#Ta#|#Ta$T#Ta$X#Ta$[#Ta$^#Ta$`#Ta$b#Ta$d#Ta$g#Ta$k#Ta$m#Ta#l#Ta#q#Ta#z#Ta$Q#Ta$V#Ta$i#Ta~P-aOu%TOn#{ix#{i#V#{i#j#{i#o#{i#s#{i#u#{i#x#{i#|#{i$T#{i$X#{i$[#{i$^#{i$`#{i$b#{i$d#{i$g#{i$k#{i$m#{i#l#{i#q#{i#z#{i$Q#{i$V#{i$i#{i~Ou%ZOn$Zix$Zi#V$Zi#j$Zi#o$Zi#s$Zi#u$Zi#x$Zi#|$Zi$T$Zi$X$Zi$[$Zi$^$Zi$`$Zi$b$Zi$d$Zi$g$Zi$k$Zi$m$Zi#l$Zi#q$Zi#z$Zi$Q$Zi$V$Zi$i$Zi~Oo'vO~Or!qOn$]ix$]i#V$]i#j$]i#o$]i#s$]i#u$]i#x$]i#|$]i$T$]i$X$]i$[$]i$^$]i$`$]i$b$]i$d$]i$g$]i$k$]i$m$]i#l$]i#q$]i#z$]i$Q$]i$V$]i$i$]i~Ou%bO#U%aO#V#aOn$_ix$_i#j$_i#o$_i#s$_i#u$_i#x$_i#|$_i$T$_i$X$_i$[$_i$^$_i$`$_i$b$_i$d$_i$g$_i$k$_i$m$_i#l$_i#q$_i#z$_i$Q$_i$V$_i$i$_i~Or!qOn$cix$ci#V$ci#j$ci#o$ci#s$ci#u$ci#x$ci#|$ci$T$ci$X$ci$[$ci$^$ci$`$ci$b$ci$d$ci$g$ci$k$ci$m$ci#l$ci#q$ci#z$ci$Q$ci$V$ci$i$ci~Ou%TOXqqrqqxqqnqq#Vqq#jqq#oqq#sqq#uqq#xqq#|qq$Tqq$Xqq$[qq$^qq$`qq$bqq$dqq$gqq$kqq$mqq#lqq#qqq#zqq$Qqq$Vqq$iqq~P-aOt'yOx!dX%R!dXn!dX#V!dX#j!dX#o!dX#s!dX#u!dX#x!dX#|!dX$Q!dX$T!dX$X!dX$[!dX$^!dX$`!dX$b!dX$d!dX$g!dX$k!dX$m!dX$V!dX~Ox'{O%R'hO~Ox'|O%R'hO~Ou%ZOx'}O~O%R'hOn$Oq#V$Oq#j$Oq#o$Oq#s$Oq#u$Oq#x$Oq#|$Oq$Q$Oq$T$Oq$X$Oq$[$Oq$^$Oq$`$Oq$b$Oq$d$Oq$g$Oq$k$Oq$m$Oq~P-aO%R'hOn$Sq#V$Sq#j$Sq#o$Sq#s$Sq#u$Sq#x$Sq#|$Sq$T$Sq$V$Sq$X$Sq$[$Sq$^$Sq$`$Sq$b$Sq$d$Sq$g$Sq$k$Sq$m$Sq~P-aOu%ZOn$Zqx$Zq#V$Zq#j$Zq#o$Zq#s$Zq#u$Zq#x$Zq#|$Zq$T$Zq$X$Zq$[$Zq$^$Zq$`$Zq$b$Zq$d$Zq$g$Zq$k$Zq$m$Zq#l$Zq#q$Zq#z$Zq$Q$Zq$V$Zq$i$Zq~Ou%TOXqyrqyxqynqy#Vqy#jqy#oqy#sqy#uqy#xqy#|qy$Tqy$Xqy$[qy$^qy$`qy$bqy$dqy$gqy$kqy$mqy#lqy#qqy#zqy$Qqy$Vqy$iqy~Ou#Tqx#Tq#U#Tq#V#Tqn#Tq#j#Tq#o#Tq#s#Tq#u#Tq#x#Tq#|#Tq$T#Tq$X#Tq$[#Tq$^#Tq$`#Tq$b#Tq$d#Tq$g#Tq$k#Tq$m#Tq#l#Tq#q#Tq#z#Tq$Q#Tq$V#Tq$i#Tq~P-aO%R'hOn$Oy#V$Oy#j$Oy#o$Oy#s$Oy#u$Oy#x$Oy#|$Oy$Q$Oy$T$Oy$X$Oy$[$Oy$^$Oy$`$Oy$b$Oy$d$Oy$g$Oy$k$Oy$m$Oy~O%R'hOn$Sy#V$Sy#j$Sy#o$Sy#s$Sy#u$Sy#x$Sy#|$Sy$T$Sy$V$Sy$X$Sy$[$Sy$^$Sy$`$Sy$b$Sy$d$Sy$g$Sy$k$Sy$m$Sy~Ou%ZOn$Zyx$Zy#V$Zy#j$Zy#o$Zy#s$Zy#u$Zy#x$Zy#|$Zy$T$Zy$X$Zy$[$Zy$^$Zy$`$Zy$b$Zy$d$Zy$g$Zy$k$Zy$m$Zy#l$Zy#q$Zy#z$Zy$Q$Zy$V$Zy$i$Zy~Ox!di%R!din!di#V!di#j!di#o!di#s!di#u!di#x!di#|!di$Q!di$T!di$X!di$[!di$^!di$`!di$b!di$d!di$g!di$k!di$m!di$V!di~P-aO",goto:"@p%uPPPPPPPP%vP%v&W'hPP'h'hPPP'hPPP'hPPPPPPPP(fP(vPP(yPP(y)ZP)kP(yP(yP(y)qP*RP(y*XP*iP(yP(y*oPP+P+Z+eP(y+kP+{P(yP(yP(yP(y,RP,c,fP(y,iP,y,|P(yP(yP-PPPP(yP(yP(y-XP-iP(yP(yP(yP-o.PP.aP-o.gP.wP-oP-oP-o.}P/_P-oP-o/e/uP-o/{P0]P-oP-o-oP-oP-oP-oP-oP-o0cP0sP-oP-oP0y1i2P2o2}3a3s3y4P4V4uPPPPPP4{5]PPP'h'h8P%v9_9k9q:X:[:l:|;Q;b;f;v<W<h<l<|=Q=b=f=v>W>h>x?Y?j?z@O@`m^OTUVWX[`!T!W!Z!^!a!j!vdReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'yQ#RrQ#SsQ&O#qQ&T#tQ'O%bR(P's!wiReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym!rck!s!x!y#Y#]$}%_%h&Z&^'_'bR$w!qm]OTUVWX[`!T!W!Z!^!a!jmTOTUVWX[`!T!W!Z!^!a!jQ!STR$`!TmUOTUVWX[`!T!W!Z!^!a!jQ!VUR$b!WmVOTUVWX[`!T!W!Z!^!a!jQ!YVR$d!ZmWOTUVWX[`!T!W!Z!^!a!ja'j&w&x'k'm't'u(Q(Ra'i&w&x'k'm't'u(Q(RQ!]WR$f!^mXOTUVWX[`!T!W!Z!^!a!jQ!`XR$h!amYOTUVWX[`!T!W!Z!^!a!jR!eYR$k!emZOTUVWX[`!T!W!Z!^!a!jR!hZR$n!hS%d#Z%eT'`&['am[OTUVWX[`!T!W!Z!^!a!jQ!i[R$p!jm$[!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#d!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%p#dR'T%qm#g!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%u#gR'U%vm#n!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%{#nR'V%|m#r!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&R#rR'Y&Sm#u!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&W#uR'[&Xm$V!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ&b$VR'c&cQ`OQ!TTQ!WUQ!ZVQ!^WQ!aXQ!j[_!l`!T!W!Z!^!a!jSQO`SaQ!Ri!RTUVWX[!T!W!Z!^!a!jQ!scQ!yk^$x!s!y$}%_%h'_'bQ$}!xQ%_#YQ%h#]Q'_&ZR'b&^Q%U#QU&u%U'W'xQ'W%}R'x'fQ'k&wQ'm&xW'z'k'm(Q(RQ(Q'tR(R'uQ%[#VW&z%[']'o(SQ']&YQ'o&|R(S'vQ!dYR$j!dQ!gZR$m!gQ%e#ZR'Q%eQ$^!QQ%q#dQ%v#gQ%|#nQ&S#rQ&X#uQ&c$V_&f$^%q%v%|&S&X&cQ'a&[R'w'am_OTUVWX[`!T!W!Z!^!a!jQcRQ!weQ!xkQ!{lQ!|mQ#OoQ#PpQ#QqQ#YyQ#ZzQ#[{Q#]|Q#^}Q#_!OQ#`!PQ$s!nQ$t!oQ$u!pQ$z!uQ${!vQ%m#cQ%r#fQ%w#iQ%x#mQ%}#pQ&Z#|Q&[$OQ&]$QQ&^$SQ&_$UQ&d$XQ&e$ZQ&r$|Q&t%TQ&w%XQ&x%YQ'P%cQ'f&qQ't'XQ'u'ZQ(O'qR(T'y!viReklmopqyz{|}!O!P!n!o!p!u!v#c#f#i#m#p#|$O$Q$S$U$X$Z$|%T%X%Y%c&q'X'Z'q'ym#x!Q#d#g#n#r#u$V$^%q%v%|&S&X&cQ%X#RQ%Y#SQ'X&OR'Z&TX%c#Z%e&['al#q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cX%c#Z%e&['aR's'Pm$]!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#c!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%o#d%qm#f!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%t#g%vm#i!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#k!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#m!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT%z#n%|m#p!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&Q#r&Sm#t!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&V#u&Xm#w!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#z!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm#|!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$O!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Q!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$S!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$U!Q#d#g#n#r#u$V$^%q%v%|&S&X&cT&a$V&cm$X!Q#d#g#n#r#u$V$^%q%v%|&S&X&cm$Z!Q#d#g#n#r#u$V$^%q%v%|&S&X&c",nodeNames:`⚠ {{ {% {% {% {% InlineComment Template Text }} Interpolation VariableName MemberExpression . PropertyName SubscriptExpression BinaryExpression contains CompareOp LogicOp AssignmentExpression AssignOp ) ( RangeExpression .. BooleanLiteral empty forloop tablerowloop continue StringLiteral NumberLiteral Filter | FilterName : , Tag TagName %} IfDirective Tag if EndTag endif Tag elsif Tag else UnlessDirective Tag unless EndTag endunless CaseDirective Tag case EndTag endcase Tag when ForDirective Tag for in Parameter ParameterName EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag continue Tag cycle Comment Tag comment CommentText EndTag endcomment RawDirective Tag raw RawText EndTag endraw Tag echo Tag render RenderParameter with for as Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement Tag liquid IfDirective Tag if EndTag endif UnlessDirective Tag unless EndTag endunless Tag elsif Tag else CaseDirective Tag case EndTag endcase Tag when ForDirective Tag EndTag endfor TableDirective Tag tablerow EndTag endtablerow Tag break Tag Tag cycle Tag echo Tag render Tag include Tag assign CaptureDirective Tag capture EndTag endcapture Tag increment Tag decrement`,maxTerm:220,nodeProps:[[`closedBy`,1,`}}`,-4,2,3,4,5,`%}`,23,`)`],[`openedBy`,9,`{{`,22,`(`,40,`{%`],[`group`,-13,11,12,15,16,20,24,26,27,28,29,30,31,32,`Expression`]],skippedNodes:[0,6],repeatNodeCount:11,tokenData:")e~RmXY!|YZ!|]^!|pq!|qr#_rs#juv$[wx$gxy%Syz%X{|%^|}&x}!O&}!O!P'Z!Q![&g![!]'k!^!_'p!_!`'x!`!a'p!c!}(Q!}#O(y#P#Q)O#R#S(Q#T#o(Q#p#q)T#q#r)Y%W;'S(Q;'S;:j(s<%lO(Q~#RS%O~XY!|YZ!|]^!|pq!|~#bP!_!`#e~#jOb~~#mUOY#jZr#jrs$Ps;'S#j;'S;=`$U<%lO#j~$UOo~~$XP;=`<%l#j~$_P#q#r$b~$gOx~~$jUOY$gZw$gwx$Px;'S$g;'S;=`$|<%lO$g~%PP;=`<%l$g~%XOg~~%^Of~P%aQ!O!P%g!Q![&gP%jP!Q![%mP%rRpP!Q![%m!g!h%{#X#Y%{P&OR{|&X}!O&X!Q![&_P&[P!Q![&_P&dPpP!Q![&_P&lSpP!O!P%g!Q![&g!g!h%{#X#Y%{~&}Ou~~'QRuv$[!O!P%g!Q![&g~'`Q]S!O!P'f!Q![%m~'kOi~~'pOt~~'uPb~!_!`#e~'}Pe~!_!`#e_(ZW^WwQ%RT}!O(Q!Q![(Q!c!}(Q#R#S(Q#T#o(Q%W;'S(Q;'S;:j(s<%lO(Q_(vP;=`<%l(Q~)OO%T~~)TO%S~~)YOr~~)]P#q#r)`~)eOX~",tokenizers:[w,D,E,O,0,1,2,3],topRules:{Template:[0,7]},dynamicPrecedences:{190:1,191:1,192:1,194:1,195:1,196:1,197:1,199:1,200:1,201:1,202:1,203:1,204:1,205:1,206:1,207:1,208:1,209:1,210:1,211:1,212:1,213:1,214:1,215:1,216:1,217:1,218:1,219:1,220:1},specialized:[{term:187,get:e=>k[e]||-1},{term:39,get:e=>A[e]||-1}],tokenPrec:0});function M(e,t){return e.split(` `).map(e=>({label:e,type:t}))}var N=M(`abs append at_least at_most capitalize ceil compact concat date default divided_by downcase escape escape_once first floor join last lstrip map minus modulo newline_to_br plus prepend remove remove_first replace replace_first reverse round rstrip size slice sort sort_natural split strip strip_html strip_newlines sum times truncate truncatewords uniq upcase url_decode url_encode where`,`function`),P=M(`cycle comment endcomment raw endraw echo increment decrement liquid if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue assign capture endcapture render include`,`keyword`),F=M(`empty forloop tablerowloop in with as`,`keyword`),I=M(`first index index0 last length rindex`,`property`),L=M(`col col0 col_first col_last first index index0 last length rindex rindex0 row`,`property`);function R(e){let{state:t,pos:n}=e,r=o(t).resolveInner(n,-1).enterUnfinishedNodesBefore(n),i=r.childBefore(n)?.name||r.name;if(r.name==`FilterName`)return{type:`filter`,node:r};if(e.explicit&&i==`|`)return{type:`filter`};if(r.name==`TagName`)return{type:`tag`,node:r};if(e.explicit&&i==`{%`)return{type:`tag`};if(r.name==`PropertyName`&&r.parent.name==`MemberExpression`)return{type:`property`,node:r,target:r.parent};if(r.name==`.`&&r.parent.name==`MemberExpression`)return{type:`property`,target:r.parent};if(r.name==`MemberExpression`&&i==`.`)return{type:`property`,target:r};if(r.name==`VariableName`)return{type:`expression`,from:r.from};let a=e.matchBefore(/[\w\u00c0-\uffff]+$/);return a?{type:`expression`,from:a.from}:e.explicit&&r.name!=`CommentText`&&r.name!=`StringLiteral`&&r.name!=`NumberLiteral`&&r.name!=`InlineComment`?{type:`expression`}:null}function z(e,t,n,r){let i=[];for(;;){let n=t.getChild(`Expression`);if(!n)return[];if(n.name==`VariableName`||n.name==`forloop`||n.name==`tablerowloop`){let t=e.sliceDoc(n.from,n.to);if(t==`forloop`)return i.length?[]:I;if(t==`tablerowloop`)return i.length?[]:L;i.unshift(t);break}else if(n.name==`MemberExpression`){let r=n.getChild(`PropertyName`);r&&i.unshift(e.sliceDoc(r.from,r.to)),t=n}else if(n.name==`SubscriptExpression`){let r=n.getChildren(`Expression`)[1];i.unshift(r?.name==`StringLiteral`?e.sliceDoc(r.from+1,r.to-1):`[]`),t=n}else return[]}return r?r(i,e,n):[]}function B(e={}){let t=e.filters?e.filters.concat(N):N,n=e.tags?e.tags.concat(P):P,r=e.variables?e.variables.concat(F):F,{properties:i}=e;return e=>{let a=R(e);if(!a)return null;let o=a.from??(a.node?a.node.from:e.pos),s;return s=a.type==`filter`?t:a.type==`tag`?n:a.type==`expression`?r:z(e.state,a.target,e,i),s.length?{options:s,from:o,validFor:/^[\w\u00c0-\uffff]*$/}:null}}var V=t.inputHandler.of((e,t,n,r)=>r!=`%`||t!=n||e.state.doc.sliceString(t-1,n+1)!=`{}`?!1:(e.dispatch(e.state.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:`%%`},range:a.cursor(e.from+1)})),{scrollIntoView:!0,userEvent:`input.type`}),!0));function H(e){return t=>{let n=e.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)}}var U=l.define({name:`liquid`,parser:j.configure({props:[n({"cycle comment endcomment raw endraw echo increment decrement liquid in with as":r.keyword,"empty forloop tablerowloop":r.atom,"if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue":r.controlKeyword,"assign capture endcapture":r.definitionKeyword,contains:r.operatorKeyword,"render include":r.moduleKeyword,VariableName:r.variableName,TagName:r.tagName,FilterName:r.function(r.variableName),PropertyName:r.propertyName,CompareOp:r.compareOperator,AssignOp:r.definitionOperator,LogicOp:r.logicOperator,NumberLiteral:r.number,StringLiteral:r.string,BooleanLiteral:r.bool,InlineComment:r.lineComment,CommentText:r.blockComment,"{% %} {{ }}":r.brace,"[ ]":r.bracket,"( )":r.paren,".":r.derefOperator,", .. : |":r.punctuation}),e.add({Tag:s({closing:`%}`}),"UnlessDirective ForDirective TablerowDirective CaptureDirective":H(/^\s*(\{%-?\s*)?end\w/),IfDirective:H(/^\s*(\{%-?\s*)?(endif|else|elsif)\b/),CaseDirective:H(/^\s*(\{%-?\s*)?(endcase|when)\b/)}),u.add({"UnlessDirective ForDirective TablerowDirective CaptureDirective IfDirective CaseDirective RawDirective Comment"(e){let t=e.firstChild,n=e.lastChild;return!t||t.name!=`Tag`?null:{from:t.to,to:n.name==`EndTag`?n.from:e.to}}})]}),languageData:{commentTokens:{line:`#`},indentOnInput:/^\s*{%-?\s*(?:end|elsif|else|when|)$/}}),W=p();function G(e){return U.configure({wrap:i(t=>t.type.isTop?{parser:e.parser,overlay:e=>e.name==`Text`||e.name==`RawText`}:null)},`liquid`)}var K=G(W.language);function q(e={}){let t=e.base||W,n=t.language==W.language?K:G(t.language);return new c(n,[t.support,n.data.of({autocomplete:B(e)}),t.language.data.of({closeBrackets:{brackets:[`{`]}}),V])}export{q as liquid};
@@ -1,4 +1,4 @@
1
- import{C as e,D as t,E as n,H as r,K as i,L as a,M as o,Mt as s,N as c,P as l,R as u,U as d,V as f,_t as p,a as m,b as h,i as g,it as ee,j as _,o as te,p as ne,s as re,vt as ie,xt as ae,y as oe,z as v}from"./dist-SVPsM5Oi.js";import{html as se,htmlCompletionSource as ce}from"./dist-CCHtiwhr.js";import{t as le}from"./index-COp5Hme0.js";var ue=class e{static create(t,n,r,i,a){return new e(t,n,r,i+(i<<8)+t+(n<<4)|0,a,[],[])}constructor(e,t,n,r,i,o,s){this.type=e,this.value=t,this.from=n,this.hash=r,this.end=i,this.children=o,this.positions=s,this.hashProp=[[a.contextHash,r]]}addChild(e,t){e.prop(a.contextHash)!=this.hash&&(e=new r(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new r(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,n)=>new r(v.none,e,t,n,this.hashProp)})}},y;(function(e){e[e.Document=1]=`Document`,e[e.CodeBlock=2]=`CodeBlock`,e[e.FencedCode=3]=`FencedCode`,e[e.Blockquote=4]=`Blockquote`,e[e.HorizontalRule=5]=`HorizontalRule`,e[e.BulletList=6]=`BulletList`,e[e.OrderedList=7]=`OrderedList`,e[e.ListItem=8]=`ListItem`,e[e.ATXHeading1=9]=`ATXHeading1`,e[e.ATXHeading2=10]=`ATXHeading2`,e[e.ATXHeading3=11]=`ATXHeading3`,e[e.ATXHeading4=12]=`ATXHeading4`,e[e.ATXHeading5=13]=`ATXHeading5`,e[e.ATXHeading6=14]=`ATXHeading6`,e[e.SetextHeading1=15]=`SetextHeading1`,e[e.SetextHeading2=16]=`SetextHeading2`,e[e.HTMLBlock=17]=`HTMLBlock`,e[e.LinkReference=18]=`LinkReference`,e[e.Paragraph=19]=`Paragraph`,e[e.CommentBlock=20]=`CommentBlock`,e[e.ProcessingInstructionBlock=21]=`ProcessingInstructionBlock`,e[e.Escape=22]=`Escape`,e[e.Entity=23]=`Entity`,e[e.HardBreak=24]=`HardBreak`,e[e.Emphasis=25]=`Emphasis`,e[e.StrongEmphasis=26]=`StrongEmphasis`,e[e.Link=27]=`Link`,e[e.Image=28]=`Image`,e[e.InlineCode=29]=`InlineCode`,e[e.HTMLTag=30]=`HTMLTag`,e[e.Comment=31]=`Comment`,e[e.ProcessingInstruction=32]=`ProcessingInstruction`,e[e.Autolink=33]=`Autolink`,e[e.HeaderMark=34]=`HeaderMark`,e[e.QuoteMark=35]=`QuoteMark`,e[e.ListMark=36]=`ListMark`,e[e.LinkMark=37]=`LinkMark`,e[e.EmphasisMark=38]=`EmphasisMark`,e[e.CodeMark=39]=`CodeMark`,e[e.CodeText=40]=`CodeText`,e[e.CodeInfo=41]=`CodeInfo`,e[e.LinkTitle=42]=`LinkTitle`,e[e.LinkLabel=43]=`LinkLabel`,e[e.URL=44]=`URL`})(y||={});var de=class{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}},fe=class{constructor(){this.text=``,this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return x(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let r=t;r<e;r++)n+=this.text.charCodeAt(r)==9?4-n%4:1;return n}findColumn(e){let t=0;for(let n=0;t<this.text.length&&n<e;t++)n+=this.text.charCodeAt(t)==9?4-n%4:1;return t}scrub(){if(!this.baseIndent)return this.text;let e=``;for(let t=0;t<this.basePos;t++)e+=` `;return e+this.text.slice(this.basePos)}};function pe(e,t,n){if(n.pos==n.text.length||e!=t.block&&n.indent>=t.stack[n.depth+1].value+n.baseIndent)return!0;if(n.indent>=n.baseIndent+4)return!1;let r=(e.type==y.OrderedList?T:w)(n,t,!1);return r>0&&(e.type!=y.BulletList||C(n,t,!1)<0)&&n.text.charCodeAt(n.pos+r-1)==e.value}var me={[y.Blockquote](e,t,n){return n.next==62?(n.markers.push(L(y.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1)),n.moveBase(n.pos+(b(n.text.charCodeAt(n.pos+1))?2:1)),e.end=t.lineStart+n.text.length,!0):!1},[y.ListItem](e,t,n){return n.indent<n.baseIndent+e.value&&n.next>-1?!1:(n.moveBaseColumn(n.baseIndent+e.value),!0)},[y.OrderedList]:pe,[y.BulletList]:pe,[y.Document](){return!0}};function b(e){return e==32||e==9||e==10||e==13}function x(e,t=0){for(;t<e.length&&b(e.charCodeAt(t));)t++;return t}function he(e,t,n){for(;t>n&&b(e.charCodeAt(t-1));)t--;return t}function S(e){if(e.next!=96&&e.next!=126)return-1;let t=e.pos+1;for(;t<e.text.length&&e.text.charCodeAt(t)==e.next;)t++;if(t<e.pos+3)return-1;if(e.next==96){for(let n=t;n<e.text.length;n++)if(e.text.charCodeAt(n)==96)return-1}return t}function ge(e){return e.next==62?e.text.charCodeAt(e.pos+1)==32?2:1:-1}function C(e,t,n){if(e.next!=42&&e.next!=45&&e.next!=95)return-1;let r=1;for(let t=e.pos+1;t<e.text.length;t++){let n=e.text.charCodeAt(t);if(n==e.next)r++;else if(!b(n))return-1}return n&&e.next==45&&ye(e)>-1&&e.depth==t.stack.length&&t.parser.leafBlockParsers.indexOf(j.SetextHeading)>-1||r<3?-1:1}function _e(e,t){for(let n=e.stack.length-1;n>=0;n--)if(e.stack[n].type==t)return!0;return!1}function w(e,t,n){return(e.next==45||e.next==43||e.next==42)&&(e.pos==e.text.length-1||b(e.text.charCodeAt(e.pos+1)))&&(!n||_e(t,y.BulletList)||e.skipSpace(e.pos+2)<e.text.length)?1:-1}function T(e,t,n){let r=e.pos,i=e.next;for(;i>=48&&i<=57;){if(r++,r==e.text.length)return-1;i=e.text.charCodeAt(r)}return r==e.pos||r>e.pos+9||i!=46&&i!=41||r<e.text.length-1&&!b(e.text.charCodeAt(r+1))||n&&!_e(t,y.OrderedList)&&(e.skipSpace(r+1)==e.text.length||r>e.pos+1||e.next!=49)?-1:r+1-e.pos}function ve(e){if(e.next!=35)return-1;let t=e.pos+1;for(;t<e.text.length&&e.text.charCodeAt(t)==35;)t++;if(t<e.text.length&&e.text.charCodeAt(t)!=32)return-1;let n=t-e.pos;return n>6?-1:n}function ye(e){if(e.next!=45&&e.next!=61||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t<e.text.length&&e.text.charCodeAt(t)==e.next;)t++;let n=t;for(;t<e.text.length&&b(e.text.charCodeAt(t));)t++;return t==e.text.length?n:-1}var E=/^[ \t]*$/,be=/-->/,xe=/\?>/,D=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,be],[/^\s*<\?/,xe],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,E],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,E]];function Se(e,t,n){if(e.next!=60)return-1;let r=e.text.slice(e.pos);for(let e=0,t=D.length-+!!n;e<t;e++)if(D[e][0].test(r))return e;return-1}function Ce(e,t){let n=e.countIndent(t,e.pos,e.indent),r=e.countIndent(e.skipSpace(t),t,n);return r>=n+5?n+1:r}function O(e,t,n){let r=e.length-1;r>=0&&e[r].to==t&&e[r].type==y.CodeText?e[r].to=n:e.push(L(y.CodeText,t,n))}var k={LinkReference:void 0,IndentedCode(e,t){let n=t.baseIndent+4;if(t.indent<n)return!1;let r=t.findColumn(n),i=e.lineStart+r,a=e.lineStart+t.text.length,o=[],s=[];for(O(o,i,a);e.nextLine()&&t.depth>=e.stack.length;)if(t.pos==t.text.length){O(s,e.lineStart-1,e.lineStart);for(let e of t.markers)s.push(e)}else if(t.indent<n)break;else{if(s.length){for(let e of s)e.type==y.CodeText?O(o,e.from,e.to):o.push(e);s=[]}O(o,e.lineStart-1,e.lineStart);for(let e of t.markers)o.push(e);a=e.lineStart+t.text.length;let n=e.lineStart+t.findColumn(t.baseIndent+4);n<a&&O(o,n,a)}return s.length&&(s=s.filter(e=>e.type!=y.CodeText),s.length&&(t.markers=s.concat(t.markers))),e.addNode(e.buffer.writeElements(o,-i).finish(y.CodeBlock,a-i),i),!0},FencedCode(e,t){let n=S(t);if(n<0)return!1;let r=e.lineStart+t.pos,i=t.next,a=n-t.pos,o=t.skipSpace(n),s=he(t.text,t.text.length,o),c=[L(y.CodeMark,r,r+a)];o<s&&c.push(L(y.CodeInfo,e.lineStart+o,e.lineStart+s));for(let n=!0,r=!0,o=!1;e.nextLine()&&t.depth>=e.stack.length;n=!1){let s=t.pos;if(t.indent-t.baseIndent<4)for(;s<t.text.length&&t.text.charCodeAt(s)==i;)s++;if(s-t.pos>=a&&t.skipSpace(s)==t.text.length){for(let e of t.markers)c.push(e);r&&o&&O(c,e.lineStart-1,e.lineStart),c.push(L(y.CodeMark,e.lineStart+t.pos,e.lineStart+s)),e.nextLine();break}else{o=!0,n||(O(c,e.lineStart-1,e.lineStart),r=!1);for(let e of t.markers)c.push(e);let i=e.lineStart+t.basePos,a=e.lineStart+t.text.length;i<a&&(O(c,i,a),r=!1)}}return e.addNode(e.buffer.writeElements(c,-r).finish(y.FencedCode,e.prevLineEnd()-r),r),!0},Blockquote(e,t){let n=ge(t);return n<0?!1:(e.startContext(y.Blockquote,t.pos),e.addNode(y.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1),t.moveBase(t.pos+n),null)},HorizontalRule(e,t){if(C(t,e,!1)<0)return!1;let n=e.lineStart+t.pos;return e.nextLine(),e.addNode(y.HorizontalRule,n),!0},BulletList(e,t){let n=w(t,e,!1);if(n<0)return!1;e.block.type!=y.BulletList&&e.startContext(y.BulletList,t.basePos,t.next);let r=Ce(t,t.pos+1);return e.startContext(y.ListItem,t.basePos,r-t.baseIndent),e.addNode(y.ListMark,e.lineStart+t.pos,e.lineStart+t.pos+n),t.moveBaseColumn(r),null},OrderedList(e,t){let n=T(t,e,!1);if(n<0)return!1;e.block.type!=y.OrderedList&&e.startContext(y.OrderedList,t.basePos,t.text.charCodeAt(t.pos+n-1));let r=Ce(t,t.pos+n);return e.startContext(y.ListItem,t.basePos,r-t.baseIndent),e.addNode(y.ListMark,e.lineStart+t.pos,e.lineStart+t.pos+n),t.moveBaseColumn(r),null},ATXHeading(e,t){let n=ve(t);if(n<0)return!1;let r=t.pos,i=e.lineStart+r,a=he(t.text,t.text.length,r),o=a;for(;o>r&&t.text.charCodeAt(o-1)==t.next;)o--;(o==a||o==r||!b(t.text.charCodeAt(o-1)))&&(o=t.text.length);let s=e.buffer.write(y.HeaderMark,0,n).writeElements(e.parser.parseInline(t.text.slice(r+n+1,o),i+n+1),-i);o<t.text.length&&s.write(y.HeaderMark,o-r,a-r);let c=s.finish(y.ATXHeading1-1+n,t.text.length-r);return e.nextLine(),e.addNode(c,i),!0},HTMLBlock(e,t){let n=Se(t,e,!1);if(n<0)return!1;let r=e.lineStart+t.pos,i=D[n][1],a=[],o=i!=E;for(;!i.test(t.text)&&e.nextLine();){if(t.depth<e.stack.length){o=!1;break}for(let e of t.markers)a.push(e)}o&&e.nextLine();let s=i==be?y.CommentBlock:i==xe?y.ProcessingInstructionBlock:y.HTMLBlock,c=e.prevLineEnd();return e.addNode(e.buffer.writeElements(a,-r).finish(s,c-r),r),!0},SetextHeading:void 0},we=class{constructor(e){this.stage=0,this.elts=[],this.pos=0,this.start=e.start,this.advance(e.content)}nextLine(e,t,n){if(this.stage==-1)return!1;let r=n.content+`
1
+ import{C as e,D as t,E as n,H as r,K as i,L as a,M as o,Mt as s,N as c,P as l,R as u,U as d,V as f,_t as p,a as m,b as h,i as g,it as ee,j as _,o as te,p as ne,s as re,vt as ie,xt as ae,y as oe,z as v}from"./dist-SVPsM5Oi.js";import{html as se,htmlCompletionSource as ce}from"./dist-Bl9cf-yT.js";import{t as le}from"./index-CXXHizfD.js";var ue=class e{static create(t,n,r,i,a){return new e(t,n,r,i+(i<<8)+t+(n<<4)|0,a,[],[])}constructor(e,t,n,r,i,o,s){this.type=e,this.value=t,this.from=n,this.hash=r,this.end=i,this.children=o,this.positions=s,this.hashProp=[[a.contextHash,r]]}addChild(e,t){e.prop(a.contextHash)!=this.hash&&(e=new r(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new r(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,n)=>new r(v.none,e,t,n,this.hashProp)})}},y;(function(e){e[e.Document=1]=`Document`,e[e.CodeBlock=2]=`CodeBlock`,e[e.FencedCode=3]=`FencedCode`,e[e.Blockquote=4]=`Blockquote`,e[e.HorizontalRule=5]=`HorizontalRule`,e[e.BulletList=6]=`BulletList`,e[e.OrderedList=7]=`OrderedList`,e[e.ListItem=8]=`ListItem`,e[e.ATXHeading1=9]=`ATXHeading1`,e[e.ATXHeading2=10]=`ATXHeading2`,e[e.ATXHeading3=11]=`ATXHeading3`,e[e.ATXHeading4=12]=`ATXHeading4`,e[e.ATXHeading5=13]=`ATXHeading5`,e[e.ATXHeading6=14]=`ATXHeading6`,e[e.SetextHeading1=15]=`SetextHeading1`,e[e.SetextHeading2=16]=`SetextHeading2`,e[e.HTMLBlock=17]=`HTMLBlock`,e[e.LinkReference=18]=`LinkReference`,e[e.Paragraph=19]=`Paragraph`,e[e.CommentBlock=20]=`CommentBlock`,e[e.ProcessingInstructionBlock=21]=`ProcessingInstructionBlock`,e[e.Escape=22]=`Escape`,e[e.Entity=23]=`Entity`,e[e.HardBreak=24]=`HardBreak`,e[e.Emphasis=25]=`Emphasis`,e[e.StrongEmphasis=26]=`StrongEmphasis`,e[e.Link=27]=`Link`,e[e.Image=28]=`Image`,e[e.InlineCode=29]=`InlineCode`,e[e.HTMLTag=30]=`HTMLTag`,e[e.Comment=31]=`Comment`,e[e.ProcessingInstruction=32]=`ProcessingInstruction`,e[e.Autolink=33]=`Autolink`,e[e.HeaderMark=34]=`HeaderMark`,e[e.QuoteMark=35]=`QuoteMark`,e[e.ListMark=36]=`ListMark`,e[e.LinkMark=37]=`LinkMark`,e[e.EmphasisMark=38]=`EmphasisMark`,e[e.CodeMark=39]=`CodeMark`,e[e.CodeText=40]=`CodeText`,e[e.CodeInfo=41]=`CodeInfo`,e[e.LinkTitle=42]=`LinkTitle`,e[e.LinkLabel=43]=`LinkLabel`,e[e.URL=44]=`URL`})(y||={});var de=class{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}},fe=class{constructor(){this.text=``,this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return x(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let r=t;r<e;r++)n+=this.text.charCodeAt(r)==9?4-n%4:1;return n}findColumn(e){let t=0;for(let n=0;t<this.text.length&&n<e;t++)n+=this.text.charCodeAt(t)==9?4-n%4:1;return t}scrub(){if(!this.baseIndent)return this.text;let e=``;for(let t=0;t<this.basePos;t++)e+=` `;return e+this.text.slice(this.basePos)}};function pe(e,t,n){if(n.pos==n.text.length||e!=t.block&&n.indent>=t.stack[n.depth+1].value+n.baseIndent)return!0;if(n.indent>=n.baseIndent+4)return!1;let r=(e.type==y.OrderedList?T:w)(n,t,!1);return r>0&&(e.type!=y.BulletList||C(n,t,!1)<0)&&n.text.charCodeAt(n.pos+r-1)==e.value}var me={[y.Blockquote](e,t,n){return n.next==62?(n.markers.push(L(y.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1)),n.moveBase(n.pos+(b(n.text.charCodeAt(n.pos+1))?2:1)),e.end=t.lineStart+n.text.length,!0):!1},[y.ListItem](e,t,n){return n.indent<n.baseIndent+e.value&&n.next>-1?!1:(n.moveBaseColumn(n.baseIndent+e.value),!0)},[y.OrderedList]:pe,[y.BulletList]:pe,[y.Document](){return!0}};function b(e){return e==32||e==9||e==10||e==13}function x(e,t=0){for(;t<e.length&&b(e.charCodeAt(t));)t++;return t}function he(e,t,n){for(;t>n&&b(e.charCodeAt(t-1));)t--;return t}function S(e){if(e.next!=96&&e.next!=126)return-1;let t=e.pos+1;for(;t<e.text.length&&e.text.charCodeAt(t)==e.next;)t++;if(t<e.pos+3)return-1;if(e.next==96){for(let n=t;n<e.text.length;n++)if(e.text.charCodeAt(n)==96)return-1}return t}function ge(e){return e.next==62?e.text.charCodeAt(e.pos+1)==32?2:1:-1}function C(e,t,n){if(e.next!=42&&e.next!=45&&e.next!=95)return-1;let r=1;for(let t=e.pos+1;t<e.text.length;t++){let n=e.text.charCodeAt(t);if(n==e.next)r++;else if(!b(n))return-1}return n&&e.next==45&&ye(e)>-1&&e.depth==t.stack.length&&t.parser.leafBlockParsers.indexOf(j.SetextHeading)>-1||r<3?-1:1}function _e(e,t){for(let n=e.stack.length-1;n>=0;n--)if(e.stack[n].type==t)return!0;return!1}function w(e,t,n){return(e.next==45||e.next==43||e.next==42)&&(e.pos==e.text.length-1||b(e.text.charCodeAt(e.pos+1)))&&(!n||_e(t,y.BulletList)||e.skipSpace(e.pos+2)<e.text.length)?1:-1}function T(e,t,n){let r=e.pos,i=e.next;for(;i>=48&&i<=57;){if(r++,r==e.text.length)return-1;i=e.text.charCodeAt(r)}return r==e.pos||r>e.pos+9||i!=46&&i!=41||r<e.text.length-1&&!b(e.text.charCodeAt(r+1))||n&&!_e(t,y.OrderedList)&&(e.skipSpace(r+1)==e.text.length||r>e.pos+1||e.next!=49)?-1:r+1-e.pos}function ve(e){if(e.next!=35)return-1;let t=e.pos+1;for(;t<e.text.length&&e.text.charCodeAt(t)==35;)t++;if(t<e.text.length&&e.text.charCodeAt(t)!=32)return-1;let n=t-e.pos;return n>6?-1:n}function ye(e){if(e.next!=45&&e.next!=61||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t<e.text.length&&e.text.charCodeAt(t)==e.next;)t++;let n=t;for(;t<e.text.length&&b(e.text.charCodeAt(t));)t++;return t==e.text.length?n:-1}var E=/^[ \t]*$/,be=/-->/,xe=/\?>/,D=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,be],[/^\s*<\?/,xe],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,E],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,E]];function Se(e,t,n){if(e.next!=60)return-1;let r=e.text.slice(e.pos);for(let e=0,t=D.length-+!!n;e<t;e++)if(D[e][0].test(r))return e;return-1}function Ce(e,t){let n=e.countIndent(t,e.pos,e.indent),r=e.countIndent(e.skipSpace(t),t,n);return r>=n+5?n+1:r}function O(e,t,n){let r=e.length-1;r>=0&&e[r].to==t&&e[r].type==y.CodeText?e[r].to=n:e.push(L(y.CodeText,t,n))}var k={LinkReference:void 0,IndentedCode(e,t){let n=t.baseIndent+4;if(t.indent<n)return!1;let r=t.findColumn(n),i=e.lineStart+r,a=e.lineStart+t.text.length,o=[],s=[];for(O(o,i,a);e.nextLine()&&t.depth>=e.stack.length;)if(t.pos==t.text.length){O(s,e.lineStart-1,e.lineStart);for(let e of t.markers)s.push(e)}else if(t.indent<n)break;else{if(s.length){for(let e of s)e.type==y.CodeText?O(o,e.from,e.to):o.push(e);s=[]}O(o,e.lineStart-1,e.lineStart);for(let e of t.markers)o.push(e);a=e.lineStart+t.text.length;let n=e.lineStart+t.findColumn(t.baseIndent+4);n<a&&O(o,n,a)}return s.length&&(s=s.filter(e=>e.type!=y.CodeText),s.length&&(t.markers=s.concat(t.markers))),e.addNode(e.buffer.writeElements(o,-i).finish(y.CodeBlock,a-i),i),!0},FencedCode(e,t){let n=S(t);if(n<0)return!1;let r=e.lineStart+t.pos,i=t.next,a=n-t.pos,o=t.skipSpace(n),s=he(t.text,t.text.length,o),c=[L(y.CodeMark,r,r+a)];o<s&&c.push(L(y.CodeInfo,e.lineStart+o,e.lineStart+s));for(let n=!0,r=!0,o=!1;e.nextLine()&&t.depth>=e.stack.length;n=!1){let s=t.pos;if(t.indent-t.baseIndent<4)for(;s<t.text.length&&t.text.charCodeAt(s)==i;)s++;if(s-t.pos>=a&&t.skipSpace(s)==t.text.length){for(let e of t.markers)c.push(e);r&&o&&O(c,e.lineStart-1,e.lineStart),c.push(L(y.CodeMark,e.lineStart+t.pos,e.lineStart+s)),e.nextLine();break}else{o=!0,n||(O(c,e.lineStart-1,e.lineStart),r=!1);for(let e of t.markers)c.push(e);let i=e.lineStart+t.basePos,a=e.lineStart+t.text.length;i<a&&(O(c,i,a),r=!1)}}return e.addNode(e.buffer.writeElements(c,-r).finish(y.FencedCode,e.prevLineEnd()-r),r),!0},Blockquote(e,t){let n=ge(t);return n<0?!1:(e.startContext(y.Blockquote,t.pos),e.addNode(y.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1),t.moveBase(t.pos+n),null)},HorizontalRule(e,t){if(C(t,e,!1)<0)return!1;let n=e.lineStart+t.pos;return e.nextLine(),e.addNode(y.HorizontalRule,n),!0},BulletList(e,t){let n=w(t,e,!1);if(n<0)return!1;e.block.type!=y.BulletList&&e.startContext(y.BulletList,t.basePos,t.next);let r=Ce(t,t.pos+1);return e.startContext(y.ListItem,t.basePos,r-t.baseIndent),e.addNode(y.ListMark,e.lineStart+t.pos,e.lineStart+t.pos+n),t.moveBaseColumn(r),null},OrderedList(e,t){let n=T(t,e,!1);if(n<0)return!1;e.block.type!=y.OrderedList&&e.startContext(y.OrderedList,t.basePos,t.text.charCodeAt(t.pos+n-1));let r=Ce(t,t.pos+n);return e.startContext(y.ListItem,t.basePos,r-t.baseIndent),e.addNode(y.ListMark,e.lineStart+t.pos,e.lineStart+t.pos+n),t.moveBaseColumn(r),null},ATXHeading(e,t){let n=ve(t);if(n<0)return!1;let r=t.pos,i=e.lineStart+r,a=he(t.text,t.text.length,r),o=a;for(;o>r&&t.text.charCodeAt(o-1)==t.next;)o--;(o==a||o==r||!b(t.text.charCodeAt(o-1)))&&(o=t.text.length);let s=e.buffer.write(y.HeaderMark,0,n).writeElements(e.parser.parseInline(t.text.slice(r+n+1,o),i+n+1),-i);o<t.text.length&&s.write(y.HeaderMark,o-r,a-r);let c=s.finish(y.ATXHeading1-1+n,t.text.length-r);return e.nextLine(),e.addNode(c,i),!0},HTMLBlock(e,t){let n=Se(t,e,!1);if(n<0)return!1;let r=e.lineStart+t.pos,i=D[n][1],a=[],o=i!=E;for(;!i.test(t.text)&&e.nextLine();){if(t.depth<e.stack.length){o=!1;break}for(let e of t.markers)a.push(e)}o&&e.nextLine();let s=i==be?y.CommentBlock:i==xe?y.ProcessingInstructionBlock:y.HTMLBlock,c=e.prevLineEnd();return e.addNode(e.buffer.writeElements(a,-r).finish(s,c-r),r),!0},SetextHeading:void 0},we=class{constructor(e){this.stage=0,this.elts=[],this.pos=0,this.start=e.start,this.advance(e.content)}nextLine(e,t,n){if(this.stage==-1)return!1;let r=n.content+`
2
2
  `+t.scrub(),i=this.advance(r);return i>-1&&i<r.length?this.complete(e,n,i):!1}finish(e,t){return(this.stage==2||this.stage==3)&&x(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,L(y.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;)if(this.stage==-1)return-1;else if(this.stage==0){if(!this.nextStage(Be(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(L(y.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(Re(e,x(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=x(e,this.pos),n=0;if(t>this.pos){let r=ze(e,t,this.start);if(r){let t=A(e,r.to-this.start);t>0&&(this.nextStage(r),n=t)}}return n||=A(e,this.pos),n>0&&n<e.length?n:-1}else return A(e,this.pos)}};function A(e,t){for(;t<e.length;t++){let n=e.charCodeAt(t);if(n==10)break;if(!b(n))return-1}return t}var Te=class{nextLine(e,t,n){let r=t.depth<e.stack.length?-1:ye(t),i=t.next;if(r<0)return!1;let a=L(y.HeaderMark,e.lineStart+t.pos,e.lineStart+r);return e.nextLine(),e.addLeafElement(n,L(i==61?y.SetextHeading1:y.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),a])),!0}finish(){return!1}},j={LinkReference(e,t){return t.content.charCodeAt(0)==91?new we(t):null},SetextHeading(){return new Te}},Ee=[(e,t)=>ve(t)>=0,(e,t)=>S(t)>=0,(e,t)=>ge(t)>=0,(e,t)=>w(t,e,!0)>=0,(e,t)=>T(t,e,!0)>=0,(e,t)=>C(t,e,!0)>=0,(e,t)=>Se(t,e,!0)>=0],De={text:``,end:0},Oe=class{constructor(e,t,n,r){this.parser=e,this.input=t,this.ranges=r,this.line=new fe,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=r[r.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=r[0].from,this.block=ue.create(y.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new He(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let t=0;;){let n=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;t<e.markers.length&&(!n||e.markers[t].from<n.end);){let n=e.markers[t++];this.addNode(n.type,n.from,n.to)}if(!n)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;start:for(;;){for(let t of this.parser.blockParsers)if(t){let n=t(this,e);if(n!=0){if(n==1)return null;e.forward();continue start}}break}let t=new de(this.lineStart+e.pos,e.text.slice(e.pos));for(let e of this.parser.leafBlockParsers)if(e){let n=e(this,t);n&&t.parsers.push(n)}lines:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break lines}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
3
3
  `+e.scrub();for(let n of e.markers)t.marks.push(n)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw RangeError(`Can't move stoppedAt forward`);this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=Ue(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=De;if(t.end=e,e>=this.to)t.text=``;else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let e=this.absoluteLineStart,n=this.rangeI;for(;this.ranges[n].to<t.end;){n++;let r=this.ranges[n].from,i=this.lineChunkAt(r);t.end=r+i.length,t.text=t.text.slice(0,this.ranges[n-1].to-e)+i,e=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:n}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=n,e.reset(t);e.depth<this.stack.length;e.depth++){let t=this.stack[e.depth],n=this.parser.skipContextMarkup[t.type];if(!n)throw Error(`Unhandled block context `+y[t.type]);let r=this.line.markers.length;if(!n(t,this,e)){this.line.markers.length>r&&(t.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),n;if(this.input.lineChunks)n=t==`
4
4
  `?``:t;else{let e=t.indexOf(`
@@ -1 +1 @@
1
- import{N as e,P as t,U as n,o as r,r as i}from"./dist-SVPsM5Oi.js";import{i as a,r as o}from"./dist-tGfufz3b.js";import{r as s}from"./dist-CxWQqjbA.js";import{html as c}from"./dist-CCHtiwhr.js";var l=o.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:`!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso`,nodeNames:`⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity`,maxTerm:36,nodeProps:[[`isolate`,-3,3,13,17,``]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new a(`b~RP#q#rU~XP#q#r[~aOT~~`,17,4),new a("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new a(`[~RPwxU~ZOp~~`,11,15),new a(`[~RPrsU~ZOn~~`,11,14),new a("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new a("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),u=s.parser.configure({top:`SingleExpression`}),d=l.configure({props:[e({Text:t.content,Is:t.definitionOperator,AttributeName:t.attributeName,VueAttributeName:t.keyword,Identifier:t.variableName,"AttributeValue ScriptAttributeValue":t.attributeValue,Entity:t.character,"{{ }}":t.brace,"@ :":t.punctuation})]}),f={parser:u},p=d.configure({wrap:n((e,t)=>e.name==`InterpolationContent`?f:null)}),m=d.configure({wrap:n((e,t)=>e.name==`AttributeScript`?f:null),top:`Attribute`}),h={parser:p},g={parser:m},_=c();function v(e){return e.configure({dialect:`selfClosing`,wrap:n(b)},`vue`)}var y=v(_.language);function b(e,t){switch(e.name){case`Attribute`:return/^(@|:|v-)/.test(t.read(e.from,e.from+2))?g:null;case`Text`:return h}return null}function x(e={}){let t=_;if(e.base){if(e.base.language.name!=`html`||!(e.base.language instanceof i))throw RangeError(`The base option must be the result of calling html(...)`);t=e.base}return new r(t.language==_.language?y:v(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:[`{`,`"`]}})])}export{x as vue};
1
+ import{N as e,P as t,U as n,o as r,r as i}from"./dist-SVPsM5Oi.js";import{i as a,r as o}from"./dist-tGfufz3b.js";import{r as s}from"./dist-BzmsjE6I.js";import{html as c}from"./dist-Bl9cf-yT.js";var l=o.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:`!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso`,nodeNames:`⚠ Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity`,maxTerm:36,nodeProps:[[`isolate`,-3,3,13,17,``]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new a(`b~RP#q#rU~XP#q#r[~aOT~~`,17,4),new a("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new a(`[~RPwxU~ZOp~~`,11,15),new a(`[~RPrsU~ZOn~~`,11,14),new a("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new a("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),u=s.parser.configure({top:`SingleExpression`}),d=l.configure({props:[e({Text:t.content,Is:t.definitionOperator,AttributeName:t.attributeName,VueAttributeName:t.keyword,Identifier:t.variableName,"AttributeValue ScriptAttributeValue":t.attributeValue,Entity:t.character,"{{ }}":t.brace,"@ :":t.punctuation})]}),f={parser:u},p=d.configure({wrap:n((e,t)=>e.name==`InterpolationContent`?f:null)}),m=d.configure({wrap:n((e,t)=>e.name==`AttributeScript`?f:null),top:`Attribute`}),h={parser:p},g={parser:m},_=c();function v(e){return e.configure({dialect:`selfClosing`,wrap:n(b)},`vue`)}var y=v(_.language);function b(e,t){switch(e.name){case`Attribute`:return/^(@|:|v-)/.test(t.read(e.from,e.from+2))?g:null;case`Text`:return h}return null}function x(e={}){let t=_;if(e.base){if(e.base.language.name!=`html`||!(e.base.language instanceof i))throw RangeError(`The base option must be the result of calling html(...)`);t=e.base}return new r(t.language==_.language?y:v(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:[`{`,`"`]}})])}export{x as vue};