neogrok 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +88 -0
  3. package/build/client/_app/immutable/assets/0.5df5b886.css +1 -0
  4. package/build/client/_app/immutable/assets/0.5df5b886.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.5df5b886.css.gz +0 -0
  6. package/build/client/_app/immutable/assets/_layout.bb9a93e0.css +1 -0
  7. package/build/client/_app/immutable/assets/_layout.bb9a93e0.css.br +0 -0
  8. package/build/client/_app/immutable/assets/_layout.bb9a93e0.css.gz +0 -0
  9. package/build/client/_app/immutable/chunks/5.4ed993c7.js +1 -0
  10. package/build/client/_app/immutable/chunks/5.4ed993c7.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/5.4ed993c7.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/each.ece37974.js +1 -0
  13. package/build/client/_app/immutable/chunks/each.ece37974.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/each.ece37974.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/example-query.ac8ef50a.js +1 -0
  16. package/build/client/_app/immutable/chunks/example-query.ac8ef50a.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/example-query.ac8ef50a.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/index.81a0017d.js +1 -0
  19. package/build/client/_app/immutable/chunks/index.81a0017d.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/index.81a0017d.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/index.d0e6da70.js +1 -0
  22. package/build/client/_app/immutable/chunks/index.d0e6da70.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/index.d0e6da70.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/input-colors.e7674f0c.js +1 -0
  25. package/build/client/_app/immutable/chunks/input-colors.e7674f0c.js.br +0 -0
  26. package/build/client/_app/immutable/chunks/input-colors.e7674f0c.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/integer-input.e86d05ad.js +1 -0
  28. package/build/client/_app/immutable/chunks/integer-input.e86d05ad.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/integer-input.e86d05ad.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/link.70630bff.js +1 -0
  31. package/build/client/_app/immutable/chunks/link.70630bff.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/link.70630bff.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/preferences.e389d16d.js +1 -0
  34. package/build/client/_app/immutable/chunks/preferences.e389d16d.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/preferences.e389d16d.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/regexp.50bc0e87.js +1 -0
  37. package/build/client/_app/immutable/chunks/regexp.50bc0e87.js.br +2 -0
  38. package/build/client/_app/immutable/chunks/regexp.50bc0e87.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/scheduler.80902d3b.js +1 -0
  40. package/build/client/_app/immutable/chunks/scheduler.80902d3b.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/scheduler.80902d3b.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/singletons.a17b5cab.js +1 -0
  43. package/build/client/_app/immutable/chunks/singletons.a17b5cab.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/singletons.a17b5cab.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/stores.a4da01c2.js +1 -0
  46. package/build/client/_app/immutable/chunks/stores.a4da01c2.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/stores.a4da01c2.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/toggle-search-type.f1a3061d.js +1 -0
  49. package/build/client/_app/immutable/chunks/toggle-search-type.f1a3061d.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/toggle-search-type.f1a3061d.js.gz +0 -0
  51. package/build/client/_app/immutable/entry/app.4673b9f2.js +1 -0
  52. package/build/client/_app/immutable/entry/app.4673b9f2.js.br +0 -0
  53. package/build/client/_app/immutable/entry/app.4673b9f2.js.gz +0 -0
  54. package/build/client/_app/immutable/entry/start.6bed40d3.js +3 -0
  55. package/build/client/_app/immutable/entry/start.6bed40d3.js.br +0 -0
  56. package/build/client/_app/immutable/entry/start.6bed40d3.js.gz +0 -0
  57. package/build/client/_app/immutable/nodes/0.529467ca.js +1 -0
  58. package/build/client/_app/immutable/nodes/0.529467ca.js.br +0 -0
  59. package/build/client/_app/immutable/nodes/0.529467ca.js.gz +0 -0
  60. package/build/client/_app/immutable/nodes/1.abd8d795.js +1 -0
  61. package/build/client/_app/immutable/nodes/1.abd8d795.js.br +5 -0
  62. package/build/client/_app/immutable/nodes/1.abd8d795.js.gz +0 -0
  63. package/build/client/_app/immutable/nodes/10.28836ccc.js +9 -0
  64. package/build/client/_app/immutable/nodes/10.28836ccc.js.br +0 -0
  65. package/build/client/_app/immutable/nodes/10.28836ccc.js.gz +0 -0
  66. package/build/client/_app/immutable/nodes/11.93ac6006.js +25 -0
  67. package/build/client/_app/immutable/nodes/11.93ac6006.js.br +0 -0
  68. package/build/client/_app/immutable/nodes/11.93ac6006.js.gz +0 -0
  69. package/build/client/_app/immutable/nodes/12.67089c6b.js +11 -0
  70. package/build/client/_app/immutable/nodes/12.67089c6b.js.br +0 -0
  71. package/build/client/_app/immutable/nodes/12.67089c6b.js.gz +0 -0
  72. package/build/client/_app/immutable/nodes/13.418c6178.js +5 -0
  73. package/build/client/_app/immutable/nodes/13.418c6178.js.br +0 -0
  74. package/build/client/_app/immutable/nodes/13.418c6178.js.gz +0 -0
  75. package/build/client/_app/immutable/nodes/14.40bc0592.js +161 -0
  76. package/build/client/_app/immutable/nodes/14.40bc0592.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/14.40bc0592.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/2.08d89d34.js +9 -0
  79. package/build/client/_app/immutable/nodes/2.08d89d34.js.br +0 -0
  80. package/build/client/_app/immutable/nodes/2.08d89d34.js.gz +0 -0
  81. package/build/client/_app/immutable/nodes/3.a382d3d5.js +8 -0
  82. package/build/client/_app/immutable/nodes/3.a382d3d5.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/3.a382d3d5.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/4.37e53904.js +8 -0
  85. package/build/client/_app/immutable/nodes/4.37e53904.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/4.37e53904.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/6.6cd1e711.js +14 -0
  88. package/build/client/_app/immutable/nodes/6.6cd1e711.js.br +0 -0
  89. package/build/client/_app/immutable/nodes/6.6cd1e711.js.gz +0 -0
  90. package/build/client/_app/immutable/nodes/7.b6576b19.js +8 -0
  91. package/build/client/_app/immutable/nodes/7.b6576b19.js.br +0 -0
  92. package/build/client/_app/immutable/nodes/7.b6576b19.js.gz +0 -0
  93. package/build/client/_app/immutable/nodes/8.b18d1c14.js +7 -0
  94. package/build/client/_app/immutable/nodes/8.b18d1c14.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/8.b18d1c14.js.gz +0 -0
  96. package/build/client/_app/immutable/nodes/9.b3dcb728.js +12 -0
  97. package/build/client/_app/immutable/nodes/9.b3dcb728.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/9.b3dcb728.js.gz +0 -0
  99. package/build/client/_app/version.json +1 -0
  100. package/build/client/_app/version.json.br +0 -0
  101. package/build/client/_app/version.json.gz +0 -0
  102. package/build/client/android-chrome-192x192.png +0 -0
  103. package/build/client/android-chrome-512x512.png +0 -0
  104. package/build/client/apple-touch-icon.png +0 -0
  105. package/build/client/favicon-16x16.png +0 -0
  106. package/build/client/favicon-32x32.png +0 -0
  107. package/build/client/favicon.ico +0 -0
  108. package/build/client/site.webmanifest +19 -0
  109. package/build/env.js +37 -0
  110. package/build/handler.js +1307 -0
  111. package/build/index.js +225 -0
  112. package/build/server/chunks/0-040b7d6d.js +27 -0
  113. package/build/server/chunks/0-040b7d6d.js.map +1 -0
  114. package/build/server/chunks/1-5c251174.js +9 -0
  115. package/build/server/chunks/1-5c251174.js.map +1 -0
  116. package/build/server/chunks/10-f6f67083.js +133 -0
  117. package/build/server/chunks/10-f6f67083.js.map +1 -0
  118. package/build/server/chunks/11-1055c6c2.js +9 -0
  119. package/build/server/chunks/11-1055c6c2.js.map +1 -0
  120. package/build/server/chunks/12-fb53c717.js +9 -0
  121. package/build/server/chunks/12-fb53c717.js.map +1 -0
  122. package/build/server/chunks/13-7237c6c6.js +85 -0
  123. package/build/server/chunks/13-7237c6c6.js.map +1 -0
  124. package/build/server/chunks/14-6241604d.js +9 -0
  125. package/build/server/chunks/14-6241604d.js.map +1 -0
  126. package/build/server/chunks/2-bd870b05.js +9 -0
  127. package/build/server/chunks/2-bd870b05.js.map +1 -0
  128. package/build/server/chunks/3-255408ab.js +57 -0
  129. package/build/server/chunks/3-255408ab.js.map +1 -0
  130. package/build/server/chunks/4-99742ef4.js +57 -0
  131. package/build/server/chunks/4-99742ef4.js.map +1 -0
  132. package/build/server/chunks/5-369c06ab.js +19 -0
  133. package/build/server/chunks/5-369c06ab.js.map +1 -0
  134. package/build/server/chunks/6-fc810a9f.js +57 -0
  135. package/build/server/chunks/6-fc810a9f.js.map +1 -0
  136. package/build/server/chunks/7-992dd8b0.js +57 -0
  137. package/build/server/chunks/7-992dd8b0.js.map +1 -0
  138. package/build/server/chunks/8-a92e2ef7.js +454 -0
  139. package/build/server/chunks/8-a92e2ef7.js.map +1 -0
  140. package/build/server/chunks/9-55cb67b6.js +59 -0
  141. package/build/server/chunks/9-55cb67b6.js.map +1 -0
  142. package/build/server/chunks/_error.svelte-dd890063.js +13 -0
  143. package/build/server/chunks/_error.svelte-dd890063.js.map +1 -0
  144. package/build/server/chunks/_layout.svelte-9a1c428f.js +37 -0
  145. package/build/server/chunks/_layout.svelte-9a1c428f.js.map +1 -0
  146. package/build/server/chunks/_layout.svelte-bed2b2d4.js +39 -0
  147. package/build/server/chunks/_layout.svelte-bed2b2d4.js.map +1 -0
  148. package/build/server/chunks/_page.svelte-2f290f09.js +30 -0
  149. package/build/server/chunks/_page.svelte-2f290f09.js.map +1 -0
  150. package/build/server/chunks/_page.svelte-33789d2d.js +36 -0
  151. package/build/server/chunks/_page.svelte-33789d2d.js.map +1 -0
  152. package/build/server/chunks/_page.svelte-5bb56058.js +41 -0
  153. package/build/server/chunks/_page.svelte-5bb56058.js.map +1 -0
  154. package/build/server/chunks/_page.svelte-701b9558.js +284 -0
  155. package/build/server/chunks/_page.svelte-701b9558.js.map +1 -0
  156. package/build/server/chunks/_page.svelte-7848979a.js +396 -0
  157. package/build/server/chunks/_page.svelte-7848979a.js.map +1 -0
  158. package/build/server/chunks/_page.svelte-7a8514c3.js +37 -0
  159. package/build/server/chunks/_page.svelte-7a8514c3.js.map +1 -0
  160. package/build/server/chunks/_page.svelte-9ea0ef4c.js +120 -0
  161. package/build/server/chunks/_page.svelte-9ea0ef4c.js.map +1 -0
  162. package/build/server/chunks/_page.svelte-a1e80515.js +30 -0
  163. package/build/server/chunks/_page.svelte-a1e80515.js.map +1 -0
  164. package/build/server/chunks/_page.svelte-cf45c2db.js +124 -0
  165. package/build/server/chunks/_page.svelte-cf45c2db.js.map +1 -0
  166. package/build/server/chunks/_page.svelte-dcbbe643.js +56 -0
  167. package/build/server/chunks/_page.svelte-dcbbe643.js.map +1 -0
  168. package/build/server/chunks/_page.svelte-f4064b9c.js +30 -0
  169. package/build/server/chunks/_page.svelte-f4064b9c.js.map +1 -0
  170. package/build/server/chunks/_server.ts-93a1fbab.js +354 -0
  171. package/build/server/chunks/_server.ts-93a1fbab.js.map +1 -0
  172. package/build/server/chunks/_server.ts-dec04c7b.js +12 -0
  173. package/build/server/chunks/_server.ts-dec04c7b.js.map +1 -0
  174. package/build/server/chunks/configuration-d033c4d1.js +48 -0
  175. package/build/server/chunks/configuration-d033c4d1.js.map +1 -0
  176. package/build/server/chunks/example-query-99034259.js +39 -0
  177. package/build/server/chunks/example-query-99034259.js.map +1 -0
  178. package/build/server/chunks/hooks.server-cb019385.js +32 -0
  179. package/build/server/chunks/hooks.server-cb019385.js.map +1 -0
  180. package/build/server/chunks/index-64aa7a5e.js +84 -0
  181. package/build/server/chunks/index-64aa7a5e.js.map +1 -0
  182. package/build/server/chunks/index2-7c17b4da.js +100 -0
  183. package/build/server/chunks/index2-7c17b4da.js.map +1 -0
  184. package/build/server/chunks/input-colors-c9063ebd.js +15 -0
  185. package/build/server/chunks/input-colors-c9063ebd.js.map +1 -0
  186. package/build/server/chunks/integer-input-9f57bf61.js +40 -0
  187. package/build/server/chunks/integer-input-9f57bf61.js.map +1 -0
  188. package/build/server/chunks/lifecycle-cbdd95e4.js +84 -0
  189. package/build/server/chunks/lifecycle-cbdd95e4.js.map +1 -0
  190. package/build/server/chunks/link-fded4b17.js +11 -0
  191. package/build/server/chunks/link-fded4b17.js.map +1 -0
  192. package/build/server/chunks/metrics-a6a74309.js +43 -0
  193. package/build/server/chunks/metrics-a6a74309.js.map +1 -0
  194. package/build/server/chunks/navigation-a410b94d.js +22 -0
  195. package/build/server/chunks/navigation-a410b94d.js.map +1 -0
  196. package/build/server/chunks/preferences-304b2e02.js +84 -0
  197. package/build/server/chunks/preferences-304b2e02.js.map +1 -0
  198. package/build/server/chunks/regexp-5017d573.js +4 -0
  199. package/build/server/chunks/regexp-5017d573.js.map +1 -0
  200. package/build/server/chunks/ssr-0f259a0f.js +195 -0
  201. package/build/server/chunks/ssr-0f259a0f.js.map +1 -0
  202. package/build/server/chunks/stores-2f0685cf.js +32 -0
  203. package/build/server/chunks/stores-2f0685cf.js.map +1 -0
  204. package/build/server/chunks/toggle-search-type-6ced5306.js +106 -0
  205. package/build/server/chunks/toggle-search-type-6ced5306.js.map +1 -0
  206. package/build/server/chunks/zoekt-client-dec73ec9.js +26 -0
  207. package/build/server/chunks/zoekt-client-dec73ec9.js.map +1 -0
  208. package/build/server/chunks/zoekt-list-repositories-773bcddb.js +100 -0
  209. package/build/server/chunks/zoekt-list-repositories-773bcddb.js.map +1 -0
  210. package/build/server/index.js +4070 -0
  211. package/build/server/index.js.map +1 -0
  212. package/build/server/manifest.js +142 -0
  213. package/build/server/manifest.js.map +1 -0
  214. package/build/shims.js +0 -0
  215. package/main.js +91 -0
  216. package/package.json +64 -0
