@meith/web 0.21.1 → 0.21.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meith/web",
3
- "version": "0.21.1",
3
+ "version": "0.21.2",
4
4
  "description": "The board itself: the Next.js app, and the forum-web bin that materializes it into an external board workspace.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -43,52 +43,52 @@
43
43
  "typescript": "7.0.2",
44
44
  "@types/react": "^19",
45
45
  "@types/react-dom": "^19",
46
- "@meith/admin": "0.21.1",
47
- "@meith/antispam": "0.21.1",
48
- "@meith/accounts": "0.21.1",
49
- "@meith/api": "0.21.1",
50
- "@meith/attachments": "0.21.1",
51
- "@meith/authorization": "0.21.1",
52
- "@meith/avatars": "0.21.1",
53
- "@meith/core": "0.21.1",
54
- "@meith/db": "0.21.1",
55
- "@meith/demo": "0.21.1",
56
- "@meith/drivers": "0.21.1",
57
- "@meith/events": "0.21.1",
58
- "@meith/forums": "0.21.1",
59
- "@meith/i18n": "0.21.1",
60
- "@meith/groups": "0.21.1",
61
- "@meith/drafts": "0.21.1",
62
- "@meith/import": "0.21.1",
63
- "@meith/install": "0.21.1",
64
- "@meith/mail": "0.21.1",
65
- "@meith/marketplace": "0.21.1",
66
- "@meith/markdown": "0.21.1",
67
- "@meith/messages": "0.21.1",
68
- "@meith/moderation": "0.21.1",
69
- "@meith/notifications": "0.21.1",
70
- "@meith/plugin-dues": "0.21.1",
71
- "@meith/plugin-kit": "0.21.1",
72
- "@meith/polls": "0.21.1",
73
- "@meith/posts": "0.21.1",
74
- "@meith/profile-fields": "0.21.1",
75
- "@meith/relations": "0.21.1",
76
- "@meith/runtime": "0.21.1",
77
- "@meith/reputation": "0.21.1",
78
- "@meith/settings": "0.21.1",
79
- "@meith/subscriptions": "0.21.1",
80
- "@meith/signatures": "0.21.1",
81
- "@meith/tasks": "0.21.1",
82
- "@meith/search": "0.21.1",
83
- "@meith/theme-clubhouse": "0.21.1",
84
- "@meith/theme-default": "0.21.1",
85
- "@meith/theme-midnight": "0.21.1",
86
- "@meith/theme-kit": "0.21.1",
87
- "@meith/theme-phasebook": "0.21.1",
88
- "@meith/threads": "0.21.1",
89
- "@meith/ui": "0.21.1",
90
- "@meith/theme-raidframe": "0.21.1",
91
- "@meith/upgrade": "0.21.1"
46
+ "@meith/accounts": "0.21.2",
47
+ "@meith/admin": "0.21.2",
48
+ "@meith/antispam": "0.21.2",
49
+ "@meith/authorization": "0.21.2",
50
+ "@meith/api": "0.21.2",
51
+ "@meith/attachments": "0.21.2",
52
+ "@meith/avatars": "0.21.2",
53
+ "@meith/db": "0.21.2",
54
+ "@meith/core": "0.21.2",
55
+ "@meith/demo": "0.21.2",
56
+ "@meith/drivers": "0.21.2",
57
+ "@meith/events": "0.21.2",
58
+ "@meith/drafts": "0.21.2",
59
+ "@meith/forums": "0.21.2",
60
+ "@meith/i18n": "0.21.2",
61
+ "@meith/import": "0.21.2",
62
+ "@meith/groups": "0.21.2",
63
+ "@meith/install": "0.21.2",
64
+ "@meith/mail": "0.21.2",
65
+ "@meith/markdown": "0.21.2",
66
+ "@meith/marketplace": "0.21.2",
67
+ "@meith/messages": "0.21.2",
68
+ "@meith/moderation": "0.21.2",
69
+ "@meith/plugin-dues": "0.21.2",
70
+ "@meith/notifications": "0.21.2",
71
+ "@meith/polls": "0.21.2",
72
+ "@meith/plugin-kit": "0.21.2",
73
+ "@meith/reputation": "0.21.2",
74
+ "@meith/relations": "0.21.2",
75
+ "@meith/profile-fields": "0.21.2",
76
+ "@meith/runtime": "0.21.2",
77
+ "@meith/settings": "0.21.2",
78
+ "@meith/search": "0.21.2",
79
+ "@meith/posts": "0.21.2",
80
+ "@meith/signatures": "0.21.2",
81
+ "@meith/subscriptions": "0.21.2",
82
+ "@meith/theme-clubhouse": "0.21.2",
83
+ "@meith/theme-default": "0.21.2",
84
+ "@meith/tasks": "0.21.2",
85
+ "@meith/theme-kit": "0.21.2",
86
+ "@meith/theme-phasebook": "0.21.2",
87
+ "@meith/theme-raidframe": "0.21.2",
88
+ "@meith/theme-midnight": "0.21.2",
89
+ "@meith/threads": "0.21.2",
90
+ "@meith/ui": "0.21.2",
91
+ "@meith/upgrade": "0.21.2"
92
92
  },
