@glasshome/widget-sdk 1.2.0 → 1.3.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/dist/schemas.js CHANGED
@@ -1,15 +1,2 @@
1
- import { GridSizeSchema as a, PublishBodySchema as h, PublishConfirmSchema as m, PublishRequestSchema as S, widgetManifestSchema as c, capabilitiesSchema as r, capabilityGrantSchema as s, formatSchemaError as t, parseGridSize as d, publishManifestSchema as f, serializeGridSize as l, widgetManifestSchema as b } from "@glasshome/widget-contract";
2
- export {
3
- a as GridSizeSchema,
4
- h as PublishBodySchema,
5
- m as PublishConfirmSchema,
6
- S as PublishRequestSchema,
7
- c as WidgetManifestSchema,
8
- r as capabilitiesSchema,
9
- s as capabilityGrantSchema,
10
- t as formatSchemaError,
11
- d as parseGridSize,
12
- f as publishManifestSchema,
13
- l as serializeGridSize,
14
- b as widgetManifestSchema
15
- };
1
+ import { GridSizeSchema as e, PublishBodySchema as t, PublishConfirmSchema as n, PublishRequestSchema as r, capabilitiesSchema as i, capabilityGrantSchema as a, formatSchemaError as o, parseGridSize as s, publishManifestSchema as c, serializeGridSize as l, widgetManifestSchema as u, widgetManifestSchema as d } from "@glasshome/widget-contract";
2
+ export { e as GridSizeSchema, t as PublishBodySchema, n as PublishConfirmSchema, r as PublishRequestSchema, d as WidgetManifestSchema, i as capabilitiesSchema, a as capabilityGrantSchema, o as formatSchemaError, s as parseGridSize, c as publishManifestSchema, l as serializeGridSize, u as widgetManifestSchema };
@@ -1,321 +1,274 @@
1
- import { createHash as R } from "node:crypto";
2
- import { existsSync as l, rmSync as T, mkdirSync as D, readdirSync as I, statSync as P, readFileSync as g, writeFileSync as w } from "node:fs";
3
- import { createRequire as F } from "node:module";
4
- import { resolve as c, join as u, dirname as y, sep as x } from "node:path";
5
- import { fileURLToPath as H } from "node:url";
6
- import { widgetManifestSchema as U, formatSchemaError as A } from "@glasshome/widget-contract";
7
- import C from "@tailwindcss/vite";
8
- function L(e) {
9
- const t = JSON.stringify(e, Object.keys(e).sort());
10
- return R("sha256").update(t).digest("hex").slice(0, 16);
1
+ import { formatSchemaError as e, widgetManifestSchema as t } from "@glasshome/widget-contract";
2
+ import { createHash as n } from "node:crypto";
3
+ import { existsSync as r, mkdirSync as i, readFileSync as a, readdirSync as o, rmSync as s, statSync as c, writeFileSync as l } from "node:fs";
4
+ import { createRequire as u } from "node:module";
5
+ import { dirname as d, join as f, resolve as p, sep as m } from "node:path";
6
+ import { fileURLToPath as h } from "node:url";
7
+ import g from "@tailwindcss/vite";
8
+ //#region src/vite/index.ts
9
+ function _(e) {
10
+ let t = JSON.stringify(e, Object.keys(e).sort());
11
+ return n("sha256").update(t).digest("hex").slice(0, 16);
11
12
  }
12
- const V = "virtual:glasshome-widget", E = "\0virtual:glasshome-widget", B = "/@glasshome/preview";
13
- function p(e) {
14
- return x === "\\" ? e.split(x).join("/") : e;
13
+ var v = "virtual:glasshome-widget", y = "\0virtual:glasshome-widget", b = "/@glasshome/preview";
14
+ function x(e) {
15
+ return m === "\\" ? e.split(m).join("/") : e;
15
16
  }
16
17
  function S() {
17
- const e = H(import.meta.url);
18
- return c(y(e), "../../preview");
18
+ return p(d(h(import.meta.url)), "../../preview");
19
19
  }
20
- function k(e) {
21
- return e === "solid-js" || e.startsWith("solid-js/") || e === "@glasshome/widget-sdk" || e.startsWith("@glasshome/widget-sdk/") || e === "@glasshome/ui" || e.startsWith("@glasshome/ui/");
20
+ function C(e) {
21
+ return e === "solid-js" || e.startsWith("solid-js/") || e === "@glasshome/widget-sdk" || e.startsWith("@glasshome/widget-sdk/") || e === "@glasshome/ui" || e.startsWith("@glasshome/ui/");
22
22
  }
23
- function O() {
24
- return {
25
- name: "glasshome-widget:sync-layer-guard",
26
- apply: "build",
27
- enforce: "pre",
28
- resolveId(e, t) {
29
- if (e === "@glasshome/sync-layer" || e.startsWith("@glasshome/sync-layer/"))
30
- throw new Error(
31
- `Widgets must not import "${e}" directly` + (t ? ` (imported by ${t})` : "") + '. Import the equivalent hook from "@glasshome/widget-sdk" instead (e.g. useEntity, useEntities, useService).'
32
- );
33
- }
34
- };
23
+ function w() {
24
+ return {
25
+ name: "glasshome-widget:sync-layer-guard",
26
+ apply: "build",
27
+ enforce: "pre",
28
+ resolveId(e, t) {
29
+ if (e === "@glasshome/sync-layer" || e.startsWith("@glasshome/sync-layer/")) throw Error(`Widgets must not import "${e}" directly` + (t ? ` (imported by ${t})` : "") + ". Import the equivalent hook from \"@glasshome/widget-sdk\" instead (e.g. useEntity, useEntities, useService).");
30
+ }
31
+ };
35
32
  }
36
- const J = "node_modules/.cache/glasshome-widgets";
37
- function $(e) {
38
- try {
39
- return F(u(process.cwd(), "package.json")).resolve(e);
40
- } catch {
41
- return null;
42
- }
33
+ var T = "node_modules/.cache/glasshome-widgets";
34
+ function E(e) {
35
+ try {
36
+ return u(f(process.cwd(), "package.json")).resolve(e);
37
+ } catch {
38
+ return null;
39
+ }
43
40
  }
44
- const G = [
45
- "--radius",
46
- "--background",
47
- "--foreground",
48
- "--card",
49
- "--primary",
50
- "--border",
51
- "--muted",
52
- "--accent"
41
+ var D = [
42
+ "--radius",
43
+ "--background",
44
+ "--foreground",
45
+ "--card",
46
+ "--primary",
47
+ "--border",
48
+ "--muted",
49
+ "--accent"
53
50
  ];
54
- function j(e, t) {
55
- const i = u(e, `${t}.css`);
56
- if (!l(i)) return;
57
- const n = g(i, "utf-8");
58
- for (const o of n.matchAll(/:host[^{]*\{([^}]*)\}/g)) {
59
- const s = o[1] ?? "", r = G.find((a) => s.includes(`${a}:`));
60
- if (r)
61
- throw new Error(
62
- `[glasshome-widget] "${t}.css" defines theme variable "${r}" on :host. Theme variables must inherit from the document so widgets follow the household theme — never re-scope them into the widget's shadow root.`
63
- );
64
- }
51
+ function O(e, t) {
52
+ let n = f(e, `${t}.css`);
53
+ if (!r(n)) return;
54
+ let i = a(n, "utf-8");
55
+ for (let e of i.matchAll(/:host[^{]*\{([^}]*)\}/g)) {
56
+ let n = e[1] ?? "", r = D.find((e) => n.includes(`${e}:`));
57
+ if (r) throw Error(`[glasshome-widget] "${t}.css" defines theme variable "${r}" on :host. Theme variables must inherit from the document so widgets follow the household theme — never re-scope them into the widget's shadow root.`);
58
+ }
65
59
  }
66
- function N(e, t, i) {
67
- const n = c(e, J);
68
- D(n, { recursive: !0 });
69
- const o = $("@glasshome/ui/styles");
70
- if (!o)
71
- throw new Error(
72
- "[widget-sdk] @glasshome/ui is required to build widgets (it provides the theme every GlassHome widget ships with). Add it to your widget's dependencies."
73
- );
74
- const s = c(y(o), "../.."), r = $("@glasshome/widget-sdk/tailwind-sources"), a = r ? y(r) : null, h = [
75
- u(s, "src"),
76
- u(s, "dist"),
77
- ...a ? [u(a, "src"), u(a, "dist")] : [],
78
- y(i)
79
- ].filter((d) => l(d)), m = c(n, `${t}.tailwind.css`);
80
- w(
81
- m,
82
- [
83
- '@import "tailwindcss" source(none);',
84
- '@import "tw-animate-css";',
85
- '@import "@glasshome/ui/styles/theme";',
86
- ...h.map((d) => `@source "${p(d)}";`),
87
- "@custom-variant dark {",
88
- " &:is(.dark *) { @slot }",
89
- " :host(.dark) & { @slot }",
90
- "}",
91
- ""
92
- ].join(`
93
- `)
94
- );
95
- const f = c(n, `${t}.entry.ts`);
96
- return w(
97
- f,
98
- [
99
- `import "${p(m)}";`,
100
- `export { default } from "${p(i)}";`,
101
- ""
102
- ].join(`
103
- `)
104
- ), f;
60
+ function k(e, t, n) {
61
+ let a = p(e, T);
62
+ i(a, { recursive: !0 });
63
+ let o = E("@glasshome/ui/styles");
64
+ if (!o) throw Error("[widget-sdk] @glasshome/ui is required to build widgets (it provides the theme every GlassHome widget ships with). Add it to your widget's dependencies.");
65
+ let s = p(d(o), "../.."), c = E("@glasshome/widget-sdk/tailwind-sources"), u = c ? d(c) : null, m = [
66
+ f(s, "src"),
67
+ f(s, "dist"),
68
+ ...u ? [f(u, "src"), f(u, "dist")] : [],
69
+ d(n)
70
+ ].filter((e) => r(e)), h = p(a, `${t}.tailwind.css`);
71
+ l(h, [
72
+ "@import \"tailwindcss\" source(none);",
73
+ "@import \"tw-animate-css\";",
74
+ "@import \"@glasshome/ui/styles/theme\";",
75
+ ...m.map((e) => `@source "${x(e)}";`),
76
+ "@custom-variant dark {",
77
+ " &:is(.dark *) { @slot }",
78
+ " :host(.dark) & { @slot }",
79
+ "}",
80
+ ""
81
+ ].join("\n"));
82
+ let g = p(a, `${t}.entry.ts`);
83
+ return l(g, [
84
+ `import "${x(h)}";`,
85
+ `export { default } from "${x(n)}";`,
86
+ ""
87
+ ].join("\n")), g;
105
88
  }
106
- function _() {
107
- const e = C();
108
- for (const t of e)
109
- t.apply ??= "build";
110
- return e;
89
+ function A() {
90
+ let e = g();
91
+ for (let t of e) t.apply ??= "build";
92
+ return e;
111
93
  }
112
- function q(e) {
113
- const t = [];
114
- if (!l(e)) return t;
115
- for (const i of I(e)) {
116
- const n = c(e, i);
117
- if (!P(n).isDirectory()) continue;
118
- const o = c(n, "index.tsx"), s = c(n, "manifest.json");
119
- l(o) && l(s) && t.push({ name: i, entry: o });
120
- }
121
- return t;
94
+ function j(e) {
95
+ let t = [];
96
+ if (!r(e)) return t;
97
+ for (let n of o(e)) {
98
+ let i = p(e, n);
99
+ if (!c(i).isDirectory()) continue;
100
+ let a = p(i, "index.tsx"), o = p(i, "manifest.json");
101
+ r(a) && r(o) && t.push({
102
+ name: n,
103
+ entry: a
104
+ });
105
+ }
106
+ return t;
122
107
  }
123
- function z(e, t) {
124
- const i = [];
125
- if (l(e))
126
- for (const o of I(e)) {
127
- if (!P(u(e, o)).isDirectory()) continue;
128
- const s = u(e, o, "manifest.json");
129
- if (!l(s)) continue;
130
- const r = U.safeParse(
131
- JSON.parse(g(s, "utf-8"))
132
- );
133
- if (!r.success)
134
- throw new Error(
135
- `[registry] Invalid manifest for "${o}": ${A(r.error)}`
136
- );
137
- const a = l(u(t, `${o}.css`));
138
- i.push({
139
- ...r.data,
140
- bundleUrl: `./${o}.js`,
141
- ...a ? { cssUrl: `./${o}.css` } : {}
142
- });
143
- }
144
- const n = {
145
- version: 1,
146
- generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
147
- baseUrl: "./",
148
- widgets: i
149
- };
150
- l(t) || D(t, { recursive: !0 }), w(u(t, "registry.json"), JSON.stringify(n, null, 2)), console.log(`[registry] Generated registry.json with ${i.length} widget(s)`);
108
+ function M(n, s) {
109
+ let u = [];
110
+ if (r(n)) for (let i of o(n)) {
111
+ if (!c(f(n, i)).isDirectory()) continue;
112
+ let o = f(n, i, "manifest.json");
113
+ if (!r(o)) continue;
114
+ let l = t.safeParse(JSON.parse(a(o, "utf-8")));
115
+ if (!l.success) throw Error(`[registry] Invalid manifest for "${i}": ${e(l.error)}`);
116
+ let d = r(f(s, `${i}.css`));
117
+ u.push({
118
+ ...l.data,
119
+ bundleUrl: `./${i}.js`,
120
+ ...d ? { cssUrl: `./${i}.css` } : {}
121
+ });
122
+ }
123
+ let d = {
124
+ version: 1,
125
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
126
+ baseUrl: "./",
127
+ widgets: u
128
+ };
129
+ r(s) || i(s, { recursive: !0 }), l(f(s, "registry.json"), JSON.stringify(d, null, 2)), console.log(`[registry] Generated registry.json with ${u.length} widget(s)`);
151
130
  }
152
- async function M(e) {
153
- const { build: t } = await import("vite"), i = process.cwd(), n = c(i, e?.srcDir ?? "src"), o = c(i, e?.outDir ?? "dist");
154
- let s = q(n);
155
- if (s.length === 0) {
156
- console.warn("[glasshome-widgets] No widgets found in", n);
157
- return;
158
- }
159
- if (e?.only) {
160
- const r = new Set(e.only);
161
- s = s.filter((a) => r.has(a.name));
162
- }
163
- e?.only || l(o) && T(o, { recursive: !0 }), l(o) || D(o, { recursive: !0 });
164
- for (const r of s)
165
- await t({
166
- configFile: !1,
167
- root: i,
168
- plugins: [..._(), ...e?.plugins ?? [], O()],
169
- ...e?.viteConfig,
170
- build: {
171
- lib: {
172
- entry: N(i, r.name, r.entry),
173
- formats: ["es"],
174
- fileName: r.name,
175
- // Widget CSS ships as a separate asset (adopted by the host's
176
- // shadow root), never inlined into the JS bundle.
177
- cssFileName: r.name
178
- },
179
- rollupOptions: {
180
- external: k
181
- },
182
- outDir: o,
183
- emptyOutDir: !1,
184
- copyPublicDir: !1,
185
- ...e?.viteConfig?.build
186
- },
187
- logLevel: "warn"
188
- }), j(o, r.name);
189
- z(n, o);
131
+ async function N(e) {
132
+ let { build: t } = await import("vite"), n = process.cwd(), a = p(n, e?.srcDir ?? "src"), o = p(n, e?.outDir ?? "dist"), c = j(a);
133
+ if (c.length === 0) {
134
+ console.warn("[glasshome-widgets] No widgets found in", a);
135
+ return;
136
+ }
137
+ if (e?.only) {
138
+ let t = new Set(e.only);
139
+ c = c.filter((e) => t.has(e.name));
140
+ }
141
+ e?.only || r(o) && s(o, { recursive: !0 }), r(o) || i(o, { recursive: !0 });
142
+ for (let r of c) await t({
143
+ configFile: !1,
144
+ root: n,
145
+ plugins: [
146
+ ...A(),
147
+ ...e?.plugins ?? [],
148
+ w()
149
+ ],
150
+ ...e?.viteConfig,
151
+ build: {
152
+ lib: {
153
+ entry: k(n, r.name, r.entry),
154
+ formats: ["es"],
155
+ fileName: r.name,
156
+ cssFileName: r.name
157
+ },
158
+ rollupOptions: { external: C },
159
+ outDir: o,
160
+ emptyOutDir: !1,
161
+ copyPublicDir: !1,
162
+ ...e?.viteConfig?.build
163
+ },
164
+ logLevel: "warn"
165
+ }), O(o, r.name);
166
+ M(a, o);
190
167
  }
191
- function te(e) {
192
- const t = e?.entry ?? "src/index.tsx", i = {
193
- name: "glasshome-widget:build",
194
- apply: "build",
195
- config() {
196
- const s = process.cwd();
197
- return {
198
- build: {
199
- lib: {
200
- entry: N(s, "index", c(s, t)),
201
- formats: ["es"],
202
- fileName: "index",
203
- cssFileName: "index"
204
- },
205
- rollupOptions: {
206
- external: k
207
- }
208
- }
209
- };
210
- }
211
- }, n = {
212
- name: "glasshome-widget:dev",
213
- apply: "serve",
214
- enforce: "pre",
215
- config() {
216
- const s = S(), r = process.cwd(), a = c(r, "..", "..");
217
- return {
218
- server: {
219
- fs: {
220
- allow: [s, r, a]
221
- }
222
- }
223
- };
224
- },
225
- configureServer(s) {
226
- const r = S(), a = u(r, "preview.html");
227
- s.middlewares.use(async (h, m, f) => {
228
- if (h.url === "/" || h.url === "/index.html")
229
- try {
230
- let d = g(a, "utf-8");
231
- d = await s.transformIndexHtml(h.url, d), m.setHeader("Content-Type", "text/html"), m.statusCode = 200, m.end(d);
232
- } catch (d) {
233
- f(d);
234
- }
235
- else
236
- f();
237
- });
238
- },
239
- resolveId(s) {
240
- if (s === B) {
241
- const r = S();
242
- return p(u(r, "host.tsx"));
243
- }
244
- if (s === V)
245
- return E;
246
- },
247
- load(s) {
248
- if (s === E)
249
- return `export { default } from "${p(c(process.cwd(), t))}";`;
250
- }
251
- }, o = {
252
- name: "glasshome-widget:schema",
253
- apply: "build",
254
- async closeBundle() {
255
- j(c(process.cwd(), "dist"), "index");
256
- const s = c(process.cwd(), "dist", "index.js");
257
- if (l(s))
258
- try {
259
- const a = (await import(`${s}?t=${Date.now()}`)).default;
260
- if (!a?.configSchema) return;
261
- const { z: h } = await import("zod"), m = h.toJSONSchema(a.configSchema, { unrepresentable: "any" }), f = c(process.cwd(), "manifest.json");
262
- if (l(f)) {
263
- const b = JSON.parse(g(f, "utf-8"));
264
- b.schema = m, w(f, JSON.stringify(b, null, 2));
265
- }
266
- const d = L(m), v = c(process.cwd(), ".schema-hash");
267
- if (l(v) && g(v, "utf-8").trim() !== d) {
268
- const W = a.manifest?.name ?? "unknown";
269
- console.warn(
270
- `[widget-sdk] Schema shape changed for "${W}" — verify configVersion was bumped`
271
- );
272
- }
273
- w(v, d);
274
- } catch {
275
- }
276
- }
277
- };
278
- return [..._(), i, O(), o, n];
168
+ function P(e) {
169
+ let t = e?.entry ?? "src/index.tsx", n = {
170
+ name: "glasshome-widget:build",
171
+ apply: "build",
172
+ config() {
173
+ let e = process.cwd();
174
+ return { build: {
175
+ lib: {
176
+ entry: k(e, "index", p(e, t)),
177
+ formats: ["es"],
178
+ fileName: "index",
179
+ cssFileName: "index"
180
+ },
181
+ rollupOptions: { external: C }
182
+ } };
183
+ }
184
+ }, i = {
185
+ name: "glasshome-widget:dev",
186
+ apply: "serve",
187
+ enforce: "pre",
188
+ config() {
189
+ let e = S(), t = process.cwd();
190
+ return { server: { fs: { allow: [
191
+ e,
192
+ t,
193
+ p(t, "..", "..")
194
+ ] } } };
195
+ },
196
+ configureServer(e) {
197
+ let t = f(S(), "preview.html");
198
+ e.middlewares.use(async (n, r, i) => {
199
+ if (n.url === "/" || n.url === "/index.html") try {
200
+ let i = a(t, "utf-8");
201
+ i = await e.transformIndexHtml(n.url, i), r.setHeader("Content-Type", "text/html"), r.statusCode = 200, r.end(i);
202
+ } catch (e) {
203
+ i(e);
204
+ }
205
+ else i();
206
+ });
207
+ },
208
+ resolveId(e) {
209
+ if (e === b) return x(f(S(), "host.tsx"));
210
+ if (e === v) return y;
211
+ },
212
+ load(e) {
213
+ if (e === y) return `export { default } from "${x(p(process.cwd(), t))}";`;
214
+ }
215
+ }, o = {
216
+ name: "glasshome-widget:schema",
217
+ apply: "build",
218
+ async closeBundle() {
219
+ O(p(process.cwd(), "dist"), "index");
220
+ let e = p(process.cwd(), "dist", "index.js");
221
+ if (r(e)) try {
222
+ let t = (await import(`${e}?t=${Date.now()}`)).default;
223
+ if (!t?.configSchema) return;
224
+ let { z: n } = await import("zod"), i = n.toJSONSchema(t.configSchema, { unrepresentable: "any" }), o = p(process.cwd(), "manifest.json");
225
+ if (r(o)) {
226
+ let e = JSON.parse(a(o, "utf-8"));
227
+ e.schema = i, l(o, JSON.stringify(e, null, 2));
228
+ }
229
+ let s = _(i), c = p(process.cwd(), ".schema-hash");
230
+ if (r(c) && a(c, "utf-8").trim() !== s) {
231
+ let e = t.manifest?.name ?? "unknown";
232
+ console.warn(`[widget-sdk] Schema shape changed for "${e}" — verify configVersion was bumped`);
233
+ }
234
+ l(c, s);
235
+ } catch {}
236
+ }
237
+ };
238
+ return [
239
+ ...A(),
240
+ n,
241
+ w(),
242
+ o,
243
+ i
244
+ ];
279
245
  }
280
- function re(e) {
281
- const t = e?.srcDir ?? "src", i = e?.outDir ?? "dist";
282
- let n = [];
283
- return [{
284
- name: "glasshome-widgets:build",
285
- apply: "build",
286
- config(s) {
287
- return n = (s.plugins ?? []).flat().filter(Boolean).filter(
288
- (r) => !r.name?.startsWith("glasshome-widgets:")
289
- ), {
290
- build: {
291
- rollupOptions: {
292
- input: { __glasshome_noop: "\0glasshome-noop" }
293
- },
294
- outDir: i,
295
- copyPublicDir: !1
296
- }
297
- };
298
- },
299
- resolveId(s) {
300
- if (s === "\0glasshome-noop") return s;
301
- },
302
- load(s) {
303
- if (s === "\0glasshome-noop") return "export {}";
304
- },
305
- async closeBundle() {
306
- await M({
307
- srcDir: t,
308
- outDir: i,
309
- plugins: n
310
- });
311
- }
312
- }];
246
+ function F(e) {
247
+ let t = e?.srcDir ?? "src", n = e?.outDir ?? "dist", r = [];
248
+ return [{
249
+ name: "glasshome-widgets:build",
250
+ apply: "build",
251
+ config(e) {
252
+ return r = (e.plugins ?? []).flat().filter(Boolean).filter((e) => !e.name?.startsWith("glasshome-widgets:")), { build: {
253
+ rollupOptions: { input: { __glasshome_noop: "\0glasshome-noop" } },
254
+ outDir: n,
255
+ copyPublicDir: !1
256
+ } };
257
+ },
258
+ resolveId(e) {
259
+ if (e === "\0glasshome-noop") return e;
260
+ },
261
+ load(e) {
262
+ if (e === "\0glasshome-noop") return "export {}";
263
+ },
264
+ async closeBundle() {
265
+ await N({
266
+ srcDir: t,
267
+ outDir: n,
268
+ plugins: r
269
+ });
270
+ }
271
+ }];
313
272
  }
314
- export {
315
- M as buildWidgets,
316
- q as discoverWidgets,
317
- z as generateRegistry,
318
- te as glasshomeWidget,
319
- re as glasshomeWidgets,
320
- k as isWidgetExternal
321
- };
273
+ //#endregion
274
+ export { N as buildWidgets, j as discoverWidgets, M as generateRegistry, P as glasshomeWidget, F as glasshomeWidgets, C as isWidgetExternal };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glasshome/widget-sdk",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "SDK for building GlassHome dashboard widgets with SolidJS",
5
5
  "keywords": [
6
6
  "glasshome",
@@ -45,7 +45,7 @@
45
45
  "dev": "vite build --watch"
46
46
  },
47
47
  "peerDependencies": {
48
- "@glasshome/sync-layer": "0.2.0",
48
+ "@glasshome/sync-layer": "0.3.0",
49
49
  "solid-js": "^1.9.11"
50
50
  },
51
51
  "dependencies": {
@@ -62,8 +62,8 @@
62
62
  "@types/bun": "latest",
63
63
  "@types/node": "^25.2.2",
64
64
  "typescript": "^5",
65
- "vite": "^7.3.1",
66
- "vite-plugin-solid": "^2.11.10"
65
+ "vite": "^8.1.0",
66
+ "vite-plugin-solid": "^2.11.12"
67
67
  },
68
68
  "repository": {
69
69
  "type": "git",