@live-change/frontend-template 0.9.201 → 0.9.204
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/.claude/rules/live-change-backend-actions-views-triggers.md +49 -1
- package/.claude/rules/live-change-backend-architecture.md +5 -5
- package/.claude/rules/live-change-backend-event-sourcing.md +2 -2
- package/.claude/rules/live-change-backend-models-and-relations.md +65 -8
- package/.claude/rules/live-change-frontend-e2e-lifecycle.md +42 -0
- package/.claude/rules/live-change-frontend-i18n-locales.md +25 -0
- package/.claude/rules/live-change-frontend-vue-primevue.md +100 -4
- package/.claude/rules/live-change-node-toolchain-fnm.md +39 -0
- package/.claude/rules/live-change-service-structure.md +2 -2
- package/.claude/settings.json +3 -1
- package/.claude/skills/create-skills-and-rules/SKILL.md +23 -0
- package/.claude/skills/live-change-backend-change-triggers/SKILL.md +15 -0
- package/.claude/skills/live-change-dao-protocol/SKILL.md +46 -0
- package/.claude/skills/live-change-design-actions-views-triggers/SKILL.md +116 -0
- package/.claude/skills/live-change-design-models-relations/SKILL.md +63 -5
- package/.claude/skills/live-change-frontend-command-forms/SKILL.md +6 -5
- package/.claude/skills/live-change-frontend-data-views/SKILL.md +75 -4
- package/.claude/skills/live-change-frontend-e2e-lifecycle/SKILL.md +82 -0
- package/.claude/skills/live-change-frontend-range-list/SKILL.md +90 -0
- package/.claude/skills/live-change-frontend-synchronized/SKILL.md +101 -0
- package/.claude/skills/live-change-node-toolchain-fnm/SKILL.md +44 -0
- package/.cursor/rules/live-change-backend-actions-views-triggers.mdc +58 -4
- package/.cursor/rules/live-change-backend-architecture.mdc +1 -1
- package/.cursor/rules/live-change-backend-event-sourcing.mdc +1 -1
- package/.cursor/rules/live-change-backend-models-and-relations.mdc +69 -7
- package/.cursor/rules/live-change-backend-views-vs-triggers-for-reads-writes.mdc +28 -0
- package/.cursor/rules/live-change-dao-protocol.mdc +47 -0
- package/.cursor/rules/live-change-frontend-e2e-lifecycle.mdc +15 -0
- package/.cursor/rules/live-change-frontend-i18n-locales.mdc +26 -0
- package/.cursor/rules/live-change-frontend-views-not-commands-for-reads.mdc +30 -0
- package/.cursor/rules/live-change-frontend-vue-primevue.mdc +91 -0
- package/.cursor/rules/live-change-node-toolchain-fnm.mdc +40 -0
- package/.cursor/rules/live-change-service-structure.mdc +1 -1
- package/.cursor/skills/create-skills-and-rules.md +23 -0
- package/.cursor/skills/live-change-backend-change-triggers.md +15 -0
- package/.cursor/skills/live-change-design-actions-views-triggers.md +57 -0
- package/.cursor/skills/live-change-design-models-relations.md +23 -5
- package/.cursor/skills/live-change-frontend-command-forms.md +6 -5
- package/.cursor/skills/live-change-frontend-data-views.md +17 -0
- package/.cursor/skills/live-change-frontend-e2e-lifecycle.md +82 -0
- package/.cursor/skills/live-change-frontend-range-list.md +45 -0
- package/.cursor/skills/live-change-frontend-synchronized.md +101 -0
- package/.cursor/skills/live-change-node-toolchain-fnm.md +44 -0
- package/.node-version +1 -0
- package/.nvmrc +1 -0
- package/README.md +18 -0
- package/e2e/client-session.test.ts +17 -0
- package/e2e/e2eSuite.ts +12 -0
- package/e2e/env.ts +130 -0
- package/e2e/homepage.test.ts +17 -0
- package/e2e/steps.ts +3 -0
- package/e2e/withBrowser.ts +18 -0
- package/opencode.json +4 -1
- package/package.json +55 -53
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import test from 'node:test'
|
|
2
|
+
import assert from 'node:assert'
|
|
3
|
+
import { withBrowser } from './withBrowser.js'
|
|
4
|
+
import { e2eSuite } from './e2eSuite.js'
|
|
5
|
+
|
|
6
|
+
e2eSuite('homepage', () => {
|
|
7
|
+
test('homepage responds and renders html', async () => {
|
|
8
|
+
await withBrowser(async (page, env) => {
|
|
9
|
+
const response = await page.goto(env.url + '/', { waitUntil: 'networkidle' })
|
|
10
|
+
assert.ok(response, 'navigation returned response')
|
|
11
|
+
assert.ok(response!.ok(), 'homepage responds with success status')
|
|
12
|
+
|
|
13
|
+
const html = await page.content()
|
|
14
|
+
assert.ok(html.includes('<html'), 'page content contains html tag')
|
|
15
|
+
})
|
|
16
|
+
})
|
|
17
|
+
})
|
package/e2e/steps.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { chromium } from 'playwright'
|
|
2
|
+
import type { Page } from 'playwright'
|
|
3
|
+
import { getTestEnv, type TestEnv } from './env.js'
|
|
4
|
+
|
|
5
|
+
export async function withBrowser(
|
|
6
|
+
fn: (page: Page, env: TestEnv) => Promise<void>
|
|
7
|
+
): Promise<void> {
|
|
8
|
+
const env = await getTestEnv()
|
|
9
|
+
const browser = await chromium.launch({ headless: process.env.SHOW_BROWSER ? false : true })
|
|
10
|
+
const context = await browser.newContext()
|
|
11
|
+
const page = await context.newPage()
|
|
12
|
+
try {
|
|
13
|
+
await fn(page, env)
|
|
14
|
+
} finally {
|
|
15
|
+
await context.close()
|
|
16
|
+
await browser.close()
|
|
17
|
+
}
|
|
18
|
+
}
|
package/opencode.json
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://opencode.ai/config.json",
|
|
3
3
|
"instructions": [
|
|
4
|
+
".claude/rules/live-change-node-toolchain-fnm.md",
|
|
4
5
|
".claude/rules/live-change-backend-architecture.md",
|
|
5
6
|
".claude/rules/live-change-backend-actions-views-triggers.md",
|
|
6
7
|
".claude/rules/live-change-backend-models-and-relations.md",
|
|
7
8
|
".claude/rules/live-change-service-structure.md",
|
|
8
|
-
".claude/rules/live-change-frontend-vue-primevue.md"
|
|
9
|
+
".claude/rules/live-change-frontend-vue-primevue.md",
|
|
10
|
+
".claude/rules/live-change-frontend-i18n-locales.md",
|
|
11
|
+
".claude/rules/live-change-frontend-e2e-lifecycle.md"
|
|
9
12
|
]
|
|
10
13
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/frontend-template",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.204",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"memDev": "tsx --inspect --expose-gc server/start.js memDev --enableSessions --initScript ./init.js --dbAccess",
|
|
6
6
|
"localDevInit": "tsx server/start.js localDev --enableSessions --initScript ./init.js --dbAccess",
|
|
@@ -38,63 +38,65 @@
|
|
|
38
38
|
"prerenderLocal": "cross-env NODE_ENV=production node dist/server/start.js prerender --enableSessions --withDb --createDb --withApi --withServices --updateServices",
|
|
39
39
|
"prerenderTsx": "cross-env NODE_ENV=production tsx server/start.js prerender --enableSessions",
|
|
40
40
|
"prerenderMemTsx": "cross-env NODE_ENV=production tsx server/start.js prerender --enableSessions --withDb --dbBackend mem --createDb --withApi --withServices --updateServices",
|
|
41
|
-
"prerenderLocalTsx": "cross-env NODE_ENV=production tsx server/start.js prerender --enableSessions --withDb --createDb --withApi --withServices --updateServices"
|
|
41
|
+
"prerenderLocalTsx": "cross-env NODE_ENV=production tsx server/start.js prerender --enableSessions --withDb --createDb --withApi --withServices --updateServices",
|
|
42
|
+
"e2e": "tsx --test e2e/*.test.ts",
|
|
43
|
+
"e2e:headed": "SHOW_BROWSER=1 tsx --test e2e/*.test.ts"
|
|
42
44
|
},
|
|
43
45
|
"type": "module",
|
|
44
46
|
"dependencies": {
|
|
45
47
|
"@codemirror/language": "6.10.1",
|
|
46
48
|
"@dotenvx/dotenvx": "0.27.0",
|
|
47
49
|
"@fortawesome/fontawesome-free": "^6.7.2",
|
|
48
|
-
"@live-change/access-control-frontend": "^0.9.
|
|
49
|
-
"@live-change/access-control-service": "^0.9.
|
|
50
|
-
"@live-change/agreement-service": "^0.9.
|
|
51
|
-
"@live-change/backup-service": "^0.9.
|
|
52
|
-
"@live-change/blog-frontend": "^0.9.
|
|
53
|
-
"@live-change/blog-service": "^0.9.
|
|
54
|
-
"@live-change/cli": "^0.9.
|
|
55
|
-
"@live-change/content-frontend": "^0.9.
|
|
56
|
-
"@live-change/content-service": "^0.9.
|
|
57
|
-
"@live-change/cron-service": "^0.9.
|
|
58
|
-
"@live-change/dao": "^0.9.
|
|
59
|
-
"@live-change/dao-vue3": "^0.9.
|
|
60
|
-
"@live-change/dao-websocket": "^0.9.
|
|
61
|
-
"@live-change/db-client": "^0.9.
|
|
62
|
-
"@live-change/draft-service": "^0.9.
|
|
63
|
-
"@live-change/email-service": "^0.9.
|
|
64
|
-
"@live-change/framework": "^0.9.
|
|
65
|
-
"@live-change/frontend-auto-form": "^0.9.
|
|
66
|
-
"@live-change/frontend-base": "^0.9.
|
|
67
|
-
"@live-change/geoip-service": "^0.9.
|
|
68
|
-
"@live-change/google-authentication-service": "^0.9.
|
|
69
|
-
"@live-change/image-frontend": "^0.9.
|
|
70
|
-
"@live-change/linkedin-authentication-service": "^0.9.
|
|
71
|
-
"@live-change/locale-settings-service": "^0.9.
|
|
72
|
-
"@live-change/notification-service": "^0.9.
|
|
73
|
-
"@live-change/password-authentication-service": "^0.9.
|
|
74
|
-
"@live-change/peer-connection-frontend": "^0.9.
|
|
75
|
-
"@live-change/peer-connection-service": "^0.9.
|
|
76
|
-
"@live-change/prosemirror-service": "^0.9.
|
|
77
|
-
"@live-change/scope-service": "^0.9.
|
|
78
|
-
"@live-change/secret-code-service": "^0.9.
|
|
79
|
-
"@live-change/secret-link-service": "^0.9.
|
|
80
|
-
"@live-change/security-service": "^0.9.
|
|
81
|
-
"@live-change/session-service": "^0.9.
|
|
82
|
-
"@live-change/task-frontend": "^0.9.
|
|
83
|
-
"@live-change/task-service": "^0.9.
|
|
84
|
-
"@live-change/timer-service": "^0.9.
|
|
85
|
-
"@live-change/upload-frontend": "^0.9.
|
|
86
|
-
"@live-change/upload-service": "^0.9.
|
|
87
|
-
"@live-change/url-frontend": "^0.9.
|
|
88
|
-
"@live-change/url-service": "^0.9.
|
|
89
|
-
"@live-change/user-frontend": "^0.9.
|
|
90
|
-
"@live-change/user-identification-service": "^0.9.
|
|
91
|
-
"@live-change/user-service": "^0.9.
|
|
92
|
-
"@live-change/video-call-frontend": "^0.9.
|
|
93
|
-
"@live-change/video-call-service": "^0.9.
|
|
94
|
-
"@live-change/vote-service": "^0.9.
|
|
95
|
-
"@live-change/vue3-components": "^0.9.
|
|
96
|
-
"@live-change/vue3-ssr": "^0.9.
|
|
97
|
-
"@live-change/wysiwyg-frontend": "^0.9.
|
|
50
|
+
"@live-change/access-control-frontend": "^0.9.204",
|
|
51
|
+
"@live-change/access-control-service": "^0.9.204",
|
|
52
|
+
"@live-change/agreement-service": "^0.9.204",
|
|
53
|
+
"@live-change/backup-service": "^0.9.204",
|
|
54
|
+
"@live-change/blog-frontend": "^0.9.204",
|
|
55
|
+
"@live-change/blog-service": "^0.9.204",
|
|
56
|
+
"@live-change/cli": "^0.9.204",
|
|
57
|
+
"@live-change/content-frontend": "^0.9.204",
|
|
58
|
+
"@live-change/content-service": "^0.9.204",
|
|
59
|
+
"@live-change/cron-service": "^0.9.204",
|
|
60
|
+
"@live-change/dao": "^0.9.204",
|
|
61
|
+
"@live-change/dao-vue3": "^0.9.204",
|
|
62
|
+
"@live-change/dao-websocket": "^0.9.204",
|
|
63
|
+
"@live-change/db-client": "^0.9.204",
|
|
64
|
+
"@live-change/draft-service": "^0.9.204",
|
|
65
|
+
"@live-change/email-service": "^0.9.204",
|
|
66
|
+
"@live-change/framework": "^0.9.204",
|
|
67
|
+
"@live-change/frontend-auto-form": "^0.9.204",
|
|
68
|
+
"@live-change/frontend-base": "^0.9.204",
|
|
69
|
+
"@live-change/geoip-service": "^0.9.204",
|
|
70
|
+
"@live-change/google-authentication-service": "^0.9.204",
|
|
71
|
+
"@live-change/image-frontend": "^0.9.204",
|
|
72
|
+
"@live-change/linkedin-authentication-service": "^0.9.204",
|
|
73
|
+
"@live-change/locale-settings-service": "^0.9.204",
|
|
74
|
+
"@live-change/notification-service": "^0.9.204",
|
|
75
|
+
"@live-change/password-authentication-service": "^0.9.204",
|
|
76
|
+
"@live-change/peer-connection-frontend": "^0.9.204",
|
|
77
|
+
"@live-change/peer-connection-service": "^0.9.204",
|
|
78
|
+
"@live-change/prosemirror-service": "^0.9.204",
|
|
79
|
+
"@live-change/scope-service": "^0.9.204",
|
|
80
|
+
"@live-change/secret-code-service": "^0.9.204",
|
|
81
|
+
"@live-change/secret-link-service": "^0.9.204",
|
|
82
|
+
"@live-change/security-service": "^0.9.204",
|
|
83
|
+
"@live-change/session-service": "^0.9.204",
|
|
84
|
+
"@live-change/task-frontend": "^0.9.204",
|
|
85
|
+
"@live-change/task-service": "^0.9.204",
|
|
86
|
+
"@live-change/timer-service": "^0.9.204",
|
|
87
|
+
"@live-change/upload-frontend": "^0.9.204",
|
|
88
|
+
"@live-change/upload-service": "^0.9.204",
|
|
89
|
+
"@live-change/url-frontend": "^0.9.204",
|
|
90
|
+
"@live-change/url-service": "^0.9.204",
|
|
91
|
+
"@live-change/user-frontend": "^0.9.204",
|
|
92
|
+
"@live-change/user-identification-service": "^0.9.204",
|
|
93
|
+
"@live-change/user-service": "^0.9.204",
|
|
94
|
+
"@live-change/video-call-frontend": "^0.9.204",
|
|
95
|
+
"@live-change/video-call-service": "^0.9.204",
|
|
96
|
+
"@live-change/vote-service": "^0.9.204",
|
|
97
|
+
"@live-change/vue3-components": "^0.9.204",
|
|
98
|
+
"@live-change/vue3-ssr": "^0.9.204",
|
|
99
|
+
"@live-change/wysiwyg-frontend": "^0.9.204",
|
|
98
100
|
"@vueuse/core": "^12.3.0",
|
|
99
101
|
"codeceptjs-assert": "^0.0.5",
|
|
100
102
|
"compression": "^1.7.5",
|
|
@@ -127,5 +129,5 @@
|
|
|
127
129
|
"author": "Michał Łaszczewski <michal@laszczewski.pl>",
|
|
128
130
|
"license": "ISC",
|
|
129
131
|
"description": "",
|
|
130
|
-
"gitHead": "
|
|
132
|
+
"gitHead": "6ac17ccf3c184ca4d7ef920f63827dbfd8749f96"
|
|
131
133
|
}
|