@tiddlywiki/mws 0.0.15 → 0.0.17

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 (43) hide show
  1. package/README.md +21 -34
  2. package/dist/server.d.ts +20 -9
  3. package/dist/server.js +3920 -379
  4. package/dist/server.js.map +1 -1
  5. package/editions/mws-docs/tiddlers/$__StoryList.tid +1 -3
  6. package/editions/mws-docs/tiddlers/2025-02-18 - User Management.md +56 -0
  7. package/editions/mws-docs/tiddlers/2025-02-18 - User Management.md.meta +5 -0
  8. package/editions/mws-docs/tiddlers/2025-04-03 - Phases of Development.md +64 -0
  9. package/editions/mws-docs/tiddlers/2025-04-03 - Phases of Development.md.meta +5 -0
  10. package/editions/mws-docs/tiddlers/2025-04-13 - Plugins.md +18 -0
  11. package/editions/mws-docs/tiddlers/2025-04-13 - Plugins.md.meta +5 -0
  12. package/editions/mws-docs/tiddlers/2025-05-04.md +13 -0
  13. package/editions/mws-docs/tiddlers/2025-05-04.md.meta +5 -0
  14. package/editions/mws-docs/tiddlers/2025-05-06.md +19 -0
  15. package/editions/mws-docs/tiddlers/2025-05-06.md.meta +5 -0
  16. package/editions/mws-docs/tiddlers/Access Control.md +17 -0
  17. package/editions/mws-docs/tiddlers/Access Control.md.meta +5 -0
  18. package/editions/mws-docs/tiddlers/Application Access & Security.md +98 -0
  19. package/editions/mws-docs/tiddlers/Application Access & Security.md.meta +5 -0
  20. package/editions/mws-docs/tiddlers/Checklists and Features.md +15 -0
  21. package/editions/mws-docs/tiddlers/Checklists and Features.md.meta +5 -0
  22. package/editions/mws-docs/tiddlers/HTTP API.md +17 -0
  23. package/editions/mws-docs/tiddlers/HTTP API.md.meta +5 -0
  24. package/editions/mws-docs/tiddlers/Installation.tid +11 -2
  25. package/editions/mws-docs/tiddlers/MWS Architecture.md +15 -0
  26. package/editions/mws-docs/tiddlers/MWS Architecture.md.meta +5 -0
  27. package/editions/mws-docs/tiddlers/Moduler Design.md +5 -0
  28. package/editions/mws-docs/tiddlers/Moduler Design.md.meta +1 -1
  29. package/editions/mws-docs/tiddlers/Notes.tid +5 -0
  30. package/editions/mws-docs/tiddlers/Reference.md +0 -149
  31. package/editions/mws-docs/tiddlers/Reference.md.meta +4 -1
  32. package/editions/mws-docs/tiddlers/Usage.tid +3 -3
  33. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Dark +173 -0
  34. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Dark.meta +6 -0
  35. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Light +172 -0
  36. package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Light.meta +6 -0
  37. package/package.json +11 -20
  38. package/plugins/client/tiddlers/readme.tid +0 -3
  39. package/react-user-mgmt/public/main.js +32 -32
  40. package/react-user-mgmt/public/main.js.map +4 -4
  41. package/react-user-mgmt/public/stats.json +1 -1
  42. package/scripts.mjs +34 -0
  43. package/.env-cmdrc +0 -5
@@ -1,5 +1,5 @@
1
1
  created: 20241105133737778
2
- modified: 20250417170530535
2
+ modified: 20250428144341860
3
3
  tags: TableOfContents
4
4
  title: Usage
5
5
  type: text/vnd.tiddlywiki
@@ -8,7 +8,7 @@ Once MWS is successfully [[installed|Installation]], you can access it by visiti
8
8
 
9
9
  On first start, a default user is created with username `admin` and password `1234`. However, also by default, the server is only accessible to browsers on the same machine.
10
10
 
11
- If you intend to put an MWS installation on a public network like the Internet, the server will need to be secured with the following steps:
11
+ If you intend to make an MWS installation available on the Internet, the server should first be secured with the following steps:
12
12
 
