@sempods/apps 0.7.0 → 0.8.0-dev.1

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.
Files changed (56) hide show
  1. package/CHANGELOG.md +203 -0
  2. package/README.md +6 -3
  3. package/bin/sempods-apps.mjs +1 -0
  4. package/instructions/app-workflow.md +254 -111
  5. package/instructions/publish.md +13 -7
  6. package/instructions/setup.md +33 -23
  7. package/instructions/visual-check.md +43 -0
  8. package/package.json +3 -3
  9. package/scripts/build-site.mjs +15 -3
  10. package/scripts/check.mjs +3 -1
  11. package/scripts/icon.mjs +47 -0
  12. package/scripts/lib/apps.mjs +56 -2
  13. package/scripts/lib/generate.mjs +55 -14
  14. package/scripts/lib/icon.mjs +192 -0
  15. package/scripts/lib/overview.mjs +5 -3
  16. package/scripts/lib/page.mjs +89 -0
  17. package/scripts/lib/themes.mjs +58 -0
  18. package/scripts/migrate.mjs +37 -14
  19. package/scripts/new-app.mjs +43 -10
  20. package/scripts/sdk-update.mjs +16 -1
  21. package/shared/files/{f2fb601d5ebc4ca72274ac9d3fcf7b7a96e27958bb92cd065a9165b501ee94d7 → 44c114d4d2c8b172f4757100f79e8a1a00d30c96ba2ad8f75c3373e52f6b849f} +2 -2
  22. package/shared/files/{31ede0d1a035d8531100ebfd751510c772ab0871309a0b9752a77fb96187eb53 → 843c078e84912158607ebb8ce0042589d676a742bcd3cf8b6c474d62ff3a6845} +3 -2
  23. package/shared/files/{1c29eed0a0297c742ca5814de9081ff8efce3b2da5d9e1bdf90a403873da4aa9 → f30ec6b7f9de16be54919382ab18cdcc33ee64938f7b907d855bcf6740e4c102} +8 -2
  24. package/shared/snapshot.json +4 -4
  25. package/skeleton/app/NOTES.md +11 -1
  26. package/skeleton/app/index.html +7 -3
  27. package/skeleton/app/package.json +6 -6
  28. package/skeleton/app/src/App.tsx +53 -21
  29. package/skeleton/app/src/NewVersionNotice.tsx +6 -11
  30. package/skeleton/app/src/examples/ListScreen.tsx +167 -0
  31. package/skeleton/app/src/index.css +86 -13
  32. package/skeleton/app/src/main.tsx +3 -0
  33. package/skeleton/app/src/pwa.ts +1 -1
  34. package/skeleton/app/src/routes.test.ts +19 -0
  35. package/skeleton/app/src/routes.ts +139 -0
  36. package/skeleton/app/src/texts.test.ts +28 -0
  37. package/skeleton/app/src/texts.ts +35 -0
  38. package/skeleton/app/src/themes/calm.css +11 -0
  39. package/skeleton/app/src/themes/fresh.css +11 -0
  40. package/skeleton/app/src/themes/playful.css +11 -0
  41. package/skeleton/app/src/themes/warm.css +11 -0
  42. package/skeleton/app/src/ui/Composer.tsx +18 -0
  43. package/skeleton/app/src/ui/ContextSwitch.tsx +85 -0
  44. package/skeleton/app/src/ui/Dialog.tsx +103 -0
  45. package/skeleton/app/src/ui/Menu.tsx +118 -0
  46. package/skeleton/app/src/ui/Tabs.tsx +39 -0
  47. package/skeleton/app/src/ui/dismiss.ts +30 -0
  48. package/skeleton/app/src/ui/icons.tsx +53 -0
  49. package/skeleton/app/src/ui/ui.css +240 -0
  50. package/skeleton/app/vite.config.ts +4 -4
  51. package/skills/update/SKILL.md +19 -10
  52. package/skeleton/app/public/favicon.svg +0 -1
  53. package/skeleton/app/public/icon-192.png +0 -0
  54. package/skeleton/app/public/icon-512.png +0 -0
  55. package/skeleton/app/src/start.test.ts +0 -15
  56. package/skeleton/app/src/start.ts +0 -9
