@kizenapps/cli 0.7.0 → 0.9.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.
Files changed (87) hide show
  1. package/dist/electron/main.js +9 -8
  2. package/dist/electron/main.js.map +1 -1
  3. package/dist/index.js +579 -114
  4. package/dist/index.js.map +1 -1
  5. package/dist/nwjs/shell/icon.png +0 -0
  6. package/dist/nwjs/shell/index.html +200 -0
  7. package/dist/nwjs/shell/package.json +16 -0
  8. package/dist/viewer/assets/fa-core-DAYjf9Yn.js +558 -0
  9. package/dist/viewer/assets/fa-core-Ff8SZmm_.js +558 -0
  10. package/dist/viewer/assets/index-47Vh9MH0.js +17 -0
  11. package/dist/viewer/assets/index-6uunWX8M.js +17 -0
  12. package/dist/viewer/assets/index-B48OpZHg.js +17 -0
  13. package/dist/viewer/assets/index-BFfw7eD7.js +17 -0
  14. package/dist/viewer/assets/index-BFyUUb06.js +17 -0
  15. package/dist/viewer/assets/index-BL-Yu7Bf.js +17 -0
  16. package/dist/viewer/assets/index-BUmv8vz7.js +17 -0
  17. package/dist/viewer/assets/index-BZ4HmEz8.js +17 -0
  18. package/dist/viewer/assets/index-BZIXccTd.js +17 -0
  19. package/dist/viewer/assets/index-Bk9hnfnO.js +17 -0
  20. package/dist/viewer/assets/index-C0SIHm9A.js +17 -0
  21. package/dist/viewer/assets/index-CDd-WK6Y.js +17 -0
  22. package/dist/viewer/assets/index-CDxQqP40.js +17 -0
  23. package/dist/viewer/assets/{index-C_6izRRh.js → index-CGJzvpL5.js} +7 -7
  24. package/dist/viewer/assets/index-CIarX3Lt.js +17 -0
  25. package/dist/viewer/assets/index-CIfVP45E.js +17 -0
  26. package/dist/viewer/assets/index-CJeb7uFu.css +2 -0
  27. package/dist/viewer/assets/index-CbwLb2S_.js +17 -0
  28. package/dist/viewer/assets/index-CsfWgoID.js +17 -0
  29. package/dist/viewer/assets/index-CvWmkIY5.js +17 -0
  30. package/dist/viewer/assets/index-Cy-weKfG.css +2 -0
  31. package/dist/viewer/assets/index-Cym12l2M.js +17 -0
  32. package/dist/viewer/assets/index-D0W0oANg.js +17 -0
  33. package/dist/viewer/assets/index-DCPtqd3W.js +17 -0
  34. package/dist/viewer/assets/index-DF_zYdLw.js +17 -0
  35. package/dist/viewer/assets/index-DGqxQcUx.js +17 -0
  36. package/dist/viewer/assets/index-DK0OVb7V.js +17 -0
  37. package/dist/viewer/assets/index-DKjVFdzw.js +17 -0
  38. package/dist/viewer/assets/index-DLhj0I_2.js +17 -0
  39. package/dist/viewer/assets/index-DPS_ZjbM.js +17 -0
  40. package/dist/viewer/assets/index-DSbHkhcS.js +17 -0
  41. package/dist/viewer/assets/index-DTbmNtEU.js +17 -0
  42. package/dist/viewer/assets/index-DUYd6RpI.js +17 -0
  43. package/dist/viewer/assets/index-DZwYe1wZ.css +2 -0
  44. package/dist/viewer/assets/index-DkRokbYc.js +17 -0
  45. package/dist/viewer/assets/index-DtOWzkR5.js +17 -0
  46. package/dist/viewer/assets/index-DuvXujkm.js +17 -0
  47. package/dist/viewer/assets/index-Dv0mX-oM.js +17 -0
  48. package/dist/viewer/assets/index-DyXisBY9.css +2 -0
  49. package/dist/viewer/assets/index-Nm1xKWTO.js +17 -0
  50. package/dist/viewer/assets/index-ZBdAq6dF.js +17 -0
  51. package/dist/viewer/assets/index-ZOxL_JJZ.js +17 -0
  52. package/dist/viewer/assets/index-kMMOwjlY.js +17 -0
  53. package/dist/viewer/assets/{index--m1PKX6N.js → index-ov2oU6RI.js} +7 -7
  54. package/dist/viewer/assets/index-uF6u0kT8.js +17 -0
  55. package/dist/viewer/assets/index-xbDHMSaa.css +2 -0
  56. package/dist/viewer/assets/react-D7PmSb6e.js +9 -0
  57. package/dist/viewer/assets/react-DIjeYlvh.js +9 -0
  58. package/dist/viewer/index.html +4 -4
  59. package/package.json +4 -4
  60. package/dist/viewer/assets/index-2OcBnmZB.js +0 -17
  61. package/dist/viewer/assets/index-7ah1RuPy.js +0 -17
  62. package/dist/viewer/assets/index-B3gNsKTt.js +0 -17
  63. package/dist/viewer/assets/index-B40AtXqk.js +0 -17
  64. package/dist/viewer/assets/index-B4ikC-wc.js +0 -17
  65. package/dist/viewer/assets/index-BKOfPpLS.js +0 -17
  66. package/dist/viewer/assets/index-BM3JrC-1.js +0 -17
  67. package/dist/viewer/assets/index-BUnK11-F.js +0 -17
  68. package/dist/viewer/assets/index-Bc7IZVr6.js +0 -17
  69. package/dist/viewer/assets/index-C1KzcpVj.js +0 -17
  70. package/dist/viewer/assets/index-CBBwr2o_.js +0 -17
  71. package/dist/viewer/assets/index-CHtXWYIY.js +0 -17
  72. package/dist/viewer/assets/index-CN9NvJkQ.js +0 -17
  73. package/dist/viewer/assets/index-CNKPBxhv.js +0 -17
  74. package/dist/viewer/assets/index-CgzK6zig.js +0 -17
  75. package/dist/viewer/assets/index-Cw2cxYy2.js +0 -17
  76. package/dist/viewer/assets/index-D06uhGtQ.js +0 -17
  77. package/dist/viewer/assets/index-DAHWT-g0.js +0 -17
  78. package/dist/viewer/assets/index-DAxJgHat.js +0 -17
  79. package/dist/viewer/assets/index-DF_geUaW.js +0 -17
  80. package/dist/viewer/assets/index-DUgUEouL.css +0 -2
  81. package/dist/viewer/assets/index-DcGGXuA3.js +0 -17
  82. package/dist/viewer/assets/index-DlVmY-nR.js +0 -17
  83. package/dist/viewer/assets/index-FZw9Ev_R.js +0 -17
  84. package/dist/viewer/assets/index-M1Obm_99.js +0 -17
  85. package/dist/viewer/assets/index-_kM1Ri7v.js +0 -17
  86. package/dist/viewer/assets/index-aTt_sTlu.js +0 -17
  87. package/dist/viewer/assets/index-vYFGGFc2.js +0 -17
