polen 0.8.0-next.4 → 0.8.0-next.6

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 (42) hide show
  1. package/build/api/vite/plugins/core.d.ts.map +1 -1
  2. package/build/api/vite/plugins/core.js +146 -52
  3. package/build/api/vite/plugins/core.js.map +1 -1
  4. package/build/lib/file-router/linter.d.ts.map +1 -1
  5. package/build/lib/file-router/linter.js +3 -3
  6. package/build/lib/file-router/linter.js.map +1 -1
  7. package/build/lib/file-router/route.d.ts +48 -10
  8. package/build/lib/file-router/route.d.ts.map +1 -1
  9. package/build/lib/file-router/route.js +68 -3
  10. package/build/lib/file-router/route.js.map +1 -1
  11. package/build/lib/file-router/scan.d.ts +2 -2
  12. package/build/lib/file-router/scan.d.ts.map +1 -1
  13. package/build/lib/file-router/scan.js +8 -8
  14. package/build/lib/file-router/scan.js.map +1 -1
  15. package/build/lib/file-router/sidebar.d.ts +2 -0
  16. package/build/lib/file-router/sidebar.d.ts.map +1 -0
  17. package/build/lib/file-router/sidebar.js +2 -0
  18. package/build/lib/file-router/sidebar.js.map +1 -0
  19. package/build/lib/kit-temp.d.ts +2 -0
  20. package/build/lib/kit-temp.d.ts.map +1 -0
  21. package/build/lib/kit-temp.js +23 -0
  22. package/build/lib/kit-temp.js.map +1 -0
  23. package/build/project-data.d.ts +21 -1
  24. package/build/project-data.d.ts.map +1 -1
  25. package/build/template/components/Sidebar.d.ts +7 -0
  26. package/build/template/components/Sidebar.d.ts.map +1 -0
  27. package/build/template/components/Sidebar.jsx +108 -0
  28. package/build/template/components/Sidebar.jsx.map +1 -0
  29. package/build/template/routes/root.d.ts.map +1 -1
  30. package/build/template/routes/root.jsx +28 -5
  31. package/build/template/routes/root.jsx.map +1 -1
  32. package/package.json +1 -1
  33. package/src/api/vite/plugins/core.ts +178 -54
  34. package/src/lib/file-router/index.test.ts +5 -5
  35. package/src/lib/file-router/linter.ts +3 -3
  36. package/src/lib/file-router/route.ts +147 -11
  37. package/src/lib/file-router/scan.ts +9 -9
  38. package/src/lib/file-router/sidebar.ts +0 -0
  39. package/src/lib/kit-temp.ts +21 -0
  40. package/src/project-data.ts +26 -1
  41. package/src/template/components/Sidebar.tsx +185 -0
  42. package/src/template/routes/root.tsx +35 -5
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAS9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAW/D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,CAAA;CACjC;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,YAAY,CAAC,MAAM,KAAG,IAAI,CAAC,YAAY,EAiNnE,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAgB9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAW/D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,CAAA;CACjC;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,YAAY,CAAC,MAAM,KAAG,IAAI,CAAC,YAAY,EA4OnE,CAAA"}
@@ -1,8 +1,7 @@
1
- import { Markdown } from '#api/singletons/markdown/index.js';
2
1
  import { FileRouter } from '#lib/file-router/index.js';
3
2
  import { ViteVirtual } from '#lib/vite-virtual/index.js';
4
3
  import mdx from '@mdx-js/rollup';
5
- import { Cache, Fs, Json, Path, Str } from '@wollybeard/kit';
4
+ import { Cache, Idx, Json, Path, Str } from '@wollybeard/kit';
6
5
  import jsesc from 'jsesc';
7
6
  import remarkGfm from 'remark-gfm';
8
7
  import { superjson } from '../../../singletons/superjson.js';
@@ -40,27 +39,30 @@ export const Core = (config) => {
40
39
  ],
41
40
  }),
42
41
  },
