devframe 0.2.1 → 0.2.3

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 (76) hide show
  1. package/dist/adapters/build.d.mts +1 -1
  2. package/dist/adapters/build.mjs +6 -6
  3. package/dist/adapters/cli.d.mts +1 -1
  4. package/dist/adapters/cli.mjs +2 -2
  5. package/dist/adapters/dev.d.mts +2 -2
  6. package/dist/adapters/dev.mjs +1 -1
  7. package/dist/adapters/embedded.d.mts +1 -1
  8. package/dist/adapters/mcp.d.mts +1 -1
  9. package/dist/adapters/mcp.mjs +3 -3
  10. package/dist/client/index.d.mts +18 -4
  11. package/dist/client/index.mjs +314 -8
  12. package/dist/{context-BaX-SZti.d.mts → context-GUzIxrEK.d.mts} +1 -1
  13. package/dist/{dev-CA0-8Amw.mjs → dev-BVtS7qBK.mjs} +4 -4
  14. package/dist/{devframe-BXZUBuy6.d.mts → devframe-C4DNeFuG.d.mts} +3 -52
  15. package/dist/diagnostics-D7miaTpL.mjs +36 -0
  16. package/dist/{rpc-BlVCyk9W.mjs → dump-C5LPsKJC.mjs} +139 -126
  17. package/dist/helpers/vite.d.mts +1 -1
  18. package/dist/helpers/vite.mjs +3 -3
  19. package/dist/{host-h3-CpYkiCIU.mjs → host-h3-DYFKJxAV.mjs} +255 -7
  20. package/dist/human-id-CiBWzVcg.mjs +803 -0
  21. package/dist/{index-BO4daMzR.d.mts → index-CSi2Y5JU.d.mts} +31 -78
  22. package/dist/index-DWczSqdd.d.mts +79 -0
  23. package/dist/index-aNunf5Za.d.mts +639 -0
  24. package/dist/index.d.mts +3 -3
  25. package/dist/index.mjs +1 -1
  26. package/dist/{launch-editor-1dAC7Uk5.mjs → launch-editor-BbNhtg7b.mjs} +25 -1
  27. package/dist/node/auth.d.mts +2 -2
  28. package/dist/node/auth.mjs +1 -2
  29. package/dist/node/index.d.mts +5 -5
  30. package/dist/node/index.mjs +3 -3
  31. package/dist/node/internal.d.mts +2 -2
  32. package/dist/node/internal.mjs +3 -4
  33. package/dist/recipes/open-helpers.d.mts +1 -1
  34. package/dist/recipes/open-helpers.mjs +3 -3
  35. package/dist/rpc/dump.d.mts +2 -0
  36. package/dist/rpc/dump.mjs +2 -0
  37. package/dist/rpc/index.d.mts +2 -2
  38. package/dist/rpc/index.mjs +129 -3
  39. package/dist/rpc/transports/ws-client.d.mts +25 -1
  40. package/dist/rpc/transports/ws-client.mjs +2 -2
  41. package/dist/rpc/transports/ws-server.d.mts +1 -1
  42. package/dist/rpc/transports/ws-server.mjs +2 -2
  43. package/dist/{serialization-CwO31axa.mjs → serialization-lBLV02kQ.mjs} +2 -36
  44. package/dist/{server-CgqyJG9m.d.mts → server-DjMtJQhO.d.mts} +1 -1
  45. package/dist/shared-state-SzgfilJP.mjs +1058 -0
  46. package/dist/{shared-state-q9-1EOSX.mjs → shared-state-u0y123fi.mjs} +6 -6
  47. package/dist/{storage-BaLJK6e_.mjs → storage-CTlHUtXI.mjs} +1 -2
  48. package/dist/structured-clone-qP1sPovr.mjs +208 -0
  49. package/dist/types/index.d.mts +3 -3
  50. package/dist/utils/colors.mjs +30 -1
  51. package/dist/utils/events.d.mts +1 -1
  52. package/dist/utils/hash.mjs +1 -1
  53. package/dist/utils/human-id.d.mts +1 -1
  54. package/dist/utils/human-id.mjs +768 -1
  55. package/dist/utils/launch-editor.mjs +1 -1
  56. package/dist/utils/open.mjs +1 -1
  57. package/dist/utils/shared-state.d.mts +1 -1
  58. package/dist/utils/shared-state.mjs +1 -1
  59. package/dist/utils/streaming-channel.d.mts +1 -1
  60. package/dist/utils/structured-clone.mjs +1 -1
  61. package/dist/{ws-server-kW8RZXTw.d.mts → ws-server-lHQaafrS.d.mts} +1 -1
  62. package/package.json +2 -5
  63. package/dist/chunk-e9Ob2GDo.mjs +0 -26
  64. package/dist/colors-DS7k8ljB.mjs +0 -123
  65. package/dist/diagnostics-Cg9ycFIM.mjs +0 -56
  66. package/dist/human-id-mPh1HcFO.mjs +0 -852
  67. package/dist/revoke-CWSPBbJH.mjs +0 -35
  68. package/dist/ws-client-DFUf-xgm.d.mts +0 -26
  69. /package/dist/{_shared-C_yZKUmx.mjs → _shared-BNoPn1NG.mjs} +0 -0
  70. /package/dist/{define-CW9gLnyG.mjs → define-Bb4zh-Dc.mjs} +0 -0
  71. /package/dist/{hash-CIBte1yS.mjs → hash-bwOD8RgU.mjs} +0 -0
  72. /package/dist/{open-CWL4Zasd.mjs → open-CX4CiMyw.mjs} +0 -0
  73. /package/dist/{server-G1ymmN3_.mjs → server-DxiOFSpu.mjs} +0 -0
  74. /package/dist/{structured-clone-CD2l4fI3.mjs → structured-clone-PdCZwt7F.mjs} +0 -0
  75. /package/dist/{transports-BLwT342H.mjs → transports-Bl1zuYhZ.mjs} +0 -0
  76. /package/dist/{types-ip8THGH1.d.mts → types-kKDaD2NT.d.mts} +0 -0
