@live-change/task-frontend 0.9.43 → 0.9.44
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/front/src/App.vue +116 -1
- package/front/src/config.js +19 -0
- package/package.json +65 -63
- package/server/start.js +23 -0
package/front/src/App.vue
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
</template>
|
|
9
9
|
|
|
10
10
|
<script setup>
|
|
11
|
-
import 'primevue/resources/themes/saga-green/theme.css'
|
|
12
11
|
import "@fortawesome/fontawesome-free/css/all.min.css"
|
|
13
12
|
|
|
14
13
|
import { useLocale } from '@live-change/vue3-components'
|
|
@@ -60,3 +59,119 @@
|
|
|
60
59
|
import "./analytics"
|
|
61
60
|
|
|
62
61
|
</script>
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
<style>
|
|
65
|
+
@import "tailwindcss";
|
|
66
|
+
@plugin "tailwindcss-primeui";
|
|
67
|
+
|
|
68
|
+
@custom-variant dark (&:where(.app-dark-mode, .app-dark-mode *));
|
|
69
|
+
|
|
70
|
+
:root {
|
|
71
|
+
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
72
|
+
font-family: var(--font-sans)
|
|
73
|
+
}
|
|
74
|
+
/* @supports (font-variation-settings: normal) {
|
|
75
|
+
:root { font-family: 'Verdana var', sans-serif; }
|
|
76
|
+
} */
|
|
77
|
+
html,body
|
|
78
|
+
{
|
|
79
|
+
min-height: 100%;
|
|
80
|
+
font-family: var(--font-sans);
|
|
81
|
+
font-weight: 400;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
@layer base {
|
|
87
|
+
|
|
88
|
+
a {
|
|
89
|
+
color: var(--p-blue-700);
|
|
90
|
+
text-decoration: underline;
|
|
91
|
+
}
|
|
92
|
+
a:hover {
|
|
93
|
+
color: var(--p-blue-900);
|
|
94
|
+
text-decoration: none;
|
|
95
|
+
}
|
|
96
|
+
a:visited {
|
|
97
|
+
color: var(--p-purple-800);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
h1, h2, h3, h4, h5, h6 {
|
|
102
|
+
page-break-after: avoid;
|
|
103
|
+
text-align: left;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
h1 {
|
|
107
|
+
font-size: 2.0em;
|
|
108
|
+
margin-top: 1em;
|
|
109
|
+
margin-bottom: 0.5em;
|
|
110
|
+
font-weight: 500;
|
|
111
|
+
color: var(--p-surface-700);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
h2 {
|
|
115
|
+
font-size: 1.75em;
|
|
116
|
+
margin-top: 1em;
|
|
117
|
+
margin-bottom: 0.5em;
|
|
118
|
+
color: var(--p-surface-700);
|
|
119
|
+
font-weight: 500;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
h3 {
|
|
123
|
+
font-size: 1.5em;
|
|
124
|
+
margin-top: 1em;
|
|
125
|
+
margin-bottom: 0.5em;
|
|
126
|
+
color: var(--p-surface-800);
|
|
127
|
+
font-weight: 500;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
h4 {
|
|
131
|
+
font-size: 1.23em;
|
|
132
|
+
margin-top: 1em;
|
|
133
|
+
margin-bottom: 0.5em;
|
|
134
|
+
font-weight: 500;
|
|
135
|
+
color: var(--p-surface-800);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.app-dark-mode:not(.email-rendering) {
|
|
139
|
+
a {
|
|
140
|
+
color: var(--p-blue-400);
|
|
141
|
+
}
|
|
142
|
+
a:hover {
|
|
143
|
+
color: var(--p-blue-500);
|
|
144
|
+
}
|
|
145
|
+
a:visited {
|
|
146
|
+
color: var(--p-purple-400);
|
|
147
|
+
}
|
|
148
|
+
a:active {
|
|
149
|
+
color: var(--p-blue-600);
|
|
150
|
+
}
|
|
151
|
+
h1, h2, h3, h4, h5, h6 {
|
|
152
|
+
color: var(--p-surface-100);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
p {
|
|
157
|
+
margin-top: 0.5em;
|
|
158
|
+
margin-bottom: 0.5em;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
pre {
|
|
162
|
+
font-family: monospace;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
ul {
|
|
166
|
+
list-style: disc;
|
|
167
|
+
}
|
|
168
|
+
ol {
|
|
169
|
+
list-style: decimal;
|
|
170
|
+
}
|
|
171
|
+
li {
|
|
172
|
+
margin-top: 0.23em;
|
|
173
|
+
margin-bottom: 0.23em;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
</style>
|
package/front/src/config.js
CHANGED
|
@@ -3,7 +3,25 @@ import deepmerge from 'deepmerge';
|
|
|
3
3
|
import * as en from "../locales/en.js"
|
|
4
4
|
import { locales as autoFormLocales } from "@live-change/frontend-auto-form"
|
|
5
5
|
|
|
6
|
+
import Aura from '@primevue/themes/aura'
|
|
7
|
+
|
|
6
8
|
export default {
|
|
9
|
+
|
|
10
|
+
primeVue: {
|
|
11
|
+
theme: {
|
|
12
|
+
preset: Aura,
|
|
13
|
+
options: {
|
|
14
|
+
prefix: 'p',
|
|
15
|
+
darkModeSelector: '.app-dark-mode:not(.email-rendering)',
|
|
16
|
+
cssLayer: {
|
|
17
|
+
name: "primevue",
|
|
18
|
+
order: "base, primevue",
|
|
19
|
+
},
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
ripple: true
|
|
23
|
+
},
|
|
24
|
+
|
|
7
25
|
defaultLocale: 'en',
|
|
8
26
|
i18n: {
|
|
9
27
|
messages: {
|
|
@@ -23,4 +41,5 @@ export default {
|
|
|
23
41
|
])
|
|
24
42
|
}
|
|
25
43
|
}
|
|
44
|
+
|
|
26
45
|
}
|
package/package.json
CHANGED
|
@@ -1,75 +1,77 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/task-frontend",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.44",
|
|
4
4
|
"scripts": {
|
|
5
|
-
"memDev": "
|
|
6
|
-
"localDevInit": "
|
|
7
|
-
"localDev": "
|
|
8
|
-
"dev": "
|
|
9
|
-
"ssrDev": "
|
|
10
|
-
"serveAllMem": "cross-env NODE_ENV=production node server/start.js ssrServer --withApi --withServices --updateServices --enableSessions --withDb --dbBackend mem --createDb",
|
|
11
|
-
"serveAll": "cross-env NODE_ENV=production node server/start.js ssrServer --withApi --withServices --updateServices --enableSessions",
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
5
|
+
"memDev": "tsx --inspect --expose-gc server/start.js memDev --enableSessions --initScript ./init.js --dbAccess",
|
|
6
|
+
"localDevInit": "tsx server/start.js localDev --enableSessions --initScript ./init.js --dbAccess",
|
|
7
|
+
"localDev": "tsx server/start.js localDev --enableSessions --dbAccess",
|
|
8
|
+
"dev": "tsx --inspect --expose-gc server/start.js dev --enableSessions",
|
|
9
|
+
"ssrDev": "tsx server/start.js ssrDev --enableSessions",
|
|
10
|
+
"serveAllMem": "cross-env NODE_ENV=production node dist/server/start.js ssrServer --withApi --withServices --updateServices --enableSessions --withDb --dbBackend mem --createDb",
|
|
11
|
+
"serveAll": "cross-env NODE_ENV=production node dist/server/start.js ssrServer --withApi --withServices --updateServices --enableSessions",
|
|
12
|
+
"serveAllLocal": "cross-env NODE_ENV=production node dist/server/start.js ssrServer --withApi --withServices --updateServices --enableSessions --withDb --createDb",
|
|
13
|
+
"serve": "cross-env NODE_ENV=production node dist/server/start.js ssrServer --enableSessions",
|
|
14
|
+
"memDev:spa": "tsx server/start.js memDev --enableSessions --initScript ./init.js --dbAccess --spa",
|
|
15
|
+
"localDevInit:spa": "rm tmp.db; tsx server/start.js localDev --enableSessions --initScript ./init.js --spa",
|
|
16
|
+
"localDev:spa": "tsx server/start.js localDev --enableSessions --spa",
|
|
17
|
+
"dev:spa": "tsx server/start.js dev --enableSessions --spa",
|
|
18
|
+
"ssrDev:spa": "tsx server/start.js ssrDev --enableSessions --spa",
|
|
19
|
+
"serveAllMem:spa": "cross-env NODE_ENV=production node dist/server/start.js server --withApi --withServices --updateServices --enableSessions --withDb --dbBackend mem --createDb --spa",
|
|
20
|
+
"serveAll:spa": "cross-env NODE_ENV=production node dist/server/start.js server --withApi --withServices --updateServices --enableSessions --spa",
|
|
21
|
+
"serve:spa": "cross-env NODE_ENV=production node dist/server/start.js server --enableSessions --spa",
|
|
22
|
+
"apiServer": "node dist/server/start.js apiServer --enableSessions",
|
|
23
|
+
"devApiServer": "tsx server/start.js devApiServer --enableSessions",
|
|
24
|
+
"memApiServer": "tsx server/start.js memApiServer --enableSessions",
|
|
25
|
+
"build": "yarn build:client && yarn build:ssr && yarn build:server",
|
|
25
26
|
"build:client": "cd front; dotenvx run -f ../.env -- vite build --ssrManifest --outDir dist/client",
|
|
26
|
-
"build:
|
|
27
|
+
"build:ssr": "cd front; dotenvx run -f ../.env -- vite build --ssr src/entry-server.js --outDir dist/server",
|
|
28
|
+
"build:server": "tsc --allowJs && copyfiles node_modules/@live-change/*-service/package.json dist",
|
|
27
29
|
"build:spa": "cd front; dotenvx run -f ../.env -- vite build --outDir dist/spa",
|
|
28
|
-
"generate": "vite build --ssrManifest --outDir dist/static && yarn build:server &&
|
|
29
|
-
"debug": "
|
|
30
|
-
"describe": "
|
|
31
|
-
"changes": "
|
|
30
|
+
"generate": "vite build --ssrManifest --outDir dist/static && yarn build:server && tsx prerender",
|
|
31
|
+
"debug": "tsx --inspect-brk server",
|
|
32
|
+
"describe": "tsx server/start.js describe",
|
|
33
|
+
"changes": "tsx server/start.js changes"
|
|
32
34
|
},
|
|
33
35
|
"type": "module",
|
|
34
36
|
"dependencies": {
|
|
35
37
|
"@codemirror/language": "6.10.1",
|
|
36
38
|
"@dotenvx/dotenvx": "0.27.0",
|
|
37
39
|
"@fortawesome/fontawesome-free": "^6.7.2",
|
|
38
|
-
"@live-change/access-control-frontend": "^0.9.
|
|
39
|
-
"@live-change/access-control-service": "^0.9.
|
|
40
|
-
"@live-change/backup-service": "^0.9.
|
|
41
|
-
"@live-change/blog-frontend": "^0.9.
|
|
42
|
-
"@live-change/blog-service": "^0.9.
|
|
43
|
-
"@live-change/cli": "^0.9.
|
|
44
|
-
"@live-change/content-frontend": "^0.9.
|
|
45
|
-
"@live-change/content-service": "^0.9.
|
|
46
|
-
"@live-change/dao": "^0.9.
|
|
47
|
-
"@live-change/dao-vue3": "^0.9.
|
|
48
|
-
"@live-change/dao-websocket": "^0.9.
|
|
49
|
-
"@live-change/db-client": "^0.9.
|
|
50
|
-
"@live-change/email-service": "^0.9.
|
|
51
|
-
"@live-change/framework": "^0.9.
|
|
52
|
-
"@live-change/frontend-auto-form": "^0.9.
|
|
53
|
-
"@live-change/frontend-base": "^0.9.
|
|
54
|
-
"@live-change/geoip-service": "^0.9.
|
|
55
|
-
"@live-change/image-frontend": "^0.9.
|
|
56
|
-
"@live-change/locale-settings-service": "^0.9.
|
|
57
|
-
"@live-change/password-authentication-service": "^0.9.
|
|
58
|
-
"@live-change/prosemirror-service": "^0.9.
|
|
59
|
-
"@live-change/secret-code-service": "^0.9.
|
|
60
|
-
"@live-change/secret-link-service": "^0.9.
|
|
61
|
-
"@live-change/session-service": "^0.9.
|
|
62
|
-
"@live-change/task-service": "^0.9.
|
|
63
|
-
"@live-change/upload-frontend": "^0.9.
|
|
64
|
-
"@live-change/url-frontend": "^0.9.
|
|
65
|
-
"@live-change/url-service": "^0.9.
|
|
66
|
-
"@live-change/user-frontend": "^0.9.
|
|
67
|
-
"@live-change/user-identification-service": "^0.9.
|
|
68
|
-
"@live-change/user-service": "^0.9.
|
|
69
|
-
"@live-change/vote-service": "^0.9.
|
|
70
|
-
"@live-change/vue3-components": "^0.9.
|
|
71
|
-
"@live-change/vue3-ssr": "^0.9.
|
|
72
|
-
"@live-change/wysiwyg-frontend": "^0.9.
|
|
40
|
+
"@live-change/access-control-frontend": "^0.9.44",
|
|
41
|
+
"@live-change/access-control-service": "^0.9.44",
|
|
42
|
+
"@live-change/backup-service": "^0.9.44",
|
|
43
|
+
"@live-change/blog-frontend": "^0.9.44",
|
|
44
|
+
"@live-change/blog-service": "^0.9.44",
|
|
45
|
+
"@live-change/cli": "^0.9.44",
|
|
46
|
+
"@live-change/content-frontend": "^0.9.44",
|
|
47
|
+
"@live-change/content-service": "^0.9.44",
|
|
48
|
+
"@live-change/dao": "^0.9.44",
|
|
49
|
+
"@live-change/dao-vue3": "^0.9.44",
|
|
50
|
+
"@live-change/dao-websocket": "^0.9.44",
|
|
51
|
+
"@live-change/db-client": "^0.9.44",
|
|
52
|
+
"@live-change/email-service": "^0.9.44",
|
|
53
|
+
"@live-change/framework": "^0.9.44",
|
|
54
|
+
"@live-change/frontend-auto-form": "^0.9.44",
|
|
55
|
+
"@live-change/frontend-base": "^0.9.44",
|
|
56
|
+
"@live-change/geoip-service": "^0.9.44",
|
|
57
|
+
"@live-change/image-frontend": "^0.9.44",
|
|
58
|
+
"@live-change/locale-settings-service": "^0.9.44",
|
|
59
|
+
"@live-change/password-authentication-service": "^0.9.44",
|
|
60
|
+
"@live-change/prosemirror-service": "^0.9.44",
|
|
61
|
+
"@live-change/secret-code-service": "^0.9.44",
|
|
62
|
+
"@live-change/secret-link-service": "^0.9.44",
|
|
63
|
+
"@live-change/session-service": "^0.9.44",
|
|
64
|
+
"@live-change/task-service": "^0.9.44",
|
|
65
|
+
"@live-change/upload-frontend": "^0.9.44",
|
|
66
|
+
"@live-change/url-frontend": "^0.9.44",
|
|
67
|
+
"@live-change/url-service": "^0.9.44",
|
|
68
|
+
"@live-change/user-frontend": "^0.9.44",
|
|
69
|
+
"@live-change/user-identification-service": "^0.9.44",
|
|
70
|
+
"@live-change/user-service": "^0.9.44",
|
|
71
|
+
"@live-change/vote-service": "^0.9.44",
|
|
72
|
+
"@live-change/vue3-components": "^0.9.44",
|
|
73
|
+
"@live-change/vue3-ssr": "^0.9.44",
|
|
74
|
+
"@live-change/wysiwyg-frontend": "^0.9.44",
|
|
73
75
|
"@vueuse/core": "^12.3.0",
|
|
74
76
|
"codeceptjs-assert": "^0.0.5",
|
|
75
77
|
"compression": "^1.7.5",
|
|
@@ -91,7 +93,7 @@
|
|
|
91
93
|
"vue3-scroll-border": "0.1.6"
|
|
92
94
|
},
|
|
93
95
|
"devDependencies": {
|
|
94
|
-
"@live-change/codeceptjs-helper": "^0.9.
|
|
96
|
+
"@live-change/codeceptjs-helper": "^0.9.44",
|
|
95
97
|
"codeceptjs": "^3.6.10",
|
|
96
98
|
"generate-password": "1.7.1",
|
|
97
99
|
"playwright": "1.49.1",
|
|
@@ -102,5 +104,5 @@
|
|
|
102
104
|
"author": "Michał Łaszczewski <michal@laszczewski.pl>",
|
|
103
105
|
"license": "ISC",
|
|
104
106
|
"description": "",
|
|
105
|
-
"gitHead": "
|
|
107
|
+
"gitHead": "6e9cf980b2ac6e4e7d78955cbf97ae1c2963bcab"
|
|
106
108
|
}
|
package/server/start.js
CHANGED
|
@@ -6,6 +6,29 @@ for(const serviceConfig of appConfig.services) {
|
|
|
6
6
|
}
|
|
7
7
|
appConfig.init = services['init']
|
|
8
8
|
|
|
9
|
+
import { fileURLToPath } from 'url'
|
|
10
|
+
import { dirname, join } from 'path'
|
|
11
|
+
import { accessSync, readFileSync } from 'fs'
|
|
12
|
+
|
|
13
|
+
const packageJsonPath = dirname(fileURLToPath(import.meta.url))
|
|
14
|
+
.split('/').map((part, i, arr) =>
|
|
15
|
+
join(arr.slice(0, arr.length - i).join('/'), 'package.json')
|
|
16
|
+
).find(p => { try { accessSync(p); return true } catch(e) { return false }})
|
|
17
|
+
const packageJson = packageJsonPath ? JSON.parse(readFileSync(packageJsonPath, 'utf-8')) : {}
|
|
18
|
+
|
|
19
|
+
const name = packageJson.name ?? "Example"
|
|
20
|
+
const brandName = process.env.BRAND_NAME || (name[0].toUpperCase() + name.slice(1))
|
|
21
|
+
const homepage = process.env.BASE_HREF ?? packageJson.homepage
|
|
22
|
+
const brandDomain = process.env.BRAND_DOMAIN ||
|
|
23
|
+
(homepage && homepage.match(/https\:\/\/([^\/]+)/)?.[1]) || 'example.com'
|
|
24
|
+
const baseHref = process.env.BASE_HREF || homepage || 'http://localhost:8001'
|
|
25
|
+
|
|
26
|
+
appConfig.clientConfig = {
|
|
27
|
+
version: packageJson.version,
|
|
28
|
+
name, brandName, brandDomain, homepage, baseHref,
|
|
29
|
+
...appConfig.clientConfig
|
|
30
|
+
}
|
|
31
|
+
|
|
9
32
|
import { starter } from '@live-change/cli'
|
|
10
33
|
|
|
11
34
|
starter(appConfig)
|