dsh-claude-design 2.9.2 → 2.10.0
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/README.md +9 -8
- package/cordis.patch.yml +8 -2
- package/lib/index.js +28 -753
- package/package.json +4 -18
- package/skills/claude-design/SKILL.md +3 -3
- package/skills/claude-design/scripts/artifact.mjs +1 -1
- package/skills/claude-design/scripts/editor/assets/{index-CYLuwRoc.js → index-CUg1EZUh.js} +27 -9
- package/skills/claude-design/scripts/editor/index.html +1 -1
- package/skills/claude-design/scripts/server.mjs +11 -8
- package/lib/client.js +0 -1800
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<meta name="dc-babel-file" content="artifact-type/babel.min.js">
|
|
15
15
|
<script>try{if(!document.documentElement.getAttribute("data-theme"))document.documentElement.setAttribute("data-theme",matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")}catch(e){}</script>
|
|
16
16
|
<script id="appifact-mode">(function(){var h=document.documentElement;function s(){var t=h.getAttribute('data-theme');if(t==='light'||t==='dark'){h.setAttribute('data-mode',t)}else{h.removeAttribute('data-mode')}}s();if(typeof MutationObserver==='function'){new MutationObserver(s).observe(h,{attributes:true,attributeFilter:['data-theme']})}})();</script>
|
|
17
|
-
<script type="module" crossorigin src="./assets/index-
|
|
17
|
+
<script type="module" crossorigin src="./assets/index-CUg1EZUh.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="./assets/index-tSD8GYWj.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
|
@@ -811,7 +811,7 @@ function removeState(root) {
|
|
|
811
811
|
fs3.rmSync(path2.join(root, STATE_FILE), { force: true });
|
|
812
812
|
}
|
|
813
813
|
var GITIGNORE_FILE = ".gitignore";
|
|
814
|
-
var gitignoreLines = (kind) => [STATE_FILE, LOG_FILE, ".sharing.json", ...kind === "docs" ? [] : ["history/"], "
|
|
814
|
+
var gitignoreLines = (kind) => [STATE_FILE, LOG_FILE, ".sharing.json", ...kind === "docs" ? [] : ["/history/"], `/${EXPORTS_DIR}/`, "*.tmp", ".tmp-*", ".DS_Store"];
|
|
815
815
|
function writeGitignore(root, kind) {
|
|
816
816
|
const file = path2.join(root, GITIGNORE_FILE);
|
|
817
817
|
try {
|
|
@@ -864,15 +864,17 @@ function isTailnet(address) {
|
|
|
864
864
|
const m = /^100\.(\d{1,3})\./.exec(address);
|
|
865
865
|
return !!m && Number(m[1]) >= 64 && Number(m[1]) <= 127;
|
|
866
866
|
}
|
|
867
|
+
var isTunnel = (name) => /^(utun|tun|tap|wg|ppp|ipsec)\d/i.test(name);
|
|
867
868
|
function lanAddresses() {
|
|
868
|
-
const out =
|
|
869
|
-
for (const list of Object.
|
|
869
|
+
const out = /* @__PURE__ */ new Map();
|
|
870
|
+
for (const [name, list] of Object.entries(os2.networkInterfaces())) {
|
|
870
871
|
for (const entry of list ?? []) {
|
|
871
872
|
if (entry.family !== "IPv4" || entry.internal || entry.address.startsWith("169.254.") || isBenchmarkRange(entry.address)) continue;
|
|
872
|
-
|
|
873
|
+
const rank = isTailnet(entry.address) ? 2 : isTunnel(name) ? 1 : 0;
|
|
874
|
+
out.set(entry.address, Math.min(rank, out.get(entry.address) ?? rank));
|
|
873
875
|
}
|
|
874
876
|
}
|
|
875
|
-
return [...
|
|
877
|
+
return [...out.keys()].sort((a, b) => out.get(a) - out.get(b));
|
|
876
878
|
}
|
|
877
879
|
function answers(host, port) {
|
|
878
880
|
return new Promise((resolve) => {
|
|
@@ -1981,8 +1983,9 @@ var Hub = class {
|
|
|
1981
1983
|
}
|
|
1982
1984
|
// ---- the network side ------------------------------------------------------------------------------------------
|
|
1983
1985
|
async openLan() {
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
+
const addresses = lanAddresses().filter((address) => !this.lanServers.has(address));
|
|
1987
|
+
const answering = await Promise.all(addresses.map(answersAnyPort));
|
|
1988
|
+
for (const address of addresses.filter((_, i) => !answering[i])) {
|
|
1986
1989
|
const server2 = this.createServer();
|
|
1987
1990
|
try {
|
|
1988
1991
|
await listen(server2, this.port, address);
|
|
@@ -2843,7 +2846,7 @@ import { promisify } from "node:util";
|
|
|
2843
2846
|
import zlib from "node:zlib";
|
|
2844
2847
|
var LOCAL_FILES = /* @__PURE__ */ new Set([STATE_FILE, LOG_FILE, SHARING_FILE]);
|
|
2845
2848
|
var LOCAL_DIRS = /* @__PURE__ */ new Set([EXPORTS_DIR]);
|
|
2846
|
-
var JUNK_FILES = /* @__PURE__ */ new Set([".DS_Store", "Thumbs.db", "desktop.ini"]);
|
|
2849
|
+
var JUNK_FILES = /* @__PURE__ */ new Set([".DS_Store", "Thumbs.db", "desktop.ini", ".git"]);
|
|
2847
2850
|
var isTemp = (name) => name.endsWith(".tmp") || name.startsWith(".tmp-");
|
|
2848
2851
|
var STORED = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".gif", ".webp", ".avif", ".heic", ".mp4", ".m4v", ".mov", ".webm", ".mp3", ".m4a", ".aac", ".ogg", ".opus", ".flac", ".woff", ".woff2", ".zip", ".gz", ".br", ".zst", ".7z"]);
|
|
2849
2852
|
var MAX_ENTRIES = 65535;
|