solid-js 1.8.8 → 1.8.10

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 (51) hide show
  1. package/dist/dev.cjs +17 -21
  2. package/dist/dev.js +554 -321
  3. package/dist/server.js +170 -75
  4. package/dist/solid.cjs +17 -21
  5. package/dist/solid.js +481 -279
  6. package/h/dist/h.js +34 -8
  7. package/h/jsx-runtime/dist/jsx.js +1 -1
  8. package/h/jsx-runtime/types/index.d.ts +11 -8
  9. package/h/jsx-runtime/types/jsx.d.ts +2 -1
  10. package/h/types/hyperscript.d.ts +11 -11
  11. package/html/dist/html.js +216 -94
  12. package/html/types/lit.d.ts +47 -33
  13. package/package.json +3 -2
  14. package/store/dist/dev.cjs +1 -1
  15. package/store/dist/dev.js +117 -42
  16. package/store/dist/server.js +19 -8
  17. package/store/dist/store.cjs +1 -1
  18. package/store/dist/store.js +108 -39
  19. package/store/types/index.d.ts +21 -7
  20. package/store/types/modifiers.d.ts +6 -3
  21. package/store/types/mutable.d.ts +5 -2
  22. package/store/types/server.d.ts +12 -4
  23. package/store/types/store.d.ts +218 -61
  24. package/types/index.d.ts +75 -10
  25. package/types/jsx.d.ts +2 -1
  26. package/types/reactive/array.d.ts +12 -4
  27. package/types/reactive/observable.d.ts +25 -17
  28. package/types/reactive/scheduler.d.ts +9 -6
  29. package/types/reactive/signal.d.ts +233 -142
  30. package/types/render/Suspense.d.ts +5 -5
  31. package/types/render/component.d.ts +64 -33
  32. package/types/render/flow.d.ts +43 -31
  33. package/types/render/hydration.d.ts +13 -13
  34. package/types/server/index.d.ts +57 -2
  35. package/types/server/reactive.d.ts +73 -42
  36. package/types/server/rendering.d.ts +167 -96
  37. package/universal/dist/dev.js +28 -12
  38. package/universal/dist/universal.js +28 -12
  39. package/universal/types/index.d.ts +3 -1
  40. package/universal/types/universal.d.ts +0 -1
  41. package/web/dist/dev.cjs +1 -1
  42. package/web/dist/dev.js +621 -82
  43. package/web/dist/server.cjs +53 -42
  44. package/web/dist/server.js +244 -127
  45. package/web/dist/storage.js +3 -3
  46. package/web/dist/web.cjs +1 -1
  47. package/web/dist/web.js +615 -81
  48. package/web/types/client.d.ts +2 -2
  49. package/web/types/core.d.ts +10 -1
  50. package/web/types/index.d.ts +27 -10
  51. package/web/types/server-mock.d.ts +47 -32
@@ -2,6 +2,7 @@
2
2
 
3
3
  var solidJs = require('solid-js');
4
4
  var seroval = require('seroval');
5
+ var web = require('seroval-plugins/web');
5
6
 
6
7
  const booleans = ["allowfullscreen", "async", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "inert", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "seamless", "selected"];
7
8
  const BooleanAttributes = /*#__PURE__*/new Set(booleans);
@@ -11,8 +12,6 @@ const Aliases = /*#__PURE__*/Object.assign(Object.create(null), {
11
12
  htmlFor: "for"
12
13
  });
13
14
 