@@ -17,15 +17,21 @@ instead.
17
17
  1. **Start clean.** The working tree must have no uncommitted changes, so the
18
18
  update is one reviewable diff. Work on a new branch, for example
19
19
  `tooling-update-<version>`, or on the branch of the version pull request.
20
+ If that branch is behind the default branch, for example after an SDK
21
+ pull request was merged, merge the default branch first: keep the newer
22
+ version of each package and let `pnpm install` rewrite a conflicting
23
+ `pnpm-lock.yaml`.
20
24
  2. **Update.** `pnpm run update` installs the newest version and migrates;
21
25
  `pnpm run update <version>` a specific one. It first checks that Node and
22
26
  pnpm suit that version; if not, it changes nothing and prints a numbered
23
- order to follow before running it again. On the branch of a version pull request, run
24
- `pnpm run update <version>` with the version the pull request names, so
25
- the same check runs before anything is installed. If pnpm refuses to run
26
- it because the dependencies are out of date, start the installed tooling
27
- directly:
27
+ order to follow before running it again. On the branch of a version pull
28
+ request, `package.json` already names the new version but `node_modules`
29
+ does not have it, so pnpm refuses `pnpm run`. Start the installed tooling
30
+ directly with the version the pull request names; it runs the same check
31
+ before it installs anything:
28
32
  `node node_modules/@sempods/apps/bin/sempods-apps.mjs update <version>`.
33
+ Without `node_modules`, run `pnpm install` first, then
34
+ `pnpm run update <version>`.
29
35
  3. **Read the upgrade notes** for every version after the old one, including
30
36
  skipped ones, in `node_modules/@sempods/apps/CHANGELOG.md`. They name what
31
37
  the migration cannot do alone, such as changes the owner's apps need.
@@ -62,8 +68,11 @@ instead.
62
68
  `node node_modules/@sempods/apps/bin/sempods-apps.mjs migrate --done`.
63
69
  Without manual cases, `pnpm run migrate` finishes on its own.
64
70
  6. **Check.** Run `pnpm run check` until it passes.
65
- 7. **Hand over.** With a GitHub remote, open a pull request "Update the tooling
66
- to <version>" with the migration report, each manual case and how it was
67
- decided, and what to try. Tell the owner what changed in plain words and
68
- what they should try. App code, app notes and the owner's entries in
69
- `package.json` are never rewritten by the migration.
71
+ 7. **Hand over.** With a GitHub remote, commit the result to the version pull
72
+ request's branch, or open a pull request "Update the tooling to <version>",
73
+ with the migration report, each manual case and how it was decided, and
74
+ what to try. Tell the owner what changed in plain words and
75
+ what they should try. App notes and the owner's entries in `package.json`
76
+ are never rewritten by the migration; of the apps' files it only
77
+ regenerates the generated configuration and moves files still unchanged
78
+ from the skeleton where a release's upgrade notes say so.
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#176354"/></svg>
Binary file
Binary file
@@ -1,15 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { app } from './sempods.generated.ts';
3
- import { startMessage } from './start.ts';
4
-
5
- describe('startMessage', () => {
6
- it('speaks the app language', () => {
7
- expect(startMessage('de')).toMatch(/^Verbunden\./);
8
- expect(startMessage('en')).toMatch(/^Connected\./);
9
- });
10
-
11
- it('has a text for the configured language', () => {
12
- // The generated configuration imports without a browser.
13
- expect(startMessage(app.language)).not.toBe('');
14
- });
15
- });
@@ -1,9 +0,0 @@
1
- import type { Language } from '@sempods/app-sdk';
2
-
3
- // Replace this with your app's own domain logic. Pure functions like this one
4
- // are tested in src/start.test.ts without a browser or a Pod.
5
- export function startMessage(language: Language): string {
6
- return language === 'de'
7
- ? 'Verbunden. Beschreibe deinem Assistenten, was diese App tun soll.'
8
- : 'Connected. Tell your assistant what this app should do.';
9
- }