lupine.api 1.1.58 → 1.1.59
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/README.md +3 -3
- package/admin/admin-about.tsx +12 -16
- package/admin/admin-config.tsx +47 -44
- package/admin/admin-css.tsx +3 -3
- package/admin/admin-db.tsx +75 -75
- package/admin/admin-frame-helper.tsx +364 -364
- package/admin/admin-frame.tsx +164 -164
- package/admin/admin-index.tsx +65 -65
- package/admin/admin-login.tsx +111 -111
- package/admin/admin-menu-edit.tsx +637 -637
- package/admin/admin-menu-list.tsx +87 -87
- package/admin/admin-page-edit.tsx +564 -564
- package/admin/admin-page-list.tsx +83 -83
- package/admin/admin-performance.tsx +28 -28
- package/admin/admin-release.tsx +427 -426
- package/admin/admin-resources.tsx +382 -382
- package/admin/admin-shell.tsx +89 -89
- package/admin/admin-table-data.tsx +146 -146
- package/admin/admin-table-list.tsx +230 -230
- package/admin/admin-test-animations.tsx +395 -395
- package/admin/admin-test-component.tsx +823 -808
- package/admin/admin-test-edit.tsx +319 -319
- package/admin/admin-test-themes.tsx +56 -56
- package/admin/admin-tokens.tsx +338 -338
- package/admin/design/admin-design.tsx +174 -174
- package/admin/design/block-grid.tsx +36 -36
- package/admin/design/block-grid1.tsx +21 -21
- package/admin/design/block-paragraph.tsx +19 -19
- package/admin/design/block-title.tsx +19 -19
- package/admin/design/design-block-box.tsx +140 -140
- package/admin/design/drag-data.tsx +24 -24
- package/admin/index.ts +9 -9
- package/admin/package.json +15 -15
- package/admin/tsconfig.json +127 -127
- package/dev/copy-folder.js +32 -32
- package/dev/cp-index-html.js +69 -69
- package/dev/file-utils.js +12 -12
- package/dev/index.js +18 -19
- package/dev/package.json +12 -12
- package/dev/plugin-ifelse.js +168 -168
- package/dev/plugin-ifelse.test.js +37 -37
- package/dev/run-cmd.js +14 -14
- package/dev/send-request.js +12 -12
- package/package.json +55 -55
- package/src/admin-api/admin-api-helper.ts +210 -205
- package/src/admin-api/admin-api.ts +65 -65
- package/src/admin-api/admin-auth.ts +152 -146
- package/src/admin-api/admin-config.ts +94 -84
- package/src/admin-api/admin-csv.ts +94 -94
- package/src/admin-api/admin-db.ts +269 -269
- package/src/admin-api/admin-menu.ts +135 -135
- package/src/admin-api/admin-page.ts +135 -135
- package/src/admin-api/admin-performance.ts +128 -128
- package/src/admin-api/admin-release.ts +703 -700
- package/src/admin-api/admin-resources.ts +318 -318
- package/src/admin-api/admin-token-helper.ts +82 -79
- package/src/admin-api/admin-tokens.ts +90 -90
- package/src/admin-api/index.ts +2 -2
- package/src/admin-api/web-config-api.ts +19 -19
- package/src/api/api-cache.ts +103 -103
- package/src/api/api-helper.ts +44 -44
- package/src/api/api-module.ts +67 -60
- package/src/api/api-router.ts +177 -177
- package/src/api/api-shared-storage.ts +64 -64
- package/src/api/async-storage.ts +5 -5
- package/src/api/debug-service.ts +56 -56
- package/src/api/encode-html.ts +27 -27
- package/src/api/handle-status.ts +75 -75
- package/src/api/index.ts +15 -16
- package/src/api/mini-web-socket.ts +270 -270
- package/src/api/server-content-type.ts +82 -82
- package/src/api/server-render.ts +235 -215
- package/src/api/shell-service.ts +74 -74
- package/src/api/simple-storage.ts +80 -80
- package/src/api/static-server.ts +128 -125
- package/src/api/to-client-delivery.ts +26 -26
- package/src/app/app-cache.ts +55 -55
- package/src/app/app-helper.ts +62 -62
- package/src/app/app-message.ts +109 -109
- package/src/app/app-shared-storage.ts +363 -363
- package/src/app/app-start.ts +136 -136
- package/src/app/cleanup-exit.ts +16 -16
- package/src/app/host-to-path.ts +38 -38
- package/src/app/index.ts +11 -11
- package/src/app/process-dev-requests.ts +130 -130
- package/src/app/web-listener.ts +294 -294
- package/src/app/web-processor.ts +47 -42
- package/src/app/web-server.ts +100 -100
- package/src/common-js/web-env.js +104 -104
- package/src/index.ts +7 -7
- package/src/lang/api-lang-en.ts +26 -26
- package/src/lang/api-lang-zh-cn.ts +27 -27
- package/src/lang/index.ts +2 -2
- package/src/lang/lang-helper.ts +76 -76
- package/src/lang/lang-props.ts +6 -6
- package/src/lib/db/db-helper.ts +23 -23
- package/src/lib/db/db-mysql.ts +249 -250
- package/src/lib/db/db-sqlite.ts +101 -101
- package/src/lib/db/db.spec.ts +28 -28
- package/src/lib/db/db.ts +325 -325
- package/src/lib/db/index.ts +5 -5
- package/src/lib/index.ts +3 -3
- package/src/lib/logger.spec.ts +214 -214
- package/src/lib/logger.ts +281 -281
- package/src/lib/runtime-require.ts +37 -37
- package/src/lib/utils/cookie-util.ts +34 -34
- package/src/lib/utils/crypto.ts +58 -58
- package/src/lib/utils/date-utils.ts +317 -317
- package/src/lib/utils/deep-merge.ts +37 -37
- package/src/lib/utils/delay.ts +12 -12
- package/src/lib/utils/file-setting.ts +55 -55
- package/src/lib/utils/format-bytes.ts +11 -11
- package/src/lib/utils/fs-utils.ts +158 -158
- package/src/lib/utils/get-env.ts +27 -27
- package/src/lib/utils/index.ts +12 -12
- package/src/lib/utils/is-type.ts +48 -48
- package/src/lib/utils/load-env.ts +14 -14
- package/src/lib/utils/pad.ts +6 -6
- package/src/models/api-base.ts +5 -5
- package/src/models/api-module-props.ts +10 -11
- package/src/models/api-router-props.ts +26 -26
- package/src/models/app-cache-props.ts +33 -33
- package/src/models/app-data-props.ts +10 -10
- package/src/models/app-helper-props.ts +6 -6
- package/src/models/app-shared-storage-props.ts +38 -38
- package/src/models/app-start-props.ts +18 -18
- package/src/models/async-storage-props.ts +13 -13
- package/src/models/db-config.ts +30 -30
- package/src/models/host-to-path-props.ts +12 -12
- package/src/models/index.ts +16 -16
- package/src/models/json-object.ts +8 -8
- package/src/models/locals-props.ts +36 -36
- package/src/models/logger-props.ts +84 -84
- package/src/models/simple-storage-props.ts +13 -14
- package/src/models/to-client-delivery-props.ts +6 -6
- package/tsconfig.json +115 -115
- package/dev/plugin-gen-versions.js +0 -20
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
# lupine.api
|
|
2
|
-
|
|
3
|
-
lupine.api is a fast, lightweight, and flexible node.js based server, working with [lupine.web](https://github.com/uuware/lupine.web) to provide SSR and modern JavaScript features for web applications and APIs.
|
|
1
|
+
# lupine.api
|
|
2
|
+
|
|
3
|
+
lupine.api is a fast, lightweight, and flexible node.js based server, working with [lupine.web](https://github.com/uuware/lupine.web) to provide SSR and modern JavaScript features for web applications and APIs.
|
package/admin/admin-about.tsx
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import { CssProps } from 'lupine.components';
|
|
2
|
-
|
|
3
|
-
export const AdminAboutPage = () => {
|
|
4
|
-
const css: CssProps = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<div class='row-box'>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
);
|
|
16
|
-
};
|
|
1
|
+
import { CssProps } from 'lupine.components';
|
|
2
|
+
|
|
3
|
+
export const AdminAboutPage = () => {
|
|
4
|
+
const css: CssProps = {};
|
|
5
|
+
|
|
6
|
+
return (
|
|
7
|
+
<div css={css} class='admin-about-top'>
|
|
8
|
+
<div class='row-box'>About this application</div>
|
|
9
|
+
<div class='row-box'></div>
|
|
10
|
+
</div>
|
|
11
|
+
);
|
|
12
|
+
};
|
package/admin/admin-config.tsx
CHANGED
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import { CssProps, getRenderPageProps, NotificationColor, NotificationMessage, RefProps } from 'lupine.components';
|
|
2
|
-
|
|
3
|
-
export const AdminConfigPage = () => {
|
|
4
|
-
const css: CssProps = {
|
|
5
|
-
'.input-cfg': {
|
|
6
|
-
height: '400px',
|
|
7
|
-
maxHeight: '100%',
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
const onSave = async () => {
|
|
11
|
-
try {
|
|
12
|
-
const json = JSON.parse(ref.$('.input-cfg').value);
|
|
13
|
-
const data = await getRenderPageProps().renderPageFunctions.fetchData('/api/admin/config/save', { json });
|
|
14
|
-
if (data.json && data.json.status === 'ok') {
|
|
15
|
-
NotificationMessage.sendMessage(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
import { CssProps, getRenderPageProps, NotificationColor, NotificationMessage, RefProps } from 'lupine.components';
|
|
2
|
+
|
|
3
|
+
export const AdminConfigPage = () => {
|
|
4
|
+
const css: CssProps = {
|
|
5
|
+
'.input-cfg': {
|
|
6
|
+
height: '400px',
|
|
7
|
+
maxHeight: '100%',
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
const onSave = async () => {
|
|
11
|
+
try {
|
|
12
|
+
const json = JSON.parse(ref.$('.input-cfg').value);
|
|
13
|
+
const data = await getRenderPageProps().renderPageFunctions.fetchData('/api/admin/config/save', { json });
|
|
14
|
+
if (data.json && data.json.status === 'ok') {
|
|
15
|
+
NotificationMessage.sendMessage(
|
|
16
|
+
'Saved, and please refresh the page to load new configs',
|
|
17
|
+
NotificationColor.Success
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
} catch (e) {
|
|
21
|
+
NotificationMessage.sendMessage('Config is not valid JSON', NotificationColor.Error);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const ref: RefProps = {
|
|
25
|
+
onLoad: async () => {
|
|
26
|
+
const data = await getRenderPageProps().renderPageFunctions.fetchData('/api/admin/config/load');
|
|
27
|
+
if (data.json && data.json.result) {
|
|
28
|
+
ref.$('.input-cfg').value = JSON.stringify(data.json.result, null, 4);
|
|
29
|
+
ref.$('.cfg-btn').disabled = false;
|
|
30
|
+
} else {
|
|
31
|
+
NotificationMessage.sendMessage('Failed to load config', NotificationColor.Error);
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
return (
|
|
36
|
+
<div css={css} class='admin-cfg-top' ref={ref}>
|
|
37
|
+
<div class='row-box pb-m'>
|
|
38
|
+
<button onClick={onSave} class='button-base cfg-btn' disabled={true}>
|
|
39
|
+
Save
|
|
40
|
+
</button>
|
|
41
|
+
</div>
|
|
42
|
+
<div class='row-box'>
|
|
43
|
+
<textarea class='input-base input-cfg w-100p'></textarea>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
};
|
package/admin/admin-css.tsx
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { CssProps } from 'lupine.components';
|
|
2
|
-
|
|
3
|
-
export const adminCss: CssProps = {};
|
|
1
|
+
import { CssProps } from 'lupine.components';
|
|
2
|
+
|
|
3
|
+
export const adminCss: CssProps = {};
|
package/admin/admin-db.tsx
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
import { CssProps, getRenderPageProps, RefProps } from 'lupine.components';
|
|
2
|
-
|
|
3
|
-
const fetchCreateTables = async () => {
|
|
4
|
-
const data = await getRenderPageProps().renderPageFunctions.fetchData(`/api/admin/db/install`);
|
|
5
|
-
return data.json;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export const CreateTablesPage = () => {
|
|
9
|
-
const onClick = async () => {
|
|
10
|
-
const json = await fetchCreateTables();
|
|
11
|
-
console.log('====homepage', json);
|
|
12
|
-
document.querySelector('.install-result')!.innerHTML = JSON.stringify(json.result, null, 4);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const css: CssProps = {
|
|
16
|
-
'.install-result': {
|
|
17
|
-
display: 'block',
|
|
18
|
-
unicodeBidi: 'embed',
|
|
19
|
-
fontFamily: 'monospace',
|
|
20
|
-
whiteSpace: 'pre',
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
const ref: RefProps = {};
|
|
24
|
-
return (
|
|
25
|
-
<div ref={ref} css={css}>
|
|
26
|
-
Create Tables:
|
|
27
|
-
<button onClick={onClick} class='button-base'>
|
|
28
|
-
Start
|
|
29
|
-
</button>
|
|
30
|
-
<div class='install-result'></div>
|
|
31
|
-
</div>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const fetchRunSql = async (sql: string) => {
|
|
36
|
-
const data = await getRenderPageProps().renderPageFunctions.fetchData('/api/admin/db/run-sql', { sql });
|
|
37
|
-
return data.json;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
export const RunSqlPage = () => {
|
|
41
|
-
const onClick = async () => {
|
|
42
|
-
ref.$('.sql-result').innerHTML = 'Running...';
|
|
43
|
-
const json = await fetchRunSql((ref.$('.sql') as HTMLFormElement).value);
|
|
44
|
-
console.log('====homepage', json);
|
|
45
|
-
ref.$('.sql-result').innerHTML = JSON.stringify(json.result, null, 4);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const css: CssProps = {
|
|
49
|
-
'textarea.sql': {
|
|
50
|
-
width: '100%',
|
|
51
|
-
height: '200px',
|
|
52
|
-
},
|
|
53
|
-
'.sql-result': {
|
|
54
|
-
display: 'block',
|
|
55
|
-
unicodeBidi: 'embed',
|
|
56
|
-
fontFamily: 'monospace',
|
|
57
|
-
whiteSpace: 'pre',
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
const ref: RefProps = {};
|
|
61
|
-
return (
|
|
62
|
-
<div ref={ref} css={css}>
|
|
63
|
-
<div>Run SQL:</div>
|
|
64
|
-
<div>
|
|
65
|
-
<textarea class='input-base sql'>SELECT 'Hello world'</textarea>
|
|
66
|
-
</div>
|
|
67
|
-
<div>
|
|
68
|
-
<button onClick={onClick} class='button-base'>
|
|
69
|
-
Run
|
|
70
|
-
</button>
|
|
71
|
-
</div>
|
|
72
|
-
<div class='sql-result'></div>
|
|
73
|
-
</div>
|
|
74
|
-
);
|
|
75
|
-
};
|
|
1
|
+
import { CssProps, getRenderPageProps, RefProps } from 'lupine.components';
|
|
2
|
+
|
|
3
|
+
const fetchCreateTables = async () => {
|
|
4
|
+
const data = await getRenderPageProps().renderPageFunctions.fetchData(`/api/admin/db/install`);
|
|
5
|
+
return data.json;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export const CreateTablesPage = () => {
|
|
9
|
+
const onClick = async () => {
|
|
10
|
+
const json = await fetchCreateTables();
|
|
11
|
+
console.log('====homepage', json);
|
|
12
|
+
document.querySelector('.install-result')!.innerHTML = JSON.stringify(json.result, null, 4);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const css: CssProps = {
|
|
16
|
+
'.install-result': {
|
|
17
|
+
display: 'block',
|
|
18
|
+
unicodeBidi: 'embed',
|
|
19
|
+
fontFamily: 'monospace',
|
|
20
|
+
whiteSpace: 'pre',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
const ref: RefProps = {};
|
|
24
|
+
return (
|
|
25
|
+
<div ref={ref} css={css}>
|
|
26
|
+
Create Tables:
|
|
27
|
+
<button onClick={onClick} class='button-base'>
|
|
28
|
+
Start
|
|
29
|
+
</button>
|
|
30
|
+
<div class='install-result'></div>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const fetchRunSql = async (sql: string) => {
|
|
36
|
+
const data = await getRenderPageProps().renderPageFunctions.fetchData('/api/admin/db/run-sql', { sql });
|
|
37
|
+
return data.json;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const RunSqlPage = () => {
|
|
41
|
+
const onClick = async () => {
|
|
42
|
+
ref.$('.sql-result').innerHTML = 'Running...';
|
|
43
|
+
const json = await fetchRunSql((ref.$('.sql') as HTMLFormElement).value);
|
|
44
|
+
console.log('====homepage', json);
|
|
45
|
+
ref.$('.sql-result').innerHTML = JSON.stringify(json.result, null, 4);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const css: CssProps = {
|
|
49
|
+
'textarea.sql': {
|
|
50
|
+
width: '100%',
|
|
51
|
+
height: '200px',
|
|
52
|
+
},
|
|
53
|
+
'.sql-result': {
|
|
54
|
+
display: 'block',
|
|
55
|
+
unicodeBidi: 'embed',
|
|
56
|
+
fontFamily: 'monospace',
|
|
57
|
+
whiteSpace: 'pre',
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
const ref: RefProps = {};
|
|
61
|
+
return (
|
|
62
|
+
<div ref={ref} css={css}>
|
|
63
|
+
<div>Run SQL:</div>
|
|
64
|
+
<div>
|
|
65
|
+
<textarea class='input-base sql'>SELECT 'Hello world'</textarea>
|
|
66
|
+
</div>
|
|
67
|
+
<div>
|
|
68
|
+
<button onClick={onClick} class='button-base'>
|
|
69
|
+
Run
|
|
70
|
+
</button>
|
|
71
|
+
</div>
|
|
72
|
+
<div class='sql-result'></div>
|
|
73
|
+
</div>
|
|
74
|
+
);
|
|
75
|
+
};
|