next 15.4.0-canary.80 → 15.4.0-canary.81

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 (69) hide show
  1. package/dist/bin/next +1 -1
  2. package/dist/build/index.js +2 -2
  3. package/dist/build/swc/index.js +1 -1
  4. package/dist/build/webpack-config.js +2 -2
  5. package/dist/client/app-bootstrap.js +1 -1
  6. package/dist/client/index.js +1 -1
  7. package/dist/compiled/next-devtools/index.js +1 -1
  8. package/dist/compiled/next-devtools/index.js.map +1 -1
  9. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +2 -2
  10. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
  11. package/dist/compiled/next-server/app-page-turbo.runtime.dev.js +2 -2
  12. package/dist/compiled/next-server/app-page-turbo.runtime.dev.js.map +1 -1
  13. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js +1 -1
  14. package/dist/compiled/next-server/pages-api-turbo.runtime.prod.js.map +1 -1
  15. package/dist/compiled/next-server/pages-api.runtime.dev.js +1 -1
  16. package/dist/compiled/next-server/pages-api.runtime.dev.js.map +1 -1
  17. package/dist/compiled/next-server/pages-api.runtime.prod.js +1 -1
  18. package/dist/compiled/next-server/pages-api.runtime.prod.js.map +1 -1
  19. package/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  20. package/dist/compiled/next-server/pages-turbo.runtime.prod.js.map +1 -1
  21. package/dist/compiled/next-server/pages.runtime.dev.js +1 -1
  22. package/dist/compiled/next-server/pages.runtime.dev.js.map +1 -1
  23. package/dist/compiled/next-server/pages.runtime.prod.js +1 -1
  24. package/dist/compiled/next-server/pages.runtime.prod.js.map +1 -1
  25. package/dist/esm/build/index.js +2 -2
  26. package/dist/esm/build/swc/index.js +1 -1
  27. package/dist/esm/build/webpack-config.js +2 -2
  28. package/dist/esm/client/app-bootstrap.js +1 -1
  29. package/dist/esm/client/index.js +1 -1
  30. package/dist/esm/lib/find-root.js +1 -1
  31. package/dist/esm/lib/find-root.js.map +1 -1
  32. package/dist/esm/next-devtools/userspace/app/segment-explorer.js +18 -0
  33. package/dist/esm/next-devtools/userspace/app/segment-explorer.js.map +1 -0
  34. package/dist/esm/server/app-render/entry-base.js +1 -2
  35. package/dist/esm/server/app-render/entry-base.js.map +1 -1
  36. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  37. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  38. package/dist/esm/server/lib/app-info-log.js +1 -1
  39. package/dist/esm/server/lib/start-server.js +1 -1
  40. package/dist/esm/shared/lib/canary-only.js +1 -1
  41. package/dist/lib/find-root.js +1 -1
  42. package/dist/lib/find-root.js.map +1 -1
  43. package/dist/next-devtools/dev-overlay/components/overview/segment-explorer.d.ts +1 -1
  44. package/dist/{shared/lib/devtool/trie.d.ts → next-devtools/dev-overlay/segment-explorer.d.ts} +14 -6
  45. package/dist/next-devtools/dev-overlay.browser.d.ts +3 -0
  46. package/dist/next-devtools/userspace/app/segment-explorer.d.ts +6 -0
  47. package/dist/next-devtools/userspace/app/segment-explorer.js +34 -0
  48. package/dist/next-devtools/userspace/app/segment-explorer.js.map +1 -0
  49. package/dist/server/app-render/entry-base.d.ts +1 -1
  50. package/dist/server/app-render/entry-base.js +1 -2
  51. package/dist/server/app-render/entry-base.js.map +1 -1
  52. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  53. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  54. package/dist/server/lib/app-info-log.js +1 -1
  55. package/dist/server/lib/start-server.js +1 -1
  56. package/dist/shared/lib/canary-only.js +1 -1
  57. package/dist/telemetry/anonymous-meta.js +1 -1
  58. package/dist/telemetry/events/session-stopped.js +2 -2
  59. package/dist/telemetry/events/version.js +2 -2
  60. package/package.json +15 -15
  61. package/dist/esm/shared/lib/devtool/app-segment-tree.js +0 -67
  62. package/dist/esm/shared/lib/devtool/app-segment-tree.js.map +0 -1
  63. package/dist/esm/shared/lib/devtool/trie.js +0 -46
  64. package/dist/esm/shared/lib/devtool/trie.js.map +0 -1
  65. package/dist/shared/lib/devtool/app-segment-tree.d.ts +0 -21
  66. package/dist/shared/lib/devtool/app-segment-tree.js +0 -89
  67. package/dist/shared/lib/devtool/app-segment-tree.js.map +0 -1
  68. package/dist/shared/lib/devtool/trie.js +0 -56
  69. package/dist/shared/lib/devtool/trie.js.map +0 -1