@@ -0,0 +1,454 @@
1
+ import * as v from '@badrap/valita';
2
+ import lucene from 'lucene';
3
+ import { e as escapeRegExp } from './regexp-5017d573.js';
4
+ import { r as redirect } from './index-64aa7a5e.js';
5
+ import { l as listRepositories } from './zoekt-list-repositories-773bcddb.js';
6
+ import { c as configuration } from './configuration-d033c4d1.js';
7
+ import './zoekt-client-dec73ec9.js';
8
+ import './metrics-a6a74309.js';
9
+ import 'prom-client';
10
+ import 'node:fs';
11
+
12
+ const locationSchema = v.object({
13
+ column: v.number(),
14
+ line: v.number(),
15
+ offset: v.number()
16
+ });
17
+ const syntaxErrorSchema = v.object({
18
+ name: v.literal("SyntaxError"),
19
+ message: v.string(),
20
+ location: v.object({ start: locationSchema, end: locationSchema })
21
+ });
22
+ const toZoekt = async ({
23
+ full,
24
+ defs,
25
+ refs,
26
+ path,
27
+ hist,
28
+ type,
29
+ sort,
30
+ project,
31
+ searchall,
32
+ start
33
+ }, { projectToRepo, queryUnknownRepos }) => {
34
+ const queries = [];
35
+ const warnings = [];
36
+ if (full) {
37
+ queries.push(full);
38
+ }
39
+ if (defs) {
40
+ queries.push(`defs:${maybeParenthesize(defs)}`);
41
+ }
42
+ if (refs) {
43
+ queries.push(`refs:${maybeParenthesize(refs)}`);
44
+ }
45
+ if (path) {
46
+ if (path.includes("/")) {
47
+ warnings.push({ code: "PathCannotContainSlashes" });
48
+ } else {
49
+ queries.push(`path:${maybeParenthesize(path)}`);
50
+ }
51
+ }
52
+ if (hist) {
53
+ queries.push(`hist:${maybeParenthesize(hist)}`);
54
+ }
55
+ if (queries.length === 0) {
56
+ return { luceneQuery: null, zoektQuery: null, warnings: [] };
57
+ }
58
+ const luceneQuery = queries.join(" ");
59
+ let zoektQuery;
60
+ try {
61
+ const luceneAst = lucene.parse(luceneQuery);
62
+ const renderResult = renderAst(luceneAst);
63
+ ({ zoektQuery } = renderResult);
64
+ warnings.push(...renderResult.warnings);
65
+ } catch (e) {
66
+ try {
67
+ const syntaxError = syntaxErrorSchema.parse(e, { mode: "passthrough" });
68
+ return {
69
+ luceneQuery,
70
+ zoektQuery: null,
71
+ warnings: [
72
+ {
73
+ code: "LuceneParseError",
74
+ message: syntaxError.message,
75
+ location: extractQueryLocation(syntaxError.location)
76
+ }
77
+ ]
78
+ };
79
+ } catch {
80
+ throw e;
81
+ }
82
+ }
83
+ const zoektParts = [];
84
+ if (sort && // This being analogous to what zoekt does.
85
+ sort !== "relevancy") {
86
+ warnings.push({ code: "SortOrderNotSupported", sortOrder: sort });
87
+ }
88
+ if (start) {
89
+ warnings.push({ code: "PaginationNotSupported" });
90
+ }
91
+ if (!searchall && project) {
92
+ const candidateRepos = /* @__PURE__ */ new Set();
93
+ const converted = /* @__PURE__ */ new Map();
94
+ project.split(",").forEach((p) => {
95
+ const zoektRepo = projectToRepo.get(p);
96
+ if (zoektRepo) {
97
+ converted.set(p, zoektRepo);
98
+ }
99
+ candidateRepos.add(zoektRepo ?? p);
100
+ });
101
+ if (converted.size > 0) {
102
+ warnings.push({
103
+ code: "ConvertedProjects",
104
+ conversions: Object.fromEntries(converted.entries())
105
+ });
106
+ }
107
+ const unknownRepos = await queryUnknownRepos(candidateRepos);
108
+ if (unknownRepos.size > 0) {
109
+ warnings.push({
110
+ code: "UnknownRepos",
111
+ repos: Array.from(unknownRepos)
112
+ });
113
+ }
114
+ const knownRepos = Array.from(candidateRepos).filter(
115
+ (r) => !unknownRepos.has(r)
116
+ );
117
+ if (knownRepos.length > 0) {
118
+ zoektParts.push(renderRepoQuery(knownRepos));
119
+ }
120
+ }
121
+ if (type) {
122
+ const mapped = languageNames.get(type);
123
+ if (!mapped) {
124
+ warnings.push({
125
+ code: "UnsupportedLanguage",
126
+ language: type
127
+ });
128
+ } else {
129
+ zoektParts.push(`lang:${mapped}`);
130
+ }
131
+ }
132
+ if (zoektQuery === null) {
133
+ return {
134
+ luceneQuery,
135
+ zoektQuery: null,
136
+ warnings
137
+ };
138
+ } else {
139
+ zoektParts.push(zoektQuery);
140
+ return {
141
+ luceneQuery,
142
+ zoektQuery: zoektParts.join(" "),
143
+ warnings
144
+ };
145
+ }
146
+ };
147
+ const renderAst = (astNode, pushDownField) => {
148
+ if ("left" in astNode) {
149
+ const { left, parenthesized } = astNode;
150
+ const field = resolveField(astNode, pushDownField);
151
+ const rendered = "right" in astNode ? renderInfixExpression(
152
+ renderAst(left, field),
153
+ astNode.operator,
154
+ renderAst(astNode.right, field)
155
+ ) : renderAst(left, field);
156
+ return parenthesized && rendered.zoektQuery && // Only retain parentheses if we think they're needed; while this simple
157
+ // heuristic produces false positives, it's good enough.
158
+ /\s+/.test(rendered.zoektQuery) ? { zoektQuery: `(${rendered.zoektQuery})`, warnings: rendered.warnings } : rendered;
159
+ } else if ("term" in astNode) {
160
+ return renderTermNode(astNode, pushDownField);
161
+ } else if ("term_min" in astNode) {
162
+ return {
163
+ zoektQuery: null,
164
+ warnings: [
165
+ {
166
+ code: "RangeTermNotSupported",
167
+ // For whatever reason, `termLocation` is not provided on range nodes;
168
+ // fieldLocation is better than nothing; range nodes inherently have a
169
+ // field, so it will always be defined.
170
+ location: extractQueryLocation(astNode.fieldLocation)
171
+ }
172
+ ]
173
+ };
174
+ } else {
175
+ const unreachable = astNode;
176
+ throw new Error(`unreachable ${JSON.stringify(unreachable)}`);
177
+ }
178
+ };
179
+ const resolveField = (astField, pushDownField) => {
180
+ if (astField.field && astField.field !== "<implicit>") {
181
+ return {
182
+ name: astField.field,
183
+ location: extractQueryLocation(astField.fieldLocation)
184
+ };
185
+ } else {
186
+ return pushDownField;
187
+ }
188
+ };
189
+ const renderInfixExpression = (left, operator, right) => {
190
+ const warnings = [...left.warnings, ...right.warnings];
191
+ if (left.zoektQuery && right.zoektQuery) {
192
+ let rendered;
193
+ if (operator === "AND" || // In OpenGrok, the default operator is AND
194
+ operator === "<implicit>" || // @ts-expect-error the types incorrectly fail to include this operator
195
+ operator === "&&") {
196
+ rendered = `${left.zoektQuery} ${right.zoektQuery}`;
197
+ } else if (operator === "OR" || // @ts-expect-error the types incorrectly fail to include this operator
198
+ operator === "||") {
199
+ rendered = `${left.zoektQuery} or ${right.zoektQuery}`;
200
+ } else if (operator === "AND NOT" || operator === "NOT") {
201
+ rendered = `${left.zoektQuery} -${// Add parentheses if necessary.
202
+ right.zoektQuery.startsWith("(") ? right.zoektQuery : `${maybeParenthesize(right.zoektQuery)}`}`;
203
+ } else if (operator === "OR NOT") {
204
+ rendered = `${left.zoektQuery} or -${// Add parentheses if necessary.
205
+ right.zoektQuery.startsWith("(") ? right.zoektQuery : `${maybeParenthesize(right.zoektQuery)}`}`;
206
+ } else {
207
+ const unreachable = operator;
208
+ throw new Error(`unreachable ${unreachable}`);
209
+ }
210
+ return { zoektQuery: rendered, warnings };
211
+ } else if (left.zoektQuery) {
212
+ return { zoektQuery: left.zoektQuery, warnings };
213
+ } else if (right.zoektQuery) {
214
+ return { zoektQuery: right.zoektQuery, warnings };
215
+ } else {
216
+ return { zoektQuery: null, warnings };
217
+ }
218
+ };
219
+ const renderTermNode = (node, pushDownField) => {
220
+ const {
221
+ term,
222
+ prefix,
223
+ quoted,
224
+ regex,
225
+ termLocation,
226
+ boost,
227
+ // @ts-expect-error proximity is missing from the types, but can be
228
+ // produced with something like `"foo bar"~10`
229
+ proximity,
230
+ similarity
231
+ } = node;
232
+ const field = resolveField(node, pushDownField);
233
+ if (field?.name === "hist") {
234
+ return {
235
+ zoektQuery: null,
236
+ warnings: [
237
+ {
238
+ code: "HistoryNotSupported",
239
+ location: field.location
240
+ }
241
+ ]
242
+ };
243
+ }
244
+ if (proximity != null) {
245
+ return {
246
+ zoektQuery: null,
247
+ warnings: [
248
+ {
249
+ code: "ProximityNotSupported",
250
+ location: extractQueryLocation(termLocation)
251
+ }
252
+ ]
253
+ };
254
+ }
255
+ if (similarity != null) {
256
+ return {
257
+ zoektQuery: null,
258
+ warnings: [
259
+ {
260
+ code: "SimilarityNotSupported",
261
+ location: extractQueryLocation(termLocation)
262
+ }
263
+ ]
264
+ };
265
+ }
266
+ const warnings = [];
267
+ if (field?.name === "refs") {
268
+ warnings.push({
269
+ code: "ReferencesNotSupported",
270
+ location: field.location
271
+ });
272
+ } else if (field && field.name !== "defs" && field.name !== "path") {
273
+ return {
274
+ zoektQuery: null,
275
+ warnings: [
276
+ {
277
+ code: "UnsupportedField",
278
+ field: field.name,
279
+ location: field.location
280
+ }
281
+ ]
282
+ };
283
+ }
284
+ if (boost != null) {
285
+ warnings.push({
286
+ code: "BoostNotSupported",
287
+ location: extractQueryLocation(termLocation)
288
+ });
289
+ }
290
+ let renderedPrefix;
291
+ if (prefix === "!" || prefix === "-") {
292
+ renderedPrefix = "-";
293
+ } else {
294
+ renderedPrefix = "";
295
+ }
296
+ let renderedField;
297
+ if (field?.name === "defs") {
298
+ renderedField = "sym:";
299
+ } else if (field?.name === "path") {
300
+ renderedField = "file:";
301
+ } else {
302
+ renderedField = "";
303
+ }
304
+ let renderedTerm;
305
+ if (regex) {
306
+ renderedTerm = term;
307
+ } else {
308
+ const escapedTerm = escapeLuceneTerm(term);
309
+ renderedTerm = quoted ? `"${escapedTerm}"` : escapedTerm;
310
+ }
311
+ return {
312
+ zoektQuery: `${renderedPrefix}${renderedField}${renderedTerm}`,
313
+ warnings
314
+ };
315
+ };
316
+ const extractQueryLocation = (luceneLocation) => {
317
+ if (luceneLocation == null) {
318
+ throw new Error("Unexpected null luceneLocation");
319
+ }
320
+ const {
321
+ start: { offset: start },
322
+ end: { offset: end }
323
+ } = luceneLocation;
324
+ return { start, end };
325
+ };
326
+ const languageNames = /* @__PURE__ */ new Map([
327
+ ["ada", "ada"],
328
+ ["asm", "asm"],
329
+ ["bzip2", null],
330
+ ["c", "c"],
331
+ ["clojure", "clojure"],
332
+ ["csharp", "csharp"],
333
+ ["cxx", "c++"],
334
+ ["eiffel", "eiffel"],
335
+ ["elf", null],
336
+ ["erlang", "erlang"],
337
+ ["file", null],
338
+ ["fortran", "fortran"],
339
+ ["golang", "golang"],
340
+ ["gzip", null],
341
+ ["haskell", "haskell"],
342
+ ["hcl", "hcl"],
343
+ ["jar", null],
344
+ ["java", "java"],
345
+ ["javaclass", null],
346
+ ["javascript", "javascript"],
347
+ ["json", "json"],
348
+ ["kotlin", "kotlin"],
349
+ ["lisp", "lisp"],
350
+ ["lua", "lua"],
351
+ ["mandoc", "roff"],
352
+ ["pascal", "pascal"],
353
+ ["perl", "perl"],
354
+ ["php", "php"],
355
+ ["plain", "text"],
356
+ ["plsql", "plsql"],
357
+ ["powershell", "powershell"],
358
+ ["python", "python"],
359
+ ["r", "r"],
360
+ ["ruby", "ruby"],
361
+ ["rust", "rust"],
362
+ ["scala", "scala"],
363
+ ["sh", "shell"],
364
+ ["sql", "sql"],
365
+ ["swift", "swift"],
366
+ ["tar", null],
367
+ ["tcl", "tcl"],
368
+ ["terraform", "terraform"],
369
+ ["troff", "troff"],
370
+ ["typescript", "typescript"],
371
+ ["uuencode", null],
372
+ ["vb", "vb6"],
373
+ ["verilog", "verilog"],
374
+ ["xml", "xml"],
375
+ ["zip", null]
376
+ ]);
377
+ const maybeParenthesize = (s) => /\s+/.test(s) ? `(${s})` : s;
378
+ const renderRepoQuery = (repos) => `repo:${repos.map(escapeRegExp).map((escaped) => `^${escaped}$`).join("|")}`;
379
+ const escapeLuceneTerm = (s) => s.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(
380
+ /[?*]/g,
381
+ // i.e. `.*` or `.?`
382
+ ".$&"
383
+ );
384
+ const load = async ({
385
+ url,
386
+ parent,
387
+ setHeaders,
388
+ fetch
389
+ }) => {
390
+ const extract = (name) => (
391
+ // OpenGrok typically generates URLs with query parameter keys present and
392
+ // values empty, so we really do want || not ??.
393
+ url.searchParams.get(name) || void 0
394
+ );
395
+ const params = {
396
+ full: extract("full"),
397
+ defs: extract("defs"),
398
+ refs: extract("refs"),
399
+ path: extract("path"),
400
+ hist: extract("hist"),
401
+ type: extract("type"),
402
+ sort: extract("sort"),
403
+ project: extract("project"),
404
+ searchall: extract("searchall") === "true" || void 0,
405
+ start: Number.parseInt(extract("start") ?? "", 10) || void 0
406
+ };
407
+ const queryUnknownRepos = async (candidates) => {
408
+ const reposQuery = renderRepoQuery(Array.from(candidates));
409
+ const repositories = await listRepositories({ query: reposQuery }, fetch);
410
+ if (repositories.kind === "error") {
411
+ throw new Error(repositories.error);
412
+ }
413
+ const present = new Set(
414
+ repositories.results.repositories.map(({ name }) => name)
415
+ );
416
+ return new Set(Array.from(candidates).filter((c) => !present.has(c)));
417
+ };
418
+ const { luceneQuery, zoektQuery, warnings } = await toZoekt(params, {
419
+ projectToRepo: configuration.openGrokProjectMappings,
420
+ queryUnknownRepos
421
+ });
422
+ setHeaders({
423
+ "cache-control": "no-store,must-revalidate"
424
+ });
425
+ const { preferences } = await parent();
426
+ if (preferences.openGrokInstantRedirect && zoektQuery) {
427
+ throw redirect(
428
+ 301,
429
+ `/?${new URLSearchParams({ q: zoektQuery }).toString()}`
430
+ );
431
+ }
432
+ return {
433
+ params,
434
+ luceneQuery,
435
+ zoektQuery,
436
+ warnings
437
+ };
438
+ };
439
+
440
+ var _page_server_ts = /*#__PURE__*/Object.freeze({
441
+ __proto__: null,
442
+ load: load
443
+ });
444
+
445
+ const index = 8;
446
+ let component_cache;
447
+ const component = async () => component_cache ??= (await import('./_page.svelte-9ea0ef4c.js')).default;
448
+ const server_id = "src/routes/(opengrok-compat)/search/+page.server.ts";
449
+ const imports = ["_app/immutable/nodes/8.b18d1c14.js","_app/immutable/chunks/scheduler.80902d3b.js","_app/immutable/chunks/index.d0e6da70.js","_app/immutable/chunks/each.ece37974.js","_app/immutable/chunks/example-query.ac8ef50a.js","_app/immutable/chunks/link.70630bff.js"];
450
+ const stylesheets = [];
451
+ const fonts = [];
452
+
453
+ export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
454
+ //# sourceMappingURL=8-a92e2ef7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"8-a92e2ef7.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(opengrok-compat)/search/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["import * as v from \"@badrap/valita\";\nimport lucene from \"lucene\";\nimport { e as escapeRegExp } from \"../../../../chunks/regexp.js\";\nimport { r as redirect } from \"../../../../chunks/index.js\";\nimport { l as listRepositories } from \"../../../../chunks/zoekt-list-repositories.js\";\nimport { c as configuration } from \"../../../../chunks/configuration.js\";\nconst locationSchema = v.object({\n column: v.number(),\n line: v.number(),\n offset: v.number()\n});\nconst syntaxErrorSchema = v.object({\n name: v.literal(\"SyntaxError\"),\n message: v.string(),\n location: v.object({ start: locationSchema, end: locationSchema })\n});\nconst toZoekt = async ({\n full,\n defs,\n refs,\n path,\n hist,\n type,\n sort,\n project,\n searchall,\n start\n}, { projectToRepo, queryUnknownRepos }) => {\n const queries = [];\n const warnings = [];\n if (full) {\n queries.push(full);\n }\n if (defs) {\n queries.push(`defs:${maybeParenthesize(defs)}`);\n }\n if (refs) {\n queries.push(`refs:${maybeParenthesize(refs)}`);\n }\n if (path) {\n if (path.includes(\"/\")) {\n warnings.push({ code: \"PathCannotContainSlashes\" });\n } else {\n queries.push(`path:${maybeParenthesize(path)}`);\n }\n }\n if (hist) {\n queries.push(`hist:${maybeParenthesize(hist)}`);\n }\n if (queries.length === 0) {\n return { luceneQuery: null, zoektQuery: null, warnings: [] };\n }\n const luceneQuery = queries.join(\" \");\n let zoektQuery;\n try {\n const luceneAst = lucene.parse(luceneQuery);\n const renderResult = renderAst(luceneAst);\n ({ zoektQuery } = renderResult);\n warnings.push(...renderResult.warnings);\n } catch (e) {\n try {\n const syntaxError = syntaxErrorSchema.parse(e, { mode: \"passthrough\" });\n return {\n luceneQuery,\n zoektQuery: null,\n warnings: [\n {\n code: \"LuceneParseError\",\n message: syntaxError.message,\n location: extractQueryLocation(syntaxError.location)\n }\n ]\n };\n } catch {\n throw e;\n }\n }\n const zoektParts = [];\n if (sort && // This being analogous to what zoekt does.\n sort !== \"relevancy\") {\n warnings.push({ code: \"SortOrderNotSupported\", sortOrder: sort });\n }\n if (start) {\n warnings.push({ code: \"PaginationNotSupported\" });\n }\n if (!searchall && project) {\n const candidateRepos = /* @__PURE__ */ new Set();\n const converted = /* @__PURE__ */ new Map();\n project.split(\",\").forEach((p) => {\n const zoektRepo = projectToRepo.get(p);\n if (zoektRepo) {\n converted.set(p, zoektRepo);\n }\n candidateRepos.add(zoektRepo ?? p);\n });\n if (converted.size > 0) {\n warnings.push({\n code: \"ConvertedProjects\",\n conversions: Object.fromEntries(converted.entries())\n });\n }\n const unknownRepos = await queryUnknownRepos(candidateRepos);\n if (unknownRepos.size > 0) {\n warnings.push({\n code: \"UnknownRepos\",\n repos: Array.from(unknownRepos)\n });\n }\n const knownRepos = Array.from(candidateRepos).filter(\n (r) => !unknownRepos.has(r)\n );\n if (knownRepos.length > 0) {\n zoektParts.push(renderRepoQuery(knownRepos));\n }\n }\n if (type) {\n const mapped = languageNames.get(type);\n if (!mapped) {\n warnings.push({\n code: \"UnsupportedLanguage\",\n language: type\n });\n } else {\n zoektParts.push(`lang:${mapped}`);\n }\n }\n if (zoektQuery === null) {\n return {\n luceneQuery,\n zoektQuery: null,\n warnings\n };\n } else {\n zoektParts.push(zoektQuery);\n return {\n luceneQuery,\n zoektQuery: zoektParts.join(\" \"),\n warnings\n };\n }\n};\nconst renderAst = (astNode, pushDownField) => {\n if (\"left\" in astNode) {\n const { left, parenthesized } = astNode;\n const field = resolveField(astNode, pushDownField);\n const rendered = \"right\" in astNode ? renderInfixExpression(\n renderAst(left, field),\n astNode.operator,\n renderAst(astNode.right, field)\n ) : renderAst(left, field);\n return parenthesized && rendered.zoektQuery && // Only retain parentheses if we think they're needed; while this simple\n // heuristic produces false positives, it's good enough.\n /\\s+/.test(rendered.zoektQuery) ? { zoektQuery: `(${rendered.zoektQuery})`, warnings: rendered.warnings } : rendered;\n } else if (\"term\" in astNode) {\n return renderTermNode(astNode, pushDownField);\n } else if (\"term_min\" in astNode) {\n return {\n zoektQuery: null,\n warnings: [\n {\n code: \"RangeTermNotSupported\",\n // For whatever reason, `termLocation` is not provided on range nodes;\n // fieldLocation is better than nothing; range nodes inherently have a\n // field, so it will always be defined.\n location: extractQueryLocation(astNode.fieldLocation)\n }\n ]\n };\n } else {\n const unreachable = astNode;\n throw new Error(`unreachable ${JSON.stringify(unreachable)}`);\n }\n};\nconst resolveField = (astField, pushDownField) => {\n if (astField.field && astField.field !== \"<implicit>\") {\n return {\n name: astField.field,\n location: extractQueryLocation(astField.fieldLocation)\n };\n } else {\n return pushDownField;\n }\n};\nconst renderInfixExpression = (left, operator, right) => {\n const warnings = [...left.warnings, ...right.warnings];\n if (left.zoektQuery && right.zoektQuery) {\n let rendered;\n if (operator === \"AND\" || // In OpenGrok, the default operator is AND\n operator === \"<implicit>\" || // @ts-expect-error the types incorrectly fail to include this operator\n operator === \"&&\") {\n rendered = `${left.zoektQuery} ${right.zoektQuery}`;\n } else if (operator === \"OR\" || // @ts-expect-error the types incorrectly fail to include this operator\n operator === \"||\") {\n rendered = `${left.zoektQuery} or ${right.zoektQuery}`;\n } else if (operator === \"AND NOT\" || operator === \"NOT\") {\n rendered = `${left.zoektQuery} -${// Add parentheses if necessary.\n right.zoektQuery.startsWith(\"(\") ? right.zoektQuery : `${maybeParenthesize(right.zoektQuery)}`}`;\n } else if (operator === \"OR NOT\") {\n rendered = `${left.zoektQuery} or -${// Add parentheses if necessary.\n right.zoektQuery.startsWith(\"(\") ? right.zoektQuery : `${maybeParenthesize(right.zoektQuery)}`}`;\n } else {\n const unreachable = operator;\n throw new Error(`unreachable ${unreachable}`);\n }\n return { zoektQuery: rendered, warnings };\n } else if (left.zoektQuery) {\n return { zoektQuery: left.zoektQuery, warnings };\n } else if (right.zoektQuery) {\n return { zoektQuery: right.zoektQuery, warnings };\n } else {\n return { zoektQuery: null, warnings };\n }\n};\nconst renderTermNode = (node, pushDownField) => {\n const {\n term,\n prefix,\n quoted,\n regex,\n termLocation,\n boost,\n // @ts-expect-error proximity is missing from the types, but can be\n // produced with something like `\"foo bar\"~10`\n proximity,\n similarity\n } = node;\n const field = resolveField(node, pushDownField);\n if (field?.name === \"hist\") {\n return {\n zoektQuery: null,\n warnings: [\n {\n code: \"HistoryNotSupported\",\n location: field.location\n }\n ]\n };\n }\n if (proximity != null) {\n return {\n zoektQuery: null,\n warnings: [\n {\n code: \"ProximityNotSupported\",\n location: extractQueryLocation(termLocation)\n }\n ]\n };\n }\n if (similarity != null) {\n return {\n zoektQuery: null,\n warnings: [\n {\n code: \"SimilarityNotSupported\",\n location: extractQueryLocation(termLocation)\n }\n ]\n };\n }\n const warnings = [];\n if (field?.name === \"refs\") {\n warnings.push({\n code: \"ReferencesNotSupported\",\n location: field.location\n });\n } else if (field && field.name !== \"defs\" && field.name !== \"path\") {\n return {\n zoektQuery: null,\n warnings: [\n {\n code: \"UnsupportedField\",\n field: field.name,\n location: field.location\n }\n ]\n };\n }\n if (boost != null) {\n warnings.push({\n code: \"BoostNotSupported\",\n location: extractQueryLocation(termLocation)\n });\n }\n let renderedPrefix;\n if (prefix === \"!\" || prefix === \"-\") {\n renderedPrefix = \"-\";\n } else {\n renderedPrefix = \"\";\n }\n let renderedField;\n if (field?.name === \"defs\") {\n renderedField = \"sym:\";\n } else if (field?.name === \"path\") {\n renderedField = \"file:\";\n } else {\n renderedField = \"\";\n }\n let renderedTerm;\n if (regex) {\n renderedTerm = term;\n } else {\n const escapedTerm = escapeLuceneTerm(term);\n renderedTerm = quoted ? `\"${escapedTerm}\"` : escapedTerm;\n }\n return {\n zoektQuery: `${renderedPrefix}${renderedField}${renderedTerm}`,\n warnings\n };\n};\nconst extractQueryLocation = (luceneLocation) => {\n if (luceneLocation == null) {\n throw new Error(\"Unexpected null luceneLocation\");\n }\n const {\n start: { offset: start },\n end: { offset: end }\n } = luceneLocation;\n return { start, end };\n};\nconst languageNames = /* @__PURE__ */ new Map([\n [\"ada\", \"ada\"],\n [\"asm\", \"asm\"],\n [\"bzip2\", null],\n [\"c\", \"c\"],\n [\"clojure\", \"clojure\"],\n [\"csharp\", \"csharp\"],\n [\"cxx\", \"c++\"],\n [\"eiffel\", \"eiffel\"],\n [\"elf\", null],\n [\"erlang\", \"erlang\"],\n [\"file\", null],\n [\"fortran\", \"fortran\"],\n [\"golang\", \"golang\"],\n [\"gzip\", null],\n [\"haskell\", \"haskell\"],\n [\"hcl\", \"hcl\"],\n [\"jar\", null],\n [\"java\", \"java\"],\n [\"javaclass\", null],\n [\"javascript\", \"javascript\"],\n [\"json\", \"json\"],\n [\"kotlin\", \"kotlin\"],\n [\"lisp\", \"lisp\"],\n [\"lua\", \"lua\"],\n [\"mandoc\", \"roff\"],\n [\"pascal\", \"pascal\"],\n [\"perl\", \"perl\"],\n [\"php\", \"php\"],\n [\"plain\", \"text\"],\n [\"plsql\", \"plsql\"],\n [\"powershell\", \"powershell\"],\n [\"python\", \"python\"],\n [\"r\", \"r\"],\n [\"ruby\", \"ruby\"],\n [\"rust\", \"rust\"],\n [\"scala\", \"scala\"],\n [\"sh\", \"shell\"],\n [\"sql\", \"sql\"],\n [\"swift\", \"swift\"],\n [\"tar\", null],\n [\"tcl\", \"tcl\"],\n [\"terraform\", \"terraform\"],\n [\"troff\", \"troff\"],\n [\"typescript\", \"typescript\"],\n [\"uuencode\", null],\n [\"vb\", \"vb6\"],\n [\"verilog\", \"verilog\"],\n [\"xml\", \"xml\"],\n [\"zip\", null]\n]);\nconst maybeParenthesize = (s) => /\\s+/.test(s) ? `(${s})` : s;\nconst renderRepoQuery = (repos) => `repo:${repos.map(escapeRegExp).map((escaped) => `^${escaped}$`).join(\"|\")}`;\nconst escapeLuceneTerm = (s) => s.replace(/[.+^${}()|[\\]\\\\]/g, \"\\\\$&\").replace(\n /[?*]/g,\n // i.e. `.*` or `.?`\n \".$&\"\n);\nconst load = async ({\n url,\n parent,\n setHeaders,\n fetch\n}) => {\n const extract = (name) => (\n // OpenGrok typically generates URLs with query parameter keys present and\n // values empty, so we really do want || not ??.\n url.searchParams.get(name) || void 0\n );\n const params = {\n full: extract(\"full\"),\n defs: extract(\"defs\"),\n refs: extract(\"refs\"),\n path: extract(\"path\"),\n hist: extract(\"hist\"),\n type: extract(\"type\"),\n sort: extract(\"sort\"),\n project: extract(\"project\"),\n searchall: extract(\"searchall\") === \"true\" || void 0,\n start: Number.parseInt(extract(\"start\") ?? \"\", 10) || void 0\n };\n const queryUnknownRepos = async (candidates) => {\n const reposQuery = renderRepoQuery(Array.from(candidates));\n const repositories = await listRepositories({ query: reposQuery }, fetch);\n if (repositories.kind === \"error\") {\n throw new Error(repositories.error);\n }\n const present = new Set(\n repositories.results.repositories.map(({ name }) => name)\n );\n return new Set(Array.from(candidates).filter((c) => !present.has(c)));\n };\n const { luceneQuery, zoektQuery, warnings } = await toZoekt(params, {\n projectToRepo: configuration.openGrokProjectMappings,\n queryUnknownRepos\n });\n setHeaders({\n \"cache-control\": \"no-store,must-revalidate\"\n });\n const { preferences } = await parent();\n if (preferences.openGrokInstantRedirect && zoektQuery) {\n throw redirect(\n 301,\n `/?${new URLSearchParams({ q: zoektQuery }).toString()}`\n );\n }\n return {\n params,\n luceneQuery,\n zoektQuery,\n warnings\n };\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/(opengrok-compat)/search/_page.server.ts.js';\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(opengrok-compat)/search/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(opengrok-compat)/search/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/8.b18d1c14.js\",\"_app/immutable/chunks/scheduler.80902d3b.js\",\"_app/immutable/chunks/index.d0e6da70.js\",\"_app/immutable/chunks/each.ece37974.js\",\"_app/immutable/chunks/example-query.ac8ef50a.js\",\"_app/immutable/chunks/link.70630bff.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;AAMA,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;AAChC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AACpB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;AAClB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;AACpB,CAAC,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;AACnC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;AAChC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;AACrB,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;AACpE,CAAC,CAAC,CAAC;AACH,MAAM,OAAO,GAAG,OAAO;AACvB,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,OAAO;AACT,EAAE,SAAS;AACX,EAAE,KAAK;AACP,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,KAAK;AAC5C,EAAE,MAAM,OAAO,GAAG,EAAE,CAAC;AACrB,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC;AACtB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAC1D,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,IAAI,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACjE,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,IAAI,UAAU,CAAC;AACjB,EAAE,IAAI;AACN,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAChD,IAAI,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9C,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE;AACpC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC5C,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,IAAI;AACR,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAC9E,MAAM,OAAO;AACb,QAAQ,WAAW;AACnB,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,QAAQ,EAAE;AAClB,UAAU;AACV,YAAY,IAAI,EAAE,kBAAkB;AACpC,YAAY,OAAO,EAAE,WAAW,CAAC,OAAO;AACxC,YAAY,QAAQ,EAAE,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC;AAChE,WAAW;AACX,SAAS;AACT,OAAO,CAAC;AACR,KAAK,CAAC,MAAM;AACZ,MAAM,MAAM,CAAC,CAAC;AACd,KAAK;AACL,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,EAAE,CAAC;AACxB,EAAE,IAAI,IAAI;AACV,EAAE,IAAI,KAAK,WAAW,EAAE;AACxB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,GAAG;AACH,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;AAC7B,IAAI,MAAM,cAAc,mBAAmB,IAAI,GAAG,EAAE,CAAC;AACrD,IAAI,MAAM,SAAS,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAChD,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACtC,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACpC,OAAO;AACP,MAAM,cAAc,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;AACzC,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE;AAC5B,MAAM,QAAQ,CAAC,IAAI,CAAC;AACpB,QAAQ,IAAI,EAAE,mBAAmB;AACjC,QAAQ,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;AAC5D,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACjE,IAAI,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE;AAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC;AACpB,QAAQ,IAAI,EAAE,cAAc;AAC5B,QAAQ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM;AACxD,MAAM,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,KAAK,CAAC;AACN,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,MAAM,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AACnD,KAAK;AACL,GAAG;AACH,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,QAAQ,CAAC,IAAI,CAAC;AACpB,QAAQ,IAAI,EAAE,qBAAqB;AACnC,QAAQ,QAAQ,EAAE,IAAI;AACtB,OAAO,CAAC,CAAC;AACT,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACxC,KAAK;AACL,GAAG;AACH,EAAE,IAAI,UAAU,KAAK,IAAI,EAAE;AAC3B,IAAI,OAAO;AACX,MAAM,WAAW;AACjB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,QAAQ;AACd,KAAK,CAAC;AACN,GAAG,MAAM;AACT,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,IAAI,OAAO;AACX,MAAM,WAAW;AACjB,MAAM,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AACtC,MAAM,QAAQ;AACd,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK;AAC9C,EAAE,IAAI,MAAM,IAAI,OAAO,EAAE;AACzB,IAAI,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;AAC5C,IAAI,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACvD,IAAI,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,GAAG,qBAAqB;AAC/D,MAAM,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5B,MAAM,OAAO,CAAC,QAAQ;AACtB,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AACrC,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/B,IAAI,OAAO,aAAa,IAAI,QAAQ,CAAC,UAAU;AAC/C;AACA,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC;AACzH,GAAG,MAAM,IAAI,MAAM,IAAI,OAAO,EAAE;AAChC,IAAI,OAAO,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAClD,GAAG,MAAM,IAAI,UAAU,IAAI,OAAO,EAAE;AACpC,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,QAAQ,EAAE;AAChB,QAAQ;AACR,UAAU,IAAI,EAAE,uBAAuB;AACvC;AACA;AACA;AACA,UAAU,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC;AAC/D,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG,MAAM;AACT,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC;AAChC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,GAAG;AACH,CAAC,CAAC;AACF,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,aAAa,KAAK;AAClD,EAAE,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,YAAY,EAAE;AACzD,IAAI,OAAO;AACX,MAAM,IAAI,EAAE,QAAQ,CAAC,KAAK;AAC1B,MAAM,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC5D,KAAK,CAAC;AACN,GAAG,MAAM;AACT,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,KAAK;AACzD,EAAE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AACzD,EAAE,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE;AAC3C,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI,QAAQ,KAAK,KAAK;AAC1B,IAAI,QAAQ,KAAK,YAAY;AAC7B,IAAI,QAAQ,KAAK,IAAI,EAAE;AACvB,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,KAAK,MAAM,IAAI,QAAQ,KAAK,IAAI;AAChC,IAAI,QAAQ,KAAK,IAAI,EAAE;AACvB,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7D,KAAK,MAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC7D,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACtC,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;AACzC,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvG,KAAK,MAAM;AACX,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AACnC,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC9C,GAAG,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAC9B,IAAI,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;AACrD,GAAG,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE;AAC/B,IAAI,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;AACtD,GAAG,MAAM;AACT,IAAI,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC1C,GAAG;AACH,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK;AAChD,EAAE,MAAM;AACR,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,KAAK;AACT;AACA;AACA,IAAI,SAAS;AACb,IAAI,UAAU;AACd,GAAG,GAAG,IAAI,CAAC;AACX,EAAE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAClD,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE;AAC9B,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,QAAQ,EAAE;AAChB,QAAQ;AACR,UAAU,IAAI,EAAE,qBAAqB;AACrC,UAAU,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAClC,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,SAAS,IAAI,IAAI,EAAE;AACzB,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,QAAQ,EAAE;AAChB,QAAQ;AACR,UAAU,IAAI,EAAE,uBAAuB;AACvC,UAAU,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC;AACtD,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,UAAU,IAAI,IAAI,EAAE;AAC1B,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,QAAQ,EAAE;AAChB,QAAQ;AACR,UAAU,IAAI,EAAE,wBAAwB;AACxC,UAAU,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC;AACtD,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC;AACtB,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE;AAC9B,IAAI,QAAQ,CAAC,IAAI,CAAC;AAClB,MAAM,IAAI,EAAE,wBAAwB;AACpC,MAAM,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAC9B,KAAK,CAAC,CAAC;AACP,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACtE,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,QAAQ,EAAE;AAChB,QAAQ;AACR,UAAU,IAAI,EAAE,kBAAkB;AAClC,UAAU,KAAK,EAAE,KAAK,CAAC,IAAI;AAC3B,UAAU,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAClC,SAAS;AACT,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,KAAK,IAAI,IAAI,EAAE;AACrB,IAAI,QAAQ,CAAC,IAAI,CAAC;AAClB,MAAM,IAAI,EAAE,mBAAmB;AAC/B,MAAM,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC;AAClD,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,IAAI,cAAc,CAAC;AACrB,EAAE,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;AACxC,IAAI,cAAc,GAAG,GAAG,CAAC;AACzB,GAAG,MAAM;AACT,IAAI,cAAc,GAAG,EAAE,CAAC;AACxB,GAAG;AACH,EAAE,IAAI,aAAa,CAAC;AACpB,EAAE,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE;AAC9B,IAAI,aAAa,GAAG,MAAM,CAAC;AAC3B,GAAG,MAAM,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE;AACrC,IAAI,aAAa,GAAG,OAAO,CAAC;AAC5B,GAAG,MAAM;AACT,IAAI,aAAa,GAAG,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,IAAI,YAAY,CAAC;AACnB,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,YAAY,GAAG,IAAI,CAAC;AACxB,GAAG,MAAM;AACT,IAAI,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;AAC7D,GAAG;AACH,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;AAClE,IAAI,QAAQ;AACZ,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,oBAAoB,GAAG,CAAC,cAAc,KAAK;AACjD,EAAE,IAAI,cAAc,IAAI,IAAI,EAAE;AAC9B,IAAI,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,MAAM;AACR,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AAC5B,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;AACxB,GAAG,GAAG,cAAc,CAAC;AACrB,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC,CAAC;AACF,MAAM,aAAa,mBAAmB,IAAI,GAAG,CAAC;AAC9C,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;AACjB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACZ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AACxB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACtB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACtB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AACf,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACtB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;AAChB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AACxB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACtB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;AAChB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AACxB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AACf,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAClB,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;AACrB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AAC9B,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAClB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACtB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAClB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;AACpB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACtB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAClB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;AACnB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AACpB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AAC9B,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACtB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACZ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAClB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAClB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AACpB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AACjB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AACpB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AACf,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;AAC5B,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;AACpB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;AAC9B,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;AACpB,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;AACf,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AACxB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AAChB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AACf,CAAC,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9D,MAAM,eAAe,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChH,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,OAAO;AAC9E,EAAE,OAAO;AACT;AACA,EAAE,KAAK;AACP,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,GAAG;AACL,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,KAAK;AACP,CAAC,KAAK;AACN,EAAE,MAAM,OAAO,GAAG,CAAC,IAAI;AACvB;AACA;AACA,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACxC,GAAG,CAAC;AACJ,EAAE,MAAM,MAAM,GAAG;AACjB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;AACzB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;AACzB,IAAI,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;AAC/B,IAAI,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC;AACxD,IAAI,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC;AAChE,GAAG,CAAC;AACJ,EAAE,MAAM,iBAAiB,GAAG,OAAO,UAAU,KAAK;AAClD,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/D,IAAI,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;AAC9E,IAAI,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE;AACvC,MAAM,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,MAAM,OAAO,GAAG,IAAI,GAAG;AAC3B,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AAC/D,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,GAAG,CAAC;AACJ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;AACtE,IAAI,aAAa,EAAE,aAAa,CAAC,uBAAuB;AACxD,IAAI,iBAAiB;AACrB,GAAG,CAAC,CAAC;AACL,EAAE,UAAU,CAAC;AACb,IAAI,eAAe,EAAE,0BAA0B;AAC/C,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,EAAE,CAAC;AACzC,EAAE,IAAI,WAAW,CAAC,uBAAuB,IAAI,UAAU,EAAE;AACzD,IAAI,MAAM,QAAQ;AAClB,MAAM,GAAG;AACT,MAAM,CAAC,EAAE,EAAE,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9D,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO;AACT,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,QAAQ;AACZ,GAAG,CAAC;AACJ,CAAC;;;;;;;AC9aW,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2D,CAAC,EAAE,QAAQ;AAEjI,MAAC,SAAS,GAAG,sDAAsD;AACnE,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,wCAAwC,CAAC,iDAAiD,CAAC,wCAAwC,EAAE;AAC9Q,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,59 @@
1
+ import { e as escapeRegExp } from './regexp-5017d573.js';
2
+ import { c as configuration } from './configuration-d033c4d1.js';
3
+ import { l as listRepositories } from './zoekt-list-repositories-773bcddb.js';
4
+ import { r as redirect } from './index-64aa7a5e.js';
5
+ import '@badrap/valita';
6
+ import 'node:fs';
7
+ import './zoekt-client-dec73ec9.js';
8
+ import './metrics-a6a74309.js';
9
+ import 'prom-client';
10
+
11
+ const load = async ({
12
+ url,
13
+ params: { file, project },
14
+ parent,
15
+ setHeaders,
16
+ fetch
17
+ }) => {
18
+ const revision = url.searchParams.get("r");
19
+ const convertedRepo = configuration.openGrokProjectMappings.get(project);
20
+ const result = await listRepositories(
21
+ {
22
+ query: `repo:^${escapeRegExp(convertedRepo ?? project)}$`
23
+ },
24
+ fetch
25
+ );
26
+ if (result.kind === "error") {
27
+ throw new Error(`Failed to list repositories: ${result.error}`);
28
+ }
29
+ const repo = result.results.repositories[0];
30
+ let destinationUrl;
31
+ if (file) {
32
+ destinationUrl = repo?.fileUrlTemplate.replaceAll("{{.Version}}", revision ?? repo.branches[0].name).replaceAll("{{.Path}}", file);
33
+ } else {
34
+ destinationUrl = repo?.url;
35
+ }
36
+ setHeaders({
37
+ "cache-control": "no-store,must-revalidate"
38
+ });
39
+ if (destinationUrl && (await parent()).preferences.openGrokInstantRedirect) {
40
+ throw redirect(301, destinationUrl);
41
+ }
42
+ return { file, destinationUrl };
43
+ };
44
+
45
+ var _page_server_ts = /*#__PURE__*/Object.freeze({
46
+ __proto__: null,
47
+ load: load
48
+ });
49
+
50
+ const index = 9;
51
+ let component_cache;
52
+ const component = async () => component_cache ??= (await import('./_page.svelte-33789d2d.js')).default;
53
+ const server_id = "src/routes/(opengrok-compat)/xref/[project]/[...file]/+page.server.ts";
54
+ const imports = ["_app/immutable/nodes/9.b3dcb728.js","_app/immutable/chunks/scheduler.80902d3b.js","_app/immutable/chunks/index.d0e6da70.js","_app/immutable/chunks/example-query.ac8ef50a.js","_app/immutable/chunks/link.70630bff.js","_app/immutable/chunks/regexp.50bc0e87.js"];
55
+ const stylesheets = [];
56
+ const fonts = [];
57
+
58
+ export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
59
+ //# sourceMappingURL=9-55cb67b6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"9-55cb67b6.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/(opengrok-compat)/xref/_project_/_...file_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/9.js"],"sourcesContent":["import { e as escapeRegExp } from \"../../../../../../chunks/regexp.js\";\nimport { c as configuration } from \"../../../../../../chunks/configuration.js\";\nimport { l as listRepositories } from \"../../../../../../chunks/zoekt-list-repositories.js\";\nimport { r as redirect } from \"../../../../../../chunks/index.js\";\nconst load = async ({\n url,\n params: { file, project },\n parent,\n setHeaders,\n fetch\n}) => {\n const revision = url.searchParams.get(\"r\");\n const convertedRepo = configuration.openGrokProjectMappings.get(project);\n const result = await listRepositories(\n {\n query: `repo:^${escapeRegExp(convertedRepo ?? project)}$`\n },\n fetch\n );\n if (result.kind === \"error\") {\n throw new Error(`Failed to list repositories: ${result.error}`);\n }\n const repo = result.results.repositories[0];\n let destinationUrl;\n if (file) {\n destinationUrl = repo?.fileUrlTemplate.replaceAll(\"{{.Version}}\", revision ?? repo.branches[0].name).replaceAll(\"{{.Path}}\", file);\n } else {\n destinationUrl = repo?.url;\n }\n setHeaders({\n \"cache-control\": \"no-store,must-revalidate\"\n });\n if (destinationUrl && (await parent()).preferences.openGrokInstantRedirect) {\n throw redirect(301, destinationUrl);\n }\n return { file, destinationUrl };\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/(opengrok-compat)/xref/_project_/_...file_/_page.server.ts.js';\n\nexport const index = 9;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/(opengrok-compat)/xref/_project_/_...file_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/(opengrok-compat)/xref/[project]/[...file]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/9.b3dcb728.js\",\"_app/immutable/chunks/scheduler.80902d3b.js\",\"_app/immutable/chunks/index.d0e6da70.js\",\"_app/immutable/chunks/example-query.ac8ef50a.js\",\"_app/immutable/chunks/link.70630bff.js\",\"_app/immutable/chunks/regexp.50bc0e87.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;AAIA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,GAAG;AACL,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,KAAK;AACP,CAAC,KAAK;AACN,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7C,EAAE,MAAM,aAAa,GAAG,aAAa,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3E,EAAE,MAAM,MAAM,GAAG,MAAM,gBAAgB;AACvC,IAAI;AACJ,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,KAAK;AACT,GAAG,CAAC;AACJ,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC/B,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,6BAA6B,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpE,GAAG;AACH,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC9C,EAAE,IAAI,cAAc,CAAC;AACrB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,cAAc,GAAG,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACvI,GAAG,MAAM;AACT,IAAI,cAAc,GAAG,IAAI,EAAE,GAAG,CAAC;AAC/B,GAAG;AACH,EAAE,UAAU,CAAC;AACb,IAAI,eAAe,EAAE,0BAA0B;AAC/C,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,cAAc,IAAI,CAAC,MAAM,MAAM,EAAE,EAAE,WAAW,CAAC,uBAAuB,EAAE;AAC9E,IAAI,MAAM,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AACxC,GAAG;AACH,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAClC,CAAC;;;;;;;AClCW,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA6E,CAAC,EAAE,QAAQ;AAEnJ,MAAC,SAAS,GAAG,wEAAwE;AACrF,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,iDAAiD,CAAC,wCAAwC,CAAC,0CAA0C,EAAE;AAChR,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,13 @@
1
+ import { a as subscribe } from './lifecycle-cbdd95e4.js';
2
+ import { c as create_ssr_component, a as escape } from './ssr-0f259a0f.js';
3
+ import { p as page } from './stores-2f0685cf.js';
4
+
5
+ const Error = create_ssr_component(($$result, $$props, $$bindings, slots) => {
6
+ let $page, $$unsubscribe_page;
7
+ $$unsubscribe_page = subscribe(page, (value) => $page = value);
8
+ $$unsubscribe_page();
9
+ return `<h1 class="text-center text-xl">${escape($page.status)} - ${escape($page.error?.message)}</h1>`;
10
+ });
11
+
12
+ export { Error as default };
13
+ //# sourceMappingURL=_error.svelte-dd890063.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_error.svelte-dd890063.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_error.svelte.js"],"sourcesContent":["import { a as subscribe } from \"../../chunks/lifecycle.js\";\nimport { c as create_ssr_component, a as escape } from \"../../chunks/ssr.js\";\nimport { p as page } from \"../../chunks/stores.js\";\nconst Error = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let $page, $$unsubscribe_page;\n $$unsubscribe_page = subscribe(page, (value) => $page = value);\n $$unsubscribe_page();\n return `<h1 class=\"text-center text-xl\">${escape($page.status)} - ${escape($page.error?.message)}</h1>`;\n});\nexport {\n Error as default\n};\n"],"names":[],"mappings":";;;;AAGK,MAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC7E,EAAE,IAAI,KAAK,EAAE,kBAAkB,CAAC;AAChC,EAAE,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AACjE,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,gCAAgC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1G,CAAC;;;;"}
@@ -0,0 +1,37 @@
1
+ import { a as subscribe } from './lifecycle-cbdd95e4.js';
2
+ import { c as create_ssr_component, e as each, a as escape, b as add_attribute } from './ssr-0f259a0f.js';
3
+ import { p as page } from './stores-2f0685cf.js';
4
+ import { p as persistInitialPreferences } from './preferences-304b2e02.js';
5
+ import './index2-7c17b4da.js';
6
+
7
+ const Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {
8
+ let $page, $$unsubscribe_page;
9
+ $$unsubscribe_page = subscribe(page, (value) => $page = value);
10
+ const navLinks = [
11
+ ["/", "Search"],
12
+ ["/repositories", "Repositories"],
13
+ ["/syntax", "Query Syntax"],
14
+ ["/about", "About"],
15
+ ["/preferences", "Preferences"]
16
+ ];
17
+ let { data } = $$props;
18
+ persistInitialPreferences(data.preferences);
19
+ if ($$props.data === void 0 && $$bindings.data && data !== void 0)
20
+ $$bindings.data(data);
21
+ $$unsubscribe_page();
22
+ return `<div class="container mx-auto px-2 py-4"><nav class="pb-12"><ul class="flex justify-center text-xs gap-y-2 flex-wrap">${each(navLinks, ([url, text]) => {
23
+ return ` <li class="after:content-['•'] after:pl-1 after:pr-2 last:after:content-none">${url === $page.url.pathname ? `${escape(text)}` : `<a class="text-cyan-700"${add_attribute(
24
+ "href",
25
+ `${url}${// On non-opengrok-compatibility pages, preserve the query
26
+ // string so that search queries are preserved across
27
+ // navigations. This is useful when moving back and forth
28
+ // between the main search and the repo search, or the main
29
+ // search and the query syntax page.
30
+ $page.route.id?.startsWith("/(opengrok-compat)/") ? "" : $page.url.search}`,
31
+ 0
32
+ )}>${escape(text)}</a>`} </li>`;
33
+ })}</ul></nav> <main>${slots.default ? slots.default({}) : ``}</main></div>`;
34
+ });
35
+
36
+ export { Layout as default };
37
+ //# sourceMappingURL=_layout.svelte-9a1c428f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_layout.svelte-9a1c428f.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { a as subscribe } from \"../../chunks/lifecycle.js\";\nimport { c as create_ssr_component, e as each, a as escape, b as add_attribute } from \"../../chunks/ssr.js\";\nimport { p as page } from \"../../chunks/stores.js\";\nimport { p as persistInitialPreferences } from \"../../chunks/preferences.js\";\nconst app = \"\";\nconst Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let $page, $$unsubscribe_page;\n $$unsubscribe_page = subscribe(page, (value) => $page = value);\n const navLinks = [\n [\"/\", \"Search\"],\n [\"/repositories\", \"Repositories\"],\n [\"/syntax\", \"Query Syntax\"],\n [\"/about\", \"About\"],\n [\"/preferences\", \"Preferences\"]\n ];\n let { data } = $$props;\n persistInitialPreferences(data.preferences);\n if ($$props.data === void 0 && $$bindings.data && data !== void 0)\n $$bindings.data(data);\n $$unsubscribe_page();\n return `<div class=\"container mx-auto px-2 py-4\"><nav class=\"pb-12\"><ul class=\"flex justify-center text-xs gap-y-2 flex-wrap\">${each(navLinks, ([url, text]) => {\n return ` <li class=\"after:content-['•'] after:pl-1 after:pr-2 last:after:content-none\">${url === $page.url.pathname ? `${escape(text)}` : `<a class=\"text-cyan-700\"${add_attribute(\n \"href\",\n `${url}${// On non-opengrok-compatibility pages, preserve the query\n // string so that search queries are preserved across\n // navigations. This is useful when moving back and forth\n // between the main search and the repo search, or the main\n // search and the query syntax page.\n $page.route.id?.startsWith(\"/(opengrok-compat)/\") ? \"\" : $page.url.search}`,\n 0\n )}>${escape(text)}</a>`} </li>`;\n })}</ul></nav> <main>${slots.default ? slots.default({}) : ``}</main></div>`;\n});\nexport {\n Layout as default\n};\n"],"names":[],"mappings":";;;;;;AAKK,MAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC9E,EAAE,IAAI,KAAK,EAAE,kBAAkB,CAAC;AAChC,EAAE,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AACjE,EAAE,MAAM,QAAQ,GAAG;AACnB,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;AACnB,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC;AACrC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC;AAC/B,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;AACvB,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC;AACnC,GAAG,CAAC;AACJ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,sHAAsH,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK;AAClK,IAAI,OAAO,CAAC,+EAA+E,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE,aAAa;AACtL,MAAM,MAAM;AACZ,MAAM,CAAC,EAAE,GAAG,CAAC;AACb;AACA;AACA;AACA;AACA,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,CAAC;AACP,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACpC,GAAG,CAAC,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AAC/E,CAAC;;;;"}