13
- * Change the administrator password.
13
+ * Change the administrator password
14
14
  * Install HTTPS server certificates.
@@ -0,0 +1,173 @@
1
+ /* generated by ChatGPT o3 */
2
+ alert-background: #ffb74d /* warning.light */
3
+ alert-border: #ff9800 /* warning.main */
4
+ alert-highlight: #c66900 /* warning.dark */
5
+ alert-muted-foreground: rgba(255,255,255,0.70)
6
+
7
+ background: #121212 /* background.default / paper */
8
+ page-background: #121212
9
+
10
+ foreground: rgba(255,255,255,0.87) /* text.primary */
11
+ muted-foreground: rgba(255,255,255,0.70) /* text.secondary */
12
+ very-muted-foreground: rgba(255,255,255,0.50)
13
+
14
+ primary: #90caf9 /* primary.main */
15
+
16
+ blockquote-bar: <<colour muted-foreground>>
17
+ button-background: #90caf9
18
+ button-foreground: #000000
19
+ button-border: #42a5f5
20
+
21
+ code-background: #1e1e1e
22
+ code-border: #424242
23
+ code-foreground: #ff8a80 /* error.light */
24
+
25
+ diff-delete-background: #b71c1c
26
+ diff-delete-foreground: #ffffff
27
+ diff-equal-background: #424242
28
+ diff-insert-background: #2e7d32
29
+ diff-insert-foreground: #ffffff
30
+ diff-invisible-foreground: <<colour very-muted-foreground>>
31
+
32
+ dirty-indicator: #ff1744
33
+ download-background: #66bb6a
34
+ download-foreground: #000000
35
+
36
+ dropdown-background: <<colour background>>
37
+ dropdown-border: rgba(255,255,255,0.12)
38
+ dropdown-tab-background-selected: #1e1e1e
39
+ dropdown-tab-background: #333333
40
+ dropzone-background: rgba(76,175,80,0.70)
41
+
42
+ external-link-foreground: #90caf9
43
+ external-link-foreground-visited: #ce93d8
44
+
45
+ footnote-target-background: #1565c0
46
+
47
+ highlight-background: #ffff00
48
+ highlight-foreground: #000000
49
+
50
+ message-background: #0277bd
51
+ message-border: #0288d1
52
+ message-foreground: #ffffff
53
+
54
+ modal-backdrop: rgba(0,0,0,0.5)
55
+ modal-background: #1e1e1e
56
+ modal-border: #666666
57
+ modal-footer-background: #242424
58
+ modal-footer-border: #333333
59
+ modal-header-border: #333333
60
+
61
+ network-activity-foreground: #66bb6a
62
+
63
+ notification-background: #424242
64
+ notification-border: rgba(255,255,255,0.12)
65
+
66
+ pre-background: #2d2d2d
67
+ pre-border: #424242
68
+
69
+ selection-background: #004ba0
70
+ selection-foreground: #ffffff
71
+
72
+ select-tag-background: #90caf9
73
+ select-tag-foreground: #000000
74
+
75
+ sidebar-button-foreground: <<colour foreground>>
76
+ sidebar-controls-foreground-hover: #ffffff
77
+ sidebar-controls-foreground: #aaaaaa
78
+ sidebar-foreground-shadow: rgba(0,0,0,0.80)
79
+ sidebar-foreground: #8c8c8c
80
+ sidebar-muted-foreground-hover: #dddddd
81
+ sidebar-muted-foreground: #9e9e9e
82
+ sidebar-tab-background-selected: #1e1e1e
83
+ sidebar-tab-background: #333333
84
+ sidebar-tab-border-selected: #90caf9
85
+ sidebar-tab-border: rgba(255,255,255,0.12)
86
+ sidebar-tab-divider: rgba(255,255,255,0.12)
87
+ sidebar-tab-foreground-selected: <<colour foreground>>
88
+ sidebar-tab-foreground: <<colour tab-foreground>>
89
+ sidebar-tiddler-link-foreground-hover: #90caf9
90
+ sidebar-tiddler-link-foreground: #bbbbbb
91
+
92
+ site-title-foreground: #bbdefb
93
+
94
+ stability-stable: #66bb6a
95
+ stability-experimental: #ffb74d
96
+ stability-deprecated: #ff5252
97
+ stability-legacy: #82b1ff
98
+
99
+ static-alert-foreground: #bbbbbb
100
+
101
+ tab-background-selected: #1e1e1e
102
+ tab-background: #333333
103
+ tab-border-selected: #333333
104
+ tab-border: rgba(255,255,255,0.12)
105
+ tab-divider: rgba(255,255,255,0.12)
106
+ tab-foreground-selected: <<colour foreground>>
107
+ tab-foreground: #bbbbbb
108
+
109
+ table-border: #424242
110
+ table-footer-background: #2d2d2d
111
+ table-header-background: #1e1e1e
112
+
113
+ tag-background: #ff9800
114
+ tag-foreground: #000000
115
+
116
+ testcase-accent-level-1: #003c8f
117
+ testcase-accent-level-2: #8d6e63
118
+ testcase-accent-level-3: #2e7d32
119
+
120
+ tiddler-background: <<colour background>>
121
+ tiddler-border: #333
122
+
123
+ tiddler-controls-foreground-hover: #bbbbbb
124
+ tiddler-controls-foreground-selected: #ffffff
125
+ tiddler-controls-foreground: #888888
126
+
127
+ tiddler-editor-background: #1e1e1e
128
+ tiddler-editor-border-image: <<colour background>>
129
+ tiddler-editor-border: #424242
130
+ tiddler-editor-fields-even: #1b5e20
131
+ tiddler-editor-fields-odd: #263238
132
+
133
+ tiddler-info-background: #1e1e1e
134
+ tiddler-info-border: #424242
135
+ tiddler-info-tab-background: #1e1e1e
136
+
137
+ tiddler-link-background: <<colour background>>
138
+ tiddler-link-foreground: <<colour primary>>
139
+ tiddler-subtitle-foreground: rgba(255,255,255,0.50)
140
+ tiddler-title-foreground: #bbdefb
141
+
142
+ toolbar-new-button: #90caf9
143
+ toolbar-options-button: #90caf9
144
+ toolbar-save-button: #66bb6a
145
+ toolbar-info-button: #64b5f6
146
+ toolbar-edit-button: #ffb74d
147
+ toolbar-close-button: #ff1744
148
+ toolbar-delete-button: #ff1744
149
+ toolbar-cancel-button: #757575
150
+ toolbar-done-button: #66bb6a
151
+
152
+ untagged-background: #757575
153
+
154
+ wikilist-background: #2d2d2d
155
+ wikilist-item: #1e1e1e
156
+ wikilist-info: <<colour foreground>>
157
+ wikilist-title: #bbbbbb
158
+ wikilist-title-svg: <<colour wikilist-title>>
159
+ wikilist-url: #9e9e9e
160
+
161
+ wikilist-button-open: #66bb6a
162
+ wikilist-button-open-hover: #388e3c
163
+ wikilist-button-reveal: #90caf9
164
+ wikilist-button-reveal-hover: #1565c0
165
+ wikilist-button-remove: #ff5252
166
+ wikilist-button-remove-hover: #d32f2f
167
+
168
+ wikilist-toolbar-background: #424242
169
+ wikilist-toolbar-foreground: #bbbbbb
170
+ wikilist-droplink-dragover: rgba(255,192,192,0.5)
171
+
172
+ wikilist-button-background: #8c8c8c
173
+ wikilist-button-foreground: #000000
@@ -0,0 +1,6 @@
1
+ created: 20250507121016927
2
+ modified: 20250507121857749
3
+ name: MUI Dark
4
+ tags: $:/tags/Palette
5
+ title: $:/palettes/MUI-Dark
6
+ type: application/x-tiddler-dictionary
@@ -0,0 +1,172 @@
1
+ /* generated by ChatGPT o3 */
2
+ alert-background: #fff8e1 /* warning.light (amber 100) */
3
+ alert-border: #ff9800 /* warning.main */
4
+ alert-highlight: #c66900 /* warning.dark */
5
+ alert-muted-foreground: rgba(0,0,0,0.60)
6
+
7
+ background: #ffffff /* background.paper */
8
+ page-background: #fafafa /* background.default */
9
+
10
+ foreground: rgba(0,0,0,0.87) /* text.primary */
11
+ muted-foreground: rgba(0,0,0,0.60) /* text.secondary*/
12
+ very-muted-foreground: rgba(0,0,0,0.38) /* text.disabled*/
13
+
14
+ primary: #1976d2 /* primary.main */
15
+
16
+ blockquote-bar: <<colour muted-foreground>>
17
+ button-background: #1976d2
18
+ button-foreground: #ffffff
19
+ button-border: #1565c0 /* primary.dark */
20
+
21
+ code-background: #f5f5f5
22
+ code-border: #e0e0e0
23
+ code-foreground: #d32f2f /* error.main */
24
+
25
+ diff-delete-background: #ffcdd2 /* error.light */
26
+ diff-delete-foreground: <<colour foreground>>
27
+ diff-equal-background: #e0e0e0
28
+ diff-insert-background: #c8e6c9 /* success.light */
29
+ diff-invisible-foreground: <<colour muted-foreground>>
30
+
31
+ dirty-indicator: #d32f2f
32
+ download-background: #4caf50 /* success.main */
33
+ download-foreground: <<colour background>>
34
+
35
+ dropdown-background: <<colour background>>
36
+ dropdown-border: #e0e0e0 /* divider */
37
+ dropdown-tab-background-selected: #ffffff
38
+ dropdown-tab-background: #eeeeee
39
+ dropzone-background: rgba(76,175,80,0.70)
40
+
41
+ external-link-foreground: #1976d2
42
+ external-link-foreground-visited: #551a8b
43
+
44
+ footnote-target-background: #bbdefb /* info.light */
45
+
46
+ highlight-background: #ffff00
47
+ highlight-foreground: #000000
48
+
49
+ message-background: #e3f2fd /* info.light */
50
+ message-border: #90caf9 /* info.main */
51
+ message-foreground: #0277bd /* info.dark */
52
+
53
+ modal-backdrop: rgba(0,0,0,0.5)
54
+ modal-background: <<colour background>>
55
+ modal-border: #9e9e9e
56
+ modal-footer-background: #f5f5f5
57
+ modal-footer-border: #e0e0e0
58
+ modal-header-border: #e0e0e0
59
+
60
+ network-activity-foreground: #2e7d32 /* success.dark */
61
+
62
+ notification-background: #fffde7 /* warning.50 */
63
+ notification-border: #e0e0e0
64
+
65
+ pre-background: #f5f5f5
66
+ pre-border: #cccccc
67
+
68
+ selection-background: #bbdefb /* primary.100 */
69
+ selection-foreground: #000000
70
+
71
+ select-tag-background: #1976d2
72
+ select-tag-foreground: #ffffff
73
+
74
+ sidebar-button-foreground: <<colour foreground>>
75
+ sidebar-controls-foreground-hover: #000000
76
+ sidebar-controls-foreground: #aaaaaa
77
+ sidebar-foreground-shadow: rgba(255,255,255,0.80)
78
+ sidebar-foreground: #acacac
79
+ sidebar-muted-foreground-hover: #444444
80
+ sidebar-muted-foreground: #c0c0c0
81
+ sidebar-tab-background-selected: #e3f2fd
82
+ sidebar-tab-background: #d6d6d6
83
+ sidebar-tab-border-selected: #90caf9
84
+ sidebar-tab-border: #cccccc
85
+ sidebar-tab-divider: #e4e4e4
86
+ sidebar-tab-foreground-selected: <<colour foreground>>
87
+ sidebar-tab-foreground: <<colour tab-foreground>>
88
+ sidebar-tiddler-link-foreground-hover: #1976d2
89
+ sidebar-tiddler-link-foreground: #666666
90
+
91
+ site-title-foreground: #0d47a1 /* primary.deep‑dark */
92
+
93
+ stability-stable: #2e7d32
94
+ stability-experimental: #ed6c02
95
+ stability-deprecated: #d32f2f
96
+ stability-legacy: #303f9f
97
+
98
+ static-alert-foreground: #aaaaaa
99
+
100
+ tab-background-selected: #ffffff
101
+ tab-background: #d8d8d8
102
+ tab-border-selected: #d8d8d8
103
+ tab-border: #cccccc
104
+ tab-divider: #d8d8d8
105
+ tab-foreground-selected: <<colour foreground>>
106
+ tab-foreground: #666666
107
+
108
+ table-border: #dddddd
109
+ table-footer-background: #eeeeee
110
+ table-header-background: #f0f0f0
111
+
112
+ tag-background: #ff9800
113
+ tag-foreground: #ffffff
114
+
115
+ testcase-accent-level-1: #c1eaff
116
+ testcase-accent-level-2: #e3b740
117
+ testcase-accent-level-3: #5fd564
118
+
119
+ tiddler-background: <<colour background>>
120
+ tiddler-border: <<colour background>>
121
+
122
+ tiddler-controls-foreground-hover: #888888
123
+ tiddler-controls-foreground-selected: #444444
124
+ tiddler-controls-foreground: #cccccc
125
+
126
+ tiddler-editor-background: #f8f8f8
127
+ tiddler-editor-border-image: <<colour background>>
128
+ tiddler-editor-border: #cccccc
129
+ tiddler-editor-fields-even: #e8f5e9
130
+ tiddler-editor-fields-odd: #f1f8e9
131
+
132
+ tiddler-info-background: #f8f8f8
133
+ tiddler-info-border: #dddddd
134
+ tiddler-info-tab-background: #f8f8f8
135
+
136
+ tiddler-link-background: <<colour background>>
137
+ tiddler-link-foreground: <<colour primary>>
138
+ tiddler-subtitle-foreground: rgba(0,0,0,0.38)
139
+ tiddler-title-foreground: #0d47a1
140
+
141
+ toolbar-new-button: #1976d2
142
+ toolbar-options-button: #1976d2
143
+ toolbar-save-button: #2e7d32
144
+ toolbar-info-button: #0288d1
145
+ toolbar-edit-button: #ed6c02
146
+ toolbar-close-button: #d32f2f
147
+ toolbar-delete-button: #d32f2f
148
+ toolbar-cancel-button: #9e9e9e
149
+ toolbar-done-button: #2e7d32
150
+
151
+ untagged-background: #9e9e9e
152
+
153
+ wikilist-background: #e5e5e5
154
+ wikilist-item: #ffffff
155
+ wikilist-info: <<colour foreground>>
156
+ wikilist-title: #666666
157
+ wikilist-title-svg: <<colour wikilist-title>>
158
+ wikilist-url: #757575
159
+
160
+ wikilist-button-open: #4caf50
161
+ wikilist-button-open-hover: #388e3c
162
+ wikilist-button-reveal: #1976d2
163
+ wikilist-button-reveal-hover: #0d47a1
164
+ wikilist-button-remove: #d32f2f
165
+ wikilist-button-remove-hover: #b71c1c
166
+
167
+ wikilist-toolbar-background: #d3d3d3
168
+ wikilist-toolbar-foreground: #888888
169
+ wikilist-droplink-dragover: rgba(255,192,192,0.5)
170
+
171
+ wikilist-button-background: #acacac
172
+ wikilist-button-foreground: #000000
@@ -0,0 +1,6 @@
1
+ created: 20250507120914164
2
+ modified: 20250507121908782
3
+ name: MUI Light
4
+ tags: $:/tags/Palette
5
+ title: $:/palettes/MUI-Light
6
+ type: application/x-tiddler-dictionary
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@tiddlywiki/mws",
3
+ "description": "TiddlyWiki Multiple Wiki Server",
3
4
  "private": false,
