@web-widget/vue 0.11.1 → 0.12.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/vite.cjs CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
7
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
@@ -17,6 +19,7 @@ var __spreadValues = (a, b) => {
17
19
  }
18
20
  return a;
19
21
  };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
23
  var __export = (target, all) => {
21
24
  for (var name in all)
22
25
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -38,20 +41,27 @@ __export(vite_exports, {
38
41
  });
39
42
  module.exports = __toCommonJS(vite_exports);
40
43
  var import_vite = require("@web-widget/vite");
44
+ var EXCLUDE = /vue\?.*&lang\.(?:css|js|ts)$/;
45
+ function toArray(value) {
46
+ return Array.isArray(value) ? value : value ? [value] : [];
47
+ }
41
48
  function vueWebWidgetPlugin({
42
49
  provide = "@web-widget/vue",
43
- toWebWidgets = {},
44
- toComponents = {}
50
+ export: exportWidget = {},
51
+ import: importWidget = {}
45
52
  } = {}) {
46
53
  return (0, import_vite.webWidgetPlugin)({
47
54
  provide,
48
- toWebWidgets: __spreadValues({
49
- include: /(?:\.|@)(?:route|widget).*\.vue(\?.*)?$/,
50
- exclude: /\?.*\.css$/
51
- }, toWebWidgets),
52
- toComponents: __spreadValues({
53
- include: /(?:\.|@)widget\.[^.]*$/,
54
- includeImporter: /.*\.vue(\?.*\.(?:ts|js))?$/
55
- }, toComponents)
55
+ export: __spreadProps(__spreadValues({
56
+ include: /(?:\.|@)(?:route|widget)\.vue(?:\?.*)?$/
57
+ }, exportWidget), {
58
+ exclude: [...toArray(exportWidget.exclude), EXCLUDE]
59
+ }),
60
+ import: __spreadProps(__spreadValues({
61
+ include: /(?:\.|@)widget\..*$/,
62
+ includeImporter: /.*\.vue(?:\?.*)?$/
63
+ }, importWidget), {
64
+ exclude: [...toArray(importWidget.exclude), EXCLUDE]
65
+ })
56
66
  });
57
67
  }
@@ -0,0 +1,8 @@
1
+ import { Plugin } from 'vite';
2
+ import { WebWidgetPluginOptions } from '@web-widget/vite';
3
+
4
+ interface VueWebWidgetPluginOptions extends WebWidgetPluginOptions {
5
+ }
6
+ declare function vueWebWidgetPlugin({ provide, export: exportWidget, import: importWidget, }?: VueWebWidgetPluginOptions): Plugin[];
7
+
8
+ export { type VueWebWidgetPluginOptions, vueWebWidgetPlugin as default };
package/dist/vite.d.ts CHANGED
@@ -3,6 +3,6 @@ import { WebWidgetPluginOptions } from '@web-widget/vite';
3
3
 
4
4
  interface VueWebWidgetPluginOptions extends WebWidgetPluginOptions {
5
5
  }
6
- declare function vueWebWidgetPlugin({ provide, toWebWidgets, toComponents, }?: VueWebWidgetPluginOptions): Plugin[];
6
+ declare function vueWebWidgetPlugin({ provide, export: exportWidget, import: importWidget, }?: VueWebWidgetPluginOptions): Plugin[];
7
7
 
8
- export { VueWebWidgetPluginOptions, vueWebWidgetPlugin as default };
8
+ export { type VueWebWidgetPluginOptions, vueWebWidgetPlugin as default };
package/dist/vite.js CHANGED
@@ -1,4 +1,6 @@
1
1
  var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
2
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
4
6
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -14,24 +16,32 @@ var __spreadValues = (a, b) => {
14
16
  }
15
17
  return a;
16
18
  };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
17
20
 
18
21
  // src/vite.ts
19
22
  import { webWidgetPlugin } from "@web-widget/vite";
