@actuate-media/cms-core 0.85.1 → 0.85.3
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/CHANGELOG.md +14 -0
- package/dist/appearance/theme-tokens.d.ts +5 -6
- package/dist/appearance/theme-tokens.d.ts.map +1 -1
- package/dist/appearance/theme-tokens.js +90 -59
- package/dist/appearance/theme-tokens.js.map +1 -1
- package/dist/upgrade/version-check.d.ts +2 -0
- package/dist/upgrade/version-check.d.ts.map +1 -1
- package/dist/upgrade/version-check.js +4 -6
- package/dist/upgrade/version-check.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @actuate-media/cms-core
|
|
2
2
|
|
|
3
|
+
## 0.85.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 685958f: Correct 0.x upgrade guidance: document that npm update only applies patches within the pinned minor; use `actuate upgrade` for minor bumps. Admin Updates panel and update server now show the full upgrade command chain.
|
|
8
|
+
|
|
9
|
+
Clarify scaffold README populate/script-tag and upgrade steps.
|
|
10
|
+
|
|
11
|
+
## 0.85.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- 6a6101a: Align admin UI with the ActuateCMS design system v1.0 handoff: canonical tokens, theme remapping, shell layout, shared Toggle/Input/Card primitives, and appearance accent tint variables.
|
|
16
|
+
|
|
3
17
|
## 0.85.1
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -6,6 +6,10 @@ export interface AccentTokens {
|
|
|
6
6
|
primaryForeground: string;
|
|
7
7
|
sidebarPrimary: string;
|
|
8
8
|
ring: string;
|
|
9
|
+
/** Hover/active tint (`--acc-l`, `--sidebar-accent`). */
|
|
10
|
+
accentLight: string;
|
|
11
|
+
/** Focus ring mid tone (`--acc-m`). */
|
|
12
|
+
accentMid: string;
|
|
9
13
|
}
|
|
10
14
|
export interface AccentPreset {
|
|
11
15
|
name: AccentColorName;
|
|
@@ -15,12 +19,7 @@ export interface AccentPreset {
|
|
|
15
19
|
light: AccentTokens;
|
|
16
20
|
dark: AccentTokens;
|
|
17
21
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Curated accent presets. Light/dark brand values mirror the existing
|
|
20
|
-
* `theme.css` violet so "purple" is a visual no-op; the others are tuned to the
|
|
21
|
-
* same lightness/chroma envelope so they read as text on cards and as solid
|
|
22
|
-
* fills, and pass the >=3:1 UI-contrast bar against their foreground.
|
|
23
|
-
*/
|
|
22
|
+
/** Curated accent presets — hex values from the admin design system handoff. */
|
|
24
23
|
export declare const ACCENT_PRESETS: Record<AccentColorName, AccentPreset>;
|
|
25
24
|
export declare const ACCENT_PRESET_LIST: AccentPreset[];
|
|
26
25
|
/** Minimum WCAG contrast for a primary fill vs its foreground (UI/large text). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-tokens.d.ts","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme-tokens.d.ts","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAErE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;IACnB,IAAI,EAAE,YAAY,CAAA;CACnB;AAiBD,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,eAAe,EAAE,YAAY,CA8HhE,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,EAAkC,CAAA;AAE/E,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAiBnE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EACtD,YAAY,EAAE,OAAO,GAAG,MAAM,GAC7B,YAAY,CAoBd;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBlF"}
|
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* The accent color is the one user-facing knob that recolors the admin's
|
|
5
5
|
* primary affordances (active nav, primary buttons, active tabs, focus rings,
|
|
6
|
-
* selected pills).
|
|
7
|
-
*
|
|
8
|
-
* values — and map the chosen preset to the CSS variables the theme already
|
|
9
|
-
* uses (`--brand`, `--primary`, `--sidebar-primary`, `--ring`).
|
|
6
|
+
* selected pills). Preset values align with `packages/cms-admin/design-system/
|
|
7
|
+
* tokens.json` (`accentOptions` + light/dark accent tints).
|
|
10
8
|
*
|
|
11
9
|
* `generateAdminThemeTokens` returns a plain map the client applies via
|
|
12
10
|
* `style.setProperty` on `.actuate-admin`, so an accent change repaints without
|
|
@@ -14,117 +12,140 @@
|
|
|
14
12
|
*/
|
|
15
13
|
import { contrastRatio, isParseableColor } from './color.js';
|
|
16
14
|
const WHITE = '#ffffff';
|
|
17
|
-
const NEAR_BLACK = '
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
const NEAR_BLACK = '#0d0c18';
|
|
16
|
+
const DARK_SURFACE = '#141222';
|
|
17
|
+
function customAccentTints(accent, resolvedMode) {
|
|
18
|
+
const base = resolvedMode === 'dark' ? DARK_SURFACE : WHITE;
|
|
19
|
+
return {
|
|
20
|
+
accentLight: `color-mix(in srgb, ${accent} ${resolvedMode === 'dark' ? '28' : '12'}%, ${base})`,
|
|
21
|
+
accentMid: `color-mix(in srgb, ${accent} 55%, ${base})`,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** Curated accent presets — hex values from the admin design system handoff. */
|
|
24
25
|
export const ACCENT_PRESETS = {
|
|
25
26
|
purple: {
|
|
26
27
|
name: 'purple',
|
|
27
28
|
label: 'Purple',
|
|
28
|
-
swatch: '
|
|
29
|
+
swatch: '#7C3AED',
|
|
29
30
|
light: {
|
|
30
|
-
brand: '
|
|
31
|
+
brand: '#7C3AED',
|
|
31
32
|
brandForeground: WHITE,
|
|
32
|
-
primary: '
|
|
33
|
+
primary: '#7C3AED',
|
|
33
34
|
primaryForeground: WHITE,
|
|
34
|
-
sidebarPrimary: '
|
|
35
|
-
ring: '
|
|
35
|
+
sidebarPrimary: '#7C3AED',
|
|
36
|
+
ring: '#C4B5FD',
|
|
37
|
+
accentLight: '#EDE9FE',
|
|
38
|
+
accentMid: '#C4B5FD',
|
|
36
39
|
},
|
|
37
40
|
dark: {
|
|
38
|
-
brand: '
|
|
41
|
+
brand: '#9D71F0',
|
|
39
42
|
brandForeground: NEAR_BLACK,
|
|
40
|
-
primary: '
|
|
43
|
+
primary: '#9D71F0',
|
|
41
44
|
primaryForeground: NEAR_BLACK,
|
|
42
|
-
sidebarPrimary: '
|
|
43
|
-
ring: '
|
|
45
|
+
sidebarPrimary: '#9D71F0',
|
|
46
|
+
ring: '#5E3EAA',
|
|
47
|
+
accentLight: '#231950',
|
|
48
|
+
accentMid: '#5E3EAA',
|
|
44
49
|
},
|
|
45
50
|
},
|
|
46
51
|
blue: {
|
|
47
52
|
name: 'blue',
|
|
48
53
|
label: 'Blue',
|
|
49
|
-
swatch: '
|
|
54
|
+
swatch: '#2563EB',
|
|
50
55
|
light: {
|
|
51
|
-
brand: '
|
|
56
|
+
brand: '#2563EB',
|
|
52
57
|
brandForeground: WHITE,
|
|
53
|
-
primary: '
|
|
58
|
+
primary: '#2563EB',
|
|
54
59
|
primaryForeground: WHITE,
|
|
55
|
-
sidebarPrimary: '
|
|
56
|
-
ring: '
|
|
60
|
+
sidebarPrimary: '#2563EB',
|
|
61
|
+
ring: '#93C5FD',
|
|
62
|
+
accentLight: '#DBEAFE',
|
|
63
|
+
accentMid: '#93C5FD',
|
|
57
64
|
},
|
|
58
65
|
dark: {
|
|
59
|
-
brand: '
|
|
66
|
+
brand: '#60A5FA',
|
|
60
67
|
brandForeground: NEAR_BLACK,
|
|
61
|
-
primary: '
|
|
68
|
+
primary: '#60A5FA',
|
|
62
69
|
primaryForeground: NEAR_BLACK,
|
|
63
|
-
sidebarPrimary: '
|
|
64
|
-
ring: '
|
|
70
|
+
sidebarPrimary: '#60A5FA',
|
|
71
|
+
ring: '#1D4ED8',
|
|
72
|
+
accentLight: '#172554',
|
|
73
|
+
accentMid: '#1D4ED8',
|
|
65
74
|
},
|
|
66
75
|
},
|
|
67
76
|
teal: {
|
|
68
77
|
name: 'teal',
|
|
69
78
|
label: 'Teal',
|
|
70
|
-
swatch: '
|
|
79
|
+
swatch: '#0D9488',
|
|
71
80
|
light: {
|
|
72
|
-
brand: '
|
|
81
|
+
brand: '#0D9488',
|
|
73
82
|
brandForeground: WHITE,
|
|
74
|
-
primary: '
|
|
83
|
+
primary: '#0D9488',
|
|
75
84
|
primaryForeground: WHITE,
|
|
76
|
-
sidebarPrimary: '
|
|
77
|
-
ring: '
|
|
85
|
+
sidebarPrimary: '#0D9488',
|
|
86
|
+
ring: '#5EEAD4',
|
|
87
|
+
accentLight: '#CCFBF1',
|
|
88
|
+
accentMid: '#5EEAD4',
|
|
78
89
|
},
|
|
79
90
|
dark: {
|
|
80
|
-
brand: '
|
|
91
|
+
brand: '#2DD4BF',
|
|
81
92
|
brandForeground: NEAR_BLACK,
|
|
82
|
-
primary: '
|
|
93
|
+
primary: '#2DD4BF',
|
|
83
94
|
primaryForeground: NEAR_BLACK,
|
|
84
|
-
sidebarPrimary: '
|
|
85
|
-
ring: '
|
|
95
|
+
sidebarPrimary: '#2DD4BF',
|
|
96
|
+
ring: '#0F766E',
|
|
97
|
+
accentLight: '#042F2E',
|
|
98
|
+
accentMid: '#0F766E',
|
|
86
99
|
},
|
|
87
100
|
},
|
|
88
101
|
pink: {
|
|
89
102
|
name: 'pink',
|
|
90
103
|
label: 'Pink',
|
|
91
|
-
swatch: '
|
|
104
|
+
swatch: '#DB2777',
|
|
92
105
|
light: {
|
|
93
|
-
brand: '
|
|
106
|
+
brand: '#DB2777',
|
|
94
107
|
brandForeground: WHITE,
|
|
95
|
-
primary: '
|
|
108
|
+
primary: '#DB2777',
|
|
96
109
|
primaryForeground: WHITE,
|
|
97
|
-
sidebarPrimary: '
|
|
98
|
-
ring: '
|
|
110
|
+
sidebarPrimary: '#DB2777',
|
|
111
|
+
ring: '#F9A8D4',
|
|
112
|
+
accentLight: '#FCE7F3',
|
|
113
|
+
accentMid: '#F9A8D4',
|
|
99
114
|
},
|
|
100
115
|
dark: {
|
|
101
|
-
brand: '
|
|
116
|
+
brand: '#F472B6',
|
|
102
117
|
brandForeground: NEAR_BLACK,
|
|
103
|
-
primary: '
|
|
118
|
+
primary: '#F472B6',
|
|
104
119
|
primaryForeground: NEAR_BLACK,
|
|
105
|
-
sidebarPrimary: '
|
|
106
|
-
ring: '
|
|
120
|
+
sidebarPrimary: '#F472B6',
|
|
121
|
+
ring: '#9D174D',
|
|
122
|
+
accentLight: '#500724',
|
|
123
|
+
accentMid: '#9D174D',
|
|
107
124
|
},
|
|
108
125
|
},
|
|
109
126
|
orange: {
|
|
110
127
|
name: 'orange',
|
|
111
128
|
label: 'Orange',
|
|
112
|
-
swatch: '
|
|
129
|
+
swatch: '#EA580C',
|
|
113
130
|
light: {
|
|
114
|
-
brand: '
|
|
131
|
+
brand: '#EA580C',
|
|
115
132
|
brandForeground: WHITE,
|
|
116
|
-
primary: '
|
|
133
|
+
primary: '#EA580C',
|
|
117
134
|
primaryForeground: WHITE,
|
|
118
|
-
sidebarPrimary: '
|
|
119
|
-
ring: '
|
|
135
|
+
sidebarPrimary: '#EA580C',
|
|
136
|
+
ring: '#FDBA74',
|
|
137
|
+
accentLight: '#FFEDD5',
|
|
138
|
+
accentMid: '#FDBA74',
|
|
120
139
|
},
|
|
121
140
|
dark: {
|
|
122
|
-
brand: '
|
|
141
|
+
brand: '#FB923C',
|
|
123
142
|
brandForeground: NEAR_BLACK,
|
|
124
|
-
primary: '
|
|
143
|
+
primary: '#FB923C',
|
|
125
144
|
primaryForeground: NEAR_BLACK,
|
|
126
|
-
sidebarPrimary: '
|
|
127
|
-
ring: '
|
|
145
|
+
sidebarPrimary: '#FB923C',
|
|
146
|
+
ring: '#9A3412',
|
|
147
|
+
accentLight: '#431407',
|
|
148
|
+
accentMid: '#9A3412',
|
|
128
149
|
},
|
|
129
150
|
},
|
|
130
151
|
};
|
|
@@ -168,17 +189,18 @@ export function generateAdminThemeTokens(settings, resolvedMode) {
|
|
|
168
189
|
if (isAccentPreset(accent)) {
|
|
169
190
|
return ACCENT_PRESETS[accent][resolvedMode];
|
|
170
191
|
}
|
|
171
|
-
// Custom color: drive brand/primary/sidebar/ring from the raw value, keep a
|
|
172
|
-
// sensible foreground for the mode.
|
|
173
192
|
if (isParseableColor(accent)) {
|
|
174
193
|
const foreground = resolvedMode === 'dark' ? NEAR_BLACK : WHITE;
|
|
194
|
+
const tints = customAccentTints(accent, resolvedMode);
|
|
175
195
|
return {
|
|
176
196
|
brand: accent,
|
|
177
197
|
brandForeground: foreground,
|
|
178
198
|
primary: accent,
|
|
179
199
|
primaryForeground: foreground,
|
|
180
200
|
sidebarPrimary: accent,
|
|
181
|
-
ring:
|
|
201
|
+
ring: tints.accentMid,
|
|
202
|
+
accentLight: tints.accentLight,
|
|
203
|
+
accentMid: tints.accentMid,
|
|
182
204
|
};
|
|
183
205
|
}
|
|
184
206
|
return ACCENT_PRESETS.purple[resolvedMode];
|
|
@@ -186,12 +208,21 @@ export function generateAdminThemeTokens(settings, resolvedMode) {
|
|
|
186
208
|
/** Map accent tokens to the CSS custom properties the theme consumes. */
|
|
187
209
|
export function accentTokensToCssVars(tokens) {
|
|
188
210
|
return {
|
|
211
|
+
'--acc': tokens.brand,
|
|
212
|
+
'--acc-l': tokens.accentLight,
|
|
213
|
+
'--acc-m': tokens.accentMid,
|
|
189
214
|
'--brand': tokens.brand,
|
|
190
215
|
'--brand-foreground': tokens.brandForeground,
|
|
191
216
|
'--primary': tokens.primary,
|
|
192
217
|
'--primary-foreground': tokens.primaryForeground,
|
|
218
|
+
'--secondary': tokens.accentLight,
|
|
219
|
+
'--secondary-foreground': tokens.brand,
|
|
220
|
+
'--accent': tokens.accentLight,
|
|
221
|
+
'--accent-foreground': tokens.brand,
|
|
193
222
|
'--sidebar-primary': tokens.sidebarPrimary,
|
|
194
223
|
'--sidebar-primary-foreground': tokens.primaryForeground,
|
|
224
|
+
'--sidebar-accent': tokens.accentLight,
|
|
225
|
+
'--sidebar-accent-foreground': tokens.brand,
|
|
195
226
|
'--ring': tokens.ring,
|
|
196
227
|
};
|
|
197
228
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-tokens.js","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"theme-tokens.js","sourceRoot":"","sources":["../../src/appearance/theme-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,8 @@ export interface VersionInfo {
|
|
|
29
29
|
/** Which backend produced this result — useful for diagnostics. */
|
|
30
30
|
source?: 'update-server' | 'npm';
|
|
31
31
|
}
|
|
32
|
+
/** Copy-paste command for admin Updates and the update server (0.x-safe). */
|
|
33
|
+
export declare const ACTUATE_UPGRADE_COMMAND = "npx actuate upgrade && npm install && npx actuate db:sync && npx prisma migrate deploy";
|
|
32
34
|
/**
|
|
33
35
|
* Resolve the update status with the production-grade hybrid strategy:
|
|
34
36
|
* query the Actuate update server first (rich, real release notes derived from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/upgrade/version-check.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAA;AAEpG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf;yDACqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,uBAAuB,EAAE,CAAA;IAC/C,mEAAmE;IACnE,MAAM,CAAC,EAAE,eAAe,GAAG,KAAK,CAAA;CACjC;
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/upgrade/version-check.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAA;AAEpG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf;yDACqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,2DAA2D;IAC3D,mBAAmB,CAAC,EAAE,uBAAuB,EAAE,CAAA;IAC/C,mEAAmE;IACnE,MAAM,CAAC,EAAE,eAAe,GAAG,KAAK,CAAA;CACjC;AAID,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,2FACsD,CAAA;AAK1F;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAQlF;AAcD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAyC7B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA2ClF;AAED,iDAAiD;AACjD,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,GACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQxD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const CORE_PACKAGE = '@actuate-media/cms-core';
|
|
2
|
-
|
|
2
|
+
/** Copy-paste command for admin Updates and the update server (0.x-safe). */
|
|
3
|
+
export const ACTUATE_UPGRADE_COMMAND = 'npx actuate upgrade && npm install && npx actuate db:sync && npx prisma migrate deploy';
|
|
3
4
|
const NPM_REGISTRY = 'https://registry.npmjs.org';
|
|
4
5
|
const DEFAULT_UPDATE_SERVER = 'https://updates.actuatecms.com';
|
|
5
6
|
const FETCH_TIMEOUT_MS = 10_000;
|
|
@@ -57,8 +58,7 @@ export async function checkForUpdatesViaServer(currentVersion, serverUrl) {
|
|
|
57
58
|
severity: data.severity ?? determineSeverity(currentVersion, data.latestVersion),
|
|
58
59
|
releaseDate: data.changelog?.[0]?.date || undefined,
|
|
59
60
|
changelog: data.changelog,
|
|
60
|
-
updateCommand: data.updateCommand ??
|
|
61
|
-
`npm update ${CORE_PACKAGE} ${ADMIN_PACKAGE} && npx prisma migrate deploy`,
|
|
61
|
+
updateCommand: data.updateCommand ?? ACTUATE_UPGRADE_COMMAND,
|
|
62
62
|
breakingChanges: data.breakingChanges,
|
|
63
63
|
hasMigrations: data.hasMigrations,
|
|
64
64
|
pluginCompatibility: data.pluginCompatibility,
|
|
@@ -104,9 +104,7 @@ export async function checkForUpdates(currentVersion) {
|
|
|
104
104
|
severity: updateAvailable ? determineSeverity(currentVersion, latest) : undefined,
|
|
105
105
|
releaseDate: data.time[latest]?.split('T')[0],
|
|
106
106
|
changelog,
|
|
107
|
-
updateCommand: updateAvailable
|
|
108
|
-
? `npm update ${CORE_PACKAGE} ${ADMIN_PACKAGE} && npx prisma migrate deploy`
|
|
109
|
-
: undefined,
|
|
107
|
+
updateCommand: updateAvailable ? ACTUATE_UPGRADE_COMMAND : undefined,
|
|
110
108
|
};
|
|
111
109
|
}
|
|
112
110
|
/** Parse a semver string into its components. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/upgrade/version-check.ts"],"names":[],"mappings":"AAmCA,MAAM,YAAY,GAAG,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/upgrade/version-check.ts"],"names":[],"mappings":"AAmCA,MAAM,YAAY,GAAG,yBAAyB,CAAA;AAE9C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,uBAAuB,GAClC,wFAAwF,CAAA;AAC1F,MAAM,YAAY,GAAG,4BAA4B,CAAA;AACjD,MAAM,qBAAqB,GAAG,gCAAgC,CAAA;AAC9D,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAE/B;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,cAAsB;IAC1D,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAA;IACzF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAC3E,IAAI,SAAS;YAAE,OAAO,SAAS,CAAA;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAA;IACpD,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AACrC,CAAC;AAcD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,cAAsB,EACtB,SAAiB;IAEjB,8EAA8E;IAC9E,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAE5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;QAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACtC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QACxB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAA;QACvD,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAA;QAEpC,IAAI,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,eAAe;aACxB,CAAA;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC;YAChF,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,SAAS;YACnD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,uBAAuB;YAC5D,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,MAAM,EAAE,eAAe;SACxB,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,cAAsB;IAC1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE;QAC7E,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;QACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAI7B,CAAA;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;IACvC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;IAEjE,IAAI,SAAmC,CAAA;IACvC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;aACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACnC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAEf,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YACvC,OAAO,EAAE,aAAa,CAAC,EAAE;SAC1B,CAAC,CAAC,CAAA;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,cAAc;QACvB,MAAM;QACN,eAAe;QACf,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACjF,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,SAAS;QACT,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;KACrE,CAAA;AACH,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CACzB,OAAe;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;QAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;QAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;KAC/B,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACxC,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;IAC7B,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,MAAc;IACxD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAA;IAChC,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;QAAE,OAAO,OAAO,CAAA;IACzC,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;QAAE,OAAO,OAAO,CAAA;IACzC,OAAO,OAAO,CAAA;AAChB,CAAC"}
|