4
- "version": "0.0.15",
5
+ "version": "0.0.17",
5
6
  "type": "module",
6
7
  "exports": {
7
8
  "types": "./src/server.ts",
@@ -15,34 +16,24 @@
15
16
  "tiddlywiki-types",
16
17
  "editions/mws-docs",
17
18
  "plugins/client",
18
- "libsql",
19
- "libsql-android-arm64",
20
- ".env-cmdrc"
19
+ "scripts.mjs"
21
20
  ],
22
21
  "engines": {
23
- "node": ">14"
22
+ "node": ">=18"
24
23
  },
25
24
  "scripts": {
26
- "docs": "tiddlywiki +plugins/tiddlywiki/tiddlyweb +plugins/tiddlywiki/filesystem editions/mws-docs --listen",
27
- "lint:fix": "exit 1 && eslint . --fix",
28
- "lint": "exit 1 && eslint .",
29
- "jsc": "tsc -p jsconfig.json --noEmit",
30
- "tsc": "tsc -p tsconfig.json --skipLibCheck",
31
- "gen:sql": "prisma migrate diff --from-empty --to-schema-datamodel prisma/schema.prisma --script > prisma/schema.prisma.sql",
32
- "gen:client": "prisma generate",
33
- "prisma": "npm run gen:client && npm run gen:sql",
34
- "prisma:studio": "DATABASE_URL=file:../editions/mws/store/database.sqlite prisma studio",
25
+ "docs": "node scripts.mjs docs",
26
+ "start": "node scripts.mjs start",
35
27
  "certs": "(cd runtime-config && bash localhost_certs.sh)",
36
- "start": "npm run build && node mws.dev.mjs",
37
- "build": "npm run tsc && tsup",
28
+ "tsc": "tsc -p tsconfig.json --skipLibCheck",
29
+ "build": "npm run tsc && tsup && node mws.dev.mjs --client-build",
38
30
  "install-android": "GYP_DEFINES=\"android_ndk_path=''\" npm install",
39
- "postinstall": "env-cmd -e prisma-env prisma generate",
31
+ "postinstall": "node scripts.mjs prisma:generate",
40
32
  "env": "env",
41
33
  "test:pack": "(git clean -dfx tests && npm pack --pack-destination tests && cd tests && npm install && npm install ./tiddlywiki-mws-$npm_package_version.tgz --no-save && npm test)",
42
34
  "test": "(git clean -dfx tests && cd tests && npm install .. --no-save && npm test)",
43
35
  "fulltest": "mv node_modules node_modules_old; npm run test:pack; mv node_modules_old node_modules",
44
- "prisma:adapter:better": "cp -rfv ../prisma/packages/adapter-better-sqlite3/src/* src/adapter-better-sqlite3",
45
- "prisma:adapter:libsql": "cp -rfv ../prisma/packages/adapter-libsql/src/* src/adapter-libsql"
36
+ "prepublishOnly": "npm run build"
46
37
  },