93
93
  "scripts": {
94
94
  "dev": "next dev",
@@ -314,7 +314,9 @@ function Outcome({ state, copy }: { state: InstallFormState; copy: Copy }) {
314
314
  <AlertTitle>
315
315
  {formatFromCopy(copy, 'install.outcome.didNotFinish', { title: failed.title })}
316
316
  </AlertTitle>{' '}
317
- {fieldErrors.length > 0 ? fromCopy(copy, 'install.outcome.oneAnswer') : failed.error}
317
+ {fieldErrors.length > 0
318
+ ? fromCopy(copy, 'install.outcome.oneAnswer')
319
+ : fromCopy(copy, failed.error)}
318
320
  </>
319
321
  ) : (
320
322
  <AlertTitle>
@@ -16,10 +16,10 @@ import {
16
16
  isInstalled,
17
17
  markInstalled,
18
18
  migrationUrl,
19
+ missingTables,
19
20
  PostgresAdminRepository,
20
21
  PostgresForumRepository,
21
22
  PostgresSettingsRepository,
22
- runMigrations,
23
23
  SEED_GROUP_KEY,
24
24
  withInstallLock,
25
25
  } from '@meith/db'
@@ -47,6 +47,7 @@ const INSTALLED_VERSION = '0.1.0'
47
47
  const INSTALL_IN_FLIGHT = 'install.raced.inFlight'
48
48
 
49
49
  const INSTALL_RACED = 'install.raced.sealed'
50
+ const SCHEMA_INCOMPLETE = 'install.schema.missing'
50
51
 
51
52
  export async function gatherPreflight(): Promise<readonly Check[]> {
52
53
  const dataSource = env.DATA_SOURCE === 'postgres' ? 'postgres' : 'fixture'
@@ -164,7 +165,17 @@ async function performInstall(input: InstallInput): Promise<readonly StepOutcome
164
165
  }
165
166
  }
166
167
 
167
- if (!(await step('migrate', async () => void (await runMigrations())))) return report
168
+ if (
169
+ !(await step('migrate', async () => {
170
+ const missing = await missingTables(db)
171
+ if (missing.length === 0) return
172
+
173
+ logger().error({ step: 'migrate', missing: missing.slice(0, 20) }, 'schema incomplete')
174
+ throw new Error(SCHEMA_INCOMPLETE)
175
+ }))
176
+ ) {
177
+ return report
178
+ }
168
179
 
169
180
  const settings = new PostgresSettingsRepository(db)
170
181
  if (
@@ -6,7 +6,7 @@ import { planUpgrade, type UpgradeState, upgradeNotice } from '@meith/upgrade'
6
6
 
7
7
  import { activeDefinitions } from './plugin-host'
8
8
 
9
- export const CODE_VERSION = '0.21.1'
9
+ export const CODE_VERSION = '0.21.2'
10
10
 
11
11
  export async function pendingUpgradeNotice(): Promise<string | null> {
12
12
  if (env.DATA_SOURCE !== 'postgres') return null
@@ -61,6 +61,9 @@ export function installFormCopy(
61
61
  'install.steps.failed',
62
62
  'install.steps.notRun',
63
63
  'install.outcome.oneAnswer',
64
+ 'install.schema.missing',
65
+ 'install.raced.inFlight',
66
+ 'install.raced.sealed',
64
67
  'install.outcome.passwords',
65
68
  'install.field.boardName',
66
69
  'install.field.boardUrl',