@@ -1,2 +1,2 @@
1
- import { t as launchEditor } from "../launch-editor-1dAC7Uk5.mjs";
1
+ import { t as launchEditor } from "../launch-editor-BbNhtg7b.mjs";
2
2
  export { launchEditor };
@@ -1,2 +1,2 @@
1
- import { t as open } from "../open-CWL4Zasd.mjs";
1
+ import { t as open } from "../open-CX4CiMyw.mjs";
2
2
  export { open };
@@ -1,2 +1,2 @@
1
- import { A as ImmutableArray, F as SharedStateEvents, I as SharedStateOptions, L as SharedStatePatch, M as ImmutableObject, N as ImmutableSet, P as SharedState, R as createSharedState, j as ImmutableMap, k as Immutable } from "../devframe-BXZUBuy6.mjs";
1
+ import { C as createSharedState, S as SharedStatePatch, _ as ImmutableObject, b as SharedStateEvents, g as ImmutableMap, h as ImmutableArray, m as Immutable, v as ImmutableSet, x as SharedStateOptions, y as SharedState } from "../index-aNunf5Za.mjs";
2
2
  export { Immutable, ImmutableArray, ImmutableMap, ImmutableObject, ImmutableSet, SharedState, SharedStateEvents, SharedStateOptions, SharedStatePatch, createSharedState };
@@ -1,2 +1,2 @@
1
- import { t as createSharedState } from "../shared-state-q9-1EOSX.mjs";
1
+ import { t as createSharedState } from "../shared-state-u0y123fi.mjs";
2
2
  export { createSharedState };