23
+ var EXCLUDE = /vue\?.*&lang\.(?:css|js|ts)$/;
24
+ function toArray(value) {
25
+ return Array.isArray(value) ? value : value ? [value] : [];
26
+ }
20
27
  function vueWebWidgetPlugin({
21
28
  provide = "@web-widget/vue",
22
- toWebWidgets = {},
23
- toComponents = {}
29
+ export: exportWidget = {},
30
+ import: importWidget = {}
24
31
  } = {}) {
25
32
  return webWidgetPlugin({
26
33
  provide,
27
- toWebWidgets: __spreadValues({
28
- include: /(?:\.|@)(?:route|widget).*\.vue(\?.*)?$/,
29
- exclude: /\?.*\.css$/
30
- }, toWebWidgets),
31
- toComponents: __spreadValues({
32
- include: /(?:\.|@)widget\.[^.]*$/,
33
- includeImporter: /.*\.vue(\?.*\.(?:ts|js))?$/
34
- }, toComponents)
34
+ export: __spreadProps(__spreadValues({
35
+ include: /(?:\.|@)(?:route|widget)\.vue(?:\?.*)?$/
36
+ }, exportWidget), {
37
+ exclude: [...toArray(exportWidget.exclude), EXCLUDE]
38
+ }),
39
+ import: __spreadProps(__spreadValues({
40
+ include: /(?:\.|@)widget\..*$/,
41
+ includeImporter: /.*\.vue(?:\?.*)?$/
42
+ }, importWidget), {
43
+ exclude: [...toArray(importWidget.exclude), EXCLUDE]
44
+ })
35
45
  });
36
46
  }
