@web-widget/vue 1.49.1 → 1.50.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.
@@ -0,0 +1,147 @@
1
+ // src/error-handler.ts
2
+ import { cacheProviderIsLoading } from "@web-widget/helpers/cache";
3
+ function installErrorHandler(app) {
4
+ app.config.errorHandler = (err, instance, info) => {
5
+ if (cacheProviderIsLoading(err)) {
6
+ return;
7
+ }
8
+ throw err;
9
+ };
10
+ }
11
+
12
+ // src/components.ts
13
+ import { WebWidgetRenderer } from "@web-widget/web-widget";
14
+ import {
15
+ h,
16
+ defineComponent,
17
+ Suspense,
18
+ useAttrs
19
+ } from "vue";
20
+ import { IS_CLIENT } from "@web-widget/helpers/env";
21
+ var WebWidget = /* @__PURE__ */ defineComponent({
22
+ name: "WebWidgetRoot",
23
+ props: {
24
+ base: {
25
+ type: String
26
+ },
27
+ data: {
28
+ type: Object,
29
+ default: {}
30
+ },
31
+ import: {
32
+ type: String
33
+ },
34
+ inactive: {
35
+ type: Boolean,
36
+ // NOTE: If the default value is not set, it will be false here.
37
+ default: void 0
38
+ },
39
+ loader: {
40
+ type: Function,
41
+ required: true
42
+ },
43
+ loading: {
44
+ type: String
45
+ },
46
+ meta: {
47
+ type: Object
48
+ },
49
+ name: {
50
+ type: String
51
+ },
52
+ renderStage: {
53
+ type: String
54
+ },
55
+ renderTarget: {
56
+ type: String,
57
+ default: "light"
58
+ }
59
+ },
60
+ async setup({ loader, ...props }, { slots }) {
61
+ if (!loader) {
62
+ throw new TypeError(`Missing loader.`);
63
+ }
64
+ if (Object.keys(slots).length > 0) {
65
+ throw new TypeError(`Slot not supported.`);
66
+ }
67
+ const widget = new WebWidgetRenderer(loader, {
68
+ ...props,
69
+ // TODO slots.default
70
+ children: ""
71
+ });
72
+ const tag = widget.localName;
73
+ const attrs = widget.attributes;
74
+ const innerHTML = await widget.renderInnerHTMLToString();
75
+ if (IS_CLIENT) {
76
+ await customElements.whenDefined(tag);
77
+ }
78
+ const data = attrs.data;
79
+ delete attrs.data;
80
+ return () => h(tag, {
81
+ ...attrs,
82
+ // NOTE: Use attr instead of props.
83
+ ...IS_CLIENT ? { "^data": data } : { data },
84
+ innerHTML
85
+ });
86
+ }
87
+ });
88
+ function defineWebWidget(loader, options) {
89
+ var _a, _b;
90
+ return defineComponent({
91
+ name: "WebWidgetSuspense",
92
+ inheritAttrs: false,
93
+ props: {
94
+ fallback: {
95
+ type: Object
96
+ },
97
+ experimental_loading: {
98
+ type: String,
99
+ default: (_a = options.loading) != null ? _a : "lazy"
100
+ },
101
+ renderStage: {
102
+ type: String,
103
+ default: options.renderStage
104
+ },
105
+ experimental_renderTarget: {
106
+ type: String,
107
+ default: (_b = options.renderTarget) != null ? _b : "light"
108
+ }
109
+ },
110
+ setup({
111
+ fallback,
112
+ experimental_loading,
113
+ renderStage,
114
+ experimental_renderTarget
115
+ }, { slots }) {
116
+ const data = useAttrs();
117
+ return () => h(
118
+ Suspense,
119
+ {},
120
+ {
121
+ default: h(
122
+ WebWidget,
123
+ {
124
+ ...options,
125
+ data,
126
+ loader,
127
+ loading: experimental_loading,
128
+ renderStage,
129
+ renderTarget: experimental_renderTarget
130
+ },
131
+ slots
132
+ ),
133
+ fallback
134
+ }
135
+ );
136
+ }
137
+ });
138
+ }
139
+ function toReact(component) {
140
+ return component;
141
+ }
142
+
143
+ export {
144
+ installErrorHandler,
145
+ defineWebWidget,
146
+ toReact
147
+ };
@@ -0,0 +1,68 @@
1
+ import * as vue from 'vue';
2
+ import { PropType, VNode, Component, ComponentPublicInstance, App } from 'vue';
3
+ import { WebWidgetRendererOptions, Loader } from '@web-widget/web-widget';
4
+ import { ReactWidgetComponent } from '@web-widget/react';
5
+ import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
6
+
7
+ interface DefineWebWidgetOptions {
8
+ base?: WebWidgetRendererOptions['base'];
9
+ import?: WebWidgetRendererOptions['import'];
10
+ loading?: WebWidgetRendererOptions['loading'];
11
+ name?: WebWidgetRendererOptions['name'];
12
+ renderStage?: WebWidgetRendererOptions['renderStage'];
13
+ renderTarget?: WebWidgetRendererOptions['renderTarget'];
14
+ }
15
+ declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions): vue.DefineComponent<{
16
+ fallback: {
17
+ type: PropType<VNode>;
18
+ };
19
+ experimental_loading: {
20
+ type: PropType<WebWidgetRendererOptions["loading"]>;
21
+ default: "lazy" | "eager" | "idle";
22
+ };
23
+ renderStage: {
24
+ type: PropType<WebWidgetRendererOptions["renderStage"]>;
25
+ default: "server" | "client" | undefined;
26
+ };
27
+ experimental_renderTarget: {
28
+ type: PropType<WebWidgetRendererOptions["renderTarget"]>;
29
+ default: "light" | "shadow";
30
+ };
31
+ }, () => VNode<vue.RendererNode, vue.RendererElement, {
32
+ [key: string]: any;
33
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
34
+ fallback: {
35
+ type: PropType<VNode>;
36
+ };
37
+ experimental_loading: {
38
+ type: PropType<WebWidgetRendererOptions["loading"]>;
39
+ default: "lazy" | "eager" | "idle";
40
+ };
41
+ renderStage: {
42
+ type: PropType<WebWidgetRendererOptions["renderStage"]>;
43
+ default: "server" | "client" | undefined;
44
+ };
45
+ experimental_renderTarget: {
46
+ type: PropType<WebWidgetRendererOptions["renderTarget"]>;
47
+ default: "light" | "shadow";
48
+ };
49
+ }>>, {
50
+ renderStage: "server" | "client" | undefined;
51
+ experimental_loading: "lazy" | "eager" | "idle" | undefined;
52
+ experimental_renderTarget: "light" | "shadow" | undefined;
53
+ }, {}>;
54
+ /**
55
+ * Convert Vue component types to React component types.
56
+ */
57
+ declare function toReact<T>(component: Component<T>): ReactWidgetComponent<Omit<T, keyof ComponentPublicInstance | "$route" | "$router">>;
58
+
59
+ interface SerializableObject {
60
+ [key: string]: SerializableValue;
61
+ }
62
+ interface CreateVueRenderOptions {
63
+ onCreatedApp?: (app: App<Element>, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
64
+ /**@deprecated*/
65
+ onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<SerializableObject>;
66
+ }
67
+
68
+ export { type CreateVueRenderOptions as C, type DefineWebWidgetOptions as D, defineWebWidget as d, toReact as t };
package/dist/vite.js CHANGED
@@ -1,20 +1,3 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
- var __hasOwnProp = Object.prototype.hasOwnProperty;
4
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
- var __spreadValues = (a, b) => {
7
- for (var prop in b || (b = {}))
8
- if (__hasOwnProp.call(b, prop))
9
- __defNormalProp(a, prop, b[prop]);
10
- if (__getOwnPropSymbols)
11
- for (var prop of __getOwnPropSymbols(b)) {
12
- if (__propIsEnum.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- }
15
- return a;
16
- };
17
-
18
1
  // src/vite.ts
19
2
  import { webWidgetPlugin } from "@web-widget/vite-plugin";
20
3
  var VUE_INTERNAL_REQUEST = /\.vue\?(?:direct&)?vue\b.*$/;
@@ -31,7 +14,7 @@ function vueWebWidgetPlugin(options) {
31
14
  return webWidgetPlugin({
32
15
  manifest,
33
16
  provide,
34
- export: __spreadValues({
17
+ export: {
35
18
  include: [route, widget],
36
19
  exclude: VUE_INTERNAL_REQUEST,
37
20
  extractFromExportDefault: [
@@ -45,9 +28,10 @@ function vueWebWidgetPlugin(options) {
45
28
  default: "{}",
46
29
  include: route
47
30
  }
48
- ]
49
- }, exportWidget),
50
- import: __spreadValues({
31
+ ],
32
+ ...exportWidget
33
+ },
34
+ import: {
51
35
  include: /(?:\.|@)widget\..*$/,
52
36
  exclude: VUE_INTERNAL_REQUEST,
53
37
  includeImporter: [
@@ -55,8 +39,9 @@ function vueWebWidgetPlugin(options) {
55
39
  /\.vue$/,
56
40
  // vite: build mode
57
41
  VUE_INTERNAL_SCRIPT_REQUEST
58
- ]
59
- }, importWidget)
42
+ ],
43
+ ...importWidget
44
+ }
60
45
  });
61
46
  }
62
47
  export {
@@ -1,76 +1,15 @@
1
1
  import * as _web_widget_schema from '@web-widget/schema';
2
- import * as vue from 'vue';
3
- import { PropType, VNode, Component, ComponentPublicInstance, App } from 'vue';
4
- import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
2
+ import { C as CreateVueRenderOptions } from './types-BJGyrdpU.js';
3
+ export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-BJGyrdpU.js';
5
4
  export * from '@web-widget/helpers';
6
5
  export { useWidgetAsyncState as useWidgetState } from '@web-widget/helpers/state';
7
- import { WebWidgetRendererOptions, Loader } from '@web-widget/web-widget';
8
- import { ReactWidgetComponent } from '@web-widget/react';
9
-
10
- interface DefineWebWidgetOptions {
11
- base?: WebWidgetRendererOptions['base'];
12
- import?: WebWidgetRendererOptions['import'];
13
- loading?: WebWidgetRendererOptions['loading'];
14
- name?: WebWidgetRendererOptions['name'];
15
- renderStage?: WebWidgetRendererOptions['renderStage'];
16
- renderTarget?: WebWidgetRendererOptions['renderTarget'];
17
- }
18
- declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions): vue.DefineComponent<{
19
- fallback: {
20
- type: PropType<VNode>;
21
- };
22
- experimental_loading: {
23
- type: PropType<WebWidgetRendererOptions["loading"]>;
24
- default: "lazy" | "eager" | "idle";
25
- };
26
- renderStage: {
27
- type: PropType<WebWidgetRendererOptions["renderStage"]>;
28
- default: "server" | "client" | undefined;
29
- };
30
- experimental_renderTarget: {
31
- type: PropType<WebWidgetRendererOptions["renderTarget"]>;
32
- default: "light" | "shadow";
33
- };
34
- }, () => VNode<vue.RendererNode, vue.RendererElement, {
35
- [key: string]: any;
36
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
37
- fallback: {
38
- type: PropType<VNode>;
39
- };
40
- experimental_loading: {
41
- type: PropType<WebWidgetRendererOptions["loading"]>;
42
- default: "lazy" | "eager" | "idle";
43
- };
44
- renderStage: {
45
- type: PropType<WebWidgetRendererOptions["renderStage"]>;
46
- default: "server" | "client" | undefined;
47
- };
48
- experimental_renderTarget: {
49
- type: PropType<WebWidgetRendererOptions["renderTarget"]>;
50
- default: "light" | "shadow";
51
- };
52
- }>>, {
53
- renderStage: "server" | "client" | undefined;
54
- experimental_loading: "lazy" | "eager" | "idle" | undefined;
55
- experimental_renderTarget: "light" | "shadow" | undefined;
56
- }, {}>;
57
- /**
58
- * Convert Vue component types to React component types.
59
- */
60
- declare function toReact<T>(component: Component<T>): ReactWidgetComponent<Omit<T, keyof ComponentPublicInstance | "$route" | "$router">>;
61
-
62
- interface SerializableObject {
63
- [key: string]: SerializableValue;
64
- }
65
- interface CreateVueRenderOptions {
66
- onCreatedApp?: (app: App<Element>, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
67
- /**@deprecated*/
68
- onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<SerializableObject>;
69
- }
6
+ import 'vue';
7
+ import '@web-widget/web-widget';
8
+ import '@web-widget/react';
70
9
 
71
10
  declare const createVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
72
11
  /**@deprecated Please use `createVueRender` instead.*/
73
12
  declare const defineVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
74
13
  declare const render: (context: _web_widget_schema.WidgetRenderContext<unknown>, renderOptions: _web_widget_schema.WidgetRenderOptions) => Promise<_web_widget_schema.WidgetRenderResult>;
75
14
 
76
- export { type DefineWebWidgetOptions, createVueRender, defineVueRender, defineWebWidget, render, toReact };
15
+ export { createVueRender, defineVueRender, render };
@@ -1,182 +1,14 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
1
+ import {
2
+ defineWebWidget,
3
+ installErrorHandler,
4
+ toReact
5
+ } from "./chunk-EM5COFUI.js";
32
6
 
33
7
  // src/client.ts
34
8
  import { defineRender, getComponentDescriptor } from "@web-widget/helpers";
35
- import { Suspense as Suspense2, createApp, createSSRApp, h as h2 } from "vue";
36
-
37
- // src/error-handler.ts
38
- import { cacheProviderIsLoading } from "@web-widget/helpers/cache";
39
- function installErrorHandler(app) {
40
- app.config.errorHandler = (err, instance, info) => {
41
- if (cacheProviderIsLoading(err)) {
42
- return;
43
- }
44
- throw err;
45
- };
46
- }
47
-
48
- // src/client.ts
9
+ import { Suspense, createApp, createSSRApp, h } from "vue";
49
10
  export * from "@web-widget/helpers";
50
11
  import { useWidgetAsyncState } from "@web-widget/helpers/state";
51
-
52
- // src/components.ts
53
- import { WebWidgetRenderer } from "@web-widget/web-widget";
54
- import {
55
- h,
56
- defineComponent,
57
- Suspense,
58
- useAttrs
59
- } from "vue";
60
- import { IS_CLIENT } from "@web-widget/helpers/env";
61
- var WebWidget = /* @__PURE__ */ defineComponent({
62
- name: "WebWidgetRoot",
63
- props: {
64
- base: {
65
- type: String
66
- },
67
- data: {
68
- type: Object,
69
- default: {}
70
- },
71
- import: {
72
- type: String
73
- },
74
- inactive: {
75
- type: Boolean,
76
- // NOTE: If the default value is not set, it will be false here.
77
- default: void 0
78
- },
79
- loader: {
80
- type: Function,
81
- required: true
82
- },
83
- loading: {
84
- type: String
85
- },
86
- meta: {
87
- type: Object
88
- },
89
- name: {
90
- type: String
91
- },
92
- renderStage: {
93
- type: String
94
- },
95
- renderTarget: {
96
- type: String,
97
- default: "light"
98
- }
99
- },
100
- async setup(_a, { slots }) {
101
- var _b = _a, { loader } = _b, props = __objRest(_b, ["loader"]);
102
- if (!loader) {
103
- throw new TypeError(`Missing loader.`);
104
- }
105
- if (Object.keys(slots).length > 0) {
106
- throw new TypeError(`Slot not supported.`);
107
- }
108
- const widget = new WebWidgetRenderer(loader, __spreadProps(__spreadValues({}, props), {
109
- // TODO slots.default
110
- children: ""
111
- }));
112
- const tag = widget.localName;
113
- const attrs = widget.attributes;
114
- const innerHTML = await widget.renderInnerHTMLToString();
115
- if (IS_CLIENT) {
116
- await customElements.whenDefined(tag);
117
- }
118
- const data = attrs.data;
119
- delete attrs.data;
120
- return () => h(tag, __spreadProps(__spreadValues(__spreadValues({}, attrs), IS_CLIENT ? { "^data": data } : { data }), {
121
- innerHTML
122
- }));
123
- }
124
- });
125
- function defineWebWidget(loader, options) {
126
- var _a, _b;
127
- return defineComponent({
128
- name: "WebWidgetSuspense",
129
- inheritAttrs: false,
130
- props: {
131
- fallback: {
132
- type: Object
133
- },
134
- experimental_loading: {
135
- type: String,
136
- default: (_a = options.loading) != null ? _a : "lazy"
137
- },
138
- renderStage: {
139
- type: String,
140
- default: options.renderStage
141
- },
142
- experimental_renderTarget: {
143
- type: String,
144
- default: (_b = options.renderTarget) != null ? _b : "light"
145
- }
146
- },
147
- setup({
148
- fallback,
149
- experimental_loading,
150
- renderStage,
151
- experimental_renderTarget
152
- }, { slots }) {
153
- const data = useAttrs();
154
- return () => h(
155
- Suspense,
156
- {},
157
- {
158
- default: h(
159
- WebWidget,
160
- __spreadProps(__spreadValues({}, options), {
161
- data,
162
- loader,
163
- loading: experimental_loading,
164
- renderStage,
165
- renderTarget: experimental_renderTarget
166
- }),
167
- slots
168
- ),
169
- fallback
170
- }
171
- );
172
- }
173
- });
174
- }
175
- function toReact(component) {
176
- return component;
177
- }
178
-
179
- // src/client.ts
180
12
  var createVueRender = ({
181
13
  onCreatedApp = async () => {
182
14
  },
@@ -193,7 +25,7 @@ var createVueRender = ({
193
25
  throw new Error(`Container required.`);
194
26
  }
195
27
  let app;
196
- const WidgetSuspense = (props2) => h2(Suspense2, null, [h2(component, props2)]);
28
+ const WidgetSuspense = (props2) => h(Suspense, null, [h(component, props2)]);
197
29
  return {
198
30
  async mount() {
199
31
  if (recovering) {
@@ -1,73 +1,12 @@
1
1
  import * as _web_widget_schema from '@web-widget/schema';
2
2
  import { SSRContext } from 'vue/server-renderer';
3
- import * as vue from 'vue';
4
- import { PropType, VNode, Component, ComponentPublicInstance, App } from 'vue';
5
- import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
3
+ import { C as CreateVueRenderOptions } from './types-BJGyrdpU.js';
4
+ export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-BJGyrdpU.js';
6
5
  export * from '@web-widget/helpers';
7
6
  export { useWidgetAsyncState as useWidgetState } from '@web-widget/helpers/state';
8
- import { WebWidgetRendererOptions, Loader } from '@web-widget/web-widget';
9
- import { ReactWidgetComponent } from '@web-widget/react';
10
-
11
- interface DefineWebWidgetOptions {
12
- base?: WebWidgetRendererOptions['base'];
13
- import?: WebWidgetRendererOptions['import'];
14
- loading?: WebWidgetRendererOptions['loading'];
15
- name?: WebWidgetRendererOptions['name'];
16
- renderStage?: WebWidgetRendererOptions['renderStage'];
17
- renderTarget?: WebWidgetRendererOptions['renderTarget'];
18
- }
19
- declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions): vue.DefineComponent<{
20
- fallback: {
21
- type: PropType<VNode>;
22
- };
23
- experimental_loading: {
24
- type: PropType<WebWidgetRendererOptions["loading"]>;
25
- default: "lazy" | "eager" | "idle";
26
- };
27
- renderStage: {
28
- type: PropType<WebWidgetRendererOptions["renderStage"]>;
29
- default: "server" | "client" | undefined;
30
- };
31
- experimental_renderTarget: {
32
- type: PropType<WebWidgetRendererOptions["renderTarget"]>;
33
- default: "light" | "shadow";
34
- };
35
- }, () => VNode<vue.RendererNode, vue.RendererElement, {
36
- [key: string]: any;
37
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
38
- fallback: {
39
- type: PropType<VNode>;
40
- };
41
- experimental_loading: {
42
- type: PropType<WebWidgetRendererOptions["loading"]>;
43
- default: "lazy" | "eager" | "idle";
44
- };
45
- renderStage: {
46
- type: PropType<WebWidgetRendererOptions["renderStage"]>;
47
- default: "server" | "client" | undefined;
48
- };
49
- experimental_renderTarget: {
50
- type: PropType<WebWidgetRendererOptions["renderTarget"]>;
51
- default: "light" | "shadow";
52
- };
53
- }>>, {
54
- renderStage: "server" | "client" | undefined;
55
- experimental_loading: "lazy" | "eager" | "idle" | undefined;
56
- experimental_renderTarget: "light" | "shadow" | undefined;
57
- }, {}>;
58
- /**
59
- * Convert Vue component types to React component types.
60
- */
61
- declare function toReact<T>(component: Component<T>): ReactWidgetComponent<Omit<T, keyof ComponentPublicInstance | "$route" | "$router">>;
62
-
63
- interface SerializableObject {
64
- [key: string]: SerializableValue;
65
- }
66
- interface CreateVueRenderOptions {
67
- onCreatedApp?: (app: App<Element>, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
68
- /**@deprecated*/
69
- onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<SerializableObject>;
70
- }
7
+ import 'vue';
8
+ import '@web-widget/web-widget';
9
+ import '@web-widget/react';
71
10
 
72
11
  declare module '@web-widget/schema' {
73
12
  interface WidgetRenderOptions {
@@ -86,4 +25,4 @@ declare const createVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRen
86
25
  declare const defineVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_schema.RouteRenderContext<unknown, Record<string, string>>, renderOptions: _web_widget_schema.RouteRenderOptions) => Promise<_web_widget_schema.RouteRenderResult>;
87
26
  declare const render: (context: _web_widget_schema.RouteRenderContext<unknown, Record<string, string>>, renderOptions: _web_widget_schema.RouteRenderOptions) => Promise<_web_widget_schema.RouteRenderResult>;
88
27
 
89
- export { type DefineWebWidgetOptions, type VueRenderOptions, createVueRender, defineVueRender, defineWebWidget, render, toReact };
28
+ export { type VueRenderOptions, createVueRender, defineVueRender, render };
@@ -1,183 +1,15 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
1
+ import {
2
+ defineWebWidget,
3
+ installErrorHandler,
4
+ toReact
5
+ } from "./chunk-EM5COFUI.js";
32
6
 
33
7
  // src/server.ts
34
8
  import { defineRender, getComponentDescriptor } from "@web-widget/helpers";
35
- import { createSSRApp, h as h2, Suspense as Suspense2 } from "vue";
9
+ import { createSSRApp, h, Suspense } from "vue";
36
10
  import { renderToWebStream } from "vue/server-renderer";
37
-
38
- // src/error-handler.ts
39
- import { cacheProviderIsLoading } from "@web-widget/helpers/cache";
40
- function installErrorHandler(app) {
41
- app.config.errorHandler = (err, instance, info) => {
42
- if (cacheProviderIsLoading(err)) {
43
- return;
44
- }
45
- throw err;
46
- };
47
- }
48
-
49
- // src/server.ts
50
11
  export * from "@web-widget/helpers";
51
12
  import { useWidgetAsyncState } from "@web-widget/helpers/state";
52
-
53
- // src/components.ts
54
- import { WebWidgetRenderer } from "@web-widget/web-widget";
55
- import {
56
- h,
57
- defineComponent,
58
- Suspense,
59
- useAttrs
60
- } from "vue";
61
- import { IS_CLIENT } from "@web-widget/helpers/env";
62
- var WebWidget = /* @__PURE__ */ defineComponent({
63
- name: "WebWidgetRoot",
64
- props: {
65
- base: {
66
- type: String
67
- },
68
- data: {
69
- type: Object,
70
- default: {}
71
- },
72
- import: {
73
- type: String
74
- },
75
- inactive: {
76
- type: Boolean,
77
- // NOTE: If the default value is not set, it will be false here.
78
- default: void 0
79
- },
80
- loader: {
81
- type: Function,
82
- required: true
83
- },
84
- loading: {
85
- type: String
86
- },
87
- meta: {
88
- type: Object
89
- },
90
- name: {
91
- type: String
92
- },
93
- renderStage: {
94
- type: String
95
- },
96
- renderTarget: {
97
- type: String,
98
- default: "light"
99
- }
100
- },
101
- async setup(_a, { slots }) {
102
- var _b = _a, { loader } = _b, props = __objRest(_b, ["loader"]);
103
- if (!loader) {
104
- throw new TypeError(`Missing loader.`);
105
- }
106
- if (Object.keys(slots).length > 0) {
107
- throw new TypeError(`Slot not supported.`);
108
- }
109
- const widget = new WebWidgetRenderer(loader, __spreadProps(__spreadValues({}, props), {
110
- // TODO slots.default
111
- children: ""
112
- }));
113
- const tag = widget.localName;
114
- const attrs = widget.attributes;
115
- const innerHTML = await widget.renderInnerHTMLToString();
116
- if (IS_CLIENT) {
117
- await customElements.whenDefined(tag);
118
- }
119
- const data = attrs.data;
120
- delete attrs.data;
121
- return () => h(tag, __spreadProps(__spreadValues(__spreadValues({}, attrs), IS_CLIENT ? { "^data": data } : { data }), {
122
- innerHTML
123
- }));
124
- }
125
- });
126
- function defineWebWidget(loader, options) {
127
- var _a, _b;
128
- return defineComponent({
129
- name: "WebWidgetSuspense",
130
- inheritAttrs: false,
131
- props: {
132
- fallback: {
133
- type: Object
134
- },
135
- experimental_loading: {
136
- type: String,
137
- default: (_a = options.loading) != null ? _a : "lazy"
138
- },
139
- renderStage: {
140
- type: String,
141
- default: options.renderStage
142
- },
143
- experimental_renderTarget: {
144
- type: String,
145
- default: (_b = options.renderTarget) != null ? _b : "light"
146
- }
147
- },
148
- setup({
149
- fallback,
150
- experimental_loading,
151
- renderStage,
152
- experimental_renderTarget
153
- }, { slots }) {
154
- const data = useAttrs();
155
- return () => h(
156
- Suspense,
157
- {},
158
- {
159
- default: h(
160
- WebWidget,
161
- __spreadProps(__spreadValues({}, options), {
162
- data,
163
- loader,
164
- loading: experimental_loading,
165
- renderStage,
166
- renderTarget: experimental_renderTarget
167
- }),
168
- slots
169
- ),
170
- fallback
171
- }
172
- );
173
- }
174
- });
175
- }
176
- function toReact(component) {
177
- return component;
178
- }
179
-
180
- // src/server.ts
181
13
  var createVueRender = ({
182
14
  onCreatedApp = async () => {
183
15
  },
@@ -190,7 +22,7 @@ var createVueRender = ({
190
22
  async (context, { vue: ssrContext } = {}) => {
191
23
  const componentDescriptor = getComponentDescriptor(context);
192
24
  const { component, props } = componentDescriptor;
193
- const WidgetSuspense = (props2) => h2(Suspense2, null, [h2(component, props2)]);
25
+ const WidgetSuspense = (props2) => h(Suspense, null, [h(component, props2)]);
194
26
  const app = createSSRApp(WidgetSuspense, props);
195
27
  installErrorHandler(app);
196
28
  await onCreatedApp(app, context, component, props);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@web-widget/vue",
3
3
  "description": "Vue adapter",
4
- "version": "1.49.1",
4
+ "version": "1.50.0",
5
5
  "homepage": "https://github.com/web-widget/web-widget#readme",
6
6
  "repository": {
7
7
  "type": "git",
@@ -13,18 +13,17 @@
13
13
  },
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@web-widget/helpers": "1.49.1",
17
- "@web-widget/vite-plugin": "1.49.1",
18
- "@web-widget/web-widget": "1.49.1",
19
- "@web-widget/schema": "1.49.1"
16
+ "@web-widget/helpers": "1.50.0",
17
+ "@web-widget/vite-plugin": "1.50.0",
18
+ "@web-widget/web-widget": "1.50.0",
19
+ "@web-widget/schema": "1.50.0",
20
+ "@web-widget/react": "1.50.0"
20
21
  },
21
22
  "devDependencies": {
22
23
  "tsup": "^8.3.4",
23
24
  "typescript": "^5.5.4",
24
25
  "vite": "^5.4.10",
25
- "vue": ">3.3.3",
26
- "@web-widget/react": "1.49.1",
27
- "@web-widget/schema": "1.49.1"
26
+ "vue": ">3.3.3"
28
27
  },
29
28
  "exports": {
30
29
  ".": {
@@ -43,7 +42,6 @@
43
42
  },
44
43
  "./vite": {
45
44
  "types": "./dist/vite.d.ts",
46
- "require": "./dist/vite.cjs",
47
45
  "default": "./dist/vite.js"
48
46
  }
49
47
  },
@@ -52,8 +50,7 @@
52
50
  ],
53
51
  "peerDependencies": {
54
52
  "vite": "^5.4.10",
55
- "vue": ">3.3.3",
56
- "@web-widget/react": "1.49.1"
53
+ "vue": ">3.3.3"
57
54
  },
58
55
  "publishConfig": {
59
56
  "access": "public"
package/dist/vite.cjs DELETED
@@ -1,82 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __spreadValues = (a, b) => {
10
- for (var prop in b || (b = {}))
11
- if (__hasOwnProp.call(b, prop))
12
- __defNormalProp(a, prop, b[prop]);
13
- if (__getOwnPropSymbols)
14
- for (var prop of __getOwnPropSymbols(b)) {
15
- if (__propIsEnum.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- }
18
- return a;
19
- };
20
- var __export = (target, all) => {
21
- for (var name in all)
22
- __defProp(target, name, { get: all[name], enumerable: true });
23
- };
24
- var __copyProps = (to, from, except, desc) => {
25
- if (from && typeof from === "object" || typeof from === "function") {
26
- for (let key of __getOwnPropNames(from))
27
- if (!__hasOwnProp.call(to, key) && key !== except)
28
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
29
- }
30
- return to;
31
- };
32
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
-
34
- // src/vite.ts
35
- var vite_exports = {};
36
- __export(vite_exports, {
37
- default: () => vueWebWidgetPlugin
38
- });
39
- module.exports = __toCommonJS(vite_exports);
40
- var import_vite_plugin = require("@web-widget/vite-plugin");
41
- var VUE_INTERNAL_REQUEST = /\.vue\?(?:direct&)?vue\b.*$/;
42
- var VUE_INTERNAL_SCRIPT_REQUEST = /\.vue\?vue&type=script\b.*$/;
43
- function vueWebWidgetPlugin(options) {
44
- const {
45
- manifest,
46
- provide = "@web-widget/vue",
47
- export: exportWidget = {},
48
- import: importWidget = {}
49
- } = options != null ? options : {};
50
- const route = /(?:\.|@)route\.vue(?:\?.*)?$/;
51
- const widget = /(?:\.|@)widget\.vue(?:\?.*)?$/;
52
- return (0, import_vite_plugin.webWidgetPlugin)({
53
- manifest,
54
- provide,
55
- export: __spreadValues({
56
- include: [route, widget],
57
- exclude: VUE_INTERNAL_REQUEST,
58
- extractFromExportDefault: [
59
- {
60
- name: "handler",
61
- default: "{GET({render}){return render()}}",
62
- include: route
63
- },
64
- {
65
- name: "meta",
66
- default: "{}",
67
- include: route
68
- }
69
- ]
70
- }, exportWidget),
71
- import: __spreadValues({
72
- include: /(?:\.|@)widget\..*$/,
73
- exclude: VUE_INTERNAL_REQUEST,
74
- includeImporter: [
75
- // vite: dev mode
76
- /\.vue$/,
77
- // vite: build mode
78
- VUE_INTERNAL_SCRIPT_REQUEST
79
- ]
80
- }, importWidget)
81
- });
82
- }
package/dist/vite.d.cts DELETED
@@ -1,8 +0,0 @@
1
- import * as vite from 'vite';
2
- import { WebWidgetUserConfig } from '@web-widget/vite-plugin';
3
-
4
- interface VueWebWidgetPluginOptions extends Partial<WebWidgetUserConfig> {
5
- }
6
- declare function vueWebWidgetPlugin(options?: VueWebWidgetPluginOptions): vite.Plugin<any>[];
7
-
8
- export { type VueWebWidgetPluginOptions, vueWebWidgetPlugin as default };