@@ -1,2 +1,2 @@
1
- import { C as StreamErrorPayload, D as createStreamReader, E as StreamSinkEvents, O as createStreamSink, S as CreateStreamSinkOptions, T as StreamSink, b as BufferedChunk, w as StreamReader, x as CreateStreamReaderOptions } from "../devframe-BXZUBuy6.mjs";
1
+ import { a as BufferedChunk, c as StreamErrorPayload, d as StreamSinkEvents, f as createStreamReader, l as StreamReader, o as CreateStreamReaderOptions, p as createStreamSink, s as CreateStreamSinkOptions, u as StreamSink } from "../index-aNunf5Za.mjs";
2
2
  export { BufferedChunk, CreateStreamReaderOptions, CreateStreamSinkOptions, StreamErrorPayload, StreamReader, StreamSink, StreamSinkEvents, createStreamReader, createStreamSink };
@@ -1,2 +1,2 @@
1
- import { i as structuredCloneStringify, n as structuredCloneParse, r as structuredCloneSerialize, t as structuredCloneDeserialize } from "../structured-clone-CD2l4fI3.mjs";
1
+ import { i as structuredCloneStringify, n as structuredCloneParse, r as structuredCloneSerialize, t as structuredCloneDeserialize } from "../structured-clone-PdCZwt7F.mjs";
2
2
  export { structuredCloneDeserialize, structuredCloneParse, structuredCloneSerialize, structuredCloneStringify };
@@ -1,4 +1,4 @@
1
- import { _ as RpcFunctionDefinitionAny } from "./types-ip8THGH1.mjs";
1
+ import { _ as RpcFunctionDefinitionAny } from "./types-kKDaD2NT.mjs";
2
2
  import { BirpcGroup, ChannelOptions } from "birpc";
3
3
  import { ServerOptions } from "node:https";
4
4
  import { WebSocket, WebSocketServer } from "ws";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "devframe",
3
3
  "type": "module",
4
- "version": "0.2.1",
4
+ "version": "0.2.3",
5
5
  "description": "Framework for building generic DevTools",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -34,6 +34,7 @@
34
34
  "./recipes/open-helpers": "./dist/recipes/open-helpers.mjs",
35
35
  "./rpc": "./dist/rpc/index.mjs",
36
36
  "./rpc/client": "./dist/rpc/client.mjs",
37
+ "./rpc/dump": "./dist/rpc/dump.mjs",
37
38
  "./rpc/server": "./dist/rpc/server.mjs",
38
39
  "./rpc/transports/ws-client": "./dist/rpc/transports/ws-client.mjs",
39
40
  "./rpc/transports/ws-server": "./dist/rpc/transports/ws-server.mjs",
@@ -79,9 +80,7 @@
79
80
  },
80
81
  "devDependencies": {
81
82
  "@modelcontextprotocol/sdk": "^1.29.0",
82
- "ansis": "^4.3.0",
83
83
  "get-port-please": "^3.2.0",
84
- "human-id": "^4.1.3",
85
84
  "immer": "^11.1.8",
86
85
  "launch-editor": "^2.13.2",
87
86
  "mlly": "^1.8.2",
@@ -96,13 +95,11 @@
96
95
  "whenexpr": "^0.1.2"
97
96
  },