@@ -1,67 +0,0 @@
1
- 'use client';
2
- import { useEffect, useSyncExternalStore } from 'react';
3
- import { createTrie } from './trie';
4
- const DEFAULT_CLIENT_STATE = typeof window === 'undefined' ? undefined : createTrie({
5
- getKey: (item)=>item.pagePath
6
- });
7
- function getSegmentTreeClientState() {
8
- if (typeof window === 'undefined') {
9
- return {};
10
- }
11
- if (!window.__NEXT_DEVTOOLS_CLIENT_STATE) {
12
- window.__NEXT_DEVTOOLS_CLIENT_STATE = {
13
- // Initial state
14
- tree: DEFAULT_CLIENT_STATE
15
- };
16
- }
17
- return window.__NEXT_DEVTOOLS_CLIENT_STATE;
18
- }
19
- const listeners = typeof window === 'undefined' ? null : new Set();
20
- const createSegmentTreeStore = ()=>{
21
- if (typeof window === 'undefined') {
22
- return {
23
- subscribe: ()=>()=>void 0,
24
- getSnapshot: ()=>({}),
25
- getServerSnapshot: ()=>undefined
26
- };
27
- }
28
- // return a store that can be used by useSyncExternalStore
29
- return {
30
- subscribe: (callback)=>{
31
- listeners == null ? void 0 : listeners.add(callback);
32
- return ()=>listeners == null ? void 0 : listeners.delete(callback);
33
- },
34
- getSnapshot: ()=>{
35
- return getSegmentTreeClientState();
36
- },
37
- getServerSnapshot: ()=>{
38
- return undefined;
39
- }
40
- };
41
- };
42
- const { subscribe, getSnapshot, getServerSnapshot } = createSegmentTreeStore();
43
- export function SegmentViewNode(param) {
44
- let { type, pagePath, children } = param;
45
- const clientState = getSegmentTreeClientState();
46
- const tree = clientState.tree;
47
- useEffect(()=>{
48
- if (!tree) {
49
- return;
50
- }
51
- tree.insert({
52
- type,
53
- pagePath
54
- });
55
- }, [
56
- type,
57
- pagePath,
58
- tree
59
- ]);
60
- return children;
61
- }
62
- export function useSegmentTreeClientState() {
63
- const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
64
- return state;
65
- }
66
-
67
- //# sourceMappingURL=app-segment-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/shared/lib/devtool/app-segment-tree.tsx"],"sourcesContent":["'use client'\n\nimport { type ReactNode, useEffect, useSyncExternalStore } from 'react'\nimport { createTrie, type Trie } from './trie'\n\nexport type SegmentNode = {\n type: string\n pagePath: string\n}\n\ntype DevtoolClientState = {\n tree?: Trie<SegmentNode>\n}\n\nconst DEFAULT_CLIENT_STATE =\n typeof window === 'undefined'\n ? undefined\n : createTrie<SegmentNode>({\n getKey: (item) => item.pagePath,\n })\n\ndeclare global {\n interface Window {\n __NEXT_DEVTOOLS_CLIENT_STATE?: DevtoolClientState\n }\n}\n\nfunction getSegmentTreeClientState(): DevtoolClientState {\n if (typeof window === 'undefined') {\n return {}\n }\n if (!window.__NEXT_DEVTOOLS_CLIENT_STATE) {\n window.__NEXT_DEVTOOLS_CLIENT_STATE = {\n // Initial state\n tree: DEFAULT_CLIENT_STATE,\n }\n }\n return window.__NEXT_DEVTOOLS_CLIENT_STATE\n}\n\nconst listeners = typeof window === 'undefined' ? null : new Set<() => void>()\n\nconst createSegmentTreeStore = (): {\n subscribe: (callback: () => void) => () => void\n getSnapshot: () => DevtoolClientState\n getServerSnapshot: () => undefined\n} => {\n if (typeof window === 'undefined') {\n return {\n subscribe: () => () => void 0,\n getSnapshot: () => ({}),\n getServerSnapshot: () => undefined,\n }\n }\n\n // return a store that can be used by useSyncExternalStore\n return {\n subscribe: (callback) => {\n listeners?.add(callback)\n return () => listeners?.delete(callback)\n },\n getSnapshot: () => {\n return getSegmentTreeClientState()\n },\n getServerSnapshot: () => {\n return undefined\n },\n }\n}\n\nconst { subscribe, getSnapshot, getServerSnapshot } = createSegmentTreeStore()\n\nexport function SegmentViewNode({\n type,\n pagePath,\n children,\n}: {\n type: string\n pagePath: string\n children: ReactNode\n}) {\n const clientState = getSegmentTreeClientState()\n const tree = clientState.tree\n\n useEffect(() => {\n if (!tree) {\n return\n }\n tree.insert({\n type,\n pagePath,\n })\n }, [type, pagePath, tree])\n\n return children\n}\n\nexport function useSegmentTreeClientState() {\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n return state\n}\n"],"names":["useEffect","useSyncExternalStore","createTrie","DEFAULT_CLIENT_STATE","window","undefined","getKey","item","pagePath","getSegmentTreeClientState","__NEXT_DEVTOOLS_CLIENT_STATE","tree","listeners","Set","createSegmentTreeStore","subscribe","getSnapshot","getServerSnapshot","callback","add","delete","SegmentViewNode","type","children","clientState","insert","useSegmentTreeClientState","state"],"mappings":"AAAA;AAEA,SAAyBA,SAAS,EAAEC,oBAAoB,QAAQ,QAAO;AACvE,SAASC,UAAU,QAAmB,SAAQ;AAW9C,MAAMC,uBACJ,OAAOC,WAAW,cACdC,YACAH,WAAwB;IACtBI,QAAQ,CAACC,OAASA,KAAKC,QAAQ;AACjC;AAQN,SAASC;IACP,IAAI,OAAOL,WAAW,aAAa;QACjC,OAAO,CAAC;IACV;IACA,IAAI,CAACA,OAAOM,4BAA4B,EAAE;QACxCN,OAAOM,4BAA4B,GAAG;YACpC,gBAAgB;YAChBC,MAAMR;QACR;IACF;IACA,OAAOC,OAAOM,4BAA4B;AAC5C;AAEA,MAAME,YAAY,OAAOR,WAAW,cAAc,OAAO,IAAIS;AAE7D,MAAMC,yBAAyB;IAK7B,IAAI,OAAOV,WAAW,aAAa;QACjC,OAAO;YACLW,WAAW,IAAM,IAAM,KAAK;YAC5BC,aAAa,IAAO,CAAA,CAAC,CAAA;YACrBC,mBAAmB,IAAMZ;QAC3B;IACF;IAEA,0DAA0D;IAC1D,OAAO;QACLU,WAAW,CAACG;YACVN,6BAAAA,UAAWO,GAAG,CAACD;YACf,OAAO,IAAMN,6BAAAA,UAAWQ,MAAM,CAACF;QACjC;QACAF,aAAa;YACX,OAAOP;QACT;QACAQ,mBAAmB;YACjB,OAAOZ;QACT;IACF;AACF;AAEA,MAAM,EAAEU,SAAS,EAAEC,WAAW,EAAEC,iBAAiB,EAAE,GAAGH;AAEtD,OAAO,SAASO,gBAAgB,KAQ/B;IAR+B,IAAA,EAC9BC,IAAI,EACJd,QAAQ,EACRe,QAAQ,EAKT,GAR+B;IAS9B,MAAMC,cAAcf;IACpB,MAAME,OAAOa,YAAYb,IAAI;IAE7BX,UAAU;QACR,IAAI,CAACW,MAAM;YACT;QACF;QACAA,KAAKc,MAAM,CAAC;YACVH;YACAd;QACF;IACF,GAAG;QAACc;QAAMd;QAAUG;KAAK;IAEzB,OAAOY;AACT;AAEA,OAAO,SAASG;IACd,MAAMC,QAAQ1B,qBAAqBc,WAAWC,aAAaC;IAC3D,OAAOU;AACT","ignoreList":[0]}
@@ -1,46 +0,0 @@
1
- /**
2
- * Trie data structure for storing and searching paths
3
- *
4
- * This can be used to store app router paths and search for them efficiently.
5
- * e.g.
6
- *
7
- * [trie root]
8
- * ├── layout.js
9
- * ├── page.js
10
- * ├── blog
11
- * ├── layout.js
12
- * ├── page.js
13
- * ├── [slug]
14
- * ├── layout.js
15
- * ├── page.js
16
- **/ export function createTrie(param) {
17
- let { getKey = (k)=>k } = param;
18
- const root = {
19
- value: undefined,
20
- children: {}
21
- };
22
- function insert(value) {
23
- let currentNode = root;
24
- const key = getKey(value);
25
- const segments = key.split('/');
26
- for (const segment of segments){
27
- if (!currentNode.children[segment]) {
28
- currentNode.children[segment] = {
29
- // Skip value for intermediate nodes
30
- children: {}
31
- };
32
- }
33
- currentNode = currentNode.children[segment];
34
- }
35
- currentNode.value = value;
36
- }
37
- function getRoot() {
38
- return root;
39
- }
40
- return {
41
- insert,
42
- getRoot
43
- };
44
- }
45
-
46
- //# sourceMappingURL=trie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/shared/lib/devtool/trie.ts"],"sourcesContent":["/**\n * Trie data structure for storing and searching paths\n *\n * This can be used to store app router paths and search for them efficiently.\n * e.g.\n *\n * [trie root]\n * ├── layout.js\n * ├── page.js\n * ├── blog\n * ├── layout.js\n * ├── page.js\n * ├── [slug]\n * ├── layout.js\n * ├── page.js\n **/\n\nexport type TrieNode<Value = string> = {\n value?: Value\n children: {\n [key: string]: TrieNode<Value> | undefined\n }\n}\n\nexport type Trie<Value = string> = {\n insert: (value: Value) => void\n getRoot: () => TrieNode<Value>\n}\n\nexport function createTrie<Value = string>({\n getKey = (k) => k as unknown as string,\n}: {\n getKey: (k: Value) => string\n}): Trie<Value> {\n const root: TrieNode<Value> = {\n value: undefined,\n children: {},\n }\n\n function insert(value: Value) {\n let currentNode = root\n const key = getKey(value)\n const segments = key.split('/')\n\n for (const segment of segments) {\n if (!currentNode.children[segment]) {\n currentNode.children[segment] = {\n // Skip value for intermediate nodes\n children: {},\n }\n }\n currentNode = currentNode.children[segment]\n }\n\n currentNode.value = value\n }\n\n function getRoot(): TrieNode<Value> {\n return root\n }\n\n return { insert, getRoot }\n}\n"],"names":["createTrie","getKey","k","root","value","undefined","children","insert","currentNode","key","segments","split","segment","getRoot"],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE,GAcF,OAAO,SAASA,WAA2B,KAI1C;IAJ0C,IAAA,EACzCC,SAAS,CAACC,IAAMA,CAAsB,EAGvC,GAJ0C;IAKzC,MAAMC,OAAwB;QAC5BC,OAAOC;QACPC,UAAU,CAAC;IACb;IAEA,SAASC,OAAOH,KAAY;QAC1B,IAAII,cAAcL;QAClB,MAAMM,MAAMR,OAAOG;QACnB,MAAMM,WAAWD,IAAIE,KAAK,CAAC;QAE3B,KAAK,MAAMC,WAAWF,SAAU;YAC9B,IAAI,CAACF,YAAYF,QAAQ,CAACM,QAAQ,EAAE;gBAClCJ,YAAYF,QAAQ,CAACM,QAAQ,GAAG;oBAC9B,oCAAoC;oBACpCN,UAAU,CAAC;gBACb;YACF;YACAE,cAAcA,YAAYF,QAAQ,CAACM,QAAQ;QAC7C;QAEAJ,YAAYJ,KAAK,GAAGA;IACtB;IAEA,SAASS;QACP,OAAOV;IACT;IAEA,OAAO;QAAEI;QAAQM;IAAQ;AAC3B","ignoreList":[0]}
@@ -1,21 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- import { type Trie } from './trie';
3
- export type SegmentNode = {
4
- type: string;
5
- pagePath: string;
6
- };
7
- type DevtoolClientState = {
8
- tree?: Trie<SegmentNode>;
9
- };
10
- declare global {
11
- interface Window {
12
- __NEXT_DEVTOOLS_CLIENT_STATE?: DevtoolClientState;
13
- }
14
- }
15
- export declare function SegmentViewNode({ type, pagePath, children, }: {
16
- type: string;
17
- pagePath: string;
18
- children: ReactNode;
19
- }): ReactNode;
20
- export declare function useSegmentTreeClientState(): DevtoolClientState | undefined;
21
- export {};
@@ -1,89 +0,0 @@
1
- 'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- 0 && (module.exports = {
7
- SegmentViewNode: null,
8
- useSegmentTreeClientState: null
9
- });
10
- function _export(target, all) {
11
- for(var name in all)Object.defineProperty(target, name, {
12
- enumerable: true,
13
- get: all[name]
14
- });
15
- }
16
- _export(exports, {
17
- SegmentViewNode: function() {
18
- return SegmentViewNode;
19
- },
20
- useSegmentTreeClientState: function() {
21
- return useSegmentTreeClientState;
22
- }
23
- });
24
- const _react = require("react");
25
- const _trie = require("./trie");
26
- const DEFAULT_CLIENT_STATE = typeof window === 'undefined' ? undefined : (0, _trie.createTrie)({
27
- getKey: (item)=>item.pagePath
28
- });
29
- function getSegmentTreeClientState() {
30
- if (typeof window === 'undefined') {
31
- return {};
32
- }
33
- if (!window.__NEXT_DEVTOOLS_CLIENT_STATE) {
34
- window.__NEXT_DEVTOOLS_CLIENT_STATE = {
35
- // Initial state
36
- tree: DEFAULT_CLIENT_STATE
37
- };
38
- }
39
- return window.__NEXT_DEVTOOLS_CLIENT_STATE;
40
- }
41
- const listeners = typeof window === 'undefined' ? null : new Set();
42
- const createSegmentTreeStore = ()=>{
43
- if (typeof window === 'undefined') {
44
- return {
45
- subscribe: ()=>()=>void 0,
46
- getSnapshot: ()=>({}),
47
- getServerSnapshot: ()=>undefined
48
- };
49
- }
50
- // return a store that can be used by useSyncExternalStore
51
- return {
52
- subscribe: (callback)=>{
53
- listeners == null ? void 0 : listeners.add(callback);
54
- return ()=>listeners == null ? void 0 : listeners.delete(callback);
55
- },
56
- getSnapshot: ()=>{
57
- return getSegmentTreeClientState();
58
- },
59
- getServerSnapshot: ()=>{
60
- return undefined;
61
- }
62
- };
63
- };
64
- const { subscribe, getSnapshot, getServerSnapshot } = createSegmentTreeStore();
65
- function SegmentViewNode(param) {
66
- let { type, pagePath, children } = param;
67
- const clientState = getSegmentTreeClientState();
68
- const tree = clientState.tree;
69
- (0, _react.useEffect)(()=>{
70
- if (!tree) {
71
- return;
72
- }
73
- tree.insert({
74
- type,
75
- pagePath
76
- });
77
- }, [
78
- type,
79
- pagePath,
80
- tree
81
- ]);
82
- return children;
83
- }
84
- function useSegmentTreeClientState() {
85
- const state = (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getServerSnapshot);
86
- return state;
87
- }
88
-
89
- //# sourceMappingURL=app-segment-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/shared/lib/devtool/app-segment-tree.tsx"],"sourcesContent":["'use client'\n\nimport { type ReactNode, useEffect, useSyncExternalStore } from 'react'\nimport { createTrie, type Trie } from './trie'\n\nexport type SegmentNode = {\n type: string\n pagePath: string\n}\n\ntype DevtoolClientState = {\n tree?: Trie<SegmentNode>\n}\n\nconst DEFAULT_CLIENT_STATE =\n typeof window === 'undefined'\n ? undefined\n : createTrie<SegmentNode>({\n getKey: (item) => item.pagePath,\n })\n\ndeclare global {\n interface Window {\n __NEXT_DEVTOOLS_CLIENT_STATE?: DevtoolClientState\n }\n}\n\nfunction getSegmentTreeClientState(): DevtoolClientState {\n if (typeof window === 'undefined') {\n return {}\n }\n if (!window.__NEXT_DEVTOOLS_CLIENT_STATE) {\n window.__NEXT_DEVTOOLS_CLIENT_STATE = {\n // Initial state\n tree: DEFAULT_CLIENT_STATE,\n }\n }\n return window.__NEXT_DEVTOOLS_CLIENT_STATE\n}\n\nconst listeners = typeof window === 'undefined' ? null : new Set<() => void>()\n\nconst createSegmentTreeStore = (): {\n subscribe: (callback: () => void) => () => void\n getSnapshot: () => DevtoolClientState\n getServerSnapshot: () => undefined\n} => {\n if (typeof window === 'undefined') {\n return {\n subscribe: () => () => void 0,\n getSnapshot: () => ({}),\n getServerSnapshot: () => undefined,\n }\n }\n\n // return a store that can be used by useSyncExternalStore\n return {\n subscribe: (callback) => {\n listeners?.add(callback)\n return () => listeners?.delete(callback)\n },\n getSnapshot: () => {\n return getSegmentTreeClientState()\n },\n getServerSnapshot: () => {\n return undefined\n },\n }\n}\n\nconst { subscribe, getSnapshot, getServerSnapshot } = createSegmentTreeStore()\n\nexport function SegmentViewNode({\n type,\n pagePath,\n children,\n}: {\n type: string\n pagePath: string\n children: ReactNode\n}) {\n const clientState = getSegmentTreeClientState()\n const tree = clientState.tree\n\n useEffect(() => {\n if (!tree) {\n return\n }\n tree.insert({\n type,\n pagePath,\n })\n }, [type, pagePath, tree])\n\n return children\n}\n\nexport function useSegmentTreeClientState() {\n const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n return state\n}\n"],"names":["SegmentViewNode","useSegmentTreeClientState","DEFAULT_CLIENT_STATE","window","undefined","createTrie","getKey","item","pagePath","getSegmentTreeClientState","__NEXT_DEVTOOLS_CLIENT_STATE","tree","listeners","Set","createSegmentTreeStore","subscribe","getSnapshot","getServerSnapshot","callback","add","delete","type","children","clientState","useEffect","insert","state","useSyncExternalStore"],"mappings":"AAAA;;;;;;;;;;;;;;;;IAwEgBA,eAAe;eAAfA;;IAyBAC,yBAAyB;eAAzBA;;;uBA/FgD;sBAC1B;AAWtC,MAAMC,uBACJ,OAAOC,WAAW,cACdC,YACAC,IAAAA,gBAAU,EAAc;IACtBC,QAAQ,CAACC,OAASA,KAAKC,QAAQ;AACjC;AAQN,SAASC;IACP,IAAI,OAAON,WAAW,aAAa;QACjC,OAAO,CAAC;IACV;IACA,IAAI,CAACA,OAAOO,4BAA4B,EAAE;QACxCP,OAAOO,4BAA4B,GAAG;YACpC,gBAAgB;YAChBC,MAAMT;QACR;IACF;IACA,OAAOC,OAAOO,4BAA4B;AAC5C;AAEA,MAAME,YAAY,OAAOT,WAAW,cAAc,OAAO,IAAIU;AAE7D,MAAMC,yBAAyB;IAK7B,IAAI,OAAOX,WAAW,aAAa;QACjC,OAAO;YACLY,WAAW,IAAM,IAAM,KAAK;YAC5BC,aAAa,IAAO,CAAA,CAAC,CAAA;YACrBC,mBAAmB,IAAMb;QAC3B;IACF;IAEA,0DAA0D;IAC1D,OAAO;QACLW,WAAW,CAACG;YACVN,6BAAAA,UAAWO,GAAG,CAACD;YACf,OAAO,IAAMN,6BAAAA,UAAWQ,MAAM,CAACF;QACjC;QACAF,aAAa;YACX,OAAOP;QACT;QACAQ,mBAAmB;YACjB,OAAOb;QACT;IACF;AACF;AAEA,MAAM,EAAEW,SAAS,EAAEC,WAAW,EAAEC,iBAAiB,EAAE,GAAGH;AAE/C,SAASd,gBAAgB,KAQ/B;IAR+B,IAAA,EAC9BqB,IAAI,EACJb,QAAQ,EACRc,QAAQ,EAKT,GAR+B;IAS9B,MAAMC,cAAcd;IACpB,MAAME,OAAOY,YAAYZ,IAAI;IAE7Ba,IAAAA,gBAAS,EAAC;QACR,IAAI,CAACb,MAAM;YACT;QACF;QACAA,KAAKc,MAAM,CAAC;YACVJ;YACAb;QACF;IACF,GAAG;QAACa;QAAMb;QAAUG;KAAK;IAEzB,OAAOW;AACT;AAEO,SAASrB;IACd,MAAMyB,QAAQC,IAAAA,2BAAoB,EAACZ,WAAWC,aAAaC;IAC3D,OAAOS;AACT","ignoreList":[0]}
@@ -1,56 +0,0 @@
1
- /**
2
- * Trie data structure for storing and searching paths
3
- *
4
- * This can be used to store app router paths and search for them efficiently.
5
- * e.g.
6
- *
7
- * [trie root]
8
- * ├── layout.js
9
- * ├── page.js
10
- * ├── blog
11
- * ├── layout.js
12
- * ├── page.js
13
- * ├── [slug]
14
- * ├── layout.js
15
- * ├── page.js
16
- **/ "use strict";
17
- Object.defineProperty(exports, "__esModule", {
18
- value: true
19
- });
20
- Object.defineProperty(exports, "createTrie", {
21
- enumerable: true,
22
- get: function() {
23
- return createTrie;
24
- }
25
- });
26
- function createTrie(param) {
27
- let { getKey = (k)=>k } = param;
28
- const root = {
29
- value: undefined,
30
- children: {}
31
- };
32
- function insert(value) {
33
- let currentNode = root;
34
- const key = getKey(value);
35
- const segments = key.split('/');
36
- for (const segment of segments){
37
- if (!currentNode.children[segment]) {
38
- currentNode.children[segment] = {
39
- // Skip value for intermediate nodes
40
- children: {}
41
- };
42
- }
43
- currentNode = currentNode.children[segment];
44
- }
45
- currentNode.value = value;
46
- }
47
- function getRoot() {
48
- return root;
49
- }
50
- return {
51
- insert,
52
- getRoot
53
- };
54
- }
55
-
56
- //# sourceMappingURL=trie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/shared/lib/devtool/trie.ts"],"sourcesContent":["/**\n * Trie data structure for storing and searching paths\n *\n * This can be used to store app router paths and search for them efficiently.\n * e.g.\n *\n * [trie root]\n * ├── layout.js\n * ├── page.js\n * ├── blog\n * ├── layout.js\n * ├── page.js\n * ├── [slug]\n * ├── layout.js\n * ├── page.js\n **/\n\nexport type TrieNode<Value = string> = {\n value?: Value\n children: {\n [key: string]: TrieNode<Value> | undefined\n }\n}\n\nexport type Trie<Value = string> = {\n insert: (value: Value) => void\n getRoot: () => TrieNode<Value>\n}\n\nexport function createTrie<Value = string>({\n getKey = (k) => k as unknown as string,\n}: {\n getKey: (k: Value) => string\n}): Trie<Value> {\n const root: TrieNode<Value> = {\n value: undefined,\n children: {},\n }\n\n function insert(value: Value) {\n let currentNode = root\n const key = getKey(value)\n const segments = key.split('/')\n\n for (const segment of segments) {\n if (!currentNode.children[segment]) {\n currentNode.children[segment] = {\n // Skip value for intermediate nodes\n children: {},\n }\n }\n currentNode = currentNode.children[segment]\n }\n\n currentNode.value = value\n }\n\n function getRoot(): TrieNode<Value> {\n return root\n }\n\n return { insert, getRoot }\n}\n"],"names":["createTrie","getKey","k","root","value","undefined","children","insert","currentNode","key","segments","split","segment","getRoot"],"mappings":"AAAA;;;;;;;;;;;;;;;EAeE;;;;+BAccA;;;eAAAA;;;AAAT,SAASA,WAA2B,KAI1C;IAJ0C,IAAA,EACzCC,SAAS,CAACC,IAAMA,CAAsB,EAGvC,GAJ0C;IAKzC,MAAMC,OAAwB;QAC5BC,OAAOC;QACPC,UAAU,CAAC;IACb;IAEA,SAASC,OAAOH,KAAY;QAC1B,IAAII,cAAcL;QAClB,MAAMM,MAAMR,OAAOG;QACnB,MAAMM,WAAWD,IAAIE,KAAK,CAAC;QAE3B,KAAK,MAAMC,WAAWF,SAAU;YAC9B,IAAI,CAACF,YAAYF,QAAQ,CAACM,QAAQ,EAAE;gBAClCJ,YAAYF,QAAQ,CAACM,QAAQ,GAAG;oBAC9B,oCAAoC;oBACpCN,UAAU,CAAC;gBACb;YACF;YACAE,cAAcA,YAAYF,QAAQ,CAACM,QAAQ;QAC7C;QAEAJ,YAAYJ,KAAK,GAAGA;IACtB;IAEA,SAASS;QACP,OAAOV;IACT;IAEA,OAAO;QAAEI;QAAQM;IAAQ;AAC3B","ignoreList":[0]}