37
47
  export {
@@ -4,7 +4,7 @@ import * as vue from 'vue';
4
4
  import { PropType, VNode, App, Component } from 'vue';
5
5
  export * from '@web-widget/schema/client-helpers';
6
6
  export { useWidgetAsyncState as useWidgetState } from '@web-widget/schema/client-helpers';
7
- import { Loader, WebWidgetContainerOptions } from '@web-widget/web-widget';
7
+ import { Loader, WebWidgetRendererOptions } from '@web-widget/web-widget';
8
8
 
9
9
  declare const WebWidget: vue.DefineComponent<{
10
10
  base: {
@@ -47,7 +47,7 @@ declare const WebWidget: vue.DefineComponent<{
47
47
  };
48
48
  }, () => VNode<vue.RendererNode, vue.RendererElement, {
49
49
  [key: string]: any;
50
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
50
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
51
51
  base: {
52
52
  type: PropType<string | undefined>;
53
53
  };
@@ -96,12 +96,12 @@ declare const WebWidget: vue.DefineComponent<{
96
96
  renderTarget: "light" | "shadow" | undefined;
97
97
  }, {}>;
98
98
  interface DefineWebWidgetOptions {
99
- base?: WebWidgetContainerOptions["base"];
100
- import?: WebWidgetContainerOptions["import"];
101
- loading?: WebWidgetContainerOptions["loading"];
102
- name?: WebWidgetContainerOptions["name"];
103
- renderStage?: WebWidgetContainerOptions["renderStage"];
104
- renderTarget?: WebWidgetContainerOptions["renderTarget"];
99
+ base?: WebWidgetRendererOptions["base"];
100
+ import?: WebWidgetRendererOptions["import"];
101
+ loading?: WebWidgetRendererOptions["loading"];
102
+ name?: WebWidgetRendererOptions["name"];
103
+ renderStage?: WebWidgetRendererOptions["renderStage"];
104
+ renderTarget?: WebWidgetRendererOptions["renderTarget"];
105
105
  }
106
106
  declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions): vue.DefineComponent<{
107
107
  fallback: {
@@ -123,7 +123,7 @@ declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions
123
123
  };
124
124
  }, () => VNode<vue.RendererNode, vue.RendererElement, {
125
125
  [key: string]: any;
126
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
126
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
127
127
  fallback: {
128
128
  type: PropType<VNode<vue.RendererNode, vue.RendererElement, {
129
129
  [key: string]: any;
@@ -200,4 +200,4 @@ declare const render: (context: _web_widget_schema.ClientWidgetRenderContext<unk
200
200
  }) => void | Promise<void>) | undefined;
201
201
  }>;
202
202
 
203
- export { DefineWebWidgetOptions, WebWidget, createVueRender, defineVueRender, defineWebWidget, render };
203
+ export { type DefineWebWidgetOptions, WebWidget, createVueRender, defineVueRender, defineWebWidget, render };
@@ -40,7 +40,7 @@ export * from "@web-widget/schema/client-helpers";
40
40
  import { useWidgetAsyncState } from "@web-widget/schema/client-helpers";
41
41
 
42
42
  // src/components.ts
43
- import { parse } from "@web-widget/web-widget";
43
+ import { WebWidgetRenderer } from "@web-widget/web-widget";
44
44
  import {
45
45
  h,
46
46
  defineComponent,
@@ -49,7 +49,7 @@ import {
49
49
  } from "vue";
50
50
  import { IS_BROWSER } from "@web-widget/schema/helpers";
51
51
  var WebWidget = /* @__PURE__ */ defineComponent({
52
- name: "WebWidget",
52
+ name: "WebWidgetRoot",
53
53
  props: {
54
54
  base: {
55
55
  type: String
@@ -95,17 +95,18 @@ var WebWidget = /* @__PURE__ */ defineComponent({
95
95
  if (Object.keys(slots).length > 0) {
96
96
  throw new TypeError(`No support slot.`);
97
97
  }
98
- const children = "";
99
- const [tag, attrs, innerHTML] = await parse(loader, __spreadProps(__spreadValues({}, props), {
100
- children
98
+ const widget = new WebWidgetRenderer(loader, __spreadProps(__spreadValues({}, props), {
99
+ // TODO slots.default
100
+ children: ""
101
101
  }));
102
+ const tag = widget.localName;
103
+ const attrs = widget.attributes;
104
+ const innerHTML = await widget.renderInnerHTMLToString();
102
105
  if (IS_BROWSER) {
103
- console.warn(`Client components are experimental.`);
104
- await customElements.whenDefined(tag);
105
- const element = Object.assign(document.createElement(tag), props);
106
- await element.bootstrap();
107
106
  }
108
107
  return () => h(tag, __spreadProps(__spreadValues({}, attrs), {
108
+ // NOTE: Use attr instead of props.
109
+ "^data": attrs.data,
109
110
  innerHTML
110
111
  }));
111
112
  }
@@ -114,6 +115,7 @@ function defineWebWidget(loader, options) {
114
115
  var _a, _b;
115
116
  return defineComponent({
116
117
  name: "WebWidgetSuspense",
118
+ inheritAttrs: false,
117
119
  props: {
118
120
  fallback: {
119
121
  type: Object
@@ -5,7 +5,7 @@ import * as vue from 'vue';
5
5
  import { PropType, VNode, App, Component } from 'vue';
6
6
  export * from '@web-widget/schema/server-helpers';
7
7
  export { useWidgetAsyncState as useWidgetState } from '@web-widget/schema/server-helpers';
8
- import { Loader, WebWidgetContainerOptions } from '@web-widget/web-widget';
8
+ import { Loader, WebWidgetRendererOptions } from '@web-widget/web-widget';
9
9
 
10
10
  declare const WebWidget: vue.DefineComponent<{
11
11
  base: {
@@ -48,7 +48,7 @@ declare const WebWidget: vue.DefineComponent<{
48
48
  };
49
49
  }, () => VNode<vue.RendererNode, vue.RendererElement, {
50
50
  [key: string]: any;
51
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
51
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
52
52
  base: {
53
53
  type: PropType<string | undefined>;
54
54
  };
@@ -97,12 +97,12 @@ declare const WebWidget: vue.DefineComponent<{
97
97
  renderTarget: "light" | "shadow" | undefined;
98
98
  }, {}>;
99
99
  interface DefineWebWidgetOptions {
100
- base?: WebWidgetContainerOptions["base"];
101
- import?: WebWidgetContainerOptions["import"];
102
- loading?: WebWidgetContainerOptions["loading"];
103
- name?: WebWidgetContainerOptions["name"];
104
- renderStage?: WebWidgetContainerOptions["renderStage"];
105
- renderTarget?: WebWidgetContainerOptions["renderTarget"];
100
+ base?: WebWidgetRendererOptions["base"];
101
+ import?: WebWidgetRendererOptions["import"];
102
+ loading?: WebWidgetRendererOptions["loading"];
103
+ name?: WebWidgetRendererOptions["name"];
104
+ renderStage?: WebWidgetRendererOptions["renderStage"];
105
+ renderTarget?: WebWidgetRendererOptions["renderTarget"];
106
106
  }
107
107
  declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions): vue.DefineComponent<{
108
108
  fallback: {
@@ -124,7 +124,7 @@ declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions
124
124
  };
125
125
  }, () => VNode<vue.RendererNode, vue.RendererElement, {
126
126
  [key: string]: any;
127
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
127
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
128
128
  fallback: {
129
129
  type: PropType<VNode<vue.RendererNode, vue.RendererElement, {
130
130
  [key: string]: any;
@@ -168,4 +168,4 @@ declare const createVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRen
168
168
  declare const defineVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.ServerWidgetRenderContext<unknown> | _web_widget_schema.ServerRouteRenderContext<unknown, Record<string, string>>, renderOptions: ResponseInit & VueRenderOptions) => Promise<string | ReadableStream<any> | ReadableStream<any>>;
169
169
  declare const render: (context: _web_widget_schema.ServerWidgetRenderContext<unknown> | _web_widget_schema.ServerRouteRenderContext<unknown, Record<string, string>>, renderOptions: ResponseInit & VueRenderOptions) => Promise<string | ReadableStream<any> | ReadableStream<any>>;
170
170
 
171
- export { DefineWebWidgetOptions, VueRenderOptions, WebWidget, createVueRender, defineVueRender, defineWebWidget, render };
171
+ export { type DefineWebWidgetOptions, type VueRenderOptions, WebWidget, createVueRender, defineVueRender, defineWebWidget, render };
@@ -41,7 +41,7 @@ export * from "@web-widget/schema/server-helpers";
41
41
  import { useWidgetAsyncState } from "@web-widget/schema/server-helpers";
42
42
 
43
43
  // src/components.ts
44
- import { parse } from "@web-widget/web-widget";
44
+ import { WebWidgetRenderer } from "@web-widget/web-widget";
45
45
  import {
46
46
  h,
47
47
  defineComponent,
@@ -50,7 +50,7 @@ import {
50
50
  } from "vue";
51
51
  import { IS_BROWSER } from "@web-widget/schema/helpers";
52
52
  var WebWidget = /* @__PURE__ */ defineComponent({
53
- name: "WebWidget",
53
+ name: "WebWidgetRoot",
54
54
  props: {
55
55
  base: {
56
56
  type: String
@@ -96,17 +96,18 @@ var WebWidget = /* @__PURE__ */ defineComponent({
96
96
  if (Object.keys(slots).length > 0) {
97
97
  throw new TypeError(`No support slot.`);
98
98
  }
99
- const children = "";
100
- const [tag, attrs, innerHTML] = await parse(loader, __spreadProps(__spreadValues({}, props), {
101
- children
99
+ const widget = new WebWidgetRenderer(loader, __spreadProps(__spreadValues({}, props), {
100
+ // TODO slots.default
101
+ children: ""
102
102
  }));
103
+ const tag = widget.localName;
104
+ const attrs = widget.attributes;
105
+ const innerHTML = await widget.renderInnerHTMLToString();
103
106
  if (IS_BROWSER) {
104
- console.warn(`Client components are experimental.`);
105
- await customElements.whenDefined(tag);
106
- const element = Object.assign(document.createElement(tag), props);
107
- await element.bootstrap();
108
107
  }
109
108
  return () => h(tag, __spreadProps(__spreadValues({}, attrs), {
109
+ // NOTE: Use attr instead of props.
110
+ "^data": attrs.data,
110
111
  innerHTML
111
112
  }));
112
113
  }
@@ -115,6 +116,7 @@ function defineWebWidget(loader, options) {
115
116
  var _a, _b;
116
117
  return defineComponent({
117
118
  name: "WebWidgetSuspense",
119
+ inheritAttrs: false,
118
120
  props: {
119
121
  fallback: {
120
122
  type: Object
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@web-widget/vue",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -27,17 +27,20 @@
27
27
  "dist"
28
28
  ],
29
29
  "dependencies": {
30
- "@web-widget/vite": "2.10.0",
31
- "@web-widget/html": "0.1.8",
30
+ "@web-widget/html": "0.1.9",
32
31
  "@web-widget/schema": "0.4.3",
33
- "@web-widget/web-widget": "1.7.2"
32
+ "@web-widget/vite": "2.11.0"
34
33
  },
35
34
  "devDependencies": {
36
- "tsup": "^7.0.0",
37
- "typescript": "^5.0.4",
38
- "vite": "^4.4.9"
35
+ "@web-widget/web-widget": "1.8.0",
36
+ "tsup": "^8.0.1",
37
+ "typescript": "^5.3.3",
38
+ "vite": "^5.0.11",
39
+ "vue": ">3.3.3"
39
40
  },
40
41
  "peerDependencies": {
42
+ "@web-widget/web-widget": "1.8.0",
43
+ "vite": "^5.0.11",
41
44
  "vue": ">3.3.3"
42
45
  },
43
46
  "publishConfig": {