43
- {
44
- name: `polen:markdown`,
45
- enforce: `pre`,
46
- resolveId(id) {
47
- if (id.endsWith(`.md`)) {
48
- return id;
49
- }
50
- return null;
51
- },
52
- async load(id) {
53
- if (id.endsWith(`.md`)) {
54
- const markdownString = await Fs.read(id);
55
- if (!markdownString)
56
- return null;
57
- const htmlString = await Markdown.parse(markdownString);
58
- const code = `export default ${JSON.stringify(htmlString)}`;
59
- return code;
60
- }
61
- return null;
62
- },
63
- },
42
+ // TODO: We can remove, mdx subsumes this
43
+ // TODO: First we need to investigate how e can make our api singleton Markdown used by MDX.
44
+ // If we cannot, then we might want to ditch MDX instead and use our lower level solution here.
45
+ // It depends in part on how complex our Markdown singleton gets.
46
+ // {
47
+ // name: `polen:markdown`,
48
+ // enforce: `pre`,
49
+ // resolveId(id) {
50
+ // if (id.endsWith(`.md`)) {
51
+ // return id
52
+ // }
53
+ // return null
54
+ // },
55
+ // async load(id) {
56
+ // if (id.endsWith(`.md`)) {
57
+ // const markdownString = await Fs.read(id)
58
+ // if (!markdownString) return null
59
+ // const htmlString = await Markdown.parse(markdownString)
60
+ // const code = `export default ${JSON.stringify(htmlString)}`
61
+ // return code
62
+ // }
63
+ // return null
64
+ // },
65
+ // },
64
66
  {
65
67
  name: `polen:core:alias`,
66
68
  resolveId(id, importer) {
@@ -120,30 +122,55 @@ export const Core = (config) => {
120
122
  async loader() {
121
123
  // todo: parallel
122
124
  const schema = await readSchema();
123
- console.log({ schema });
124
125
  const pagesScanResult = await scanPageRoutes();
125
126
  const siteNavigationItems = [];
126
- const siteNavigationItemsFromTopLevelPages = pagesScanResult.routes
127
- // We exclude home page
128
- .filter(route => route.path.segments.length === 1)
129
- .map(route => {
130
- const path = FileRouter.routeToString(route);
127
+ //
128
+ // ━━ Build Navbar
129
+ //
130
+ // Top pages become navigation items
131
+ const topPages = pagesScanResult.routes.filter(FileRouter.routeIsTopLevel);
132
+ for (const page of topPages) {
133
+ const path = FileRouter.routeToPathExpression(page);
131
134
  const title = Str.titlizeSlug(path);
132
- return {
133
- path,
134
- title,
135
- };
136
- });
137
- siteNavigationItems.push(...siteNavigationItemsFromTopLevelPages);
135
+ siteNavigationItems.push({ pathExp: path, title });
136
+ }
137
+ // ━ Top directories become navigation items
138
+ const topDirsPaths = pagesScanResult.routes
139
+ .filter(FileRouter.routeIsSubLevel)
140
+ // todo: kit, slice that understands non-empty
141
+ // Arr.slice(route.path.segments, 1)
142
+ .map(route => [route.logical.path[0]]);
143
+ for (const dir of topDirsPaths) {
144
+ const pathExp = FileRouter.pathToExpression(dir);
145
+ const title = Str.titlizeSlug(pathExp);
146
+ // todo: this should never happen, if it does, swarn user
147
+ // Only add if not already added as a top page
148
+ if (!siteNavigationItems.some(item => item.pathExp === pathExp)) {
149
+ siteNavigationItems.push({ pathExp: pathExp, title });
150
+ }
151
+ }
152
+ // ━ Schema presence causes adding some navbar items
138
153
  if (schema) {
139
- siteNavigationItems.push({ path: `/reference`, title: `Reference` });
154
+ siteNavigationItems.push({ pathExp: `/reference`, title: `Reference` });
140
155
  if (schema.versions.length > 1) {
141
- siteNavigationItems.push({ path: `/changelog`, title: `Changelog` });
156
+ siteNavigationItems.push({ pathExp: `/changelog`, title: `Changelog` });
142
157
  }
143
158
  }
159
+ //
160
+ // ━━ Build Sidebar
161
+ //
162
+ const sidebarIndex = {};
163
+ for (const dirPath of topDirsPaths) {
164
+ const childPages = pagesScanResult.routes.filter(page => FileRouter.routeIsSubOf(page, dirPath));
165
+ sidebarIndex[FileRouter.pathToExpression(dirPath)] = buildSidebar(childPages, dirPath);
166
+ }
167
+ //
168
+ // ━━ Put It All together
169
+ //
144
170
  const projectData = {
145
171
  schema,
146
172
  siteNavigationItems,
173
+ sidebarIndex,
147
174
  faviconPath: `/logo.svg`,
148
175
  pagesScanResult: pagesScanResult,
149
176
  paths: config.paths.project,
@@ -177,24 +204,15 @@ export const Core = (config) => {
177
204
  s `export const ${$.pages} = []`;
178
205
  // todo: kit fs should accept parsed file paths
179
206
  for (const route of pagesScanResult.routes) {
180
- const filePath = Path.format(route.file.path.absolute);
181
- const path = FileRouter.routeToString(route);
182
- const ident = Str.Case.camel(`page ` + Str.titlizeSlug(path));
207
+ const filePathExp = Path.format(route.file.path.absolute);
208
+ const pathExp = FileRouter.routeToPathExpression(route);
209
+ const ident = Str.Case.camel(`page ` + Str.titlizeSlug(pathExp));
183
210
  s `
184
- import ${ident} from '${filePath}'
211
+ import ${ident} from '${filePathExp}'
185
212
 
186
213
  ${$.pages}.push({
187
- path: '${path}',
188
- Component: () => {
189
- if (typeof ${ident} === 'function') {
190
- // ━ MDX
191
- const Component = ${ident}
192
- return <Component />
193
- } else {
194
- // ━ MD
195
- return <div dangerouslySetInnerHTML={{ __html: ${ident} }} />
196
- }
197
- }
214
+ path: '${pathExp}',
215
+ Component: ${ident}
198
216
  })
199
217
  `;
200
218
  }
@@ -204,4 +222,80 @@ export const Core = (config) => {
204
222
  },
205
223
  ];
206
224
  };
225
+ /**
226
+ * Helper function to build sidebar items recursively
227
+ */
228
+ const buildSidebar = (pages, basePath) => {
229
+ const navs = [];
230
+ const sections = Idx.create({ toKey: (item) => item.pathExp });
231
+ // Items
232
+ for (const page of pages) {
233
+ const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath);
234
+ if (FileRouter.routeIsRootLevel(pageRelative)) {
235
+ continue;
236
+ }
237
+ if (FileRouter.routeIsTopLevel(pageRelative)) {
238
+ // Section (index)
239
+ if (FileRouter.routeIsFromIndexFile(pageRelative)) {
240
+ const sectionPath = page.logical.path;
241
+ const sectionPathExp = FileRouter.pathToExpression(sectionPath);
242
+ let section;
243
+ section = sections.getKey(sectionPathExp);
244
+ if (!section) {
245
+ const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(pageRelative.logical.path));
246
+ section = {
247
+ type: `SidebarSection`,
248
+ title: sectionTitle,
249
+ pathExp: sectionPathExp,
250
+ isNavToo: false,
251
+ navs: [],
252
+ };
253
+ sections.set(section);
254
+ }
255
+ section.isNavToo = true;
256
+ continue;
257
+ }
258
+ // Nav
259
+ navs.push(pageToSidebarNav(page, basePath));
260
+ continue;
261
+ }
262
+ // Section (sub-page)
263
+ if (FileRouter.routeIsSubLevel(pageRelative)) {
264
+ const sectionRelativePath = [pageRelative.logical.path[0]];
265
+ const sectionPath = [...basePath, ...sectionRelativePath];
266
+ const sectionPathExp = FileRouter.pathToExpression(sectionPath);
267
+ let section;
268
+ section = sections.getKey(sectionPathExp);
269
+ if (!section) {
270
+ const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(sectionRelativePath));
271
+ section = {
272
+ type: `SidebarSection`,
273
+ title: sectionTitle,
274
+ pathExp: sectionPathExp,
275
+ isNavToo: false,
276
+ navs: [],
277
+ };
278
+ sections.set(section);
279
+ }
280
+ section.navs.push(pageToSidebarNav(page, sectionPath));
281
+ }
282
+ }
283
+ const items = [...navs, ...sections.data.array];
284
+ return {
285
+ items,
286
+ };
287
+ };
288
+ /**
289
+ * Helper function to build sidebar items recursively
290
+ */
291
+ const pageToSidebarNav = (page, basePath) => {
292
+ const pagePathExp = FileRouter.routeToPathExpression(page);
293
+ const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath);
294
+ const pageRelativePathExp = FileRouter.routeToPathExpression(pageRelative);
295
+ return {
296
+ type: `SidebarItem`,
297
+ pathExp: pagePathExp,
298
+ title: Str.titlizeSlug(pageRelativePathExp),
299
+ };
300
+ };
207
301
  //# sourceMappingURL=core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/api/vite/plugins/core.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAA+B,MAAM,YAAY,CAAA;AAEpF,MAAM,MAAM,UAAU,GAAG,uBAAuB,CAAA;AAEhD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QACP,IAAI,EAAE,SAAS,CAAA;KAChB,CAAA;IACD,KAAK,EAAE;QACL,IAAI,EAAE,SAAS,CAAA;KAChB,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,KAAK,EAAE,KAAG,UA0CtC,CAAA"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/linter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAA+C,MAAM,YAAY,CAAA;AAEpG,MAAM,MAAM,UAAU,GAAG,uBAAuB,CAAA;AAEhD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE;QACP,IAAI,EAAE,SAAS,CAAA;KAChB,CAAA;IACD,KAAK,EAAE;QACL,IAAI,EAAE,SAAS,CAAA;KAChB,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,KAAK,EAAE,KAAG,UA0CtC,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { Idx, Path } from '@wollybeard/kit';
