@askrjs/cli 0.0.2 → 0.0.4
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 +46 -7
- package/dist/add.d.ts +16 -0
- package/dist/add.js +558 -1
- package/dist/cli.d.ts +5 -0
- package/dist/cli.js +43 -16
- package/dist/create.d.ts +5 -0
- package/dist/create.js +104 -26
- package/dist/directory-swap-DWoHtx7C.js +35 -0
- package/dist/discovery-Difb7Y4G.js +323 -0
- package/dist/generate.d.ts +5 -0
- package/dist/generate.js +461 -0
- package/dist/is-direct-execution-Cdlr-ZUl.js +0 -2
- package/dist/openapi.d.ts +25 -0
- package/dist/openapi.js +49 -16
- package/dist/planner-VAj7qlxr.js +285 -0
- package/dist/range-YUs9eimn.js +125 -0
- package/dist/registry-CyrRHRG5.js +209 -0
- package/dist/skills/askr-dashboard-charts/SKILL.md +61 -44
- package/dist/skills/askr-dashboard-charts/agents/openai.yaml +2 -2
- package/dist/skills/askr-ssr-ssg/SKILL.md +3 -1
- package/dist/{skills-Bh0mEhIx.js → skills-B7CbWur9.js} +89 -26
- package/dist/skills.d.ts +18 -0
- package/dist/skills.js +1 -1
- package/dist/specification-DXnDOC-0.js +49 -0
- package/dist/ssg-config.d.ts +41 -0
- package/dist/ssg-config.js +1 -0
- package/dist/ssg.d.ts +61 -0
- package/dist/ssg.js +360 -24
- package/dist/templates/full-stack/AGENTS.md +0 -1
- package/dist/templates/full-stack/README.md +0 -1
- package/dist/templates/full-stack/index.html +0 -1
- package/dist/templates/full-stack/package.json +5 -3
- package/dist/templates/full-stack/server.ts +5 -9
- package/dist/templates/full-stack/src/action-authorizations.ts +2 -2
- package/dist/templates/full-stack/src/actions/create-message.ts +5 -5
- package/dist/templates/full-stack/src/i18n.ts +4 -4
- package/dist/templates/full-stack/src/main.tsx +4 -5
- package/dist/templates/full-stack/src/pages/home.tsx +5 -5
- package/dist/templates/full-stack/src/pages/layout.tsx +15 -5
- package/dist/templates/full-stack/src/pages/not-found.tsx +5 -2
- package/dist/templates/full-stack/src/routes.tsx +11 -12
- package/dist/templates/full-stack/src/schemas.ts +1 -2
- package/dist/templates/full-stack/src/server/action-registry.ts +5 -10
- package/dist/templates/full-stack/src/server/actions/create-message.ts +4 -4
- package/dist/templates/full-stack/src/server/app.ts +67 -57
- package/dist/templates/full-stack/src/server/dependencies.ts +10 -10
- package/dist/templates/full-stack/src/server/entry-server.ts +3 -3
- package/dist/templates/full-stack/src/telemetry.ts +1 -2
- package/dist/templates/full-stack/tests/actions/create-message.test.ts +7 -8
- package/dist/templates/full-stack/tsconfig.json +1 -2
- package/dist/templates/full-stack/vite.config.ts +5 -6
- package/dist/templates/spa/AGENTS.md +1 -1
- package/dist/templates/spa/package.json +3 -4
- package/dist/templates/spa/src/adapters/operations-client.ts +7 -2
- package/dist/templates/spa/src/pages/app/_routes.tsx +2 -0
- package/dist/templates/spa/src/pages/app/admin-home.tsx +21 -3
- package/dist/templates/spa/src/pages/public/_routes.tsx +2 -0
- package/dist/templates/spa/src/styles.css +1 -1
- package/dist/templates/spa/tsconfig.json +2 -1
- package/dist/templates/spa/vitest.config.ts +0 -4
- package/dist/templates/ssg/README.md +1 -1
- package/dist/templates/ssg/package.json +1 -1
- package/dist/templates/ssg/ssg.config.ts +7 -0
- package/dist/templates/ssg/tests/ssg-config.test.ts +5 -3
- package/dist/templates/ssg/tsconfig.json +2 -1
- package/dist/templates/ssg/vitest.config.ts +0 -4
- package/dist/templates/ssr/package.json +2 -2
- package/dist/templates/ssr/server.ts +4 -10
- package/dist/templates/ssr/src/entry-server.tsx +6 -4
- package/dist/templates/startkit/package.json +2 -2
- package/dist/templates/startkit/src/lib/mock-data.ts +17 -39
- package/dist/templates/startkit/tsconfig.json +2 -1
- package/dist/update.d.ts +41 -0
- package/dist/update.js +282 -2
- package/dist/writer-D8qe_7ud.js +226 -0
- package/package.json +23 -22
- package/dist/add-DqhqRzBQ.js +0 -555
- package/dist/add-DqhqRzBQ.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/create.js.map +0 -1
- package/dist/is-direct-execution-Cdlr-ZUl.js.map +0 -1
- package/dist/openapi.js.map +0 -1
- package/dist/skills-Bh0mEhIx.js.map +0 -1
- package/dist/ssg.js.map +0 -1
- package/dist/templates/full-stack/src/vite-server.d.ts +0 -6
- package/dist/templates/spa/src/styles.d.ts +0 -1
- package/dist/templates/ssg/src/vite-env.d.ts +0 -5
- package/dist/templates/ssr/src/vite-server.d.ts +0 -7
- package/dist/templates/startkit/src/vite-env.d.ts +0 -5
- package/dist/update-DyW1na5V.js +0 -1140
- package/dist/update-DyW1na5V.js.map +0 -1
- package/skills/askr-accessibility/SKILL.md +0 -68
- package/skills/askr-accessibility/agents/openai.yaml +0 -4
- package/skills/askr-agent-execution/SKILL.md +0 -85
- package/skills/askr-agent-execution/agents/openai.yaml +0 -4
- package/skills/askr-agent-workflows/SKILL.md +0 -57
- package/skills/askr-agent-workflows/agents/openai.yaml +0 -4
- package/skills/askr-api-integration/SKILL.md +0 -79
- package/skills/askr-api-integration/agents/openai.yaml +0 -4
- package/skills/askr-app-builder/SKILL.md +0 -99
- package/skills/askr-app-builder/agents/openai.yaml +0 -4
- package/skills/askr-auth-access/SKILL.md +0 -74
- package/skills/askr-auth-access/agents/openai.yaml +0 -4
- package/skills/askr-cli-vite/SKILL.md +0 -76
- package/skills/askr-cli-vite/agents/openai.yaml +0 -4
- package/skills/askr-dashboard-charts/SKILL.md +0 -82
- package/skills/askr-dashboard-charts/agents/openai.yaml +0 -4
- package/skills/askr-design-system/SKILL.md +0 -86
- package/skills/askr-design-system/agents/openai.yaml +0 -4
- package/skills/askr-env-config/SKILL.md +0 -74
- package/skills/askr-env-config/agents/openai.yaml +0 -4
- package/skills/askr-error-loading-empty/SKILL.md +0 -89
- package/skills/askr-error-loading-empty/agents/openai.yaml +0 -4
- package/skills/askr-file-upload-artifacts/SKILL.md +0 -77
- package/skills/askr-file-upload-artifacts/agents/openai.yaml +0 -4
- package/skills/askr-forms-tables-crud/SKILL.md +0 -98
- package/skills/askr-forms-tables-crud/agents/openai.yaml +0 -4
- package/skills/askr-mental-model/SKILL.md +0 -109
- package/skills/askr-mental-model/agents/openai.yaml +0 -4
- package/skills/askr-migration-react/SKILL.md +0 -81
- package/skills/askr-migration-react/agents/openai.yaml +0 -4
- package/skills/askr-observability-debugging/SKILL.md +0 -83
- package/skills/askr-observability-debugging/agents/openai.yaml +0 -4
- package/skills/askr-project-structure/SKILL.md +0 -79
- package/skills/askr-project-structure/agents/openai.yaml +0 -4
- package/skills/askr-query-mutation/SKILL.md +0 -115
- package/skills/askr-query-mutation/agents/openai.yaml +0 -4
- package/skills/askr-realtime-streaming/SKILL.md +0 -76
- package/skills/askr-realtime-streaming/agents/openai.yaml +0 -4
- package/skills/askr-resources-data/SKILL.md +0 -100
- package/skills/askr-resources-data/agents/openai.yaml +0 -4
- package/skills/askr-routing-layouts/SKILL.md +0 -107
- package/skills/askr-routing-layouts/agents/openai.yaml +0 -4
- package/skills/askr-runtime-reactivity/SKILL.md +0 -92
- package/skills/askr-runtime-reactivity/agents/openai.yaml +0 -4
- package/skills/askr-ssr-ssg/SKILL.md +0 -76
- package/skills/askr-ssr-ssg/agents/openai.yaml +0 -4
- package/skills/askr-testing-determinism/SKILL.md +0 -75
- package/skills/askr-testing-determinism/agents/openai.yaml +0 -4
- package/skills/askr-theming/SKILL.md +0 -86
- package/skills/askr-theming/agents/openai.yaml +0 -4
- package/skills/askr-ui-composition/SKILL.md +0 -92
- package/skills/askr-ui-composition/agents/openai.yaml +0 -4
- package/templates/full-stack/AGENTS.md +0 -12
- package/templates/full-stack/README.md +0 -18
- package/templates/full-stack/gitignore.template +0 -4
- package/templates/full-stack/index.html +0 -14
- package/templates/full-stack/package.json +0 -37
- package/templates/full-stack/server.ts +0 -13
- package/templates/full-stack/src/action-authorizations.ts +0 -10
- package/templates/full-stack/src/actions/create-message.ts +0 -10
- package/templates/full-stack/src/i18n.ts +0 -8
- package/templates/full-stack/src/main.tsx +0 -12
- package/templates/full-stack/src/pages/home.tsx +0 -25
- package/templates/full-stack/src/pages/layout.tsx +0 -33
- package/templates/full-stack/src/pages/not-found.tsx +0 -4
- package/templates/full-stack/src/routes.tsx +0 -20
- package/templates/full-stack/src/schemas.ts +0 -11
- package/templates/full-stack/src/server/action-registry.ts +0 -12
- package/templates/full-stack/src/server/actions/create-message.ts +0 -14
- package/templates/full-stack/src/server/app.ts +0 -66
- package/templates/full-stack/src/server/dependencies.ts +0 -55
- package/templates/full-stack/src/server/entry-server.ts +0 -8
- package/templates/full-stack/src/telemetry.ts +0 -4
- package/templates/full-stack/src/vite-server.d.ts +0 -6
- package/templates/full-stack/tests/actions/create-message.test.ts +0 -13
- package/templates/full-stack/tsconfig.json +0 -16
- package/templates/full-stack/vite.config.ts +0 -11
- package/templates/spa/AGENTS.md +0 -60
- package/templates/spa/README.md +0 -96
- package/templates/spa/gitignore.template +0 -16
- package/templates/spa/index.html +0 -13
- package/templates/spa/package.json +0 -35
- package/templates/spa/src/adapters/operations-client.ts +0 -90
- package/templates/spa/src/components/shared/metric-card.tsx +0 -27
- package/templates/spa/src/components/shared/status-badge.tsx +0 -24
- package/templates/spa/src/features/operations/operations.query.ts +0 -9
- package/templates/spa/src/main.tsx +0 -10
- package/templates/spa/src/pages/_layout.tsx +0 -9
- package/templates/spa/src/pages/_routes.tsx +0 -27
- package/templates/spa/src/pages/app/_layout.tsx +0 -94
- package/templates/spa/src/pages/app/_routes.tsx +0 -10
- package/templates/spa/src/pages/app/admin-home.tsx +0 -152
- package/templates/spa/src/pages/app/agent-runs.tsx +0 -93
- package/templates/spa/src/pages/app/settings.tsx +0 -91
- package/templates/spa/src/pages/auth/_layout.tsx +0 -38
- package/templates/spa/src/pages/auth/_routes.tsx +0 -6
- package/templates/spa/src/pages/auth/login.tsx +0 -63
- package/templates/spa/src/pages/not-found.tsx +0 -22
- package/templates/spa/src/pages/public/_layout.tsx +0 -47
- package/templates/spa/src/pages/public/_routes.tsx +0 -6
- package/templates/spa/src/pages/public/home.tsx +0 -143
- package/templates/spa/src/shared/format.ts +0 -12
- package/templates/spa/src/shared/navigation.ts +0 -15
- package/templates/spa/src/styles/components.css +0 -49
- package/templates/spa/src/styles/layout.css +0 -192
- package/templates/spa/src/styles/reset.css +0 -44
- package/templates/spa/src/styles/theme.css +0 -57
- package/templates/spa/src/styles/tokens.css +0 -20
- package/templates/spa/src/styles.css +0 -7
- package/templates/spa/src/styles.d.ts +0 -1
- package/templates/spa/tests/app.test.tsx +0 -37
- package/templates/spa/tests/components/shared.test.tsx +0 -12
- package/templates/spa/tests/resources.test.ts +0 -22
- package/templates/spa/tsconfig.json +0 -20
- package/templates/spa/tsconfig.node.json +0 -10
- package/templates/spa/vite.config.ts +0 -24
- package/templates/spa/vitest.config.ts +0 -17
- package/templates/ssg/AGENTS.md +0 -55
- package/templates/ssg/README.md +0 -39
- package/templates/ssg/gitignore.template +0 -17
- package/templates/ssg/index.html +0 -13
- package/templates/ssg/package.json +0 -35
- package/templates/ssg/src/app.tsx +0 -14
- package/templates/ssg/src/components/badge.tsx +0 -3
- package/templates/ssg/src/components/counter.tsx +0 -30
- package/templates/ssg/src/components/site-shell.tsx +0 -111
- package/templates/ssg/src/jsx.d.ts +0 -23
- package/templates/ssg/src/main.tsx +0 -8
- package/templates/ssg/src/pages/about.tsx +0 -82
- package/templates/ssg/src/pages/content.tsx +0 -63
- package/templates/ssg/src/pages/example.tsx +0 -97
- package/templates/ssg/src/pages/home.tsx +0 -51
- package/templates/ssg/src/resources/user.ts +0 -15
- package/templates/ssg/src/routes.tsx +0 -15
- package/templates/ssg/src/styles.css +0 -89
- package/templates/ssg/src/vite-env.d.ts +0 -5
- package/templates/ssg/ssg.config.ts +0 -34
- package/templates/ssg/tests/app.test.tsx +0 -19
- package/templates/ssg/tests/components/counter.test.tsx +0 -18
- package/templates/ssg/tests/resources.test.ts +0 -11
- package/templates/ssg/tests/ssg-config.test.ts +0 -11
- package/templates/ssg/tsconfig.json +0 -20
- package/templates/ssg/tsconfig.node.json +0 -10
- package/templates/ssg/vite.config.ts +0 -24
- package/templates/ssg/vitest.config.ts +0 -17
- package/templates/ssr/AGENTS.md +0 -28
- package/templates/ssr/README.md +0 -38
- package/templates/ssr/gitignore.template +0 -16
- package/templates/ssr/index.html +0 -13
- package/templates/ssr/package.json +0 -34
- package/templates/ssr/server.ts +0 -16
- package/templates/ssr/src/app.tsx +0 -21
- package/templates/ssr/src/components/counter.tsx +0 -26
- package/templates/ssr/src/entry-server.tsx +0 -10
- package/templates/ssr/src/main.tsx +0 -11
- package/templates/ssr/src/pages/about.tsx +0 -75
- package/templates/ssr/src/pages/example.tsx +0 -113
- package/templates/ssr/src/pages/home.tsx +0 -56
- package/templates/ssr/src/resources/user.ts +0 -15
- package/templates/ssr/src/routes.tsx +0 -13
- package/templates/ssr/src/styles.css +0 -148
- package/templates/ssr/src/vite-server.d.ts +0 -7
- package/templates/ssr/tests/app.test.tsx +0 -24
- package/templates/ssr/tests/components/counter.test.tsx +0 -13
- package/templates/ssr/tests/resources.test.ts +0 -11
- package/templates/ssr/tsconfig.json +0 -22
- package/templates/ssr/tsconfig.node.json +0 -10
- package/templates/ssr/tsconfig.server.json +0 -15
- package/templates/ssr/vite.config.ts +0 -25
- package/templates/ssr/vitest.config.ts +0 -13
- package/templates/startkit/AGENTS.md +0 -77
- package/templates/startkit/README.md +0 -192
- package/templates/startkit/gitignore.template +0 -16
- package/templates/startkit/index.html +0 -13
- package/templates/startkit/package.json +0 -35
- package/templates/startkit/src/components/app-header.tsx +0 -93
- package/templates/startkit/src/components/app-sidebar.tsx +0 -95
- package/templates/startkit/src/components/data-table.tsx +0 -80
- package/templates/startkit/src/components/empty-state.tsx +0 -13
- package/templates/startkit/src/components/page-header.tsx +0 -23
- package/templates/startkit/src/components/stat-card.tsx +0 -24
- package/templates/startkit/src/features/accounts/account-filters.tsx +0 -61
- package/templates/startkit/src/features/accounts/account-table.tsx +0 -79
- package/templates/startkit/src/lib/format.ts +0 -31
- package/templates/startkit/src/lib/mock-data.ts +0 -441
- package/templates/startkit/src/lib/routes.ts +0 -116
- package/templates/startkit/src/main.tsx +0 -12
- package/templates/startkit/src/pages/_layout.tsx +0 -56
- package/templates/startkit/src/pages/auth/_layout.tsx +0 -7
- package/templates/startkit/src/pages/auth/login.tsx +0 -129
- package/templates/startkit/src/pages/home.tsx +0 -83
- package/templates/startkit/src/pages/not-found.tsx +0 -24
- package/templates/startkit/src/pages/workspace/_layout.tsx +0 -17
- package/templates/startkit/src/pages/workspace/accounts/index.tsx +0 -217
- package/templates/startkit/src/pages/workspace/dashboard.tsx +0 -118
- package/templates/startkit/src/pages/workspace/settings.tsx +0 -218
- package/templates/startkit/src/router.tsx +0 -7
- package/templates/startkit/src/routes/auth-config.ts +0 -38
- package/templates/startkit/src/routes/auth.ts +0 -8
- package/templates/startkit/src/routes/index.ts +0 -28
- package/templates/startkit/src/routes/public.ts +0 -8
- package/templates/startkit/src/routes/workspace/accounts.ts +0 -8
- package/templates/startkit/src/routes/workspace/index.ts +0 -14
- package/templates/startkit/src/styles/components.css +0 -396
- package/templates/startkit/src/styles/layout.css +0 -192
- package/templates/startkit/src/styles/reset.css +0 -38
- package/templates/startkit/src/styles/theme.css +0 -76
- package/templates/startkit/src/styles/tokens.css +0 -67
- package/templates/startkit/src/styles.css +0 -7
- package/templates/startkit/src/toast.ts +0 -55
- package/templates/startkit/src/utils/join-classes.ts +0 -4
- package/templates/startkit/src/vite-env.d.ts +0 -5
- package/templates/startkit/tests/app.test.tsx +0 -32
- package/templates/startkit/tests/preferences.test.ts +0 -43
- package/templates/startkit/tests/resources.test.ts +0 -82
- package/templates/startkit/tsconfig.json +0 -20
- package/templates/startkit/tsconfig.node.json +0 -10
- package/templates/startkit/vite.config.ts +0 -32
- package/templates/startkit/vitest.config.ts +0 -13
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
@layer tokens {
|
|
2
|
-
:root {
|
|
3
|
-
--ak-color-primary: #2166ee;
|
|
4
|
-
--ak-color-primary-hover: #154fbf;
|
|
5
|
-
--ak-color-bg: #f7f8fa;
|
|
6
|
-
--ak-color-fg: #0f1728;
|
|
7
|
-
--ak-color-surface: #ffffff;
|
|
8
|
-
--ak-color-surface-muted: #f1f3f7;
|
|
9
|
-
--ak-color-border: #dde2ea;
|
|
10
|
-
--ak-color-muted: #5a6578;
|
|
11
|
-
--ak-color-danger: #b03a3a;
|
|
12
|
-
--ak-color-focus-ring: rgba(33, 102, 238, 0.24);
|
|
13
|
-
|
|
14
|
-
--ak-space-2xs: 0.25rem;
|
|
15
|
-
--ak-space-lg-plus: 1.25rem;
|
|
16
|
-
--ak-space-2xl: 2rem;
|
|
17
|
-
|
|
18
|
-
--ak-font-size-xs: 0.75rem;
|
|
19
|
-
--ak-font-size-xl: 1.25rem;
|
|
20
|
-
--ak-font-size-2xl: 2rem;
|
|
21
|
-
|
|
22
|
-
--starter-color-success: #1f7a43;
|
|
23
|
-
--starter-content-max-ch: 74ch;
|
|
24
|
-
--starter-shadow-soft: 0 10px 30px rgba(13, 24, 43, 0.08);
|
|
25
|
-
--starter-shadow-press: 0 4px 14px rgba(13, 24, 43, 0.1);
|
|
26
|
-
--starter-surface-glass: color-mix(
|
|
27
|
-
in srgb,
|
|
28
|
-
var(--ak-color-surface) 88%,
|
|
29
|
-
transparent
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
:root[data-sk-appearance='harbor'] {
|
|
34
|
-
--ak-color-primary: #0f7b8f;
|
|
35
|
-
--ak-color-primary-hover: #0d6171;
|
|
36
|
-
--ak-color-bg: #eff5f8;
|
|
37
|
-
--ak-color-fg: #102736;
|
|
38
|
-
--ak-color-surface: #f9fcfe;
|
|
39
|
-
--ak-color-surface-muted: #e8f0f5;
|
|
40
|
-
--ak-color-border: #cedce8;
|
|
41
|
-
--ak-color-muted: #4f6879;
|
|
42
|
-
--ak-color-focus-ring: rgba(15, 123, 143, 0.24);
|
|
43
|
-
--starter-color-success: #0f7a4b;
|
|
44
|
-
--starter-shadow-soft: 0 10px 30px rgba(8, 34, 45, 0.08);
|
|
45
|
-
--starter-shadow-press: 0 4px 14px rgba(8, 34, 45, 0.1);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
:root[data-sk-appearance='ink'] {
|
|
49
|
-
--ak-color-primary: #6fa6ff;
|
|
50
|
-
--ak-color-primary-hover: #4a89ee;
|
|
51
|
-
--ak-color-bg: #151a22;
|
|
52
|
-
--ak-color-fg: #e7eefc;
|
|
53
|
-
--ak-color-surface: #1c2230;
|
|
54
|
-
--ak-color-surface-muted: #252e41;
|
|
55
|
-
--ak-color-border: #334055;
|
|
56
|
-
--ak-color-muted: #aeb9d2;
|
|
57
|
-
--ak-color-focus-ring: rgba(111, 166, 255, 0.3);
|
|
58
|
-
--starter-color-success: #58c38a;
|
|
59
|
-
--starter-shadow-soft: 0 12px 32px rgba(0, 0, 0, 0.3);
|
|
60
|
-
--starter-shadow-press: 0 5px 16px rgba(0, 0, 0, 0.34);
|
|
61
|
-
--starter-surface-glass: color-mix(
|
|
62
|
-
in srgb,
|
|
63
|
-
var(--ak-color-surface) 78%,
|
|
64
|
-
transparent
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export type AppToast = {
|
|
2
|
-
title: string;
|
|
3
|
-
description?: string;
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
type ToastBindings = {
|
|
7
|
-
setMessage: (message: AppToast | null) => void;
|
|
8
|
-
setOpen: (open: boolean) => void;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
let toastMessageValue: AppToast | null = null;
|
|
12
|
-
let toastOpenValue = false;
|
|
13
|
-
let toastBindings: ToastBindings | null = null;
|
|
14
|
-
|
|
15
|
-
export function bindToast(bindings: ToastBindings) {
|
|
16
|
-
toastBindings = bindings;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function toastMessage() {
|
|
20
|
-
return toastMessageValue;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export function toastOpen() {
|
|
24
|
-
return toastOpenValue;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function syncToastBindings() {
|
|
28
|
-
if (!toastBindings) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
toastBindings.setMessage(toastMessageValue);
|
|
33
|
-
toastBindings.setOpen(toastOpenValue);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function setToastMessage(message: AppToast | null) {
|
|
37
|
-
toastMessageValue = message;
|
|
38
|
-
syncToastBindings();
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function setToastOpen(open: boolean) {
|
|
42
|
-
toastOpenValue = open;
|
|
43
|
-
syncToastBindings();
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function showToast(message: AppToast) {
|
|
47
|
-
setToastMessage(message);
|
|
48
|
-
setToastOpen(false);
|
|
49
|
-
queueMicrotask(() => setToastOpen(true));
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function clearToast() {
|
|
53
|
-
setToastOpen(false);
|
|
54
|
-
setToastMessage(null);
|
|
55
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vite-plus/test';
|
|
2
|
-
|
|
3
|
-
describe('App Component', () => {
|
|
4
|
-
it('exposes the current starter route set', () => {
|
|
5
|
-
const routes = [
|
|
6
|
-
'/',
|
|
7
|
-
'/login',
|
|
8
|
-
'/dashboard',
|
|
9
|
-
'/accounts',
|
|
10
|
-
'/settings',
|
|
11
|
-
'/*',
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
expect(routes).toContain('/settings');
|
|
15
|
-
expect(routes).toContain('/accounts');
|
|
16
|
-
expect(routes).toContain('/login');
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it('uses the updated primary nav labels', () => {
|
|
20
|
-
const navLabels = ['Dashboard', 'Accounts', 'Settings'];
|
|
21
|
-
|
|
22
|
-
expect(navLabels).toContain('Accounts');
|
|
23
|
-
expect(navLabels).toContain('Settings');
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('documents the starter appearance presets', () => {
|
|
27
|
-
const appearanceModes = ['Default', 'Harbor', 'Ink'];
|
|
28
|
-
|
|
29
|
-
expect(appearanceModes).toContain('Harbor');
|
|
30
|
-
expect(appearanceModes).toContain('Ink');
|
|
31
|
-
});
|
|
32
|
-
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it } from 'vite-plus/test';
|
|
2
|
-
import {
|
|
3
|
-
appearanceMode,
|
|
4
|
-
initializeAppSession,
|
|
5
|
-
nextAppearance,
|
|
6
|
-
resetAppearancePreference,
|
|
7
|
-
setAppearance,
|
|
8
|
-
} from '../src/lib/mock-data';
|
|
9
|
-
|
|
10
|
-
describe('appearance preferences', () => {
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
const values = new Map<string, string>();
|
|
13
|
-
Object.defineProperty(window, 'localStorage', {
|
|
14
|
-
configurable: true,
|
|
15
|
-
value: {
|
|
16
|
-
clear: () => values.clear(),
|
|
17
|
-
getItem: (key: string) => values.get(key) ?? null,
|
|
18
|
-
key: (index: number) => [...values.keys()][index] ?? null,
|
|
19
|
-
get length() {
|
|
20
|
-
return values.size;
|
|
21
|
-
},
|
|
22
|
-
removeItem: (key: string) => values.delete(key),
|
|
23
|
-
setItem: (key: string, value: string) => values.set(key, value),
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
resetAppearancePreference();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('should persist and apply selected appearance', () => {
|
|
30
|
-
setAppearance('harbor');
|
|
31
|
-
initializeAppSession();
|
|
32
|
-
|
|
33
|
-
expect(appearanceMode()).toBe('harbor');
|
|
34
|
-
expect(document.documentElement.dataset.skAppearance).toBe('harbor');
|
|
35
|
-
expect(window.localStorage.getItem('startkit:appearance')).toBe('harbor');
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it('should cycle appearance modes in stable order', () => {
|
|
39
|
-
expect(nextAppearance('default')).toBe('harbor');
|
|
40
|
-
expect(nextAppearance('harbor')).toBe('ink');
|
|
41
|
-
expect(nextAppearance('ink')).toBe('default');
|
|
42
|
-
});
|
|
43
|
-
});
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it } from 'vite-plus/test';
|
|
2
|
-
import {
|
|
3
|
-
archiveAccounts,
|
|
4
|
-
getDashboardData,
|
|
5
|
-
isAuthenticated,
|
|
6
|
-
listAccounts,
|
|
7
|
-
resetMockData,
|
|
8
|
-
signIn,
|
|
9
|
-
signOut,
|
|
10
|
-
} from '../src/lib/mock-data';
|
|
11
|
-
|
|
12
|
-
describe('lib mock data', () => {
|
|
13
|
-
beforeEach(() => {
|
|
14
|
-
resetMockData();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it('should return dashboard stats and activities', async () => {
|
|
18
|
-
const result = await getDashboardData({
|
|
19
|
-
signal: new AbortController().signal,
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
expect(result.stats.length).toBeGreaterThan(0);
|
|
23
|
-
expect(result.activities.length).toBeGreaterThan(0);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('should filter and paginate accounts', async () => {
|
|
27
|
-
const result = await listAccounts({
|
|
28
|
-
signal: new AbortController().signal,
|
|
29
|
-
query: 'northwind',
|
|
30
|
-
status: 'all',
|
|
31
|
-
page: 1,
|
|
32
|
-
pageSize: 5,
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
expect(result.items.length).toBeGreaterThan(0);
|
|
36
|
-
expect(result.items[0]?.name.toLowerCase()).toContain('northwind');
|
|
37
|
-
expect(result.totalPages).toBeGreaterThanOrEqual(1);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it('should archive selected accounts', async () => {
|
|
41
|
-
const before = await listAccounts({
|
|
42
|
-
signal: new AbortController().signal,
|
|
43
|
-
query: '',
|
|
44
|
-
status: 'active',
|
|
45
|
-
page: 1,
|
|
46
|
-
pageSize: 20,
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
const ids = before.items.slice(0, 2).map((item) => item.id);
|
|
50
|
-
const archiveResult = await archiveAccounts({
|
|
51
|
-
ids,
|
|
52
|
-
signal: new AbortController().signal,
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
expect(archiveResult.archived).toBe(2);
|
|
56
|
-
|
|
57
|
-
const after = await listAccounts({
|
|
58
|
-
signal: new AbortController().signal,
|
|
59
|
-
query: '',
|
|
60
|
-
status: 'archived',
|
|
61
|
-
page: 1,
|
|
62
|
-
pageSize: 20,
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
expect(after.items.some((item) => ids.includes(item.id))).toBe(true);
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
it('should sign in and sign out session state', async () => {
|
|
69
|
-
expect(isAuthenticated()).toBe(false);
|
|
70
|
-
|
|
71
|
-
await signIn({
|
|
72
|
-
email: 'alex@example.com',
|
|
73
|
-
password: 'askr1234',
|
|
74
|
-
signal: new AbortController().signal,
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
expect(isAuthenticated()).toBe(true);
|
|
78
|
-
|
|
79
|
-
signOut();
|
|
80
|
-
expect(isAuthenticated()).toBe(false);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2020",
|
|
4
|
-
"useDefineForClassFields": true,
|
|
5
|
-
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
-
"module": "ESNext",
|
|
7
|
-
"moduleResolution": "bundler",
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
"esModuleInterop": true,
|
|
10
|
-
"allowSyntheticDefaultImports": true,
|
|
11
|
-
"strict": true,
|
|
12
|
-
"resolveJsonModule": true,
|
|
13
|
-
"isolatedModules": true,
|
|
14
|
-
"noEmit": true,
|
|
15
|
-
"jsx": "preserve",
|
|
16
|
-
"jsxImportSource": "@askrjs/askr"
|
|
17
|
-
},
|
|
18
|
-
"include": ["src"],
|
|
19
|
-
"references": [{ "path": "./tsconfig.node.json" }]
|
|
20
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'vite-plus';
|
|
2
|
-
import { askr } from '@askrjs/vite';
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
plugins: [askr()],
|
|
6
|
-
lint: {
|
|
7
|
-
ignorePatterns: ['dist/**', 'node_modules/**', 'coverage/**'],
|
|
8
|
-
},
|
|
9
|
-
fmt: {
|
|
10
|
-
semi: true,
|
|
11
|
-
singleQuote: true,
|
|
12
|
-
trailingComma: 'es5',
|
|
13
|
-
printWidth: 80,
|
|
14
|
-
tabWidth: 2,
|
|
15
|
-
},
|
|
16
|
-
server: {
|
|
17
|
-
host: '127.0.0.1',
|
|
18
|
-
port: 5173,
|
|
19
|
-
strictPort: true,
|
|
20
|
-
open: true,
|
|
21
|
-
hmr: {
|
|
22
|
-
host: '127.0.0.1',
|
|
23
|
-
port: 5173,
|
|
24
|
-
clientPort: 5173,
|
|
25
|
-
protocol: 'ws',
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
build: {
|
|
29
|
-
outDir: 'dist',
|
|
30
|
-
sourcemap: true,
|
|
31
|
-
},
|
|
32
|
-
});
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'vite-plus';
|
|
2
|
-
import { askr } from '@askrjs/vite';
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
plugins: [askr()],
|
|
6
|
-
test: {
|
|
7
|
-
environment: 'jsdom',
|
|
8
|
-
globals: true,
|
|
9
|
-
coverage: {
|
|
10
|
-
reporter: ['text', 'json', 'html'],
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
});
|