@torpor/view 0.4.0 → 0.4.2
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.
- package/CHANGELOG.md +12 -0
- package/dist/dev.cjs +1 -2
- package/dist/dev.cjs.map +1 -1
- package/dist/dev.d.cts.map +1 -1
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +1 -2
- package/dist/dev.js.map +1 -1
- package/dist/{devContext-nomc0xCl.cjs → devContext-B3yskfhA.cjs} +3 -3
- package/dist/devContext-B3yskfhA.cjs.map +1 -0
- package/dist/{devContext-CM-9Rx7k.js → devContext-CevrTlUO.js} +3 -3
- package/dist/devContext-CevrTlUO.js.map +1 -0
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/dev/devContext.ts +22 -22
- package/src/dev/setDevMode.ts +0 -1
- package/src/render/context.ts +35 -30
- package/dist/devContext-CM-9Rx7k.js.map +0 -1
- package/dist/devContext-nomc0xCl.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
package/dist/dev.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_devContext = require('./devContext-
|
|
1
|
+
const require_devContext = require('./devContext-B3yskfhA.cjs');
|
|
2
2
|
|
|
3
3
|
//#region src/dev/popDevBoundary.ts
|
|
4
4
|
function popDevBoundary() {
|
|
@@ -113,7 +113,6 @@ function setDevMode() {
|
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
115
|
require_devContext.devContext_default.onRegionPushed = (region, toParent) => {
|
|
116
|
-
console.log("pushed region", toParent, region);
|
|
117
116
|
oldDepths.push(require_devContext.devContext_default.depth);
|
|
118
117
|
if (toParent) {
|
|
119
118
|
const name = region.name || "Anon Region";
|
package/dist/dev.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.cjs","names":["devContext","devContext","oldDepths: number[]","nextRegion: Region | null"],"sources":["../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":["import devContext from \"./devContext\";\n\nexport default function popDevBoundary(): void {\n\tdevContext.depth--;\n}\n","import devContext from \"../dev/devContext\";\nimport DevBoundary from \"./types/DevBoundary\";\n\nexport default function pushDevBoundary(\n\ttype: \"component\" | \"region\" | \"run\" | \"watch\" | \"control\" | \"branch\",\n\tname: string,\n): DevBoundary {\n\tconst newBoundary = {\n\t\ttype,\n\t\tid: crypto.randomUUID(),\n\t\tname,\n\t\tdepth: devContext.depth,\n\t};\n\n\tif (devContext.index === -1) {\n\t\tdevContext.boundaries.push(newBoundary);\n\t} else {\n\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\tdevContext.index++;\n\t}\n\n\tdevContext.depth++;\n\n\treturn newBoundary;\n}\n","import type Effect from \"../types/Effect\";\nimport type ProxyData from \"../types/ProxyData\";\nimport type Region from \"../types/Region\";\nimport devContext from \"./devContext\";\nimport type DevBoundary from \"./types/DevBoundary\";\n\nexport default function setDevMode(): void {\n\tdevContext.enabled = true;\n\n\t// Format devContext for passing to DevTools by stripping out nodes etc\n\tdevContext.format = () => {\n\t\treturn {\n\t\t\tboundaries: devContext.boundaries.map((b) => ({\n\t\t\t\ttype: b.type,\n\t\t\t\tid: b.id,\n\t\t\t\tname: b.name,\n\t\t\t\tdepth: b.depth,\n\t\t\t\t//details: b.details,\n\t\t\t})),\n\t\t};\n\t};\n\n\tdevContext.getDetails = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary) {\n\t\t\tswitch (boundary.type) {\n\t\t\t\tcase \"run\": {\n\t\t\t\t\treturn String(boundary.target.run);\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// TODO:\n\t\t\t\t\treturn \"I'm a \" + boundary.type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn \"??\";\n\t};\n\n\tdevContext.unmark = () => {\n\t\tconst el = document.getElementById(\"t_dev_mark\");\n\t\tif (el) {\n\t\t\tel.style.display = \"none\";\n\t\t}\n\t};\n\n\tdevContext.mark = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary && boundary.target?.startNode && boundary.target?.endNode) {\n\t\t\tlet el = document.getElementById(\"t_dev_mark\");\n\t\t\tif (!el) {\n\t\t\t\tel = document.createElement(\"div\");\n\t\t\t\tel.id = \"t_dev_mark\";\n\t\t\t\tel.style.position = \"absolute\";\n\t\t\t\tdocument.body.append(el);\n\t\t\t}\n\n\t\t\tconst range = document.createRange();\n\t\t\trange.setStartBefore(boundary.target.startNode);\n\t\t\trange.setEndAfter(boundary.target.endNode);\n\t\t\tconst rect = range.getBoundingClientRect();\n\n\t\t\tel.style.display = \"block\";\n\t\t\tel.style.left = rect.left + \"px\";\n\t\t\tel.style.top = rect.top + \"px\";\n\t\t\tel.style.height = rect.height + \"px\";\n\t\t\tel.style.width = rect.width + \"px\";\n\t\t\t//el.style.border = \"2px solid limegreen\";\n\t\t\tel.style.borderRadius = \"2px\";\n\t\t\tel.style.boxShadow = \"rgba(50, 205, 50, 0.5) 0px 0px 0px 3px\";\n\t\t\tel.style.pointerEvents = \"none\";\n\t\t}\n\t};\n\n\t// TODO: make this more robust\n\tlet oldDepths: number[] = [];\n\n\tdevContext.onWatch = (proxy: ProxyData) => {\n\t\tlet keys = Object.keys(proxy.target);\n\t\tif (keys.length > 5) {\n\t\t\tkeys = [...keys.slice(0, 5), \"…\"];\n\t\t}\n\t\tlet name = keys.length > 0 ? `{ ${keys.join(\", \")} }` : \"{}\";\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"watch\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: proxy,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRun = (effect: Effect) => {\n\t\tlet name = effect.name;\n\t\tif (name === undefined) {\n\t\t\tconst details = String(effect.run);\n\t\t\tif (details.startsWith(\"function \")) {\n\t\t\t\tname = details.substring(9);\n\t\t\t\tname = name.substring(0, name.indexOf(\"(\"));\n\t\t\t}\n\t\t}\n\t\tif (name === undefined) {\n\t\t\tname = \"runAnon\";\n\t\t}\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"run\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: effect,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRegionPushed = (region: Region, toParent: boolean) => {\n\t\tconsole.log(\"pushed region\", toParent, region);\n\t\toldDepths.push(devContext.depth);\n\t\tif (toParent) {\n\t\t\t// It's a new region; bump the depth etc\n\t\t\tconst name = region.name || \"Anon Region\";\n\t\t\tconst id = crypto.randomUUID();\n\t\t\tconst newBoundary = {\n\t\t\t\ttype: \"region\",\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\tdepth: devContext.depth,\n\t\t\t\ttarget: region,\n\t\t\t} satisfies DevBoundary;\n\t\t\tif (devContext.index === -1) {\n\t\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t\t} else {\n\t\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\t\tdevContext.index++;\n\t\t\t}\n\t\t\t//pushDevBoundary(\"region\", name);\n\t\t\tregion.name = `${name} [${id}]`;\n\n\t\t\tdevContext.depth++;\n\n\t\t\tsendMessage({ name: \"REFRESH\" });\n\t\t} else if (region.name) {\n\t\t\tdevContext.index = -1;\n\n\t\t\t// It's an old region; get and set its depth and position for adding children\n\t\t\tconst match = region.name.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tlet id = match[1];\n\t\t\t\tlet index = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tconst parentDepth = devContext.boundaries[index].depth;\n\t\t\t\t\tdevContext.depth = parentDepth + 1;\n\t\t\t\t\t// The index needs to be after the last child of the parent\n\t\t\t\t\tdevContext.index = index + 1;\n\t\t\t\t\twhile (\n\t\t\t\t\t\tdevContext.index < devContext.boundaries.length &&\n\t\t\t\t\t\tdevContext.boundaries[devContext.index].depth > parentDepth\n\t\t\t\t\t) {\n\t\t\t\t\t\tdevContext.index++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tdevContext.onRegionPopped = () => {\n\t\t//popDevBoundary();\n\t\tdevContext.depth = oldDepths.pop() ?? 0;\n\t};\n\n\tdevContext.onRegionCleared = (region: Region) => {\n\t\tlet nextRegion: Region | null = region;\n\t\twhile (true) {\n\t\t\tlet match = nextRegion.name!.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tconst id = match[1];\n\t\t\t\tlet i = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tlet depth = devContext.boundaries[i].depth;\n\t\t\t\t\tlet start = i;\n\t\t\t\t\tlet end = devContext.boundaries.length;\n\t\t\t\t\tfor (i++; i < devContext.boundaries.length; i++) {\n\t\t\t\t\t\tif (devContext.boundaries[i].depth <= depth) {\n\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdevContext.boundaries.splice(start, end - start);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnextRegion = nextRegion.nextRegion;\n\t\t\tif (nextRegion === null || nextRegion.depth <= region.depth) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tsendMessage({ name: \"REFRESH\" });\n\t};\n\n\t// Messages\n\n\tdevContext.signalSet = (proxy: ProxyData, key: PropertyKey) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === proxy);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Signal set\", id: boundary.id, key: String(key) });\n\t\t}\n\t};\n\n\tdevContext.effectRun = (effect: Effect) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === effect);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Effect run\", id: boundary.id });\n\t\t}\n\t};\n\n\tfunction sendMessage(message: { name: string } & Record<string, string>) {\n\t\twindow.postMessage(\n\t\t\t{\n\t\t\t\tsource: \"t_dev_tools\",\n\t\t\t\tmessage: JSON.stringify(message),\n\t\t\t},\n\t\t\t\"*\",\n\t\t);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.cjs","names":["devContext","devContext","oldDepths: number[]","nextRegion: Region | null"],"sources":["../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":["import devContext from \"./devContext\";\n\nexport default function popDevBoundary(): void {\n\tdevContext.depth--;\n}\n","import devContext from \"../dev/devContext\";\nimport DevBoundary from \"./types/DevBoundary\";\n\nexport default function pushDevBoundary(\n\ttype: \"component\" | \"region\" | \"run\" | \"watch\" | \"control\" | \"branch\",\n\tname: string,\n): DevBoundary {\n\tconst newBoundary = {\n\t\ttype,\n\t\tid: crypto.randomUUID(),\n\t\tname,\n\t\tdepth: devContext.depth,\n\t};\n\n\tif (devContext.index === -1) {\n\t\tdevContext.boundaries.push(newBoundary);\n\t} else {\n\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\tdevContext.index++;\n\t}\n\n\tdevContext.depth++;\n\n\treturn newBoundary;\n}\n","import type Effect from \"../types/Effect\";\nimport type ProxyData from \"../types/ProxyData\";\nimport type Region from \"../types/Region\";\nimport devContext from \"./devContext\";\nimport type DevBoundary from \"./types/DevBoundary\";\n\nexport default function setDevMode(): void {\n\tdevContext.enabled = true;\n\n\t// Format devContext for passing to DevTools by stripping out nodes etc\n\tdevContext.format = () => {\n\t\treturn {\n\t\t\tboundaries: devContext.boundaries.map((b) => ({\n\t\t\t\ttype: b.type,\n\t\t\t\tid: b.id,\n\t\t\t\tname: b.name,\n\t\t\t\tdepth: b.depth,\n\t\t\t\t//details: b.details,\n\t\t\t})),\n\t\t};\n\t};\n\n\tdevContext.getDetails = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary) {\n\t\t\tswitch (boundary.type) {\n\t\t\t\tcase \"run\": {\n\t\t\t\t\treturn String(boundary.target.run);\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// TODO:\n\t\t\t\t\treturn \"I'm a \" + boundary.type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn \"??\";\n\t};\n\n\tdevContext.unmark = () => {\n\t\tconst el = document.getElementById(\"t_dev_mark\");\n\t\tif (el) {\n\t\t\tel.style.display = \"none\";\n\t\t}\n\t};\n\n\tdevContext.mark = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary && boundary.target?.startNode && boundary.target?.endNode) {\n\t\t\tlet el = document.getElementById(\"t_dev_mark\");\n\t\t\tif (!el) {\n\t\t\t\tel = document.createElement(\"div\");\n\t\t\t\tel.id = \"t_dev_mark\";\n\t\t\t\tel.style.position = \"absolute\";\n\t\t\t\tdocument.body.append(el);\n\t\t\t}\n\n\t\t\tconst range = document.createRange();\n\t\t\trange.setStartBefore(boundary.target.startNode);\n\t\t\trange.setEndAfter(boundary.target.endNode);\n\t\t\tconst rect = range.getBoundingClientRect();\n\n\t\t\tel.style.display = \"block\";\n\t\t\tel.style.left = rect.left + \"px\";\n\t\t\tel.style.top = rect.top + \"px\";\n\t\t\tel.style.height = rect.height + \"px\";\n\t\t\tel.style.width = rect.width + \"px\";\n\t\t\t//el.style.border = \"2px solid limegreen\";\n\t\t\tel.style.borderRadius = \"2px\";\n\t\t\tel.style.boxShadow = \"rgba(50, 205, 50, 0.5) 0px 0px 0px 3px\";\n\t\t\tel.style.pointerEvents = \"none\";\n\t\t}\n\t};\n\n\t// TODO: make this more robust\n\tlet oldDepths: number[] = [];\n\n\tdevContext.onWatch = (proxy: ProxyData) => {\n\t\tlet keys = Object.keys(proxy.target);\n\t\tif (keys.length > 5) {\n\t\t\tkeys = [...keys.slice(0, 5), \"…\"];\n\t\t}\n\t\tlet name = keys.length > 0 ? `{ ${keys.join(\", \")} }` : \"{}\";\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"watch\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: proxy,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRun = (effect: Effect) => {\n\t\tlet name = effect.name;\n\t\tif (name === undefined) {\n\t\t\tconst details = String(effect.run);\n\t\t\tif (details.startsWith(\"function \")) {\n\t\t\t\tname = details.substring(9);\n\t\t\t\tname = name.substring(0, name.indexOf(\"(\"));\n\t\t\t}\n\t\t}\n\t\tif (name === undefined) {\n\t\t\tname = \"runAnon\";\n\t\t}\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"run\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: effect,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRegionPushed = (region: Region, toParent: boolean) => {\n\t\toldDepths.push(devContext.depth);\n\t\tif (toParent) {\n\t\t\t// It's a new region; bump the depth etc\n\t\t\tconst name = region.name || \"Anon Region\";\n\t\t\tconst id = crypto.randomUUID();\n\t\t\tconst newBoundary = {\n\t\t\t\ttype: \"region\",\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\tdepth: devContext.depth,\n\t\t\t\ttarget: region,\n\t\t\t} satisfies DevBoundary;\n\t\t\tif (devContext.index === -1) {\n\t\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t\t} else {\n\t\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\t\tdevContext.index++;\n\t\t\t}\n\t\t\t//pushDevBoundary(\"region\", name);\n\t\t\tregion.name = `${name} [${id}]`;\n\n\t\t\tdevContext.depth++;\n\n\t\t\tsendMessage({ name: \"REFRESH\" });\n\t\t} else if (region.name) {\n\t\t\tdevContext.index = -1;\n\n\t\t\t// It's an old region; get and set its depth and position for adding children\n\t\t\tconst match = region.name.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tlet id = match[1];\n\t\t\t\tlet index = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tconst parentDepth = devContext.boundaries[index].depth;\n\t\t\t\t\tdevContext.depth = parentDepth + 1;\n\t\t\t\t\t// The index needs to be after the last child of the parent\n\t\t\t\t\tdevContext.index = index + 1;\n\t\t\t\t\twhile (\n\t\t\t\t\t\tdevContext.index < devContext.boundaries.length &&\n\t\t\t\t\t\tdevContext.boundaries[devContext.index].depth > parentDepth\n\t\t\t\t\t) {\n\t\t\t\t\t\tdevContext.index++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tdevContext.onRegionPopped = () => {\n\t\t//popDevBoundary();\n\t\tdevContext.depth = oldDepths.pop() ?? 0;\n\t};\n\n\tdevContext.onRegionCleared = (region: Region) => {\n\t\tlet nextRegion: Region | null = region;\n\t\twhile (true) {\n\t\t\tlet match = nextRegion.name!.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tconst id = match[1];\n\t\t\t\tlet i = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tlet depth = devContext.boundaries[i].depth;\n\t\t\t\t\tlet start = i;\n\t\t\t\t\tlet end = devContext.boundaries.length;\n\t\t\t\t\tfor (i++; i < devContext.boundaries.length; i++) {\n\t\t\t\t\t\tif (devContext.boundaries[i].depth <= depth) {\n\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdevContext.boundaries.splice(start, end - start);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnextRegion = nextRegion.nextRegion;\n\t\t\tif (nextRegion === null || nextRegion.depth <= region.depth) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tsendMessage({ name: \"REFRESH\" });\n\t};\n\n\t// Messages\n\n\tdevContext.signalSet = (proxy: ProxyData, key: PropertyKey) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === proxy);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Signal set\", id: boundary.id, key: String(key) });\n\t\t}\n\t};\n\n\tdevContext.effectRun = (effect: Effect) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === effect);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Effect run\", id: boundary.id });\n\t\t}\n\t};\n\n\tfunction sendMessage(message: { name: string } & Record<string, string>) {\n\t\twindow.postMessage(\n\t\t\t{\n\t\t\t\tsource: \"t_dev_tools\",\n\t\t\t\tmessage: JSON.stringify(message),\n\t\t\t},\n\t\t\t\"*\",\n\t\t);\n\t}\n}\n"],"mappings":"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"}
|
package/dist/dev.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.cts","names":["devContext: DevContext"],"sources":["../src/types/ProxyData.ts","../src/dev/types/DevBoundary.ts","../src/dev/types/DevContext.ts","../src/dev/devContext.ts","../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":[],"mappings":";;;;UAIyB,SAAA;UAChB,OAAO;EAJa,OAGJ,EAAA,OAAA;EACT,OAAA,EAAA,OAAA;EAAP,OAAA,EAGC,GAHD,CAGK,WAHL,EAGkB,WAHlB,GAGgC,QAHhC,CAAA;;;;UCLgB,WAAA;;;;EDCI,KAGJ,EAAA,MAAA;EACT,MAAA,CAAA,EAAA,GAAA;;;;AADS,UECA,UAAA,CFDA;EACT,OAAA,EAAA,OAAA;EAAP,KAAA,EAAA,MAAA;EAGK,KAAA,EAAA,MAAA;EAAa,UAAA,EECd,WFDc,EAAA;EAAc,MAAA,EAAA,GAAA,GAAA,GAAA;EAA/B,UAAA,EAAA,CAAA,EAAA,EAAA,MAAA,EAAA,GAAA,MAAA;EAAA,MAAA,EAAA,GAAA,GAAA,IAAA;;mBESQ;kBACD;gBDlBQ,EAAA,CAAA,MAAA,ECmBC,MDnBD,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;4BCqBE;qBAEP,gBAAgB;EApBP,SAEJ,EAAA,CAAA,MAAA,EAmBJ,MAnBI,EAAA,GAAA,IAAA;;;;
|
|
1
|
+
{"version":3,"file":"dev.d.cts","names":["devContext: DevContext"],"sources":["../src/types/ProxyData.ts","../src/dev/types/DevBoundary.ts","../src/dev/types/DevContext.ts","../src/dev/devContext.ts","../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":[],"mappings":";;;;UAIyB,SAAA;UAChB,OAAO;EAJa,OAGJ,EAAA,OAAA;EACT,OAAA,EAAA,OAAA;EAAP,OAAA,EAGC,GAHD,CAGK,WAHL,EAGkB,WAHlB,GAGgC,QAHhC,CAAA;;;;UCLgB,WAAA;;;;EDCI,KAGJ,EAAA,MAAA;EACT,MAAA,CAAA,EAAA,GAAA;;;;AADS,UECA,UAAA,CFDA;EACT,OAAA,EAAA,OAAA;EAAP,KAAA,EAAA,MAAA;EAGK,KAAA,EAAA,MAAA;EAAa,UAAA,EECd,WFDc,EAAA;EAAc,MAAA,EAAA,GAAA,GAAA,GAAA;EAA/B,UAAA,EAAA,CAAA,EAAA,EAAA,MAAA,EAAA,GAAA,MAAA;EAAA,MAAA,EAAA,GAAA,GAAA,IAAA;;mBESQ;kBACD;gBDlBQ,EAAA,CAAA,MAAA,ECmBC,MDnBD,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;4BCqBE;qBAEP,gBAAgB;EApBP,SAEJ,EAAA,CAAA,MAAA,EAmBJ,MAnBI,EAAA,GAAA,IAAA;;;;cCCnBA,YAAY;;;iBCJM,cAAA,CAAA;;;iBCCA,eAAA,uFAGrB;;;iBCAqB,UAAA,CAAA"}
|
package/dist/dev.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","names":["devContext: DevContext"],"sources":["../src/types/ProxyData.ts","../src/dev/types/DevBoundary.ts","../src/dev/types/DevContext.ts","../src/dev/devContext.ts","../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":[],"mappings":";;;;UAIyB,SAAA;UAChB,OAAO;EAJa,OAGJ,EAAA,OAAA;EACT,OAAA,EAAA,OAAA;EAAP,OAAA,EAGC,GAHD,CAGK,WAHL,EAGkB,WAHlB,GAGgC,QAHhC,CAAA;;;;UCLgB,WAAA;;;;EDCI,KAGJ,EAAA,MAAA;EACT,MAAA,CAAA,EAAA,GAAA;;;;AADS,UECA,UAAA,CFDA;EACT,OAAA,EAAA,OAAA;EAAP,KAAA,EAAA,MAAA;EAGK,KAAA,EAAA,MAAA;EAAa,UAAA,EECd,WFDc,EAAA;EAAc,MAAA,EAAA,GAAA,GAAA,GAAA;EAA/B,UAAA,EAAA,CAAA,EAAA,EAAA,MAAA,EAAA,GAAA,MAAA;EAAA,MAAA,EAAA,GAAA,GAAA,IAAA;;mBESQ;kBACD;gBDlBQ,EAAA,CAAA,MAAA,ECmBC,MDnBD,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;4BCqBE;qBAEP,gBAAgB;EApBP,SAEJ,EAAA,CAAA,MAAA,EAmBJ,MAnBI,EAAA,GAAA,IAAA;;;;
|
|
1
|
+
{"version":3,"file":"dev.d.ts","names":["devContext: DevContext"],"sources":["../src/types/ProxyData.ts","../src/dev/types/DevBoundary.ts","../src/dev/types/DevContext.ts","../src/dev/devContext.ts","../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":[],"mappings":";;;;UAIyB,SAAA;UAChB,OAAO;EAJa,OAGJ,EAAA,OAAA;EACT,OAAA,EAAA,OAAA;EAAP,OAAA,EAGC,GAHD,CAGK,WAHL,EAGkB,WAHlB,GAGgC,QAHhC,CAAA;;;;UCLgB,WAAA;;;;EDCI,KAGJ,EAAA,MAAA;EACT,MAAA,CAAA,EAAA,GAAA;;;;AADS,UECA,UAAA,CFDA;EACT,OAAA,EAAA,OAAA;EAAP,KAAA,EAAA,MAAA;EAGK,KAAA,EAAA,MAAA;EAAa,UAAA,EECd,WFDc,EAAA;EAAc,MAAA,EAAA,GAAA,GAAA,GAAA;EAA/B,UAAA,EAAA,CAAA,EAAA,EAAA,MAAA,EAAA,GAAA,MAAA;EAAA,MAAA,EAAA,GAAA,GAAA,IAAA;;mBESQ;kBACD;gBDlBQ,EAAA,CAAA,MAAA,ECmBC,MDnBD,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;4BCqBE;qBAEP,gBAAgB;EApBP,SAEJ,EAAA,CAAA,MAAA,EAmBJ,MAnBI,EAAA,GAAA,IAAA;;;;cCCnBA,YAAY;;;iBCJM,cAAA,CAAA;;;iBCCA,eAAA,uFAGrB;;;iBCAqB,UAAA,CAAA"}
|
package/dist/dev.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as devContext_default } from "./devContext-
|
|
1
|
+
import { t as devContext_default } from "./devContext-CevrTlUO.js";
|
|
2
2
|
|
|
3
3
|
//#region src/dev/popDevBoundary.ts
|
|
4
4
|
function popDevBoundary() {
|
|
@@ -113,7 +113,6 @@ function setDevMode() {
|
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
115
|
devContext_default.onRegionPushed = (region, toParent) => {
|
|
116
|
-
console.log("pushed region", toParent, region);
|
|
117
116
|
oldDepths.push(devContext_default.depth);
|
|
118
117
|
if (toParent) {
|
|
119
118
|
const name = region.name || "Anon Region";
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","names":["devContext","devContext","oldDepths: number[]","nextRegion: Region | null"],"sources":["../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":["import devContext from \"./devContext\";\n\nexport default function popDevBoundary(): void {\n\tdevContext.depth--;\n}\n","import devContext from \"../dev/devContext\";\nimport DevBoundary from \"./types/DevBoundary\";\n\nexport default function pushDevBoundary(\n\ttype: \"component\" | \"region\" | \"run\" | \"watch\" | \"control\" | \"branch\",\n\tname: string,\n): DevBoundary {\n\tconst newBoundary = {\n\t\ttype,\n\t\tid: crypto.randomUUID(),\n\t\tname,\n\t\tdepth: devContext.depth,\n\t};\n\n\tif (devContext.index === -1) {\n\t\tdevContext.boundaries.push(newBoundary);\n\t} else {\n\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\tdevContext.index++;\n\t}\n\n\tdevContext.depth++;\n\n\treturn newBoundary;\n}\n","import type Effect from \"../types/Effect\";\nimport type ProxyData from \"../types/ProxyData\";\nimport type Region from \"../types/Region\";\nimport devContext from \"./devContext\";\nimport type DevBoundary from \"./types/DevBoundary\";\n\nexport default function setDevMode(): void {\n\tdevContext.enabled = true;\n\n\t// Format devContext for passing to DevTools by stripping out nodes etc\n\tdevContext.format = () => {\n\t\treturn {\n\t\t\tboundaries: devContext.boundaries.map((b) => ({\n\t\t\t\ttype: b.type,\n\t\t\t\tid: b.id,\n\t\t\t\tname: b.name,\n\t\t\t\tdepth: b.depth,\n\t\t\t\t//details: b.details,\n\t\t\t})),\n\t\t};\n\t};\n\n\tdevContext.getDetails = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary) {\n\t\t\tswitch (boundary.type) {\n\t\t\t\tcase \"run\": {\n\t\t\t\t\treturn String(boundary.target.run);\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// TODO:\n\t\t\t\t\treturn \"I'm a \" + boundary.type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn \"??\";\n\t};\n\n\tdevContext.unmark = () => {\n\t\tconst el = document.getElementById(\"t_dev_mark\");\n\t\tif (el) {\n\t\t\tel.style.display = \"none\";\n\t\t}\n\t};\n\n\tdevContext.mark = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary && boundary.target?.startNode && boundary.target?.endNode) {\n\t\t\tlet el = document.getElementById(\"t_dev_mark\");\n\t\t\tif (!el) {\n\t\t\t\tel = document.createElement(\"div\");\n\t\t\t\tel.id = \"t_dev_mark\";\n\t\t\t\tel.style.position = \"absolute\";\n\t\t\t\tdocument.body.append(el);\n\t\t\t}\n\n\t\t\tconst range = document.createRange();\n\t\t\trange.setStartBefore(boundary.target.startNode);\n\t\t\trange.setEndAfter(boundary.target.endNode);\n\t\t\tconst rect = range.getBoundingClientRect();\n\n\t\t\tel.style.display = \"block\";\n\t\t\tel.style.left = rect.left + \"px\";\n\t\t\tel.style.top = rect.top + \"px\";\n\t\t\tel.style.height = rect.height + \"px\";\n\t\t\tel.style.width = rect.width + \"px\";\n\t\t\t//el.style.border = \"2px solid limegreen\";\n\t\t\tel.style.borderRadius = \"2px\";\n\t\t\tel.style.boxShadow = \"rgba(50, 205, 50, 0.5) 0px 0px 0px 3px\";\n\t\t\tel.style.pointerEvents = \"none\";\n\t\t}\n\t};\n\n\t// TODO: make this more robust\n\tlet oldDepths: number[] = [];\n\n\tdevContext.onWatch = (proxy: ProxyData) => {\n\t\tlet keys = Object.keys(proxy.target);\n\t\tif (keys.length > 5) {\n\t\t\tkeys = [...keys.slice(0, 5), \"…\"];\n\t\t}\n\t\tlet name = keys.length > 0 ? `{ ${keys.join(\", \")} }` : \"{}\";\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"watch\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: proxy,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRun = (effect: Effect) => {\n\t\tlet name = effect.name;\n\t\tif (name === undefined) {\n\t\t\tconst details = String(effect.run);\n\t\t\tif (details.startsWith(\"function \")) {\n\t\t\t\tname = details.substring(9);\n\t\t\t\tname = name.substring(0, name.indexOf(\"(\"));\n\t\t\t}\n\t\t}\n\t\tif (name === undefined) {\n\t\t\tname = \"runAnon\";\n\t\t}\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"run\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: effect,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRegionPushed = (region: Region, toParent: boolean) => {\n\t\tconsole.log(\"pushed region\", toParent, region);\n\t\toldDepths.push(devContext.depth);\n\t\tif (toParent) {\n\t\t\t// It's a new region; bump the depth etc\n\t\t\tconst name = region.name || \"Anon Region\";\n\t\t\tconst id = crypto.randomUUID();\n\t\t\tconst newBoundary = {\n\t\t\t\ttype: \"region\",\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\tdepth: devContext.depth,\n\t\t\t\ttarget: region,\n\t\t\t} satisfies DevBoundary;\n\t\t\tif (devContext.index === -1) {\n\t\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t\t} else {\n\t\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\t\tdevContext.index++;\n\t\t\t}\n\t\t\t//pushDevBoundary(\"region\", name);\n\t\t\tregion.name = `${name} [${id}]`;\n\n\t\t\tdevContext.depth++;\n\n\t\t\tsendMessage({ name: \"REFRESH\" });\n\t\t} else if (region.name) {\n\t\t\tdevContext.index = -1;\n\n\t\t\t// It's an old region; get and set its depth and position for adding children\n\t\t\tconst match = region.name.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tlet id = match[1];\n\t\t\t\tlet index = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tconst parentDepth = devContext.boundaries[index].depth;\n\t\t\t\t\tdevContext.depth = parentDepth + 1;\n\t\t\t\t\t// The index needs to be after the last child of the parent\n\t\t\t\t\tdevContext.index = index + 1;\n\t\t\t\t\twhile (\n\t\t\t\t\t\tdevContext.index < devContext.boundaries.length &&\n\t\t\t\t\t\tdevContext.boundaries[devContext.index].depth > parentDepth\n\t\t\t\t\t) {\n\t\t\t\t\t\tdevContext.index++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tdevContext.onRegionPopped = () => {\n\t\t//popDevBoundary();\n\t\tdevContext.depth = oldDepths.pop() ?? 0;\n\t};\n\n\tdevContext.onRegionCleared = (region: Region) => {\n\t\tlet nextRegion: Region | null = region;\n\t\twhile (true) {\n\t\t\tlet match = nextRegion.name!.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tconst id = match[1];\n\t\t\t\tlet i = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tlet depth = devContext.boundaries[i].depth;\n\t\t\t\t\tlet start = i;\n\t\t\t\t\tlet end = devContext.boundaries.length;\n\t\t\t\t\tfor (i++; i < devContext.boundaries.length; i++) {\n\t\t\t\t\t\tif (devContext.boundaries[i].depth <= depth) {\n\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdevContext.boundaries.splice(start, end - start);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnextRegion = nextRegion.nextRegion;\n\t\t\tif (nextRegion === null || nextRegion.depth <= region.depth) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tsendMessage({ name: \"REFRESH\" });\n\t};\n\n\t// Messages\n\n\tdevContext.signalSet = (proxy: ProxyData, key: PropertyKey) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === proxy);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Signal set\", id: boundary.id, key: String(key) });\n\t\t}\n\t};\n\n\tdevContext.effectRun = (effect: Effect) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === effect);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Effect run\", id: boundary.id });\n\t\t}\n\t};\n\n\tfunction sendMessage(message: { name: string } & Record<string, string>) {\n\t\twindow.postMessage(\n\t\t\t{\n\t\t\t\tsource: \"t_dev_tools\",\n\t\t\t\tmessage: JSON.stringify(message),\n\t\t\t},\n\t\t\t\"*\",\n\t\t);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev.js","names":["devContext","devContext","oldDepths: number[]","nextRegion: Region | null"],"sources":["../src/dev/popDevBoundary.ts","../src/dev/pushDevBoundary.ts","../src/dev/setDevMode.ts"],"sourcesContent":["import devContext from \"./devContext\";\n\nexport default function popDevBoundary(): void {\n\tdevContext.depth--;\n}\n","import devContext from \"../dev/devContext\";\nimport DevBoundary from \"./types/DevBoundary\";\n\nexport default function pushDevBoundary(\n\ttype: \"component\" | \"region\" | \"run\" | \"watch\" | \"control\" | \"branch\",\n\tname: string,\n): DevBoundary {\n\tconst newBoundary = {\n\t\ttype,\n\t\tid: crypto.randomUUID(),\n\t\tname,\n\t\tdepth: devContext.depth,\n\t};\n\n\tif (devContext.index === -1) {\n\t\tdevContext.boundaries.push(newBoundary);\n\t} else {\n\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\tdevContext.index++;\n\t}\n\n\tdevContext.depth++;\n\n\treturn newBoundary;\n}\n","import type Effect from \"../types/Effect\";\nimport type ProxyData from \"../types/ProxyData\";\nimport type Region from \"../types/Region\";\nimport devContext from \"./devContext\";\nimport type DevBoundary from \"./types/DevBoundary\";\n\nexport default function setDevMode(): void {\n\tdevContext.enabled = true;\n\n\t// Format devContext for passing to DevTools by stripping out nodes etc\n\tdevContext.format = () => {\n\t\treturn {\n\t\t\tboundaries: devContext.boundaries.map((b) => ({\n\t\t\t\ttype: b.type,\n\t\t\t\tid: b.id,\n\t\t\t\tname: b.name,\n\t\t\t\tdepth: b.depth,\n\t\t\t\t//details: b.details,\n\t\t\t})),\n\t\t};\n\t};\n\n\tdevContext.getDetails = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary) {\n\t\t\tswitch (boundary.type) {\n\t\t\t\tcase \"run\": {\n\t\t\t\t\treturn String(boundary.target.run);\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\t// TODO:\n\t\t\t\t\treturn \"I'm a \" + boundary.type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn \"??\";\n\t};\n\n\tdevContext.unmark = () => {\n\t\tconst el = document.getElementById(\"t_dev_mark\");\n\t\tif (el) {\n\t\t\tel.style.display = \"none\";\n\t\t}\n\t};\n\n\tdevContext.mark = (id: string) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.id === id);\n\t\tif (boundary && boundary.target?.startNode && boundary.target?.endNode) {\n\t\t\tlet el = document.getElementById(\"t_dev_mark\");\n\t\t\tif (!el) {\n\t\t\t\tel = document.createElement(\"div\");\n\t\t\t\tel.id = \"t_dev_mark\";\n\t\t\t\tel.style.position = \"absolute\";\n\t\t\t\tdocument.body.append(el);\n\t\t\t}\n\n\t\t\tconst range = document.createRange();\n\t\t\trange.setStartBefore(boundary.target.startNode);\n\t\t\trange.setEndAfter(boundary.target.endNode);\n\t\t\tconst rect = range.getBoundingClientRect();\n\n\t\t\tel.style.display = \"block\";\n\t\t\tel.style.left = rect.left + \"px\";\n\t\t\tel.style.top = rect.top + \"px\";\n\t\t\tel.style.height = rect.height + \"px\";\n\t\t\tel.style.width = rect.width + \"px\";\n\t\t\t//el.style.border = \"2px solid limegreen\";\n\t\t\tel.style.borderRadius = \"2px\";\n\t\t\tel.style.boxShadow = \"rgba(50, 205, 50, 0.5) 0px 0px 0px 3px\";\n\t\t\tel.style.pointerEvents = \"none\";\n\t\t}\n\t};\n\n\t// TODO: make this more robust\n\tlet oldDepths: number[] = [];\n\n\tdevContext.onWatch = (proxy: ProxyData) => {\n\t\tlet keys = Object.keys(proxy.target);\n\t\tif (keys.length > 5) {\n\t\t\tkeys = [...keys.slice(0, 5), \"…\"];\n\t\t}\n\t\tlet name = keys.length > 0 ? `{ ${keys.join(\", \")} }` : \"{}\";\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"watch\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: proxy,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRun = (effect: Effect) => {\n\t\tlet name = effect.name;\n\t\tif (name === undefined) {\n\t\t\tconst details = String(effect.run);\n\t\t\tif (details.startsWith(\"function \")) {\n\t\t\t\tname = details.substring(9);\n\t\t\t\tname = name.substring(0, name.indexOf(\"(\"));\n\t\t\t}\n\t\t}\n\t\tif (name === undefined) {\n\t\t\tname = \"runAnon\";\n\t\t}\n\t\tconst id = crypto.randomUUID();\n\t\tconst newBoundary = {\n\t\t\ttype: \"run\",\n\t\t\tid,\n\t\t\tname,\n\t\t\tdepth: devContext.depth,\n\t\t\ttarget: effect,\n\t\t} satisfies DevBoundary;\n\t\tif (devContext.index === -1) {\n\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t} else {\n\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\tdevContext.index++;\n\t\t}\n\t};\n\n\tdevContext.onRegionPushed = (region: Region, toParent: boolean) => {\n\t\toldDepths.push(devContext.depth);\n\t\tif (toParent) {\n\t\t\t// It's a new region; bump the depth etc\n\t\t\tconst name = region.name || \"Anon Region\";\n\t\t\tconst id = crypto.randomUUID();\n\t\t\tconst newBoundary = {\n\t\t\t\ttype: \"region\",\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\tdepth: devContext.depth,\n\t\t\t\ttarget: region,\n\t\t\t} satisfies DevBoundary;\n\t\t\tif (devContext.index === -1) {\n\t\t\t\tdevContext.boundaries.push(newBoundary);\n\t\t\t} else {\n\t\t\t\tdevContext.boundaries.splice(devContext.index, 0, newBoundary);\n\t\t\t\tdevContext.index++;\n\t\t\t}\n\t\t\t//pushDevBoundary(\"region\", name);\n\t\t\tregion.name = `${name} [${id}]`;\n\n\t\t\tdevContext.depth++;\n\n\t\t\tsendMessage({ name: \"REFRESH\" });\n\t\t} else if (region.name) {\n\t\t\tdevContext.index = -1;\n\n\t\t\t// It's an old region; get and set its depth and position for adding children\n\t\t\tconst match = region.name.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tlet id = match[1];\n\t\t\t\tlet index = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tconst parentDepth = devContext.boundaries[index].depth;\n\t\t\t\t\tdevContext.depth = parentDepth + 1;\n\t\t\t\t\t// The index needs to be after the last child of the parent\n\t\t\t\t\tdevContext.index = index + 1;\n\t\t\t\t\twhile (\n\t\t\t\t\t\tdevContext.index < devContext.boundaries.length &&\n\t\t\t\t\t\tdevContext.boundaries[devContext.index].depth > parentDepth\n\t\t\t\t\t) {\n\t\t\t\t\t\tdevContext.index++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tdevContext.onRegionPopped = () => {\n\t\t//popDevBoundary();\n\t\tdevContext.depth = oldDepths.pop() ?? 0;\n\t};\n\n\tdevContext.onRegionCleared = (region: Region) => {\n\t\tlet nextRegion: Region | null = region;\n\t\twhile (true) {\n\t\t\tlet match = nextRegion.name!.match(/.+?\\[(.+?)\\]/);\n\t\t\tif (match !== null && match.length > 0) {\n\t\t\t\tconst id = match[1];\n\t\t\t\tlet i = devContext.boundaries.findIndex((b) => b.id === id);\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tlet depth = devContext.boundaries[i].depth;\n\t\t\t\t\tlet start = i;\n\t\t\t\t\tlet end = devContext.boundaries.length;\n\t\t\t\t\tfor (i++; i < devContext.boundaries.length; i++) {\n\t\t\t\t\t\tif (devContext.boundaries[i].depth <= depth) {\n\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdevContext.boundaries.splice(start, end - start);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnextRegion = nextRegion.nextRegion;\n\t\t\tif (nextRegion === null || nextRegion.depth <= region.depth) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tsendMessage({ name: \"REFRESH\" });\n\t};\n\n\t// Messages\n\n\tdevContext.signalSet = (proxy: ProxyData, key: PropertyKey) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === proxy);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Signal set\", id: boundary.id, key: String(key) });\n\t\t}\n\t};\n\n\tdevContext.effectRun = (effect: Effect) => {\n\t\tconst boundary = devContext.boundaries.find((b) => b.target === effect);\n\t\tif (boundary !== undefined) {\n\t\t\tsendMessage({ name: \"Effect run\", id: boundary.id });\n\t\t}\n\t};\n\n\tfunction sendMessage(message: { name: string } & Record<string, string>) {\n\t\twindow.postMessage(\n\t\t\t{\n\t\t\t\tsource: \"t_dev_tools\",\n\t\t\t\tmessage: JSON.stringify(message),\n\t\t\t},\n\t\t\t\"*\",\n\t\t);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
//#region src/dev/devContext.ts
|
|
3
|
+
const DEV_CONTEXT_SYMBOL = Symbol.for("t_dev_context");
|
|
3
4
|
const noop = () => {};
|
|
4
|
-
const devContext = {
|
|
5
|
+
const devContext = globalThis[DEV_CONTEXT_SYMBOL] ??= {
|
|
5
6
|
enabled: false,
|
|
6
7
|
depth: 0,
|
|
7
8
|
index: -1,
|
|
@@ -18,7 +19,6 @@ const devContext = {
|
|
|
18
19
|
signalSet: noop,
|
|
19
20
|
effectRun: noop
|
|
20
21
|
};
|
|
21
|
-
globalThis.T_DEV_CTX = devContext;
|
|
22
22
|
var devContext_default = devContext;
|
|
23
23
|
|
|
24
24
|
//#endregion
|
|
@@ -28,4 +28,4 @@ Object.defineProperty(exports, 'devContext_default', {
|
|
|
28
28
|
return devContext_default;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
-
//# sourceMappingURL=devContext-
|
|
31
|
+
//# sourceMappingURL=devContext-B3yskfhA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devContext-B3yskfhA.cjs","names":["DEV_CONTEXT_SYMBOL: unique symbol","devContext: DevContext"],"sources":["../src/dev/devContext.ts"],"sourcesContent":["import type DevContext from \"./types/DevContext\";\n\nconst DEV_CONTEXT_SYMBOL: unique symbol = Symbol.for(\"t_dev_context\");\n\nconst noop = () => {};\n\nconst devContext: DevContext =\n\t// @ts-ignore\n\t(globalThis[DEV_CONTEXT_SYMBOL] ??= {\n\t\tenabled: false,\n\t\tdepth: 0,\n\t\tindex: -1,\n\t\tboundaries: [],\n\n\t\tformat: () => \"\",\n\t\tgetDetails: () => \"\",\n\t\tunmark: noop,\n\t\tmark: noop,\n\n\t\t// Hooks\n\t\tonWatch: noop,\n\t\tonRun: noop,\n\t\tonRegionPushed: noop,\n\t\tonRegionPopped: noop,\n\t\tonRegionCleared: noop,\n\n\t\tsignalSet: noop,\n\t\teffectRun: noop,\n\t} satisfies DevContext);\n\nexport default devContext;\n"],"mappings":";;AAEA,MAAMA,qBAAoC,OAAO,IAAI,gBAAgB;AAErE,MAAM,aAAa;AAEnB,MAAMC,aAEJ,WAAW,wBAAwB;CACnC,SAAS;CACT,OAAO;CACP,OAAO;CACP,YAAY,EAAE;CAEd,cAAc;CACd,kBAAkB;CAClB,QAAQ;CACR,MAAM;CAGN,SAAS;CACT,OAAO;CACP,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CAEjB,WAAW;CACX,WAAW;CACX;AAEF,yBAAe"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
//#region src/dev/devContext.ts
|
|
2
|
+
const DEV_CONTEXT_SYMBOL = Symbol.for("t_dev_context");
|
|
2
3
|
const noop = () => {};
|
|
3
|
-
const devContext = {
|
|
4
|
+
const devContext = globalThis[DEV_CONTEXT_SYMBOL] ??= {
|
|
4
5
|
enabled: false,
|
|
5
6
|
depth: 0,
|
|
6
7
|
index: -1,
|
|
@@ -17,9 +18,8 @@ const devContext = {
|
|
|
17
18
|
signalSet: noop,
|
|
18
19
|
effectRun: noop
|
|
19
20
|
};
|
|
20
|
-
globalThis.T_DEV_CTX = devContext;
|
|
21
21
|
var devContext_default = devContext;
|
|
22
22
|
|
|
23
23
|
//#endregion
|
|
24
24
|
export { devContext_default as t };
|
|
25
|
-
//# sourceMappingURL=devContext-
|
|
25
|
+
//# sourceMappingURL=devContext-CevrTlUO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devContext-CevrTlUO.js","names":["DEV_CONTEXT_SYMBOL: unique symbol","devContext: DevContext"],"sources":["../src/dev/devContext.ts"],"sourcesContent":["import type DevContext from \"./types/DevContext\";\n\nconst DEV_CONTEXT_SYMBOL: unique symbol = Symbol.for(\"t_dev_context\");\n\nconst noop = () => {};\n\nconst devContext: DevContext =\n\t// @ts-ignore\n\t(globalThis[DEV_CONTEXT_SYMBOL] ??= {\n\t\tenabled: false,\n\t\tdepth: 0,\n\t\tindex: -1,\n\t\tboundaries: [],\n\n\t\tformat: () => \"\",\n\t\tgetDetails: () => \"\",\n\t\tunmark: noop,\n\t\tmark: noop,\n\n\t\t// Hooks\n\t\tonWatch: noop,\n\t\tonRun: noop,\n\t\tonRegionPushed: noop,\n\t\tonRegionPopped: noop,\n\t\tonRegionCleared: noop,\n\n\t\tsignalSet: noop,\n\t\teffectRun: noop,\n\t} satisfies DevContext);\n\nexport default devContext;\n"],"mappings":";AAEA,MAAMA,qBAAoC,OAAO,IAAI,gBAAgB;AAErE,MAAM,aAAa;AAEnB,MAAMC,aAEJ,WAAW,wBAAwB;CACnC,SAAS;CACT,OAAO;CACP,OAAO;CACP,YAAY,EAAE;CAEd,cAAc;CACd,kBAAkB;CAClB,QAAQ;CACR,MAAM;CAGN,SAAS;CACT,OAAO;CACP,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CAEjB,WAAW;CACX,WAAW;CACX;AAEF,yBAAe"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
const require_devContext = require('./devContext-
|
|
1
|
+
const require_devContext = require('./devContext-B3yskfhA.cjs');
|
|
2
2
|
const require_formatText = require('./formatText-Ck04q8_X.cjs');
|
|
3
3
|
|
|
4
4
|
//#region src/render/context.ts
|
|
5
|
-
const
|
|
5
|
+
const CONTEXT_SYMBOL = Symbol.for("t_context");
|
|
6
|
+
const context = globalThis[CONTEXT_SYMBOL] ??= {
|
|
6
7
|
activeTarget: null,
|
|
7
8
|
previousEffect: null,
|
|
8
9
|
extent: 0,
|