98
97
  "inlinedDependencies": {
99
- "ansis": "4.3.0",
100
98
  "bundle-name": "4.1.0",
101
99
  "default-browser": "5.5.0",
102
100
  "default-browser-id": "5.0.1",
103
101
  "define-lazy-prop": "3.0.0",
104
102
  "get-port-please": "3.2.0",
105
- "human-id": "4.1.3",
106
103
  "immer": "11.1.8",
107
104
  "is-docker": "3.0.0",
108
105
  "is-in-ssh": "1.0.0",
@@ -1,26 +0,0 @@
1
- import { createRequire } from "node:module";
2
- //#region \0rolldown/runtime.js
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
12
- key = keys[i];
13
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: ((k) => from[k]).bind(null, key),
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
21
- value: mod,
22
- enumerable: true
23
- }) : target, mod));
24
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
25
- //#endregion
26
- export { __require as n, __toESM as r, __commonJSMin as t };
@@ -1,123 +0,0 @@
1
- import { r as __toESM, t as __commonJSMin } from "./chunk-e9Ob2GDo.mjs";
2
- //#endregion
3
- //#region ../../node_modules/.pnpm/ansis@4.3.0/node_modules/ansis/index.mjs
4
- var import_ansis = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
5
- let e, r, { defineProperty: t, setPrototypeOf: n, create: l, keys: o } = Object, i = "", { round: s, max: f } = Math, u = (e) => {
6
- let r = /([a-f\d]{3,6})/i.exec(e)?.[1], t = r?.length, n = parseInt(6 ^ t ? 3 ^ t ? "0" : r[0] + r[0] + r[1] + r[1] + r[2] + r[2] : r, 16);
7
- return [
8
- n >> 16 & 255,
9
- n >> 8 & 255,
10
- 255 & n
11
- ];
12
- }, a = (e, r, t) => e ^ r || r ^ t ? 16 + 36 * s(e / 51) + 6 * s(r / 51) + s(t / 51) : 8 > e ? 16 : e > 248 ? 231 : s(24 * (e - 8) / 247) + 232, c = (e) => {
13
- let r, t, n, l, o;
14
- return 8 > e ? 30 + e : 16 > e ? 82 + e : (232 > e ? (o = (e -= 16) % 36, r = (e / 36 | 0) / 5, t = (o / 6 | 0) / 5, n = o % 6 / 5) : r = t = n = (10 * (e - 232) + 8) / 255, l = 2 * f(r, t, n), l ? 30 + (s(n) << 2 | s(t) << 1 | s(r)) + (2 ^ l ? 0 : 60) : 30);
15
- }, g = {
16
- open: i,
17
- close: i
18
- }, b = 39, d = 49, p = {}, $ = ({ p: e }, { open: t = "", close: l = "", f: o }) => {
19
- let s = (e, ...r) => {
20
- if (!e) {
21
- if (t && t === l) return t;
22
- if ((e ?? i) === i) return i;
23
- }
24
- let n, f = s.p, u = f.o, a = f.c, c = o ? o(e, ...r) : e.raw ? String.raw({ raw: e }, ...r) : i + e;
25
- if (c.includes("\x1B")) for (; f; f = f.p) {
26
- let { t: e, l: r } = f, t = r.length, l = i, o = 0;
27
- if (t) for (; ~(n = c.indexOf(r, o)); o = n + t) l += c.slice(o, n) + e;
28
- c = l + c.slice(o);
29
- }
30
- return u + (c.includes("\n") ? c.replace(/(\r?\n)/g, a + "$1" + u) : c) + a;
31
- }, f = t, u = l;
32
- return e && (f = e.o + t, u = l + e.c), n(s, r), s.p = {
33
- t,
34
- l,
35
- o: s.open = f,
36
- c: s.close = u,
37
- p: e
38
- }, s;
39
- };
40
- const h = new function s(f = globalThis) {
41
- let h, y, m = "number" == typeof f ? f : ((r) => {
42
- let t = r.process ?? {}, n = t.argv ?? [], l = t.env ?? {}, i = 0;
43
- try {
44
- i = ((r, t, n) => (e = t.TERM, {
45
- "24bit": 3,
46
- truecolor: 3,
47
- ansi256: 2,
48
- ansi: 1
49
- }[t.COLORTERM] || (t.CI ? /,GITHUB/.test(n) ? 3 : 1 : (t.PM2_HOME || /edge/.test(t.NEXT_RUNTIME) || r.stdout?.isTTY) && "dumb" !== e ? "win32" === r.platform ? 3 : /-256/.test(e) ? 2 : 1 : 0)))(t, l, "," + o(l).join(","));
50
- } catch (e) {
51
- l = {};
52
- }
53
- let s, f = i || 1, u = "FORCE_COLOR", a = {
54
- false: 0,
55
- 0: 0,
56
- 1: 1,
57
- 2: 2,
58
- 3: 3
59
- }[l[u]] ?? f, c = -1;
60
- for (s of n) /^--color=?(true|always)?$/.test(s) && (c = f), /^--(no-color|color=(false|never))$/.test(s) && (c = 0);
61
- return r.window?.chrome ? 3 : u in l ? a : ~c ? c : l.NO_COLOR ? 0 : i;
62
- })(f), w = {
63
- Ansis: s,
64
- level: m,
65
- isSupported: () => v,
66
- strip: (e) => e.replace(/[›][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, i),
67
- extend(e) {
68
- for (let r in e) {
69
- let t = e[r], n = (typeof t)[0];
70
- "s" === n && (O(B(r), I(...u(t))), t = H(...u(t))), O(r, t, "f" === n);
71
- }
72
- return n(w, r = l({}, p)), w;
73
- }
74
- }, O = (e, r, n) => {
75
- p[e] = { get() {
76
- let l = n ? (...e) => $(this, r(...e)) : $(this, r);
77
- return t(this, e, { value: l }), l;
78
- } };
79
- }, v = m > 0, _ = (e, r) => v ? {
80
- open: `[${e}m`,
81
- close: `[${r}m`
82
- } : g, k = (e) => (r) => e(...u(r)), x = (e, r) => (t, n, l) => _(`${e}8;2;${t};${n};${l}`, r), R = (e) => (r, t, n) => e(a(r, t, n)), A = (e, r) => (t, n, l) => _(c(a(t, n, l)) + e, r), B = (e) => "bg" + e[0].toUpperCase() + e.slice(1), C = "Bright", H = x(3, b), I = x(4, d), P = (e) => _("38;5;" + e, b), S = (e) => _("48;5;" + e, d);
83
- return 2 === m ? (H = R(P), I = R(S)) : 1 === m && (H = A(0, b), I = A(10, d), P = (e) => _(c(e), b), S = (e) => _(c(e) + 10, d)), y = {
84
- fg: P,
85
- bg: S,
86
- rgb: H,
87
- bgRgb: I,
88
- hex: k(H),
89
- bgHex: k(I),
90
- visible: g,
91
- reset: _(0, 0),
92
- bold: _(1, 22),
93
- dim: _(2, 22),
94
- italic: _(3, 23),
95
- underline: _(4, 24),
96
- inverse: _(7, 27),
97
- hidden: _(8, 28),
98
- strikethrough: _(9, 29),
99
- link: { f: (e, r = e) => v ? `]8;;${e}${r}]8;;` : r != e ? `${r} (​${e}​)` : e }
100
- }, "gray,black,red,green,yellow,blue,magenta,cyan,white".split(",").map(((e, r) => {
101
- h = B(e), r ? (y[e + C] = _(89 + r, b), y[h + C] = _(99 + r, d)) : r = 61, y[e] = _(29 + r, b), y[h] = _(39 + r, d);
102
- })), w.extend(y);
103
- }();
104
- module.exports = h.default = h;
105
- })))(), 1);
106
- var ansis_default = import_ansis.default;
107
- const { Ansis, fg, bg, rgb, bgRgb, hex, bgHex, reset, inverse, hidden, visible, link, bold, dim, italic, underline, strikethrough, black, red, green, yellow, blue, magenta, cyan, white, gray, redBright, greenBright, yellowBright, blueBright, magentaBright, cyanBright, whiteBright, bgBlack, bgRed, bgGreen, bgYellow, bgBlue, bgMagenta, bgCyan, bgWhite, bgGray, bgRedBright, bgGreenBright, bgYellowBright, bgBlueBright, bgMagentaBright, bgCyanBright, bgWhiteBright } = import_ansis.default;
108
- //#endregion
109
- //#region src/utils/colors.ts
110
- const colors = {
111
- blue: ansis_default.blue,
112
- cyan: ansis_default.cyan,
113
- gray: ansis_default.gray,
114
- green: ansis_default.green,
115
- red: ansis_default.red,
116
- yellow: ansis_default.yellow,
117
- bold: ansis_default.bold,
118
- dim: ansis_default.dim,
119
- reset: ansis_default.reset,
120
- underline: ansis_default.underline
121
- };
122
- //#endregion
123
- export { colors as t };
@@ -1,56 +0,0 @@
1
- import { t as colors } from "./colors-DS7k8ljB.mjs";
2
- import { consoleReporter, createLogger, defineDiagnostics } from "logs-sdk";
3
- import { ansiFormatter } from "logs-sdk/formatters/ansi";
4
- //#region src/node/diagnostics.ts
5
- const diagnostics = defineDiagnostics({
6
- docsBase: "https://devfra.me/errors",
7
- codes: {
8
- DF0006: { message: (p) => `RPC function "${p.name}" is not registered` },
9
- DF0007: { message: "AsyncLocalStorage is not set, it likely to be an internal bug of the DevTools foundation" },
10
- DF0008: { message: (p) => `distDir ${p.distDir} does not exist` },
11
- DF0012: {
12
- message: (p) => `Failed to parse storage file: ${p.filepath}, falling back to defaults.`,
13
- level: "warn"
14
- },
15
- DF0013: { message: (p) => `Shared state of "${p.key}" is not found, please provide an initial value for the first time` },
16
- DF0014: {
17
- message: (p) => `RPC function "${p.name}" has an invalid \`agent\` field — \`description\` must be a non-empty string.`,
18
- hint: "Provide a short description (~1–3 sentences) explaining what the tool does and when agents should invoke it."
19
- },
20
- DF0015: {
21
- message: (p) => `Agent tool "${p.id}" is already registered.`,
22
- hint: "Tool ids must be unique across RPC functions with an `agent` field and tools registered via `ctx.agent.registerTool()`."
23
- },
24
- DF0016: { message: (p) => `Agent resource "${p.id}" is already registered.` },
25
- DF0017: { message: (p) => `Failed to start MCP server (${p.transport}): ${p.reason}` },
26
- DF0029: {
27
- message: (p) => `Stream "${p.channel}#${p.id}" dropped ${p.dropped} chunk(s) after exceeding the client high-water mark.`,
28
- hint: "The consumer is too slow for the producer. Raise `highWaterMark` on the subscription, slow the producer, or batch chunks.",
29
- level: "warn"
30
- },
31
- DF0030: {
32
- message: (p) => `Stream "${p.channel}#${p.id}" is unknown — no producer has called \`channel.start({ id: "${p.id}" })\`.`,
33
- hint: "Ensure the server-side producer is running before clients subscribe, or check for typos in the stream id."
34
- },
35
- DF0031: {
36
- message: (p) => `Cannot write to closed stream "${p.channel}#${p.id}".`,
37
- hint: "Track the producer lifecycle — guard writes with the `stream.signal.aborted` flag."
38
- },
39
- DF0032: {
40
- message: (p) => `Streaming channel "${p.channel}" is already registered.`,
41
- hint: "Each channel name must be unique within a context. Pick a different name or reuse the existing channel handle."
42
- },
43
- DF0033: {
44
- message: (p) => `Failed to start dev RPC bridge for "${p.id}": ${p.reason}`,
45
- hint: "Verify the bridge port is free and the devframe setup function does not throw. Pin a port via `cli.port` / `cli.portRange` on the definition, or via `devMiddleware.port` on `viteDevBridge`.",
46
- level: "warn"
47
- }
48
- }
49
- });
50
- const logger = createLogger({
51
- diagnostics: [diagnostics],
52
- formatter: ansiFormatter(colors),
53
- reporters: consoleReporter
54
- });
55
- //#endregion
56
- export { logger as n, diagnostics as t };