@@ -0,0 +1,200 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Kizen App Builder</title>
6
+ <style>
7
+ html, body {
8
+ margin: 0;
9
+ padding: 0;
10
+ width: 100vw;
11
+ height: 100vh;
12
+ overflow: hidden;
13
+ background: #000;
14
+ }
15
+ webview {
16
+ width: 100vw;
17
+ height: 100vh;
18
+ border: 0;
19
+ display: inline-flex;
20
+ }
21
+ </style>
22
+ </head>
23
+ <body>
24
+ <webview id="guest" src="about:blank" allowpopups></webview>
25
+ <script>
26
+ 'use strict';
27
+
28
+ // ── Port from launcher argv ──────────────────────────────────────────────
29
+ const argv = (typeof nw !== 'undefined' && nw.App && nw.App.fullArgv)
30
+ ? nw.App.fullArgv
31
+ : (typeof nw !== 'undefined' && nw.App && nw.App.argv) ? nw.App.argv : [];
32
+ let port = 3121;
33
+ for (const a of argv) {
34
+ const m = /^--kizen-port=(\d+)$/.exec(a);
35
+ if (m) {
36
+ port = parseInt(m[1], 10);
37
+ break;
38
+ }
39
+ }
40
+ const viewerUrl = `http://localhost:${port}`;
41
+ const wsUrl = `ws://localhost:${port}`;
42
+
43
+ // ── Constants ─────────────────────────────────────────────────────────────
44
+ const CSP_HEADERS = new Set([
45
+ 'content-security-policy',
46
+ 'content-security-policy-report-only',
47
+ 'x-frame-options',
48
+ ]);
49
+ const KIZEN_DOMAINS = ['kizen.dev', 'kizen.com'];
50
+
51
+ function isKizenUrl(url) {
52
+ try {
53
+ const { hostname } = new URL(url);
54
+ return KIZEN_DOMAINS.some((d) => hostname === d || hostname.endsWith('.' + d));
55
+ } catch {
56
+ return false;
57
+ }
58
+ }
59
+
60
+ const kizenUrlPatterns = KIZEN_DOMAINS.flatMap((d) => [
61
+ `*://${d}/*`,
62
+ `*://*.${d}/*`,
63
+ ]);
64
+
65
+ // ── Header + cookie rewrite on response ──────────────────────────────────
66
+ function patchHeaders(details) {
67
+ const headers = details.responseHeaders || [];
68
+ const out = [];
69
+ for (const h of headers) {
70
+ const name = h.name.toLowerCase();
71
+ if (CSP_HEADERS.has(name)) continue;
72
+ if (name === 'set-cookie' && isKizenUrl(details.url)) {
73
+ const patched = h.value
74
+ .split('\n')
75
+ .map((cookie) => {
76
+ if (!/SameSite=/i.test(cookie)) return cookie + '; SameSite=None; Secure';
77
+ return cookie.replace(/SameSite=\w+/i, 'SameSite=None');
78
+ })
79
+ .join('\n');
80
+ out.push({ name: h.name, value: patched });
81
+ } else {
82
+ out.push(h);
83
+ }
84
+ }
85
+ return { responseHeaders: out };
86
+ }
87
+
88
+ // ── WebSocket back to dev server ─────────────────────────────────────────
89
+ let ws = null;
90
+ let wsReady = false;
91
+ const pendingOutbound = [];
92
+
93
+ function sendWs(msg) {
94
+ const json = JSON.stringify(msg);
95
+ if (wsReady && ws && ws.readyState === 1) {
96
+ ws.send(json);
97
+ } else {
98
+ pendingOutbound.push(json);
99
+ }
100
+ }
101
+
102
+ function connectWs() {
103
+ try {
104
+ ws = new WebSocket(wsUrl);
105
+ } catch {
106
+ setTimeout(connectWs, 1000);
107
+ return;
108
+ }
109
+ ws.addEventListener('open', () => {
110
+ wsReady = true;
111
+ ws.send(JSON.stringify({ type: 'nwjs-shell-hello' }));
112
+ while (pendingOutbound.length) {
113
+ ws.send(pendingOutbound.shift());
114
+ }
115
+ });
116
+ ws.addEventListener('message', (e) => {
117
+ let msg;
118
+ try {
119
+ msg = JSON.parse(e.data);
120
+ } catch {
121
+ return;
122
+ }
123
+ if (msg && msg.type === 'open-devtools') {
124
+ try {
125
+ const guest = document.getElementById('guest');
126
+ if (guest && typeof guest.showDevTools === 'function') {
127
+ guest.showDevTools(true);
128
+ } else if (typeof nw !== 'undefined' && nw.Window) {
129
+ nw.Window.get().showDevTools();
130
+ }
131
+ } catch {
132
+ // ignore
133
+ }
134
+ }
135
+ });
136
+ ws.addEventListener('close', () => {
137
+ wsReady = false;
138
+ setTimeout(connectWs, 1000);
139
+ });
140
+ ws.addEventListener('error', () => {
141
+ // close handler will schedule reconnect
142
+ });
143
+ }
144
+ connectWs();
145
+
146
+ // ── Webview: attach request interceptors, load viewer, forward console ──
147
+ const LEVEL_MAP = { 0: 'log', 1: 'warn', 2: 'error', 3: 'info' };
148
+
149
+ function mountWebview() {
150
+ const guest = document.getElementById('guest');
151
+ if (!guest) return;
152
+
153
+ // Attach request listener BEFORE setting src so we catch the first load.
154
+ const attachRequestListener = () => {
155
+ try {
156
+ if (guest.request && guest.request.onHeadersReceived) {
157
+ guest.request.onHeadersReceived.addListener(
158
+ patchHeaders,
159
+ { urls: kizenUrlPatterns },
160
+ ['blocking', 'responseHeaders', 'extraHeaders'],
161
+ );
162
+ }
163
+ } catch (e) {
164
+ sendWs({
165
+ type: 'nwjs-console',
166
+ level: 'error',
167
+ message: 'Failed to attach webview.request listener: ' + String(e),
168
+ });
169
+ }
170
+ };
171
+
172
+ // webview.request is only available once the guest has initialized.
173
+ // `contentload` fires on every navigation; we just need it once.
174
+ guest.addEventListener('contentload', attachRequestListener, { once: true });
175
+
176
+ guest.addEventListener('consolemessage', (e) => {
177
+ const level = LEVEL_MAP[e.level] || 'log';
178
+ sendWs({
179
+ type: 'nwjs-console',
180
+ level,
181
+ message: String(e.message || ''),
182
+ line: e.line,
183
+ sourceId: e.sourceId,
184
+ });
185
+ });
186
+
187
+ // Attempt to attach before navigation too, in case webview.request is ready.
188
+ attachRequestListener();
189
+
190
+ guest.src = viewerUrl;
191
+ }
192
+
193
+ if (document.readyState === 'loading') {
194
+ document.addEventListener('DOMContentLoaded', mountWebview);
195
+ } else {
196
+ mountWebview();
197
+ }
198
+ </script>
199
+ </body>
200
+ </html>
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "kizen-app-builder",
3
+ "description": "Kizen App Builder dev viewer",
4
+ "version": "1.0.0",
5
+ "main": "index.html",
6
+ "window": {
7
+ "title": "Kizen App Builder",
8
+ "icon": "icon.png",
9
+ "width": 1600,
10
+ "height": 1000,
11
+ "frame": true,
12
+ "resizable": true,
13
+ "show": true
14
+ },
15
+ "chromium-args": "--no-first-run"
16
+ }