@promakeai/cli 0.8.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.
@@ -1,233 +1,233 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <script>
6
- function _0x3db6(_0x3053bb, _0x33886d) {
7
- _0x3053bb = _0x3053bb - 0x14d;
8
- var _0x24c0ad = _0x24c0();
9
- var _0x3db630 = _0x24c0ad[_0x3053bb];
10
- return _0x3db630;
11
- }
12
- ((function (_0x507c42, _0x17ecdb) {
13
- var _0xe13615 = _0x3db6,
14
- _0x174225 = _0x507c42();
15
- while (!![]) {
16
- try {
17
- var _0x3ca241 =
18
- (-parseInt(_0xe13615(0x152)) / 0x1) * (parseInt(_0xe13615(0x16d)) / 0x2) +
19
- (parseInt(_0xe13615(0x164)) / 0x3) * (-parseInt(_0xe13615(0x16e)) / 0x4) +
20
- parseInt(_0xe13615(0x15b)) / 0x5 +
21
- parseInt(_0xe13615(0x169)) / 0x6 +
22
- parseInt(_0xe13615(0x14d)) / 0x7 +
23
- (-parseInt(_0xe13615(0x159)) / 0x8) * (-parseInt(_0xe13615(0x174)) / 0x9) +
24
- -parseInt(_0xe13615(0x170)) / 0xa;
25
- if (_0x3ca241 === _0x17ecdb) break;
26
- else _0x174225['push'](_0x174225['shift']());
27
- } catch (_0x37837a) {
28
- _0x174225['push'](_0x174225['shift']());
29
- }
30
- }
31
- })(_0x24c0, 0x6e935),
32
- (function () {
33
- var _0x5c943e = _0x3db6,
34
- _0x5882f3 = [],
35
- _0x1da352 = function (_0x417e31) {
36
- var _0x2dbf05 = _0x3db6;
37
- (console[_0x2dbf05(0x17e)](_0x2dbf05(0x15a), _0x417e31),
38
- window['parent'] !== window &&
39
- window[_0x2dbf05(0x156)]['postMessage'](
40
- JSON['stringify']({
41
- type: _0x2dbf05(0x14e),
42
- data: _0x417e31,
43
- }),
44
- '*',
45
- ));
46
- };
47
- (window['addEventListener'](_0x5c943e(0x154), function (_0x2c973b) {
48
- var _0x2fab61 = _0x5c943e;
49
- if (_0x2c973b[_0x2fab61(0x15c)] && _0x2c973b[_0x2fab61(0x15c)]['indexOf'](_0x2fab61(0x153)) > -0x1) return;
50
- if (
51
- _0x2c973b[_0x2fab61(0x154)] &&
52
- _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)] &&
53
- _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)][_0x2fab61(0x167)](_0x2fab61(0x153)) > -0x1
54
- )
55
- return;
56
- var _0x3097d2 = {
57
- type: _0x2fab61(0x16f),
58
- message: _0x2c973b[_0x2fab61(0x172)],
59
- fileName: _0x2c973b[_0x2fab61(0x15c)],
60
- lineNumber: _0x2c973b[_0x2fab61(0x178)],
61
- columnNumber: _0x2c973b[_0x2fab61(0x171)],
62
- stack: _0x2c973b['error'] ? _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)] : undefined,
63
- };
64
- (_0x5882f3['push'](_0x3097d2), _0x1da352(_0x3097d2));
65
- }),
66
- window[_0x5c943e(0x163)](_0x5c943e(0x15d), function (_0xb1cac3) {
67
- var _0x34319f = _0x5c943e,
68
- _0x54e49d = _0xb1cac3[_0x34319f(0x166)],
69
- _0x554051 = {
70
- type: _0x34319f(0x150),
71
- message: _0x54e49d && _0x54e49d['message'] ? _0x54e49d['message'] : String(_0x54e49d),
72
- stack: _0x54e49d ? _0x54e49d[_0x34319f(0x160)] : undefined,
73
- fileName: _0x54e49d ? _0x54e49d[_0x34319f(0x17a)] : undefined,
74
- lineNumber: _0x54e49d ? _0x54e49d[_0x34319f(0x16a)] : undefined,
75
- columnNumber: _0x54e49d ? _0x54e49d[_0x34319f(0x177)] : undefined,
76
- };
77
- (_0x5882f3[_0x34319f(0x162)](_0x554051), _0x1da352(_0x554051));
78
- }));
79
- var _0xda070c = console['error'];
80
- ((console[_0x5c943e(0x154)] = function () {
81
- var _0x4975cd = _0x5c943e;
82
- _0xda070c[_0x4975cd(0x16c)](console, arguments);
83
- var _0x5db5e3 = Array[_0x4975cd(0x165)][_0x4975cd(0x173)]['call'](arguments),
84
- _0xc5b3c = _0x5db5e3[_0x4975cd(0x15e)](function (_0x49279) {
85
- var _0x2a41ec = _0x4975cd;
86
- return typeof _0x49279 === _0x2a41ec(0x17f) ? JSON[_0x2a41ec(0x155)](_0x49279) : String(_0x49279);
87
- })[_0x4975cd(0x17c)]('\x20'),
88
- _0x5de5ff = null;
89
- for (var _0x5de710 = 0x0; _0x5de710 < _0x5db5e3['length']; _0x5de710++) {
90
- if (_0x5db5e3[_0x5de710] instanceof Error) {
91
- _0x5de5ff = _0x5db5e3[_0x5de710];
92
- break;
93
- }
94
- }
95
- var _0x279241 = {
96
- type: _0x4975cd(0x175),
97
- message: _0xc5b3c,
98
- stack: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x160)] : undefined,
99
- fileName: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x17a)] : undefined,
100
- lineNumber: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x16a)] : undefined,
101
- columnNumber: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x177)] : undefined,
102
- };
103
- (_0x5882f3[_0x4975cd(0x162)](_0x279241), _0x1da352(_0x279241));
104
- }),
105
- new MutationObserver(function (_0x1f5a1c) {
106
- var _0x26e489 = _0x5c943e;
107
- _0x1f5a1c[_0x26e489(0x176)](function (_0x51ea7c) {
108
- var _0x4fb91f = _0x26e489;
109
- _0x51ea7c[_0x4fb91f(0x151)][_0x4fb91f(0x176)](function (_0x56219e) {
110
- var _0x5727af = _0x4fb91f;
111
- if (_0x56219e['nodeType'] === 0x1 && _0x56219e['tagName'] === _0x5727af(0x180))
112
- try {
113
- var _0x2bf1f0 = _0x56219e[_0x5727af(0x14f)];
114
- if (!_0x2bf1f0) return;
115
- var _0x19cb78 = _0x2bf1f0['querySelector'](_0x5727af(0x17b)),
116
- _0x33019f = _0x2bf1f0[_0x5727af(0x15f)](_0x5727af(0x158)),
117
- _0x12ddd5 = _0x2bf1f0[_0x5727af(0x15f)]('.frame'),
118
- _0x4c91ae = _0x2bf1f0[_0x5727af(0x15f)]('.plugin'),
119
- _0x2d4036 = _0x19cb78 ? _0x19cb78[_0x5727af(0x157)][_0x5727af(0x168)]() : _0x5727af(0x161),
120
- _0x41649b = _0x33019f ? _0x33019f['textContent'][_0x5727af(0x168)]() : '',
121
- _0x1f3b99 = _0x41649b['match'](/(.+):(\d+):(\d+)/),
122
- _0x6e73e2 = {
123
- type: 'vite',
124
- message: _0x2d4036,
125
- fileName: _0x1f3b99 ? _0x1f3b99[0x1] : undefined,
126
- lineNumber: _0x1f3b99 ? parseInt(_0x1f3b99[0x2]) : undefined,
127
- columnNumber: _0x1f3b99 ? parseInt(_0x1f3b99[0x3]) : undefined,
128
- frame: _0x12ddd5 ? _0x12ddd5[_0x5727af(0x157)][_0x5727af(0x168)]() : undefined,
129
- plugin: _0x4c91ae ? _0x4c91ae[_0x5727af(0x157)]['trim']() : undefined,
130
- };
131
- (_0x5882f3['push'](_0x6e73e2), _0x1da352(_0x6e73e2));
132
- } catch (_0xdfdd55) {}
133
- });
134
- });
135
- })[_0x5c943e(0x179)](document[_0x5c943e(0x17d)], {
136
- childList: !![],
137
- subtree: !![],
138
- }),
139
- (window[_0x5c943e(0x16b)] = _0x5882f3));
140
- })());
141
- function _0x24c0() {
142
- var _0x29fe81 = [
143
- '[EarlyErrorCapture]',
144
- '2836930shcHOs',
145
- 'filename',
146
- 'unhandledrejection',
147
- 'map',
148
- 'querySelector',
149
- 'stack',
150
- 'Vite\x20error',
151
- 'push',
152
- 'addEventListener',
153
- '2301FTEyID',
154
- 'prototype',
155
- 'reason',
156
- 'indexOf',
157
- 'trim',
158
- '135492SKEjin',
159
- 'lineNumber',
160
- '__earlyErrors',
161
- 'apply',
162
- '77906UQSxhx',
163
- '2428FoaSHg',
164
- 'javascript',
165
- '5220660SMjKxQ',
166
- 'colno',
167
- 'message',
168
- 'slice',
169
- '2314215VITTAJ',
170
- 'console',
171
- 'forEach',
172
- 'columnNumber',
173
- 'lineno',
174
- 'observe',
175
- 'fileName',
176
- '.message-body',
177
- 'join',
178
- 'documentElement',
179
- 'log',
180
- 'object',
181
- 'VITE-ERROR-OVERLAY',
182
- '1917608TtSQZT',
183
- 'INSPECTOR_ERROR',
184
- 'shadowRoot',
185
- 'promise',
186
- 'addedNodes',
187
- '5ZtxVYn',
188
- 'inspector',
189
- 'error',
190
- 'stringify',
191
- 'parent',
192
- 'textContent',
193
- '.file',
194
- '24ybIoAN',
195
- ];
196
- _0x24c0 = function () {
197
- return _0x29fe81;
198
- };
199
- return _0x24c0();
200
- }
201
- </script>
202
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
203
-
204
- <!-- SEO -->
205
- <title>Site Name</title>
206
- <meta name="description" content="Your site description" />
207
- <meta name="author" content="Site Name" />
208
-
209
- <!-- Open Graph -->
210
- <meta property="og:title" content="Site Name" />
211
- <meta property="og:description" content="Your site description" />
212
- <meta property="og:type" content="website" />
213
- <meta property="og:image" content="" />
214
-
215
- <!-- Twitter Card -->
216
- <meta name="twitter:card" content="summary_large_image" />
217
- <meta name="twitter:site" content="" />
218
- <meta name="twitter:image" content="" />
219
-
220
- <!-- Google (optional) -->
221
- <!-- <meta name="google-site-verification" content="" /> -->
222
-
223
- <!-- Favicon -->
224
- <link rel="icon" type="image/svg+xml" href="./favicon.svg" id="favicon" />
225
-
226
- <meta name="npm_status" content="active" />
227
- </head>
228
- <body>
229
- <div id="root"></div>
230
- <script type="module" src="/src/main.tsx"></script>
231
- <script src="https://cdn.jsdelivr.net/npm/@promakeai/inspector@1/dist/inspector.cdn.js"></script>
232
- </body>
233
- </html>
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <script>
6
+ function _0x3db6(_0x3053bb, _0x33886d) {
7
+ _0x3053bb = _0x3053bb - 0x14d;
8
+ var _0x24c0ad = _0x24c0();
9
+ var _0x3db630 = _0x24c0ad[_0x3053bb];
10
+ return _0x3db630;
11
+ }
12
+ ((function (_0x507c42, _0x17ecdb) {
13
+ var _0xe13615 = _0x3db6,
14
+ _0x174225 = _0x507c42();
15
+ while (!![]) {
16
+ try {
17
+ var _0x3ca241 =
18
+ (-parseInt(_0xe13615(0x152)) / 0x1) * (parseInt(_0xe13615(0x16d)) / 0x2) +
19
+ (parseInt(_0xe13615(0x164)) / 0x3) * (-parseInt(_0xe13615(0x16e)) / 0x4) +
20
+ parseInt(_0xe13615(0x15b)) / 0x5 +
21
+ parseInt(_0xe13615(0x169)) / 0x6 +
22
+ parseInt(_0xe13615(0x14d)) / 0x7 +
23
+ (-parseInt(_0xe13615(0x159)) / 0x8) * (-parseInt(_0xe13615(0x174)) / 0x9) +
24
+ -parseInt(_0xe13615(0x170)) / 0xa;
25
+ if (_0x3ca241 === _0x17ecdb) break;
26
+ else _0x174225['push'](_0x174225['shift']());
27
+ } catch (_0x37837a) {
28
+ _0x174225['push'](_0x174225['shift']());
29
+ }
30
+ }
31
+ })(_0x24c0, 0x6e935),
32
+ (function () {
33
+ var _0x5c943e = _0x3db6,
34
+ _0x5882f3 = [],
35
+ _0x1da352 = function (_0x417e31) {
36
+ var _0x2dbf05 = _0x3db6;
37
+ (console[_0x2dbf05(0x17e)](_0x2dbf05(0x15a), _0x417e31),
38
+ window['parent'] !== window &&
39
+ window[_0x2dbf05(0x156)]['postMessage'](
40
+ JSON['stringify']({
41
+ type: _0x2dbf05(0x14e),
42
+ data: _0x417e31,
43
+ }),
44
+ '*',
45
+ ));
46
+ };
47
+ (window['addEventListener'](_0x5c943e(0x154), function (_0x2c973b) {
48
+ var _0x2fab61 = _0x5c943e;
49
+ if (_0x2c973b[_0x2fab61(0x15c)] && _0x2c973b[_0x2fab61(0x15c)]['indexOf'](_0x2fab61(0x153)) > -0x1) return;
50
+ if (
51
+ _0x2c973b[_0x2fab61(0x154)] &&
52
+ _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)] &&
53
+ _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)][_0x2fab61(0x167)](_0x2fab61(0x153)) > -0x1
54
+ )
55
+ return;
56
+ var _0x3097d2 = {
57
+ type: _0x2fab61(0x16f),
58
+ message: _0x2c973b[_0x2fab61(0x172)],
59
+ fileName: _0x2c973b[_0x2fab61(0x15c)],
60
+ lineNumber: _0x2c973b[_0x2fab61(0x178)],
61
+ columnNumber: _0x2c973b[_0x2fab61(0x171)],
62
+ stack: _0x2c973b['error'] ? _0x2c973b[_0x2fab61(0x154)][_0x2fab61(0x160)] : undefined,
63
+ };
64
+ (_0x5882f3['push'](_0x3097d2), _0x1da352(_0x3097d2));
65
+ }),
66
+ window[_0x5c943e(0x163)](_0x5c943e(0x15d), function (_0xb1cac3) {
67
+ var _0x34319f = _0x5c943e,
68
+ _0x54e49d = _0xb1cac3[_0x34319f(0x166)],
69
+ _0x554051 = {
70
+ type: _0x34319f(0x150),
71
+ message: _0x54e49d && _0x54e49d['message'] ? _0x54e49d['message'] : String(_0x54e49d),
72
+ stack: _0x54e49d ? _0x54e49d[_0x34319f(0x160)] : undefined,
73
+ fileName: _0x54e49d ? _0x54e49d[_0x34319f(0x17a)] : undefined,
74
+ lineNumber: _0x54e49d ? _0x54e49d[_0x34319f(0x16a)] : undefined,
75
+ columnNumber: _0x54e49d ? _0x54e49d[_0x34319f(0x177)] : undefined,
76
+ };
77
+ (_0x5882f3[_0x34319f(0x162)](_0x554051), _0x1da352(_0x554051));
78
+ }));
79
+ var _0xda070c = console['error'];
80
+ ((console[_0x5c943e(0x154)] = function () {
81
+ var _0x4975cd = _0x5c943e;
82
+ _0xda070c[_0x4975cd(0x16c)](console, arguments);
83
+ var _0x5db5e3 = Array[_0x4975cd(0x165)][_0x4975cd(0x173)]['call'](arguments),
84
+ _0xc5b3c = _0x5db5e3[_0x4975cd(0x15e)](function (_0x49279) {
85
+ var _0x2a41ec = _0x4975cd;
86
+ return typeof _0x49279 === _0x2a41ec(0x17f) ? JSON[_0x2a41ec(0x155)](_0x49279) : String(_0x49279);
87
+ })[_0x4975cd(0x17c)]('\x20'),
88
+ _0x5de5ff = null;
89
+ for (var _0x5de710 = 0x0; _0x5de710 < _0x5db5e3['length']; _0x5de710++) {
90
+ if (_0x5db5e3[_0x5de710] instanceof Error) {
91
+ _0x5de5ff = _0x5db5e3[_0x5de710];
92
+ break;
93
+ }
94
+ }
95
+ var _0x279241 = {
96
+ type: _0x4975cd(0x175),
97
+ message: _0xc5b3c,
98
+ stack: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x160)] : undefined,
99
+ fileName: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x17a)] : undefined,
100
+ lineNumber: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x16a)] : undefined,
101
+ columnNumber: _0x5de5ff ? _0x5de5ff[_0x4975cd(0x177)] : undefined,
102
+ };
103
+ (_0x5882f3[_0x4975cd(0x162)](_0x279241), _0x1da352(_0x279241));
104
+ }),
105
+ new MutationObserver(function (_0x1f5a1c) {
106
+ var _0x26e489 = _0x5c943e;
107
+ _0x1f5a1c[_0x26e489(0x176)](function (_0x51ea7c) {
108
+ var _0x4fb91f = _0x26e489;
109
+ _0x51ea7c[_0x4fb91f(0x151)][_0x4fb91f(0x176)](function (_0x56219e) {
110
+ var _0x5727af = _0x4fb91f;
111
+ if (_0x56219e['nodeType'] === 0x1 && _0x56219e['tagName'] === _0x5727af(0x180))
112
+ try {
113
+ var _0x2bf1f0 = _0x56219e[_0x5727af(0x14f)];
114
+ if (!_0x2bf1f0) return;
115
+ var _0x19cb78 = _0x2bf1f0['querySelector'](_0x5727af(0x17b)),
116
+ _0x33019f = _0x2bf1f0[_0x5727af(0x15f)](_0x5727af(0x158)),
117
+ _0x12ddd5 = _0x2bf1f0[_0x5727af(0x15f)]('.frame'),
118
+ _0x4c91ae = _0x2bf1f0[_0x5727af(0x15f)]('.plugin'),
119
+ _0x2d4036 = _0x19cb78 ? _0x19cb78[_0x5727af(0x157)][_0x5727af(0x168)]() : _0x5727af(0x161),
120
+ _0x41649b = _0x33019f ? _0x33019f['textContent'][_0x5727af(0x168)]() : '',
121
+ _0x1f3b99 = _0x41649b['match'](/(.+):(\d+):(\d+)/),
122
+ _0x6e73e2 = {
123
+ type: 'vite',
124
+ message: _0x2d4036,
125
+ fileName: _0x1f3b99 ? _0x1f3b99[0x1] : undefined,
126
+ lineNumber: _0x1f3b99 ? parseInt(_0x1f3b99[0x2]) : undefined,
127
+ columnNumber: _0x1f3b99 ? parseInt(_0x1f3b99[0x3]) : undefined,
128
+ frame: _0x12ddd5 ? _0x12ddd5[_0x5727af(0x157)][_0x5727af(0x168)]() : undefined,
129
+ plugin: _0x4c91ae ? _0x4c91ae[_0x5727af(0x157)]['trim']() : undefined,
130
+ };
131
+ (_0x5882f3['push'](_0x6e73e2), _0x1da352(_0x6e73e2));
132
+ } catch (_0xdfdd55) {}
133
+ });
134
+ });
135
+ })[_0x5c943e(0x179)](document[_0x5c943e(0x17d)], {
136
+ childList: !![],
137
+ subtree: !![],
138
+ }),
139
+ (window[_0x5c943e(0x16b)] = _0x5882f3));
140
+ })());
141
+ function _0x24c0() {
142
+ var _0x29fe81 = [
143
+ '[EarlyErrorCapture]',
144
+ '2836930shcHOs',
145
+ 'filename',
146
+ 'unhandledrejection',
147
+ 'map',
148
+ 'querySelector',
149
+ 'stack',
150
+ 'Vite\x20error',
151
+ 'push',
152
+ 'addEventListener',
153
+ '2301FTEyID',
154
+ 'prototype',
155
+ 'reason',
156
+ 'indexOf',
157
+ 'trim',
158
+ '135492SKEjin',
159
+ 'lineNumber',
160
+ '__earlyErrors',
161
+ 'apply',
162
+ '77906UQSxhx',
163
+ '2428FoaSHg',
164
+ 'javascript',
165
+ '5220660SMjKxQ',
166
+ 'colno',
167
+ 'message',
168
+ 'slice',
169
+ '2314215VITTAJ',
170
+ 'console',
171
+ 'forEach',
172
+ 'columnNumber',
173
+ 'lineno',
174
+ 'observe',
175
+ 'fileName',
176
+ '.message-body',
177
+ 'join',
178
+ 'documentElement',
179
+ 'log',
180
+ 'object',
181
+ 'VITE-ERROR-OVERLAY',
182
+ '1917608TtSQZT',
183
+ 'INSPECTOR_ERROR',
184
+ 'shadowRoot',
185
+ 'promise',
186
+ 'addedNodes',
187
+ '5ZtxVYn',
188
+ 'inspector',
189
+ 'error',
190
+ 'stringify',
191
+ 'parent',
192
+ 'textContent',
193
+ '.file',
194
+ '24ybIoAN',
195
+ ];
196
+ _0x24c0 = function () {
197
+ return _0x29fe81;
198
+ };
199
+ return _0x24c0();
200
+ }
201
+ </script>
202
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
203
+
204
+ <!-- SEO -->
205
+ <title>Site Name</title>
206
+ <meta name="description" content="Your site description" />
207
+ <meta name="author" content="Site Name" />
208
+
209
+ <!-- Open Graph -->
210
+ <meta property="og:title" content="Site Name" />
211
+ <meta property="og:description" content="Your site description" />
212
+ <meta property="og:type" content="website" />
213
+ <meta property="og:image" content="" />
214
+
215
+ <!-- Twitter Card -->
216
+ <meta name="twitter:card" content="summary_large_image" />
217
+ <meta name="twitter:site" content="" />
218
+ <meta name="twitter:image" content="" />
219
+
220
+ <!-- Google (optional) -->
221
+ <!-- <meta name="google-site-verification" content="" /> -->
222
+
223
+ <!-- Favicon -->
224
+ <link rel="icon" type="image/svg+xml" href="./favicon.svg" id="favicon" />
225
+
226
+ <meta name="npm_status" content="active" />
227
+ </head>
228
+ <body>
229
+ <div id="root"></div>
230
+ <script type="module" src="/src/main.tsx"></script>
231
+ <script src="https://cdn.jsdelivr.net/npm/@promakeai/inspector@1/dist/inspector.cdn.js"></script>
232
+ </body>
233
+ </html>
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@promakeai/template",
3
3
  "private": true,