47
38
  "dependencies": {
48
39
  "@prisma/adapter-better-sqlite3": "6.7.0-dev.48",
@@ -53,12 +44,12 @@
53
44
  "@types/send": "^0.17.4",
54
45
  "@types/sjcl": "^1.0.34",
55
46
  "@types/tiddlywiki": "file:tiddlywiki-types",
56
- "env-cmd": "^10.1.0",
57
47
  "prisma": "6.6.0",
58
48
  "source-map-support": "^0.5.21",
59
49
  "zod": "^3.24.2"
60
50
  },
61
51
  "devDependencies": {
52
+ "commander": "^13.1.0",
62
53
  "esbuild": "0.25.2",
63
54
  "mime-types": "^2.1.35",
64
55
  "send": "^1.1.0",
@@ -2,7 +2,4 @@ title: $:/plugins/tiddlywiki/multiwikiclient/readme
2
2
 
3
3
  This plugin runs in the browser to synchronise tiddler changes to and from a TiddlyWiki server running ~MultiWikiServer.
4
4
 
5
-
6
- This plugin is inert when run under Node.js. Disabling this plugin via the browser can not be undone via the browser since this plugin provides the mechanism to synchronize settings with the server.
7
-
8
5
  Changes made while offline are saved in memory and automatically synchonised with the server when the connection is re-established. However, if the browser tab is closed or another URL is loaded, the in-memory changes will be lost. The [[https://tiddlywiki.com/#BrowserStorage Plugin]] may be added to provide temporary filesystem storage of tiddler changes made while offline and enable them to be synchronised with the server the next time the wiki is loaded in the same browser.