@thestarweb/star-framework-app-web 0.1.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/browser/index.js +8 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/cli/dev-server.js +64 -0
- package/dist/cli/dev-server.js.map +1 -0
- package/dist/cli/index.js +117 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli-helper.js +2 -0
- package/dist/cli-helper.js.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptor/index.js +26 -0
- package/dist/interceptor/index.js.map +1 -0
- package/dist/interceptor/middleware-to-interceptor/index.js +32 -0
- package/dist/interceptor/middleware-to-interceptor/index.js.map +1 -0
- package/dist/interceptor/middleware-to-interceptor/mock-res.js +241 -0
- package/dist/interceptor/middleware-to-interceptor/mock-res.js.map +1 -0
- package/dist/interceptor/middleware-to-interceptor/mook-req.js +180 -0
- package/dist/interceptor/middleware-to-interceptor/mook-req.js.map +1 -0
- package/dist/interceptor/types.js +6 -0
- package/dist/interceptor/types.js.map +1 -0
- package/dist/params/index.js +10 -0
- package/dist/params/index.js.map +1 -0
- package/dist/request/index.js +46 -0
- package/dist/request/index.js.map +1 -0
- package/dist/return-types/index.js +2 -0
- package/dist/return-types/index.js.map +1 -0
- package/dist/return-types/response-with-meta.js +25 -0
- package/dist/return-types/response-with-meta.js.map +1 -0
- package/dist/route/index.js +20 -0
- package/dist/route/index.js.map +1 -0
- package/dist/route/types.js +17 -0
- package/dist/route/types.js.map +1 -0
- package/dist/runtime/index.js +84 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/type.js +11 -0
- package/dist/runtime/type.js.map +1 -0
- package/dist/server/body/helper.js +118 -0
- package/dist/server/body/helper.js.map +1 -0
- package/dist/server/body/json.js +211 -0
- package/dist/server/body/json.js.map +1 -0
- package/dist/server/body/types.js +6 -0
- package/dist/server/body/types.js.map +1 -0
- package/dist/server/dump-api-type.js +59 -0
- package/dist/server/dump-api-type.js.map +1 -0
- package/dist/server/index.js +103 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/types.js +8 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server/utils/pass-through-readable.js +13 -0
- package/dist/server/utils/pass-through-readable.js.map +1 -0
- package/dist/view/const.js +2 -0
- package/dist/view/const.js.map +1 -0
- package/dist/view/data-context/conetext.js +70 -0
- package/dist/view/data-context/conetext.js.map +1 -0
- package/dist/view/data-context/index.js +13 -0
- package/dist/view/data-context/index.js.map +1 -0
- package/dist/view/html/create-element.js +20 -0
- package/dist/view/html/create-element.js.map +1 -0
- package/dist/view/html/index.js +4 -0
- package/dist/view/html/index.js.map +1 -0
- package/dist/view/html/parse-html-to-v-dom.js +317 -0
- package/dist/view/html/parse-html-to-v-dom.js.map +1 -0
- package/dist/view/html/render-v-dom-to-string.js +46 -0
- package/dist/view/html/render-v-dom-to-string.js.map +1 -0
- package/dist/view/html/types.js +21 -0
- package/dist/view/html/types.js.map +1 -0
- package/dist/view/index.js +7 -0
- package/dist/view/index.js.map +1 -0
- package/dist/view/layout.js +24 -0
- package/dist/view/layout.js.map +1 -0
- package/dist/view/render/html-render.js +21 -0
- package/dist/view/render/html-render.js.map +1 -0
- package/dist/view/render/index.js +3 -0
- package/dist/view/render/index.js.map +1 -0
- package/dist/view/render/render.js +183 -0
- package/dist/view/render/render.js.map +1 -0
- package/dist/view/render/sf-v-dom-render.js +40 -0
- package/dist/view/render/sf-v-dom-render.js.map +1 -0
- package/dist/view/types.js +10 -0
- package/dist/view/types.js.map +1 -0
- package/dist/view/utils/find-route-dom.js +22 -0
- package/dist/view/utils/find-route-dom.js.map +1 -0
- package/dist/view/utils/get-render/client.js +77 -0
- package/dist/view/utils/get-render/client.js.map +1 -0
- package/dist/view/utils/get-render/common.js +87 -0
- package/dist/view/utils/get-render/common.js.map +1 -0
- package/dist/view/utils/get-render/index.js +4 -0
- package/dist/view/utils/get-render/index.js.map +1 -0
- package/dist/view/utils/get-render/server.js +60 -0
- package/dist/view/utils/get-render/server.js.map +1 -0
- package/dist/view/utils/index.js +3 -0
- package/dist/view/utils/index.js.map +1 -0
- package/dist/view/view.js +10 -0
- package/dist/view/view.js.map +1 -0
- package/package.json +41 -0
- package/resource/default-index.html +11 -0
- package/src/browser/index.ts +7 -0
- package/src/cli/dev-server.ts +66 -0
- package/src/cli/index.ts +122 -0
- package/src/cli/types.ts +7 -0
- package/src/cli-helper.ts +5 -0
- package/src/index.ts +24 -0
- package/src/interceptor/index.ts +26 -0
- package/src/interceptor/middleware-to-interceptor/index.ts +29 -0
- package/src/interceptor/middleware-to-interceptor/mock-res.ts +255 -0
- package/src/interceptor/middleware-to-interceptor/mook-req.ts +218 -0
- package/src/interceptor/types.ts +7 -0
- package/src/params/index.ts +12 -0
- package/src/request/index.ts +65 -0
- package/src/return-types/index.ts +1 -0
- package/src/return-types/response-with-meta.ts +17 -0
- package/src/route/index.ts +43 -0
- package/src/route/types.ts +11 -0
- package/src/server/body/helper.ts +110 -0
- package/src/server/body/json.ts +217 -0
- package/src/server/body/types.ts +6 -0
- package/src/server/dump-api-type.ts +64 -0
- package/src/server/index.ts +113 -0
- package/src/server/types.ts +11 -0
- package/src/server/utils/pass-through-readable.ts +10 -0
- package/src/view/const.ts +1 -0
- package/src/view/data-context/conetext.ts +59 -0
- package/src/view/data-context/index.ts +18 -0
- package/src/view/html/create-element.ts +20 -0
- package/src/view/html/index.ts +3 -0
- package/src/view/html/parse-html-to-v-dom.ts +348 -0
- package/src/view/html/render-v-dom-to-string.ts +79 -0
- package/src/view/html/types.ts +32 -0
- package/src/view/index.ts +6 -0
- package/src/view/layout.ts +20 -0
- package/src/view/render/html-render.ts +21 -0
- package/src/view/render/index.ts +2 -0
- package/src/view/render/render.ts +225 -0
- package/src/view/render/sf-v-dom-render.ts +34 -0
- package/src/view/types.ts +18 -0
- package/src/view/utils/find-route-dom.ts +19 -0
- package/src/view/utils/get-render/client.ts +76 -0
- package/src/view/utils/get-render/common.ts +113 -0
- package/src/view/utils/get-render/index.ts +3 -0
- package/src/view/utils/get-render/server.ts +71 -0
- package/src/view/utils/index.ts +2 -0
- package/src/view/view.ts +7 -0
- package/test/body.test.ts +29 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
function __assignType(fn, args) {
|
|
2
|
+
fn.__type = args;
|
|
3
|
+
return fn;
|
|
4
|
+
}
|
|
5
|
+
/*@ts-ignore*/
|
|
6
|
+
import { __ΩRenderDataContext, __ΩSystemRenderDataContext, __ΩUserRenderDataContext } from "../data-context/index.js";
|
|
7
|
+
import { forkDataContextRecord, SFDataContext, } from "../data-context/index.js";
|
|
8
|
+
import { findRouteDom } from "../utils/index.js";
|
|
9
|
+
const __ΩRenderInstance = ['unMount', 'newProp', 'updateProp', () => RenderContext, 'newContext', 'updateChild', 'RenderInstance', 'PP$1!8P"2"$1#8PP7$2%$1&8Mw\'y'];
|
|
10
|
+
export { __ΩRenderInstance as __ΩRenderInstance };
|
|
11
|
+
export class WarpRenderInstance {
|
|
12
|
+
conetxt;
|
|
13
|
+
dom;
|
|
14
|
+
rawInstance;
|
|
15
|
+
dataContext;
|
|
16
|
+
constructor(conetxt, dom, rawInstance, dataContext) {
|
|
17
|
+
this.conetxt = conetxt;
|
|
18
|
+
this.dom = dom;
|
|
19
|
+
this.rawInstance = rawInstance;
|
|
20
|
+
this.dataContext = dataContext;
|
|
21
|
+
this.conetxt._instances.push(this);
|
|
22
|
+
}
|
|
23
|
+
unMount() {
|
|
24
|
+
if (this.rawInstance.unMount) {
|
|
25
|
+
this.rawInstance.unMount();
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.dom.innerHTML = "";
|
|
29
|
+
}
|
|
30
|
+
Object.values(this.dataContext).forEach(__assignType((o) => {
|
|
31
|
+
(Object.values.Ω = [['"']], Object.values(o)).forEach(__assignType((c) => c instanceof SFDataContext && c.distory(), ['c', '', 'P"2!"/"']));
|
|
32
|
+
}, ['o', '', 'P"2!"/"']));
|
|
33
|
+
this.conetxt._instances = this.conetxt._instances.filter(__assignType((i) => i !== this, ['i', '', 'P"2!"/"']));
|
|
34
|
+
}
|
|
35
|
+
static __type = [() => RenderContext, 'conetxt', 'dom', () => __ΩRenderInstance, 'rawInstance', () => __ΩRenderDataContext, 'dataContext', 'constructor', 'unMount', 'WarpRenderInstance', 'PP7!2":9!2#:9n$2%:9n&2\':9"0(P"0)5w*'];
|
|
36
|
+
}
|
|
37
|
+
const __ΩIRender = ['fetchResource', () => __ΩRenderDataContext, 'dataContext', 'prop', () => RenderContext, 'chrild', 'renderToString', 'dom', () => __ΩRenderDataContext, () => RenderContext, () => __ΩRenderInstance, 'mount', () => __ΩRenderDataContext, () => RenderContext, () => __ΩRenderInstance, 'hydrate', 'IRender', 'PPP$`$J1!8Pn"2#"2$P7%2&P&&`J1\'8P!2(n)2#"2$P7*2&n+1,8P!2(n-2#"2$P7.2&n/108Mw1y'];
|
|
38
|
+
export { __ΩIRender as __ΩIRender };
|
|
39
|
+
export class RenderContext {
|
|
40
|
+
_systemDataContext;
|
|
41
|
+
_render;
|
|
42
|
+
_prop;
|
|
43
|
+
_child;
|
|
44
|
+
constructor(_systemDataContext, _render, _prop,
|
|
45
|
+
// 结尾始终要跟一个空的RenderContext
|
|
46
|
+
// 原因:比如一个layout命中了 但是下面的页面没有命中,但是layout切换页面时,layout本身不应该重新渲染,所以需要一开始给它一个占位的空姐点,然后更新这个空节点
|
|
47
|
+
_child) {
|
|
48
|
+
this._systemDataContext = _systemDataContext;
|
|
49
|
+
this._render = _render;
|
|
50
|
+
this._prop = _prop;
|
|
51
|
+
this._child = _child;
|
|
52
|
+
}
|
|
53
|
+
static createNoop(systemDataContext) {
|
|
54
|
+
return new RenderContext(systemDataContext, {}, {});
|
|
55
|
+
}
|
|
56
|
+
static create(systemDataContext, render, prop, child = this.createNoop(systemDataContext)) {
|
|
57
|
+
return new RenderContext(systemDataContext, render, prop, child);
|
|
58
|
+
}
|
|
59
|
+
get render() {
|
|
60
|
+
return this._render;
|
|
61
|
+
}
|
|
62
|
+
get prop() {
|
|
63
|
+
return this._prop;
|
|
64
|
+
}
|
|
65
|
+
get child() {
|
|
66
|
+
return this._child;
|
|
67
|
+
}
|
|
68
|
+
async warpRenderToString(dataContext) {
|
|
69
|
+
if (this._child) {
|
|
70
|
+
return ((await this.render.renderToString?.({
|
|
71
|
+
system: forkDataContextRecord(this._systemDataContext),
|
|
72
|
+
user: forkDataContextRecord(dataContext),
|
|
73
|
+
}, this.prop, this._child)) || "");
|
|
74
|
+
}
|
|
75
|
+
return "";
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
_instances = [];
|
|
81
|
+
mount(dom, dataContext) {
|
|
82
|
+
let instance = {};
|
|
83
|
+
const fullDataContext = {
|
|
84
|
+
system: forkDataContextRecord(this._systemDataContext),
|
|
85
|
+
user: forkDataContextRecord(dataContext),
|
|
86
|
+
};
|
|
87
|
+
if (this._child) {
|
|
88
|
+
if (this.render.mount) {
|
|
89
|
+
instance = this.render.mount(dom, fullDataContext, this.prop, this._child);
|
|
90
|
+
}
|
|
91
|
+
else if (this.render.renderToString) {
|
|
92
|
+
Promise.resolve(this.render.renderToString(fullDataContext, this.prop, this._child)).then(__assignType((html) => (dom.innerHTML = html), ['html', '', 'P"2!"/"']));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return new WarpRenderInstance(this, dom, instance, fullDataContext);
|
|
96
|
+
}
|
|
97
|
+
hydrate(dom, dataContext) {
|
|
98
|
+
let instance = {};
|
|
99
|
+
const fullDataContext = {
|
|
100
|
+
system: forkDataContextRecord(this._systemDataContext),
|
|
101
|
+
user: forkDataContextRecord(dataContext),
|
|
102
|
+
};
|
|
103
|
+
if (this._child) {
|
|
104
|
+
if (this.render.hydrate) {
|
|
105
|
+
instance = this.render.hydrate(dom, fullDataContext, this.prop, this._child);
|
|
106
|
+
}
|
|
107
|
+
else if (this.render.renderToString) {
|
|
108
|
+
// const vDom = parseHtmlToVDom(
|
|
109
|
+
// this.render.renderToString(this.prop, this._child),
|
|
110
|
+
// );
|
|
111
|
+
const routeDoms = findRouteDom(dom);
|
|
112
|
+
routeDoms.forEach(__assignType((r) => this.child.hydrate(r, dataContext), ['r', '', 'P"2!"/"']));
|
|
113
|
+
}
|
|
114
|
+
else if (this.render.mount) {
|
|
115
|
+
instance = this.render.mount(dom, fullDataContext, this.prop, this._child);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return new WarpRenderInstance(this, dom, instance, fullDataContext);
|
|
119
|
+
}
|
|
120
|
+
unmountAll() {
|
|
121
|
+
this._instances.forEach(__assignType((i) => i.unMount(), ['i', '', 'P"2!"/"']));
|
|
122
|
+
}
|
|
123
|
+
async updateTree(node, allowRender = true) {
|
|
124
|
+
let shoudldRerender = false;
|
|
125
|
+
const unRerenderTask = [];
|
|
126
|
+
if (this._render !== node._render) {
|
|
127
|
+
this._render = node._render;
|
|
128
|
+
if (allowRender) {
|
|
129
|
+
shoudldRerender = true;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (this._prop !== node._prop) {
|
|
133
|
+
this._prop = node._prop;
|
|
134
|
+
if (allowRender) {
|
|
135
|
+
if (this._instances.every(__assignType((i) => i.rawInstance.updateProp, ['i', '', 'P"2!"/"']))) {
|
|
136
|
+
unRerenderTask.push(() => {
|
|
137
|
+
this._instances.forEach(__assignType((i) => {
|
|
138
|
+
i.rawInstance.updateProp(node._prop);
|
|
139
|
+
}, ['i', '', 'P"2!"/"']));
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
shoudldRerender = true;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
let childUpdated = false;
|
|
148
|
+
let shoudUpdateSubtree = false;
|
|
149
|
+
if (this._child !== node._child) {
|
|
150
|
+
if (!this._child || !node._child) {
|
|
151
|
+
this._child = node._child;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
shoudUpdateSubtree = true;
|
|
155
|
+
}
|
|
156
|
+
if (this._instances.every(__assignType((i) => i.rawInstance.updateChild, ['i', '', 'P"2!"/"']))) {
|
|
157
|
+
childUpdated = true;
|
|
158
|
+
unRerenderTask.push(() => {
|
|
159
|
+
this._instances.forEach(__assignType((i) => {
|
|
160
|
+
if (i.rawInstance.updateChild) {
|
|
161
|
+
i.rawInstance.updateChild(node._child);
|
|
162
|
+
}
|
|
163
|
+
}, ['i', '', 'P"2!"/"']));
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
let isRerender = allowRender && shoudldRerender;
|
|
168
|
+
if (shoudUpdateSubtree) {
|
|
169
|
+
await this._child?.updateTree(node._child, allowRender && !childUpdated && !isRerender);
|
|
170
|
+
}
|
|
171
|
+
if (isRerender) {
|
|
172
|
+
await Promise.all(this._instances.map(__assignType(async (i) => {
|
|
173
|
+
i.unMount();
|
|
174
|
+
await this.mount(i.dom, i.dataContext.user);
|
|
175
|
+
}, ['i', '', 'P"2!"/"'])));
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
await Promise.all(unRerenderTask.map(__assignType((i) => i(), ['i', '', 'P"2!"/"'])));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
static __type = [() => __ΩSystemRenderDataContext, '_systemDataContext', () => __ΩIRender, '_render', '_prop', () => RenderContext, '_child', 'constructor', () => __ΩSystemRenderDataContext, 'systemDataContext', 'createNoop', () => __ΩSystemRenderDataContext, () => __ΩIRender, 'render', 'prop', () => RenderContext, 'child', () => this.createNoop(systemDataContext), 'create', () => __ΩUserRenderDataContext, 'dataContext', 'warpRenderToString', () => WarpRenderInstance, '_instances', function () { return []; }, 'dom', () => __ΩUserRenderDataContext, 'mount', () => __ΩUserRenderDataContext, 'hydrate', 'unmountAll', () => RenderContext, 'node', 'allowRender', 'updateTree', 'RenderContext', 'Pn!2";n#2$;"2%;P7&2\'8;"0(Pn)2*"0+sPn,2*n-2."2/P7021>2"03s!!!Pn425"06P77F38>9P!2:n;25"0<P!2:n=25"0>P"0?PP7@2A"2B"0C5wD'];
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/view/render/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
function __assignType(fn, args) {
|
|
2
|
+
fn.__type = args;
|
|
3
|
+
return fn;
|
|
4
|
+
}
|
|
5
|
+
/*@ts-ignore*/
|
|
6
|
+
import { __ΩRenderDataContext } from "../data-context/index.js";
|
|
7
|
+
import { renderVDomToString } from "../html/render-v-dom-to-string.js";
|
|
8
|
+
/*@ts-ignore*/
|
|
9
|
+
import { __ΩHTMLVNode } from "../html/types.js";
|
|
10
|
+
/*@ts-ignore*/
|
|
11
|
+
import { __ΩIRender } from "./render.js";
|
|
12
|
+
import { RenderContext } from "./render.js";
|
|
13
|
+
export class SFVDomRender {
|
|
14
|
+
domFn;
|
|
15
|
+
constructor(domFn) {
|
|
16
|
+
this.domFn = domFn;
|
|
17
|
+
}
|
|
18
|
+
dom = [];
|
|
19
|
+
async fetchResource() {
|
|
20
|
+
if (typeof this.domFn === "function") {
|
|
21
|
+
const res = await this.domFn();
|
|
22
|
+
this.dom =
|
|
23
|
+
typeof res === "object" && "default" in res ? res.default : res;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.dom = this.domFn;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
renderToString(context, prop, chrild) {
|
|
30
|
+
return renderVDomToString(this.dom, {
|
|
31
|
+
customizeChildrenRender: __assignType((el) => {
|
|
32
|
+
if (el.tagName === "sf-route") {
|
|
33
|
+
return () => chrild.warpRenderToString(context.user);
|
|
34
|
+
}
|
|
35
|
+
}, ['el', '', 'P"2!"/"']),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
static __type = [() => __ΩHTMLVNode, () => __ΩHTMLVNode, () => __ΩHTMLVNode, () => __ΩHTMLVNode, () => __ΩHTMLVNode, () => __ΩHTMLVNode, 'default', '', 'domFn', 'constructor', () => __ΩHTMLVNode, () => __ΩHTMLVNode, 'dom', function () { return []; }, 'fetchResource', () => __ΩRenderDataContext, 'context', 'prop', () => RenderContext, 'chrild', 'renderToString', () => __ΩIRender, 'SFVDomRender', 'PPn!n"FPPn#n$FPPn%n&FJ4\'MJ`/(J2);9"0*Pn+n,FJ3-;>.P"0/Pn021"22P7324"055n6x"w7'];
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=sf-v-dom-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sf-v-dom-render.js","sourceRoot":"","sources":["../../../src/view/render/sf-v-dom-render.ts"],"names":[],"mappings":";;;;;qCAAkC,0BAA0B;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;;6BAC7C,kBAAkB;;2BACL,aAAa;AAApD,OAAO,EAAW,aAAa,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,OAAO,YAAY;IAEN;IADlB,YACkB,KAKZ;QALY,UAAK,GAAL,KAAK,CAKjB;IACH,CAAC;IACI,GAAG,GAA4B,EAAE,CAAC;IAC1C,KAAK,CAAC,aAAa;QAClB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG;gBACP,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAClE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,CAAC;IACF,CAAC;IACD,cAAc,CAAC,OAA0B,EAAE,IAAS,EAAE,MAAqB;QAC1E,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE;YACnC,uBAAuB,eAAE,CAAC,EAAE,EAAE,EAAE;gBAC/B,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBAC/B,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC;YACF,CAAC,wBAAA;SACD,CAAC,CAAC;IACJ,CAAC;wPAlBsC,EAAE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const __ΩRecord = ['K', 'T', 'Record', 'l\'e#"Rb!b"Pde"!N#!w#y'];
|
|
2
|
+
/*@ts-ignore*/
|
|
3
|
+
import { __ΩIRender } from "./render/render.js";
|
|
4
|
+
const __ΩViewMeta = ['title', () => __ΩRecord, 'htmlMeta', 'ViewMeta', 'P&4!&&o"#4#8Mw$y'];
|
|
5
|
+
export { __ΩViewMeta as __ΩViewMeta };
|
|
6
|
+
const __ΩViewInfo = ['T', () => __ΩIRender, 'render', () => __ΩViewMeta, 'data', () => __ΩViewMeta, '', 'meta', 'ViewInfo', '"c!Pn"4#Pn$Pe$!2%n&/\'J4(8Mw)y'];
|
|
7
|
+
export { __ΩViewInfo as __ΩViewInfo };
|
|
8
|
+
const __ΩRenderConfig = ['baseUrl', 'RenderConfig', 'P&4!Mw"y'];
|
|
9
|
+
export { __ΩRenderConfig as __ΩRenderConfig };
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/view/types.ts"],"names":[],"mappings":";;2BAAwB,oBAAoB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
function __assignType(fn, args) {
|
|
2
|
+
fn.__type = args;
|
|
3
|
+
return fn;
|
|
4
|
+
}
|
|
5
|
+
import { routeTagName } from "../const.js";
|
|
6
|
+
export function findRouteDom(root = document.body) {
|
|
7
|
+
const result = [];
|
|
8
|
+
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
|
|
9
|
+
acceptNode: __assignType(function acceptNode(node) {
|
|
10
|
+
if (node instanceof HTMLElement &&
|
|
11
|
+
node.tagName.toLocaleLowerCase() === routeTagName.toLocaleLowerCase()) {
|
|
12
|
+
result.push(node);
|
|
13
|
+
return NodeFilter.FILTER_REJECT; // 跳过子节点,因为它们是嵌套的
|
|
14
|
+
}
|
|
15
|
+
return NodeFilter.FILTER_ACCEPT;
|
|
16
|
+
}, ['node', 'acceptNode', 'P"2!"/"']),
|
|
17
|
+
});
|
|
18
|
+
while (walker.nextNode()) { }
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
findRouteDom.__type = ['root', () => document.body, 'findRouteDom', 'P!2!>""/#'];
|
|
22
|
+
//# sourceMappingURL=find-route-dom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-route-dom.js","sourceRoot":"","sources":["../../../src/view/utils/find-route-dom.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,YAAY,CAAC,OAAoB,QAAQ,CAAC,IAAI;IAC7D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE;QACvE,UAAU,wBAAV,UAAU,CAAC,IAAI;YACd,IACC,IAAI,YAAY,WAAW;gBAC3B,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,YAAY,CAAC,iBAAiB,EAAE,EACpE,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC,iBAAiB;YACnD,CAAC;YACD,OAAO,UAAU,CAAC,aAAa,CAAC;QACjC,CAAC;KACD,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA,CAAC;IAC5B,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const __ΩReturnType = ['T', 'args', '', 'ReturnType', 'l>e"!R"RPde#!P"@2"h"!/#qk#\'QRb!Pde"!p)w$y'];
|
|
2
|
+
function __assignType(fn, args) {
|
|
3
|
+
fn.__type = args;
|
|
4
|
+
return fn;
|
|
5
|
+
}
|
|
6
|
+
import { parseRoute } from "../../../route/index.js";
|
|
7
|
+
/*@ts-ignore*/
|
|
8
|
+
import { __ΩViewMeta } from "../../types.js";
|
|
9
|
+
import { findRouteDom } from "../find-route-dom.js";
|
|
10
|
+
import { createRootRenderContext, ssrToBrowserDataKey, updateRootRenderContext, } from "./common.js";
|
|
11
|
+
function listenerRoute(callback) {
|
|
12
|
+
const rawPush = history.pushState;
|
|
13
|
+
history.pushState = __assignType((data, un, url) => {
|
|
14
|
+
rawPush.call(history, data, un, url);
|
|
15
|
+
if (url)
|
|
16
|
+
setTimeout(callback);
|
|
17
|
+
}, ['data', 'un', 'url', '', 'P"2!"2""2#"/$']);
|
|
18
|
+
window.addEventListener("popstate", () => {
|
|
19
|
+
setTimeout(callback);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
listenerRoute.__type = ['', 'callback', 'listenerRoute', 'PP$/!2""/#'];
|
|
23
|
+
function handleMeta(meta) {
|
|
24
|
+
document.title = meta.title;
|
|
25
|
+
}
|
|
26
|
+
handleMeta.__type = [() => __ΩViewMeta, 'meta', 'handleMeta', 'Pn!2""/#'];
|
|
27
|
+
export const clientRender = __assignType(async (routes) => {
|
|
28
|
+
const { config, pageData } = window[ssrToBrowserDataKey];
|
|
29
|
+
delete window[ssrToBrowserDataKey];
|
|
30
|
+
const route = routes("GET", location.pathname);
|
|
31
|
+
const getData = async () => {
|
|
32
|
+
const res = await fetch(location.href);
|
|
33
|
+
if (res.headers.get("content-type")?.includes("json")) {
|
|
34
|
+
return await res.json();
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
};
|
|
38
|
+
const context = await createRootRenderContext(config, route, () => pageData);
|
|
39
|
+
handleMeta(context.meta);
|
|
40
|
+
listenerRoute(async () => {
|
|
41
|
+
const route = routes("GET", location.pathname);
|
|
42
|
+
const c = await updateRootRenderContext(context, route, getData);
|
|
43
|
+
handleMeta(c.meta);
|
|
44
|
+
});
|
|
45
|
+
const addedEl = (WeakSet.Ω = [['!']], new WeakSet());
|
|
46
|
+
function handleAClick(ev) {
|
|
47
|
+
const target = ev.target;
|
|
48
|
+
if (target.download || target.target || ev.defaultPrevented)
|
|
49
|
+
return;
|
|
50
|
+
const rawHref = target.getAttribute("href");
|
|
51
|
+
if (!rawHref || rawHref.startsWith("#"))
|
|
52
|
+
return;
|
|
53
|
+
const route = routes("GET", target.pathname);
|
|
54
|
+
if (route.finalRoute) {
|
|
55
|
+
history.pushState(null, "", target.href.substring(target.origin.length));
|
|
56
|
+
ev.preventDefault();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
handleAClick.__type = ['ev', 'handleAClick', 'P!2!"/"'];
|
|
60
|
+
window.addEventListener("click", __assignType((ev) => {
|
|
61
|
+
if (ev.target instanceof HTMLElement) {
|
|
62
|
+
let el = ev.target;
|
|
63
|
+
while (el && el !== document.body) {
|
|
64
|
+
if (el instanceof HTMLAnchorElement && !addedEl.has(el)) {
|
|
65
|
+
addedEl.add(el);
|
|
66
|
+
el.addEventListener("click", handleAClick, true);
|
|
67
|
+
}
|
|
68
|
+
el = el.parentElement;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, ['ev', '', 'P"2!"/"']), true);
|
|
72
|
+
const routesElements = findRouteDom();
|
|
73
|
+
routesElements.forEach(__assignType((el) => {
|
|
74
|
+
context.render.hydrate(el, {});
|
|
75
|
+
}, ['el', '', 'P"2!"/"']));
|
|
76
|
+
}, [() => __ΩReturnType, () => parseRoute, 'routes', '', 'Pi"o!"2#"/$']);
|
|
77
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/view/utils/get-render/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const __ΩReturnType = ['T', 'args', '', 'ReturnType', 'l>e"!R"RPde#!P"@2"h"!/#qk#\'QRb!Pde"!p)w$y'];
|
|
2
|
+
const __ΩPick = ['T', 'K', 'Pick', 'l+e#!e"!fRb!b"Pde""N#!w#y'];
|
|
3
|
+
function __assignType(fn, args) {
|
|
4
|
+
fn.__type = args;
|
|
5
|
+
return fn;
|
|
6
|
+
}
|
|
7
|
+
/*@ts-ignore*/
|
|
8
|
+
import { __ΩRouteType } from "../../../route/index.js";
|
|
9
|
+
/*@ts-ignore*/
|
|
10
|
+
import { __ΩSystemRenderDataContext } from "../../data-context/index.js";
|
|
11
|
+
import { SFRawDataContext, } from "../../data-context/index.js";
|
|
12
|
+
import { getLayots } from "../../layout.js";
|
|
13
|
+
import { RenderContext } from "../../render/index.js";
|
|
14
|
+
/*@ts-ignore*/
|
|
15
|
+
import { __ΩRenderConfig, __ΩViewMeta } from "../../types.js";
|
|
16
|
+
import { SFWebRequest } from "../../../request/index.js";
|
|
17
|
+
function createRawDataContext(config, route) {
|
|
18
|
+
const routeRawcontext = new SFRawDataContext(route);
|
|
19
|
+
const { baseUrl } = config;
|
|
20
|
+
return {
|
|
21
|
+
update: __assignType(function update(route) {
|
|
22
|
+
routeRawcontext.update(route);
|
|
23
|
+
}, [() => __ΩRouteType, "GET", 'route', 'update', 'P."o!"2#"/$']),
|
|
24
|
+
createChild: __assignType(function createChild() {
|
|
25
|
+
return {
|
|
26
|
+
route: routeRawcontext.createChild(),
|
|
27
|
+
request: new SFWebRequest(baseUrl),
|
|
28
|
+
baseUrl,
|
|
29
|
+
};
|
|
30
|
+
}, [() => __ΩSystemRenderDataContext, 'createChild', 'Pn!/"']),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
createRawDataContext.__type = [() => __ΩRenderConfig, 'config', () => __ΩRouteType, "GET", 'route', 'createRawDataContext', 'Pn!2".$o#"2%"/&'];
|
|
34
|
+
const __ΩRootRenderContext = [() => RenderContext, 'render', () => __ΩReturnType, () => createRawDataContext, 'rawSystemDataContext', () => __ΩViewMeta, 'meta', 'RootRenderContext', 'PP7!4"i$o#"4%n&4\'Mw(y'];
|
|
35
|
+
export { __ΩRootRenderContext as __ΩRootRenderContext };
|
|
36
|
+
async function createRenderContext(route, dataFn, dataContext) {
|
|
37
|
+
if (route.finalRoute?.context?.view) {
|
|
38
|
+
const { obj, propertyKey } = route.finalRoute;
|
|
39
|
+
let view = route.finalRoute.context.view;
|
|
40
|
+
const layouts = route.allRoute.flatMap(__assignType((r) => getLayots(r.obj), ['r', '', 'P"2!"/"']));
|
|
41
|
+
const [data] = await Promise.all([
|
|
42
|
+
typeof obj[propertyKey] === "function"
|
|
43
|
+
? dataFn()
|
|
44
|
+
: obj[propertyKey],
|
|
45
|
+
view.render.fetchResource?.(),
|
|
46
|
+
...layouts.map(__assignType((l) => l.render.fetchResource?.(), ['l', '', 'P"2!"/"'])),
|
|
47
|
+
]);
|
|
48
|
+
let render = RenderContext.create(dataContext.createChild(), view.render, data);
|
|
49
|
+
let meta = typeof view.meta === "function"
|
|
50
|
+
? view.meta(data)
|
|
51
|
+
: view.meta || { title: "" };
|
|
52
|
+
return layouts.reduceRight(__assignType(({ render, meta }, currentValue) => {
|
|
53
|
+
return {
|
|
54
|
+
render: RenderContext.create(dataContext.createChild(), currentValue.render, undefined, render),
|
|
55
|
+
meta: typeof currentValue.meta === "function"
|
|
56
|
+
? currentValue.meta(meta)
|
|
57
|
+
: currentValue.meta || meta,
|
|
58
|
+
};
|
|
59
|
+
}, ['param0', 'currentValue', '', 'P"2!"2""/#']), { render, meta });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return {
|
|
63
|
+
render: RenderContext.createNoop(dataContext.createChild()),
|
|
64
|
+
meta: { title: "" },
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
createRenderContext.__type = [() => __ΩRouteType, "GET", 'route', '', 'dataFn', () => __ΩReturnType, () => createRawDataContext, 'dataContext', () => __ΩPick, () => __ΩRootRenderContext, "render", "meta", 'createRenderContext', 'P."o!"2#P"/$2%i\'o&"2(n*P.+.,Jo)#`/-'];
|
|
69
|
+
export async function createRootRenderContext(config, route, dataFn) {
|
|
70
|
+
const rawSystemDataContext = createRawDataContext(config, route);
|
|
71
|
+
return {
|
|
72
|
+
...(await createRenderContext(route, dataFn, rawSystemDataContext)),
|
|
73
|
+
rawSystemDataContext,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
createRootRenderContext.__type = [() => __ΩRenderConfig, 'config', () => __ΩRouteType, "GET", 'route', '', 'dataFn', () => __ΩRootRenderContext, 'createRootRenderContext', 'Pn!2".$o#"2%P"/&2\'n(`/)'];
|
|
77
|
+
export async function updateRootRenderContext(rootContext, route, dataFn) {
|
|
78
|
+
const newRenderContext = await createRenderContext(route, dataFn, rootContext.rawSystemDataContext);
|
|
79
|
+
rootContext.meta = newRenderContext.meta;
|
|
80
|
+
rootContext.render.updateTree(newRenderContext.render);
|
|
81
|
+
rootContext.rawSystemDataContext.update(route);
|
|
82
|
+
return rootContext;
|
|
83
|
+
}
|
|
84
|
+
updateRootRenderContext.__type = [() => __ΩRootRenderContext, 'rootContext', () => __ΩRouteType, "GET", 'route', '', 'dataFn', 'updateRootRenderContext', 'Pn!2".$o#"2%P"/&2\'"/('];
|
|
85
|
+
export const routeElementSelector = "sf-route";
|
|
86
|
+
export const ssrToBrowserDataKey = "__SFWebAppInitData";
|
|
87
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/view/utils/get-render/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/view/utils/get-render/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
function __assignType(fn, args) {
|
|
2
|
+
fn.__type = args;
|
|
3
|
+
return fn;
|
|
4
|
+
}
|
|
5
|
+
import { ResponseWithMeta } from "../../../return-types/index.js";
|
|
6
|
+
import { parseHtmlToVDom, renderVDomToString } from "../../html/index.js";
|
|
7
|
+
import { createRootRenderContext, routeElementSelector, ssrToBrowserDataKey, } from "./common.js";
|
|
8
|
+
export const createServerRender = __assignType((context) => {
|
|
9
|
+
const htmlVDdom = parseHtmlToVDom(context.indexHtml);
|
|
10
|
+
return __assignType(async (prop, next) => {
|
|
11
|
+
const config = {
|
|
12
|
+
baseUrl: "/",
|
|
13
|
+
};
|
|
14
|
+
const nextPromise = next(prop);
|
|
15
|
+
const { accept, "sec-fetch-dest": fetchDest } = prop.header;
|
|
16
|
+
let pageData = undefined;
|
|
17
|
+
const rootContext = prop.method === "GET" &&
|
|
18
|
+
prop.route.finalRoute?.context?.view &&
|
|
19
|
+
(accept?.includes("text/html") || ["document"].includes(fetchDest))
|
|
20
|
+
? await createRootRenderContext(config, prop.route, async () => {
|
|
21
|
+
const ret = await nextPromise;
|
|
22
|
+
pageData = ret.data;
|
|
23
|
+
return ret.data;
|
|
24
|
+
})
|
|
25
|
+
: undefined;
|
|
26
|
+
if (rootContext) {
|
|
27
|
+
const { render, meta } = rootContext;
|
|
28
|
+
const nextRet = await nextPromise;
|
|
29
|
+
const res = await render.warpRenderToString({});
|
|
30
|
+
return new ResponseWithMeta(renderVDomToString(htmlVDdom, {
|
|
31
|
+
customizeChildrenRender: __assignType((dom) => {
|
|
32
|
+
if (dom.tagName === routeElementSelector) {
|
|
33
|
+
return () => res;
|
|
34
|
+
}
|
|
35
|
+
if (dom.tagName === "head") {
|
|
36
|
+
return __assignType((dom, raw) => {
|
|
37
|
+
let res = [
|
|
38
|
+
`<script>window.${ssrToBrowserDataKey}=${JSON.stringify({ config, pageData })}</script>`,
|
|
39
|
+
raw(),
|
|
40
|
+
];
|
|
41
|
+
res.push(`<title>${meta.title}</title>`);
|
|
42
|
+
if (meta.htmlMeta) {
|
|
43
|
+
Object.entries(meta.htmlMeta).forEach(__assignType(([k, v]) => res.push(`<meta name="${k}" content="${v}">`), ['param0', '', 'P"2!"/"']));
|
|
44
|
+
}
|
|
45
|
+
return res.join("");
|
|
46
|
+
}, ['dom', 'raw', '', 'P"2!"2""/#']);
|
|
47
|
+
}
|
|
48
|
+
}, ['dom', '', 'P"2!"/"']),
|
|
49
|
+
}), {
|
|
50
|
+
...nextRet,
|
|
51
|
+
header: {
|
|
52
|
+
"content-type": "text/html; charset=utf-8",
|
|
53
|
+
...nextRet.header,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return nextPromise;
|
|
58
|
+
}, ['prop', 'next', '', 'P"2!"2""/#']);
|
|
59
|
+
}, ['context', '', 'P"2!"/"']);
|
|
60
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../src/view/utils/get-render/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/view/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Get } from "../route/index.js";
|
|
2
|
+
/*@ts-ignore*/
|
|
3
|
+
import { __ΩIRender } from "./render/render.js";
|
|
4
|
+
/*@ts-ignore*/
|
|
5
|
+
import { __ΩViewInfo } from "./types.js";
|
|
6
|
+
export function View(path, render, meta) {
|
|
7
|
+
return Get(path, { view: { render, meta } });
|
|
8
|
+
}
|
|
9
|
+
View.__type = ['path', () => __ΩIRender, 'render', () => __ΩViewInfo, "meta", 'meta', 'View', 'P&2!n"2#n$.%f2&8"/\''];
|
|
10
|
+
//# sourceMappingURL=view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/view/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;;2BAChB,oBAAoB;;4BACnB,YAAY;AAErC,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,MAAe,EAAE,IAAuB;IAC1E,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@thestarweb/star-framework-app-web",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Star Framework Web App",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "src/index.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"access": "public"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tspc -p tsconfig.build.json",
|
|
13
|
+
"dev": "tspc -p tsconfig.build.json --watch",
|
|
14
|
+
"test": "vitest"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@deepkit/type": "^1.0.19",
|
|
18
|
+
"@deepkit/type-compiler": "^1.0.0",
|
|
19
|
+
"@thestarweb/star-framework-cli": "^0.1.0",
|
|
20
|
+
"@thestarweb/star-framework-param-helper": "^0.1.0",
|
|
21
|
+
"@thestarweb/star-framework-route": "^0.1.0",
|
|
22
|
+
"@thestarweb/star-framework-utils": "^0.1.0",
|
|
23
|
+
"@thestarweb/star-framework-web-runtime-node": "^0.1.0",
|
|
24
|
+
"node-mocks-http": "^1.18.1",
|
|
25
|
+
"qs": "6.15.3",
|
|
26
|
+
"tslib": "^2.8.1",
|
|
27
|
+
"txml": "^6.0.3"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"@thestarweb/star-framework-cli": "^0.0.1",
|
|
31
|
+
"@types/qs": "6.15.1"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/node": "^26.0.1",
|
|
35
|
+
"ts-patch": "^4.0.1",
|
|
36
|
+
"typescript": "^6.0.3",
|
|
37
|
+
"vitest": "^4.1.9"
|
|
38
|
+
},
|
|
39
|
+
"license": "ISC",
|
|
40
|
+
"gitHead": "8161c026c503fbe0a7a825d9c1efbd7e527705c4"
|
|
41
|
+
}
|