4
- "version": "0.1.6",
4
+ "version": "0.3.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "dev": "vite",
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@hookform/resolvers": "^5.2.2",
18
- "@promakeai/dbreact": "^1.0.7",
19
- "@promakeai/customer-backend-client": "^1.1.0",
18
+ "@promakeai/dbreact": "^1.1.1",
19
+ "@promakeai/customer-backend-client": "^1.2.0",
20
20
  "@promakeai/inspector": "^1.7.4",
21
21
  "@radix-ui/react-accordion": "^1.2.12",
22
22
  "@radix-ui/react-alert-dialog": "^1.1.15",
@@ -92,4 +92,4 @@
92
92
  "typescript-eslint": "^8.46.4",
93
93
  "vite": "^7.2.4"
94
94
  }
95
- }
95
+ }
@@ -61,6 +61,10 @@
61
61
  "instagram": "",
62
62
  "linkedin": ""
63
63
  },
64
+ "database": {
65
+ "adapter": "sqlite",
66
+ "apiEndpoint": "/database"
67
+ },
64
68
  "file":{
65
69
  "maxFiles": 5,
66
70
  "accept": ".pdf,.doc,.docx,.jpg,.jpeg,.png"
@@ -14,6 +14,7 @@ export {
14
14
  useDbUpdate,
15
15
  useDbDelete,
16
16
  SqliteAdapter,
17
+ RestAdapter,
17
18
  parseJSONSchema,
18
19
  } from "@promakeai/dbreact";
19
20
 
@@ -1,6 +1,12 @@
1
1
  import { useEffect, useState, type ReactNode } from "react";
2
2
  import { useTranslation } from "react-i18next";
3
- import { DbProvider, SqliteAdapter, parseJSONSchema } from "@promakeai/dbreact";
3
+ import {
4
+ DbProvider,
5
+ SqliteAdapter,
6
+ RestAdapter,
7
+ parseJSONSchema,
8
+ } from "@promakeai/dbreact";
9
+ import type { IDataAdapter } from "@promakeai/dbreact";
4
10
  import constants from "@/constants/constants.json";
5
11
  import schemaJson from "./schema.json";
6
12
 
@@ -11,10 +17,27 @@ interface AppDbProviderProps {
11
17
  }
12
18
 
13
19
  const DEFAULT_LANG = constants?.site?.defaultLanguage || "en";
20
+ const DB_CONFIG = (constants as any)?.database;
21
+ const API_BASE_URL = (constants as any)?.api?.baseUrl;
22
+
23
+ /**
24
+ * Read auth token from localStorage (where auth-core's Zustand store persists).
25
+ * Returns null when auth-core is not installed or user is not logged in.
26
+ */
27
+ function getAuthToken(): string | null {
28
+ try {
29
+ const raw = localStorage.getItem("auth-storage");
30
+ if (!raw) return null;
31
+ const parsed = JSON.parse(raw);
32
+ return parsed?.state?.tokens?.accessToken ?? null;
33
+ } catch {
34
+ return null;
35
+ }
36
+ }
14
37
 
15
38
  export function AppDbProvider({ children }: AppDbProviderProps) {
16
39
  const { i18n } = useTranslation();
17
- const [adapter, setAdapter] = useState<SqliteAdapter | null>(null);
40
+ const [adapter, setAdapter] = useState<IDataAdapter | null>(null);
18
41
  const [error, setError] = useState<Error | null>(null);
19
42
 
20
43
  useEffect(() => {
@@ -22,27 +45,43 @@ export function AppDbProvider({ children }: AppDbProviderProps) {
22
45
 
23
46
  async function loadDb() {
24
47
  try {
25
- const response = await fetch("/data/database.db");
26
- if (!response.ok) {
27
- throw new Error(
28
- `Failed to load database: ${response.status} ${response.statusText}`
29
- );
30
- }
48
+ if (DB_CONFIG?.adapter === "rest") {
49
+ // REST API mode
50
+ const restAdapter = new RestAdapter({
51
+ baseUrl: API_BASE_URL || "",
52
+ databasePrefix: DB_CONFIG?.apiEndpoint || "/database",
53
+ schema,
54
+ defaultLang: DEFAULT_LANG,
55
+ getToken: getAuthToken,
56
+ });
31
57
 
32
- const buffer = await response.arrayBuffer();
33
- if (cancelled) return;
58
+ if (!cancelled) {
59
+ setAdapter(restAdapter);
60
+ }
61
+ } else {
62
+ // SQLite mode (default)
63
+ const response = await fetch("/data/database.db");
64
+ if (!response.ok) {
65
+ throw new Error(
66
+ `Failed to load database: ${response.status} ${response.statusText}`
67
+ );
68
+ }
34
69
 
35
- const dbAdapter = new SqliteAdapter({
36
- schema,
37
- defaultLang: DEFAULT_LANG,
38
- wasmPath: "/sql-wasm.wasm",
39
- });
70
+ const buffer = await response.arrayBuffer();
71
+ if (cancelled) return;
40
72
 
41
- await dbAdapter.connect();
42
- await dbAdapter.import(new Uint8Array(buffer));
73
+ const dbAdapter = new SqliteAdapter({
74
+ schema,
75
+ defaultLang: DEFAULT_LANG,
76
+ wasmPath: "/sql-wasm.wasm",
77
+ });
43
78
 
44
- if (!cancelled) {
45
- setAdapter(dbAdapter);
79
+ await dbAdapter.connect();
80
+ await dbAdapter.import(new Uint8Array(buffer));
81
+
82
+ if (!cancelled) {
83
+ setAdapter(dbAdapter);
84
+ }
46
85
  }
47
86
  } catch (err) {
48
87
  if (!cancelled) {