14
- seroval.createPlugin({tag:"seroval-plugins/web/Blob",test(e){return typeof Blob=="undefined"?!1:e instanceof Blob},parse:{async async(e,r){return {type:await r.parse(e.type),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return "new Blob(["+r.serialize(e.buffer)+"],{type:"+r.serialize(e.type)+"})"},deserialize(e,r){return new Blob([r.deserialize(e.buffer)],{type:r.deserialize(e.type)})}});function p(e){return {detail:e.detail,bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var E=seroval.createPlugin({tag:"seroval-plugins/web/CustomEvent",test(e){return typeof CustomEvent=="undefined"?!1:e instanceof CustomEvent},parse:{sync(e,r){return {type:r.parse(e.type),options:r.parse(p(e))}},async async(e,r){return {type:await r.parse(e.type),options:await r.parse(p(e))}},stream(e,r){return {type:r.parse(e.type),options:r.parse(p(e))}}},serialize(e,r){return "new CustomEvent("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new CustomEvent(r.deserialize(e.type),r.deserialize(e.options))}}),F=E;var I=seroval.createPlugin({tag:"seroval-plugins/web/DOMException",test(e){return typeof DOMException=="undefined"?!1:e instanceof DOMException},parse:{sync(e,r){return {name:r.parse(e.name),message:r.parse(e.message)}},async async(e,r){return {name:await r.parse(e.name),message:await r.parse(e.message)}},stream(e,r){return {name:r.parse(e.name),message:r.parse(e.message)}}},serialize(e,r){return "new DOMException("+r.serialize(e.message)+","+r.serialize(e.name)+")"},deserialize(e,r){return new DOMException(r.deserialize(e.message),r.deserialize(e.name))}}),B=I;function u(e){return {bubbles:e.bubbles,cancelable:e.cancelable,composed:e.composed}}var L=seroval.createPlugin({tag:"seroval-plugins/web/Event",test(e){return typeof Event=="undefined"?!1:e instanceof Event},parse:{sync(e,r){return {type:r.parse(e.type),options:r.parse(u(e))}},async async(e,r){return {type:await r.parse(e.type),options:await r.parse(u(e))}},stream(e,r){return {type:r.parse(e.type),options:r.parse(u(e))}}},serialize(e,r){return "new Event("+r.serialize(e.type)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Event(r.deserialize(e.type),r.deserialize(e.options))}}),O=L;var q=seroval.createPlugin({tag:"seroval-plugins/web/File",test(e){return typeof File=="undefined"?!1:e instanceof File},parse:{async async(e,r){return {name:await r.parse(e.name),options:await r.parse({type:e.type,lastModified:e.lastModified}),buffer:await r.parse(await e.arrayBuffer())}}},serialize(e,r){return "new File(["+r.serialize(e.buffer)+"],"+r.serialize(e.name)+","+r.serialize(e.options)+")"},deserialize(e,r){return new File([r.deserialize(e.buffer)],r.deserialize(e.name),r.deserialize(e.options))}}),d=q;function f(e){let r=[];return e.forEach((s,a)=>{r.push([a,s]);}),r}var n={},H=seroval.createPlugin({tag:"seroval-plugins/web/FormDataFactory",test(e){return e===n},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createEffectfulFunction(["e","f","i","s","t"],"f=new FormData;for(i=0,s=e.length;i<s;i++)f.append((t=e[i])[0],t[1]);return f")},deserialize(){return n}}),M=seroval.createPlugin({tag:"seroval-plugins/web/FormData",extends:[d,H],test(e){return typeof FormData=="undefined"?!1:e instanceof FormData},parse:{sync(e,r){return {factory:r.parse(n),entries:r.parse(f(e))}},async async(e,r){return {factory:await r.parse(n),entries:await r.parse(f(e))}},stream(e,r){return {factory:r.parse(n),entries:r.parse(f(e))}}},serialize(e,r){return "("+r.serialize(e.factory)+")("+r.serialize(e.entries)+")"},deserialize(e,r){let s=new FormData,a=r.deserialize(e.entries);for(let t=0,b=a.length;t<b;t++){let c=a[t];s.append(c[0],c[1]);}return s}}),A=M;function m(e){let r=[];return e.forEach((s,a)=>{r.push([a,s]);}),r}var _=seroval.createPlugin({tag:"seroval-plugins/web/Headers",test(e){return typeof Headers=="undefined"?!1:e instanceof Headers},parse:{sync(e,r){return r.parse(m(e))},async async(e,r){return await r.parse(m(e))},stream(e,r){return r.parse(m(e))}},serialize(e,r){return "new Headers("+r.serialize(e)+")"},deserialize(e,r){return new Headers(r.deserialize(e))}}),i=_;seroval.createPlugin({tag:"seroval-plugins/web/ImageData",test(e){return typeof ImageData=="undefined"?!1:e instanceof ImageData},parse:{sync(e,r){return {data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}},async async(e,r){return {data:await r.parse(e.data),width:await r.parse(e.width),height:await r.parse(e.height),options:await r.parse({colorSpace:e.colorSpace})}},stream(e,r){return {data:r.parse(e.data),width:r.parse(e.width),height:r.parse(e.height),options:r.parse({colorSpace:e.colorSpace})}}},serialize(e,r){return "new ImageData("+r.serialize(e.data)+","+r.serialize(e.width)+","+r.serialize(e.height)+","+r.serialize(e.options)+")"},deserialize(e,r){return new ImageData(r.deserialize(e.data),r.deserialize(e.width),r.deserialize(e.height),r.deserialize(e.options))}});var o={},V=seroval.createPlugin({tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===o},parse:{sync(){},async async(){return await Promise.resolve(void 0)},stream(){}},serialize(e,r){return r.createFunction(["d"],"new ReadableStream({start:"+r.createEffectfulFunction(["c"],"d.on({next:"+r.createEffectfulFunction(["v"],"c.enqueue(v)")+",throw:"+r.createEffectfulFunction(["v"],"c.error(v)")+",return:"+r.createEffectfulFunction([],"c.close()")+"})")+"})")},deserialize(){return o}});function g(e){let r=seroval.createStream(),s=e.getReader();async function a(){try{let t=await s.read();t.done?r.return(t.value):(r.next(t.value),await a());}catch(t){r.throw(t);}}return a().catch(()=>{}),r}var G=seroval.createPlugin({tag:"seroval/plugins/web/ReadableStream",extends:[V],test(e){return typeof ReadableStream=="undefined"?!1:e instanceof ReadableStream},parse:{sync(e,r){return {factory:r.parse(o),stream:r.parse(seroval.createStream())}},async async(e,r){return {factory:await r.parse(o),stream:await r.parse(g(e))}},stream(e,r){return {factory:r.parse(o),stream:r.parse(g(e))}}},serialize(e,r){return "("+r.serialize(e.factory)+")("+r.serialize(e.stream)+")"},deserialize(e,r){let s=r.deserialize(e.stream);return new ReadableStream({start(a){s.on({next(t){a.enqueue(t);},throw(t){a.error(t);},return(){a.close();}});}})}}),l=G;function z(e,r){return {body:r,cache:e.cache,credentials:e.credentials,headers:e.headers,integrity:e.integrity,keepalive:e.keepalive,method:e.method,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy}}var K=seroval.createPlugin({tag:"seroval-plugins/web/Request",extends:[l,i],test(e){return typeof Request=="undefined"?!1:e instanceof Request},parse:{async async(e,r){return {url:await r.parse(e.url),options:await r.parse(z(e,e.body?await e.clone().arrayBuffer():null))}},stream(e,r){return {url:r.parse(e.url),options:r.parse(z(e,e.clone().body))}}},serialize(e,r){return "new Request("+r.serialize(e.url)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Request(r.deserialize(e.url),r.deserialize(e.options))}}),Q=K;function S(e){return {headers:e.headers,status:e.status,statusText:e.statusText}}var X=seroval.createPlugin({tag:"seroval-plugins/web/Response",extends:[l,i],test(e){return typeof Response=="undefined"?!1:e instanceof Response},parse:{async async(e,r){return {body:await r.parse(e.body?await e.clone().arrayBuffer():null),options:await r.parse(S(e))}},stream(e,r){return {body:r.parse(e.clone().body),options:r.parse(S(e))}}},serialize(e,r){return "new Response("+r.serialize(e.body)+","+r.serialize(e.options)+")"},deserialize(e,r){return new Response(r.deserialize(e.body),r.deserialize(e.options))}}),Z=X;var x=seroval.createPlugin({tag:"seroval-plugins/web/URLSearchParams",test(e){return typeof URLSearchParams=="undefined"?!1:e instanceof URLSearchParams},parse:{sync(e,r){return r.parse(e.toString())},async async(e,r){return await r.parse(e.toString())},stream(e,r){return r.parse(e.toString())}},serialize(e,r){return "new URLSearchParams("+r.serialize(e)+")"},deserialize(e,r){return new URLSearchParams(r.deserialize(e))}}),ee=x;var ae=seroval.createPlugin({tag:"seroval-plugins/web/URL",test(e){return typeof URL=="undefined"?!1:e instanceof URL},parse:{sync(e,r){return r.parse(e.href)},async async(e,r){return await r.parse(e.href)},stream(e,r){return r.parse(e.href)}},serialize(e,r){return "new URL("+r.serialize(e)+")"},deserialize(e,r){return new URL(r.deserialize(e))}}),te=ae;
15
-
16
15
  const ES2017FLAG = seroval.Feature.AggregateError
17
16
  | seroval.Feature.BigInt
18
17
  | seroval.Feature.BigIntTypedArray;
@@ -26,8 +25,8 @@ function createSerializer({
26
25
  return new seroval.Serializer({
27
26
  scopeId,
28
27
  plugins: [
29
- F, B, O,
30
- A, i, l, Q, Z, ee, te],
28
+ web.CustomEventPlugin, web.DOMExceptionPlugin, web.EventPlugin,
29
+ web.FormDataPlugin, web.HeadersPlugin, web.ReadableStreamPlugin, web.RequestPlugin, web.ResponsePlugin, web.URLSearchParamsPlugin, web.URLPlugin],
31
30
  globalIdentifier: GLOBAL_IDENTIFIER,
32
31
  disabledFeatures: ES2017FLAG,
33
32
  onData,
@@ -114,23 +113,22 @@ function renderToStream(code, options = {}) {
114
113
  timer = setTimeout(writeTasks);
115
114
  }
116
115
  };
117
- const checkEnd = () => {
118
- if (!registry.size && !completed) {
119
- writeTasks();
120
- onCompleteAll && onCompleteAll({
121
- write(v) {
122
- !completed && buffer.write(v);
123
- }
124
- });
125
- writable && writable.end();
126
- completed = true;
127
- setTimeout(dispose);
128
- }
116
+ const onDone = () => {
117
+ writeTasks();
118
+ doShell();
119
+ onCompleteAll && onCompleteAll({
120
+ write(v) {
121
+ !completed && buffer.write(v);
122
+ }
123
+ });
124
+ writable && writable.end();
125
+ completed = true;
126
+ if (firstFlushed) dispose();
129
127
  };
130
128
  const serializer = createSerializer({
131
129
  scopeId: options.renderId,
132
130
  onData: pushTask,
133
- onDone: checkEnd,
131
+ onDone,
134
132
  onError: options.onError
135
133
  });
136
134
  const flushEnd = () => {
@@ -153,6 +151,7 @@ function renderToStream(code, options = {}) {
153
151
  let tasks = "";
154
152
  let firstFlushed = false;
155
153
  let completed = false;
154
+ let shellCompleted = false;
156
155
  let scriptFlushed = false;
157
156
  let timer = null;
158
157
  let buffer = {
@@ -238,6 +237,7 @@ function renderToStream(code, options = {}) {
238
237
  return resolveSSRNode(escape(code()));
239
238
  });
240
239
  function doShell() {
240
+ if (shellCompleted) return;
241
241
  solidJs.sharedConfig.context = context;
242
242
  context.noHydrate = true;
243
243
  html = injectAssets(context.assets, html);
@@ -249,11 +249,12 @@ function renderToStream(code, options = {}) {
249
249
  !completed && buffer.write(v);
250
250
  }
251
251
  });
252
+ shellCompleted = true;
252
253
  }
253
254
  return {
254
255
  then(fn) {
255
256
  function complete() {
256
- doShell();
257
+ dispose();
257
258
  fn(tmp);
258
259
  }
259
260
  if (onCompleteAll) {
@@ -263,39 +264,49 @@ function renderToStream(code, options = {}) {
263
264
  complete();
264
265
  };
265
266
  } else onCompleteAll = complete;
266
- if (!registry.size) queue(flushEnd);
267
+ queue(flushEnd);
267
268
  },
268
269
  pipe(w) {
269
270
  allSettled(blockingPromises).then(() => {
270
- doShell();
271
- buffer = writable = w;
272
- buffer.write(tmp);
273
- firstFlushed = true;
274
- if (completed) writable.end();else setTimeout(flushEnd);
271
+ setTimeout(() => {
272
+ doShell();
273
+ buffer = writable = w;
274
+ buffer.write(tmp);
275
+ firstFlushed = true;
276
+ if (completed) {
277
+ dispose();
278
+ writable.end();
279
+ } else flushEnd();
280
+ });
275
281
  });
276
282
  },
277
283
  pipeTo(w) {
278
284
  return allSettled(blockingPromises).then(() => {
279
- doShell();
280
- const encoder = new TextEncoder();
281
- const writer = w.getWriter();
282
285
  let resolve;
283
286
  const p = new Promise(r => resolve = r);
284
- writable = {
285
- end() {
286
- writer.releaseLock();
287
- w.close();
288
- resolve();
289
- }
290
- };
291
- buffer = {
292
- write(payload) {
293
- writer.write(encoder.encode(payload));
294
- }
295
- };
296
- buffer.write(tmp);
297
- firstFlushed = true;
298
- if (completed) writable.end();else setTimeout(flushEnd);
287
+ setTimeout(() => {
288
+ doShell();
289
+ const encoder = new TextEncoder();
290
+ const writer = w.getWriter();
291
+ writable = {
292
+ end() {
293
+ writer.releaseLock();
294
+ w.close();
295
+ resolve();
296
+ }
297
+ };
298
+ buffer = {
299
+ write(payload) {
300
+ writer.write(encoder.encode(payload));
301
+ }
302
+ };
303
+ buffer.write(tmp);
304
+ firstFlushed = true;
305
+ if (completed) {
306
+ dispose();
307
+ writable.end();
308
+ } else flushEnd();
309
+ });
299
310
  return p;
300
311
  });
301
312
  }