2
- import { routeIsIndex, routeToString } from './route.js';
2
+ import { routeIsFromIndexFile, routeToPathExpression } from './route.js';
3
3
  export const lint = (routes) => {
4
4
  const diagnostics = [];
5
- const seen = Idx.create({ toKey: routeToString });
5
+ const seen = Idx.create({ toKey: routeToPathExpression });
6
6
  // ━ Check for conflict between index and literal.
7
7
  // Note: There is no other way for paths to conflict so we safely assuming the cause is index+literal.
8
8
  for (const route of routes) {
@@ -10,7 +10,7 @@ export const lint = (routes) => {
10
10
  const seenRoute = seen.get(route);
11
11
  if (seenRoute) {
12
12
  // Fix - ignore the index
13
- const [index, literal] = routeIsIndex(route) ? [route, seenRoute] : [seenRoute, route];
13
+ const [index, literal] = routeIsFromIndexFile(route) ? [route, seenRoute] : [seenRoute, route];
14
14
  if (seenRoute === index) {
15
15
  seen.set(route);
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../src/lib/file-router/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAA8B,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAmBpF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAe,EAAc,EAAE;IAClD,MAAM,WAAW,GAAiB,EAAE,CAAA;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAA;IAEjD,kDAAkD;IAClD,wGAAwG;IACxG,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,SAAS;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEjC,IAAI,SAAS,EAAE,CAAC;YACd,yBAAyB;YACzB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YACtF,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;YAED,SAAS;YACT,MAAM,UAAU,GAA4B;gBAC1C,gBAAgB;gBAChB,OAAO,EAAE,sEAAsE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oDAAoD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,yCAAyC;gBACxP,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAA;YACD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAE5B,SAAQ;QACV,CAAC;QAED,WAAW;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IAED,OAAO;QACL,WAAW;QACX,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;KACxB,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../src/lib/file-router/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAA8B,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAmBpG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAe,EAAc,EAAE;IAClD,MAAM,WAAW,GAAiB,EAAE,CAAA;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAA;IAEzD,kDAAkD;IAClD,wGAAwG;IACxG,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,SAAS;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEjC,IAAI,SAAS,EAAE,CAAC;YACd,yBAAyB;YACzB,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAC9F,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;YAED,SAAS;YACT,MAAM,UAAU,GAA4B;gBAC1C,gBAAgB;gBAChB,OAAO,EAAE,sEAAsE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oDAAoD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,yCAAyC;gBACxP,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO,CAAC,IAAI;iBACnB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB;aACF,CAAA;YACD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAE5B,SAAQ;QACV,CAAC;QAED,WAAW;QACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IAED,OAAO;QACL,WAAW;QACX,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;KACxB,CAAA;AACH,CAAC,CAAA"}
@@ -1,7 +1,17 @@
1
- import type { Path } from '@wollybeard/kit';
2
- export type RoutePathSegment = string;
3
- export interface RoutePath {
4
- segments: RoutePathSegment[];
1
+ import { type Path } from '@wollybeard/kit';
2
+ export type Path = PathSegment[];
3
+ export type PathRoot = [];
4
+ export type PathTop = [PathSegment];
5
+ export type PathSub = [PathSegment, PathSegment, ...PathSegment[]];
6
+ export type PathSegment = string;
7
+ export declare const sep = "/";
8
+ export declare const pathToExpression: (path: Path) => string;
9
+ export interface Route {
10
+ logical: RouteLogical;
11
+ file: RouteFile;
12
+ }
13
+ export interface RouteLogical {
14
+ path: Path;
5
15
  }
6
16
  export interface RouteFile {
7
17
  path: {
@@ -9,11 +19,39 @@ export interface RouteFile {
9
19
  absolute: Path.Parsed;
10
20
  };
11
21
  }
12
- export interface Route {
13
- path: RoutePath;
14
- file: RouteFile;
22
+ export interface TopLevelRoute extends Route {
23
+ logical: TopLevelRouteLogical;
15
24
  }
16
- export declare const sep = "/";
17
- export declare const routeToString: (route: Route) => string;
18
- export declare const routeIsIndex: (route: Route) => boolean;
25
+ export interface TopLevelRouteLogical {
26
+ path: PathTop;
27
+ }
28
+ /**
29
+ * Route is top level meaning exists directly under the root.
30
+ *
31
+ * It excludes the root level route.
32
+ */
33
+ export declare const routeIsTopLevel: (route: Route) => route is TopLevelRoute;
34
+ export interface RouteSubLevel extends Route {
35
+ logical: RoutePathSubLevel;
36
+ }
37
+ export interface RoutePathSubLevel {
38
+ path: PathSub;
39
+ }
40
+ /**
41
+ * Route is not top or root level
42
+ */
43
+ export declare const routeIsSubLevel: (route: Route) => route is RouteSubLevel;
44
+ /**
45
+ * Route is the singular root route.
46
+
47
+ * This is the case of index under root.
48
+ */
49
+ export declare const routeIsRootLevel: (route: Route) => route is TopLevelRoute;
50
+ export declare const routeIsFromIndexFile: (route: Route) => boolean;
51
+ export declare const routeIsSubOf: (route: Route, potentialAncestorPath: PathSegment[]) => boolean;
52
+ /**
53
+ * You are responsible for ensuring given ancestor path is really an ancestor of given route's path.
54
+ */
55
+ export declare const makeRelativeUnsafe: (route: Route, assumedAncestorPath: PathSegment[]) => Route;
56
+ export declare const routeToPathExpression: (route: Route) => string;
19
57
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAErC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAA;QACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,eAAO,MAAM,GAAG,MAAM,CAAA;AAEtB,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,WAEzC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,YAExC,CAAA"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAU3C,MAAM,MAAM,IAAI,GAAG,WAAW,EAAE,CAAA;AAEhC,MAAM,MAAM,QAAQ,GAAG,EAAE,CAAA;AAEzB,MAAM,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,CAAA;AAEnC,MAAM,MAAM,OAAO,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAA;AAElE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC,eAAO,MAAM,GAAG,MAAM,CAAA;AAEtB,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,WAE1C,CAAA;AAUD,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,YAAY,CAAA;IACrB,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAA;CACX;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAA;QACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAA;KACtB,CAAA;CACF;AAUD,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,OAAO,EAAE,oBAAoB,CAAA;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,aAEvD,CAAA;AAcD,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,OAAO,EAAE,iBAAiB,CAAA;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,aAEvD,CAAA;AAcD;;;;EAIE;AACF,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,KAAG,KAAK,IAAI,aAIxD,CAAA;AASD,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,KAAG,OAEnD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,EAAE,uBAAuB,WAAW,EAAE,KAAG,OAQjF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,KAAK,EAAE,qBAAqB,WAAW,EAAE,KAAG,KAUrF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,OAAO,KAAK,WAEjD,CAAA"}
@@ -1,10 +1,75 @@
1
+ import { arrayEquals } from '#lib/kit-temp.js';
2
+ import {} from '@wollybeard/kit';
1
3
  export const sep = `/`;
2
- export const routeToString = (route) => {
3
- return sep + route.path.segments.join(sep);
4
+ export const pathToExpression = (path) => {
5
+ return sep + path.join(sep);
4
6
  };
5
- export const routeIsIndex = (route) => {
7
+ /**
8
+ * Route is top level meaning exists directly under the root.
9
+ *
10
+ * It excludes the root level route.
11
+ */
12
+ export const routeIsTopLevel = (route) => {
13
+ return route.logical.path.length === 1;
14
+ };
15
+ /**
16
+ * Route is not top or root level
17
+ */
18
+ export const routeIsSubLevel = (route) => {
19
+ return route.logical.path.length > 1;
20
+ };
21
+ //
22
+ // ━━ Root Level
23
+ //
24
+ //
25
+ //
26
+ //
27
+ //
28
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Root Level Route
29
+ //
30
+ //
31
+ /**
32
+ * Route is the singular root route.
33
+
34
+ * This is the case of index under root.
35
+ */
36
+ export const routeIsRootLevel = (route) => {
37
+ // No need to check for name "index"
38
+ // Segments is uniquely empty for <root>/index
39
+ return route.logical.path.length === 0;
40
+ };
41
+ //
42
+ //
43
+ //
44
+ // ━━━━━━━━━━━━━━ • Route Functions
45
+ //
46
+ //
47
+ export const routeIsFromIndexFile = (route) => {
6
48
  return route.file.path.relative.name === conventions.index.name;
7
49
  };
50
+ export const routeIsSubOf = (route, potentialAncestorPath) => {
51
+ if (route.logical.path.length <= potentialAncestorPath.length) {
52
+ return false;
53
+ }
54
+ return arrayEquals(route.logical.path.slice(0, potentialAncestorPath.length), potentialAncestorPath);
55
+ };
56
+ /**
57
+ * You are responsible for ensuring given ancestor path is really an ancestor of given route's path.
58
+ */
59
+ export const makeRelativeUnsafe = (route, assumedAncestorPath) => {
60
+ // We assume that we're working with paths where index is elided per our FileRouter system.
61
+ const newPath = route.logical.path.slice(assumedAncestorPath.length);
62
+ return {
63
+ ...route,
64
+ logical: {
65
+ ...route.logical,
66
+ path: newPath,
67
+ },
68
+ };
69
+ };
70
+ export const routeToPathExpression = (route) => {
71
+ return pathToExpression(route.logical.path);
72
+ };
8
73
  const conventions = {
9
74
  index: {
10
75
  name: `index`,
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/lib/file-router/route.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAA;AAEtB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5C,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;IAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;KACd;CACF,CAAA"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/lib/file-router/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAa,MAAM,iBAAiB,CAAA;AAoB3C,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAA;AAEtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,EAAE;IAC7C,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC7B,CAAC,CAAA;AA0CD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAY,EAA0B,EAAE;IACtE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAA;AACxC,CAAC,CAAA;AAsBD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAY,EAA0B,EAAE;IACtE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,EAAE;AACF,gBAAgB;AAChB,EAAE;AAEF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,EAAE;AAEF;;;;EAIE;AACF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAA0B,EAAE;IACvE,oCAAoC;IACpC,8CAA8C;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,EAAE;AACF,EAAE;AACF,EAAE;AACF,mCAAmC;AACnC,EAAE;AACF,EAAE;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAW,EAAE;IAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,qBAAoC,EAAW,EAAE;IAC1F,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,WAAW,CAChB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACzD,qBAAqB,CACtB,CAAA;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAY,EAAE,mBAAkC,EAAS,EAAE;IAC5F,2FAA2F;IAC3F,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACpE,OAAO;QACL,GAAG,KAAK;QACR,OAAO,EAAE;YACP,GAAG,KAAK,CAAC,OAAO;YAChB,IAAI,EAAE,OAAO;SACd;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAY,EAAE,EAAE;IACpD,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;KACd;CACF,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { Path } from '@wollybeard/kit';
2
2
  import { type Diagnostic } from './linter.js';
3
- import type { Route, RoutePath } from './route.js';
3
+ import type { Route, RouteLogical } from './route.js';
4
4
  export interface ScanResult {
5
5
  routes: Route[];
6
6
  diagnostics: Diagnostic[];
@@ -10,5 +10,5 @@ export declare const scan: (parameters: {
10
10
  glob?: string;
11
11
  }) => Promise<ScanResult>;
12
12
  export declare const filePathToRoute: (filePathExpression: string, rootDir: string) => Route;
13
- export declare const filePathToRoutePath: (filePath: Path.Parsed) => RoutePath;
13
+ export declare const filePathToRouteLogical: (filePath: Path.Parsed) => RouteLogical;
14
14
  //# sourceMappingURL=scan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAO,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAa,SAAS,EAAE,MAAM,YAAY,CAAA;AAwB7D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAUD,eAAO,MAAM,IAAI,GAAU,YAAY;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,KAAG,OAAO,CAAC,UAAU,CAcrB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,oBAAoB,MAAM,EAAE,SAAS,MAAM,KAAG,KAa7E,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAU,IAAI,CAAC,MAAM,KAAG,SAc3D,CAAA"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/scan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAO,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,KAAK,EAAa,YAAY,EAAE,MAAM,YAAY,CAAA;AAwBhE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B;AAUD,eAAO,MAAM,IAAI,GAAU,YAAY;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,KAAG,OAAO,CAAC,UAAU,CAcrB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,oBAAoB,MAAM,EAAE,SAAS,MAAM,KAAG,KAa7E,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,UAAU,IAAI,CAAC,MAAM,KAAG,YAc9D,CAAA"}
@@ -38,23 +38,23 @@ export const filePathToRoute = (filePathExpression, rootDir) => {
38
38
  relative: Path.parse(Path.relative(rootDir, filePathExpression)),
39
39
  },
40
40
  };
41
- const path = filePathToRoutePath(file.path.relative);
41
+ const logical = filePathToRouteLogical(file.path.relative);
42
42
  return {
43
- path,
43
+ logical,
44
44
  file,
45
45
  };
46
46
  };
47
- export const filePathToRoutePath = (filePath) => {
48
- const dirSegments = Str.split(Str.removeSurrounding(filePath.dir, Path.sep), Path.sep);
47
+ export const filePathToRouteLogical = (filePath) => {
48
+ const dirPath = Str.split(Str.removeSurrounding(filePath.dir, Path.sep), Path.sep);
49
49
  if (Str.isMatch(filePath.name, conventions.index.name)) {
50
- const segments = dirSegments;
50
+ const path = dirPath;
51
51
  return {
52
- segments,
52
+ path,
53
53
  };
54
54
  }
55
- const segments = dirSegments.concat(filePath.name);
55
+ const path = dirPath.concat(filePath.name);
56
56
  return {
57
- segments,
57
+ path,
58
58
  };
59
59
  };
60
60
  //# sourceMappingURL=scan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/lib/file-router/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAmB,IAAI,EAAE,MAAM,aAAa,CAAA;AAGnD,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,yDAAyD;AACzD,EAAE;AACF,EAAE;AAEF,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;KACd;CACF,CAAA;AAeD,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,EAAE;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,UAG1B,EAAuB,EAAE;IACxB,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,UAAU,CAAA;IAEzC,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;QAClD,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAY,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAEvF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAE/B,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,kBAA0B,EAAE,OAAe,EAAS,EAAE;IACpF,MAAM,IAAI,GAAc;QACtB,IAAI,EAAE;YACJ,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;SACjE;KACF,CAAA;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEpD,OAAO;QACL,IAAI;QACJ,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAqB,EAAa,EAAE;IACtE,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAEtF,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,WAAW,CAAA;QAC5B,OAAO;YACL,QAAQ;SACT,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,OAAO;QACL,QAAQ;KACT,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/lib/file-router/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAmB,IAAI,EAAE,MAAM,aAAa,CAAA;AAGnD,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,yDAAyD;AACzD,EAAE;AACF,EAAE;AAEF,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;KACd;CACF,CAAA;AAeD,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,EAAE;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAE,UAG1B,EAAuB,EAAE;IACxB,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,UAAU,CAAA;IAEzC,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;QAClD,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAY,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAEvF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IAE/B,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,kBAA0B,EAAE,OAAe,EAAS,EAAE;IACpF,MAAM,IAAI,GAAc;QACtB,IAAI,EAAE;YACJ,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;SACjE;KACF,CAAA;IACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE1D,OAAO;QACL,OAAO;QACP,IAAI;KACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAqB,EAAgB,EAAE;IAC5E,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IAElF,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,CAAA;QACpB,OAAO;YACL,IAAI;SACL,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC1C,OAAO;QACL,IAAI;KACL,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/lib/file-router/sidebar.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../src/lib/file-router/sidebar.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare const arrayEquals: (a: any[], b: any[]) => boolean;
2
+ //# sourceMappingURL=kit-temp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kit-temp.d.ts","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,WAAW,GAAI,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,YAM7C,CAAA"}
@@ -0,0 +1,23 @@
1
+ //
2
+ //
3
+ //
4
+ //
5
+ //
6
+ // Holding Module for Missing @wollybeard/kit Functionality
7
+ //
8
+ // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
9
+ //
10
+ // Code here is meant to be migrated eventually to @wollybeard/kit.
11
+ //
12
+ //
13
+ //
14
+ export const arrayEquals = (a, b) => {
15
+ if (a.length !== b.length)
16
+ return false;
17
+ for (let i = 0; i < a.length; i++) {
18
+ if (a[i] !== b[i])
19
+ return false;
20
+ }
21
+ return true;
22
+ };
23
+ //# sourceMappingURL=kit-temp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kit-temp.js","sourceRoot":"","sources":["../../src/lib/kit-temp.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,mFAAmF;AACnF,EAAE;AACF,mEAAmE;AACnE,EAAE;AACF,EAAE;AACF,EAAE;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAE,EAAE;IAChD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IACjC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}