@epic-web/workshop-utils 6.63.0 → 6.64.0

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.
@@ -11,26 +11,26 @@ declare function getEpicVideoInfo({ epicVideoEmbed, accessToken, request, timing
11
11
  request?: Request;
12
12
  timings?: Timings;
13
13
  }): Promise<{
14
- status: "success";
15
14
  transcript: string;
16
15
  muxPlaybackId: string;
16
+ status: "success";
17
17
  statusCode: number;
18
18
  statusText: string;
19
19
  title?: string | null | undefined;
20
20
  duration?: number | null | undefined;
21
21
  durationEstimate?: number | null | undefined;
22
22
  } | {
23
- type: "unknown";
24
23
  status: "error";
25
24
  statusCode: number;
26
25
  statusText: string;
26
+ type: "unknown";
27
27
  } | {
28
- type: "region-restricted";
29
28
  status: "error";
30
- requestCountry: string;
31
- restrictedCountry: string;
32
29
  statusCode: number;
33
30
  statusText: string;
31
+ type: "region-restricted";
32
+ requestCountry: string;
33
+ restrictedCountry: string;
34
34
  } | null>;
35
35
  export type Progress = Awaited<ReturnType<typeof getProgress>>[number];
36
36
  export declare function getProgress({ timings, request, }?: {
@@ -88,14 +88,14 @@ export declare function getWorkshopData(slug: string, { timings, request, forceF
88
88
  forceFresh?: boolean;
89
89
  }): Promise<{
90
90
  resources: ({
91
- slug: string;
92
91
  _type: "lesson";
93
92
  _id: string;
93
+ slug: string;
94
94
  } | {
95
95
  _type: "section";
96
96
  lessons: {
97
- slug: string;
98
97
  _id: string;
98
+ slug: string;
99
99
  }[];
100
100
  })[] | null;
101
101
  }>;
@@ -113,7 +113,7 @@ export declare function userHasAccessToWorkshop({ timings, request, forceFresh,
113
113
  productHost?: string;
114
114
  workshopSlug?: string;
115
115
  }): Promise<boolean>;
116
- declare const UserInfoSchema: z.ZodEffects<z.ZodObject<{
116
+ declare const UserInfoSchema: z.ZodPipe<z.ZodObject<{
117
117
  id: z.ZodString;
118
118
  name: z.ZodNullable<z.ZodString>;
119
119
  email: z.ZodString;
@@ -125,93 +125,39 @@ declare const UserInfoSchema: z.ZodEffects<z.ZodObject<{
125
125
  username: z.ZodString;
126
126
  avatar: z.ZodOptional<z.ZodNullable<z.ZodString>>;
127
127
  global_name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
128
- }, "strip", z.ZodTypeAny, {
129
- id: string;
130
- username: string;
131
- avatar?: string | null | undefined;
132
- global_name?: string | null | undefined;
133
- }, {
134
- id: string;
135
- username: string;
136
- avatar?: string | null | undefined;
137
- global_name?: string | null | undefined;
138
- }>>;
139
- }, "strip", z.ZodTypeAny, {
140
- user?: {
141
- id: string;
142
- username: string;
143
- avatar?: string | null | undefined;
144
- global_name?: string | null | undefined;
145
- } | undefined;
146
- nick?: string | null | undefined;
147
- }, {
148
- user?: {
149
- id: string;
150
- username: string;
151
- avatar?: string | null | undefined;
152
- global_name?: string | null | undefined;
153
- } | undefined;
154
- nick?: string | null | undefined;
155
- }>>>;
156
- }, "strip", z.ZodTypeAny, {
157
- name: string | null;
158
- id: string;
159
- email: string;
160
- image: string | null;
161
- discordProfile?: {
162
- user?: {
163
- id: string;
164
- username: string;
165
- avatar?: string | null | undefined;
166
- global_name?: string | null | undefined;
167
- } | undefined;
168
- nick?: string | null | undefined;
169
- } | null | undefined;
170
- }, {
171
- name: string | null;
172
- id: string;
173
- email: string;
174
- image: string | null;
175
- discordProfile?: {
176
- user?: {
177
- id: string;
178
- username: string;
179
- avatar?: string | null | undefined;
180
- global_name?: string | null | undefined;
181
- } | undefined;
182
- nick?: string | null | undefined;
183
- } | null | undefined;
184
- }>, {
128
+ }, z.core.$strip>>;
129
+ }, z.core.$strip>>>;
130
+ }, z.core.$strip>, z.ZodTransform<{
185
131
  imageUrlSmall: string | null;
186
132
  imageUrlLarge: string | null;
187
- name: string | null;
188
133
  id: string;
134
+ name: string | null;
189
135
  email: string;
190
136
  image: string | null;
191
137
  discordProfile?: {
138
+ nick?: string | null | undefined;
192
139
  user?: {
193
140
  id: string;
194
141
  username: string;
195
142
  avatar?: string | null | undefined;
196
143
  global_name?: string | null | undefined;
197
144
  } | undefined;
198
- nick?: string | null | undefined;
199
145
  } | null | undefined;
200
146
  }, {
201
- name: string | null;
202
147
  id: string;
148
+ name: string | null;
203
149
  email: string;
204
150
  image: string | null;
205
151
  discordProfile?: {
152
+ nick?: string | null | undefined;
206
153
  user?: {
207
154
  id: string;
208
155
  username: string;
209
156
  avatar?: string | null | undefined;
210
157
  global_name?: string | null | undefined;
211
158
  } | undefined;
212
- nick?: string | null | undefined;
213
159
  } | null | undefined;
214
- }>;
160
+ }>>;
215
161
  export type UserInfo = z.infer<typeof UserInfoSchema>;
216
162
  export declare function getUserInfo({ timings, request, forceFresh, }?: {
217
163
  timings?: Timings;
@@ -220,18 +166,18 @@ export declare function getUserInfo({ timings, request, forceFresh, }?: {
220
166
  }): Promise<{
221
167
  imageUrlSmall: string | null;
222
168
  imageUrlLarge: string | null;
223
- name: string | null;
224
169
  id: string;
170
+ name: string | null;
225
171
  email: string;
226
172
  image: string | null;
227
173
  discordProfile?: {
174
+ nick?: string | null | undefined;
228
175
  user?: {
229
176
  id: string;
230
177
  username: string;
231
178
  avatar?: string | null | undefined;
232
179
  global_name?: string | null | undefined;
233
180
  } | undefined;
234
- nick?: string | null | undefined;
235
181
  } | null | undefined;
236
182
  } | null>;
237
183
  export declare function warmCache(): Promise<void>;
@@ -4,47 +4,23 @@ declare const NotificationSchema: z.ZodObject<{
4
4
  title: z.ZodString;
5
5
  message: z.ZodString;
6
6
  link: z.ZodOptional<z.ZodString>;
7
- type: z.ZodEnum<["info", "warning", "danger"]>;
7
+ type: z.ZodEnum<{
8
+ info: "info";
9
+ warning: "warning";
10
+ danger: "danger";
11
+ }>;
8
12
  products: z.ZodOptional<z.ZodArray<z.ZodObject<{
9
13
  host: z.ZodString;
10
14
  slug: z.ZodOptional<z.ZodString>;
11
- }, "strip", z.ZodTypeAny, {
12
- host: string;
13
- slug?: string | undefined;
14
- }, {
15
- host: string;
16
- slug?: string | undefined;
17
- }>, "many">>;
18
- expiresAt: z.ZodEffects<z.ZodNullable<z.ZodString>, Date | null, string | null>;
19
- }, "strip", z.ZodTypeAny, {
20
- message: string;
21
- type: "info" | "warning" | "danger";
22
- title: string;
23
- id: string;
24
- expiresAt: Date | null;
25
- link?: string | undefined;
26
- products?: {
27
- host: string;
28
- slug?: string | undefined;
29
- }[] | undefined;
30
- }, {
31
- message: string;
32
- type: "info" | "warning" | "danger";
33
- title: string;
34
- id: string;
35
- expiresAt: string | null;
36
- link?: string | undefined;
37
- products?: {
38
- host: string;
39
- slug?: string | undefined;
40
- }[] | undefined;
41
- }>;
15
+ }, z.core.$strip>>>;
16
+ expiresAt: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<Date | null, string | null>>;
17
+ }, z.core.$strip>;
42
18
  export type Notification = z.infer<typeof NotificationSchema>;
43
19
  export declare function getUnmutedNotifications(): Promise<{
20
+ id: string;
21
+ title: string;
44
22
  message: string;
45
23
  type: "info" | "warning" | "danger";
46
- title: string;
47
- id: string;
48
24
  expiresAt: Date | null;
49
25
  link?: string | undefined;
50
26
  products?: {
@@ -30,8 +30,8 @@ export declare function getCryptoRange({ start, end, blockSize, }: {
30
30
  export declare function createOfflineVideoCipher({ key, iv, }: {
31
31
  key: Buffer;
32
32
  iv: Buffer;
33
- }): import("crypto").Cipheriv;
33
+ }): import("node:crypto").Cipheriv;
34
34
  export declare function createOfflineVideoDecipher({ key, iv, }: {
35
35
  key: Buffer;
36
36
  iv: Buffer;
37
- }): import("crypto").Decipheriv;
37
+ }): import("node:crypto").Decipheriv;
@@ -47,7 +47,7 @@ export declare function runAppDev(app: App): Promise<{
47
47
  readonly error?: undefined;
48
48
  readonly portNumber?: undefined;
49
49
  }>;
50
- export declare function runAppTests(app: App): Promise<import("child_process").ChildProcessByStdio<null, import("stream").Readable, import("stream").Readable> | {
50
+ export declare function runAppTests(app: App): Promise<import("node:child_process").ChildProcessByStdio<null, import("node:stream").Readable, import("node:stream").Readable> | {
51
51
  readonly status: "error";
52
52
  readonly error: "no-test";
53
53
  }>;
@@ -1,11 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  declare const ConfigSchema: z.ZodObject<{
3
3
  reposDirectory: z.ZodOptional<z.ZodString>;
4
- }, "strip", z.ZodTypeAny, {
5
- reposDirectory?: string | undefined;
6
- }, {
7
- reposDirectory?: string | undefined;
8
- }>;
4
+ }, z.core.$strip>;
9
5
  export type Workshop = {
10
6
  name: string;
11
7
  title: string;
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "@epic-web/workshop-utils",
3
- "version": "6.63.0",
3
+ "version": "6.64.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
7
  "type": "module",
8
8
  "zshy": {
9
9
  "cjs": false,
10
+ "conditions": {
11
+ "import": "esm"
12
+ },
10
13
  "exports": {
11
14
  "./package.json": "./package.json",
12
15
  "./apps.server": "./src/apps.server.ts",
@@ -40,108 +43,134 @@
40
43
  "exports": {
41
44
  "./package.json": "./package.json",
42
45
  "./apps.server": {
46
+ "import": "./dist/apps.server.js",
43
47
  "types": "./dist/apps.server.d.ts",
44
- "import": "./dist/apps.server.js"
48
+ "default": "./dist/apps.server.js"
45
49
  },
46
50
  "./diff.server": {
51
+ "import": "./dist/diff.server.js",
47
52
  "types": "./dist/diff.server.d.ts",
48
- "import": "./dist/diff.server.js"
53
+ "default": "./dist/diff.server.js"
49
54
  },
50
55
  "./env.server": {
56
+ "import": "./dist/env.server.js",
51
57
  "types": "./dist/env.server.d.ts",
52
- "import": "./dist/env.server.js"
58
+ "default": "./dist/env.server.js"
53
59
  },
54
60
  "./epic-api.server": {
61
+ "import": "./dist/epic-api.server.js",
55
62
  "types": "./dist/epic-api.server.d.ts",
56
- "import": "./dist/epic-api.server.js"
63
+ "default": "./dist/epic-api.server.js"
57
64
  },
58
65
  "./user.server": {
66
+ "import": "./dist/user.server.js",
59
67
  "types": "./dist/user.server.d.ts",
60
- "import": "./dist/user.server.js"
68
+ "default": "./dist/user.server.js"
61
69
  },
62
70
  "./cache.server": {
71
+ "import": "./dist/cache.server.js",
63
72
  "types": "./dist/cache.server.d.ts",
64
- "import": "./dist/cache.server.js"
73
+ "default": "./dist/cache.server.js"
65
74
  },
66
75
  "./config.server": {
76
+ "import": "./dist/config.server.js",
67
77
  "types": "./dist/config.server.d.ts",
68
- "import": "./dist/config.server.js"
78
+ "default": "./dist/config.server.js"
69
79
  },
70
80
  "./db.server": {
81
+ "import": "./dist/db.server.js",
71
82
  "types": "./dist/db.server.d.ts",
72
- "import": "./dist/db.server.js"
83
+ "default": "./dist/db.server.js"
73
84
  },
74
85
  "./data-storage.server": {
86
+ "import": "./dist/data-storage.server.js",
75
87
  "types": "./dist/data-storage.server.d.ts",
76
- "import": "./dist/data-storage.server.js"
88
+ "default": "./dist/data-storage.server.js"
77
89
  },
78
90
  "./launch-editor.server": {
91
+ "import": "./dist/launch-editor.server.js",
79
92
  "types": "./dist/launch-editor.server.d.ts",
80
- "import": "./dist/launch-editor.server.js"
93
+ "default": "./dist/launch-editor.server.js"
81
94
  },
82
95
  "./timing.server": {
96
+ "import": "./dist/timing.server.js",
83
97
  "types": "./dist/timing.server.d.ts",
84
- "import": "./dist/timing.server.js"
98
+ "default": "./dist/timing.server.js"
85
99
  },
86
100
  "./modified-time.server": {
101
+ "import": "./dist/modified-time.server.js",
87
102
  "types": "./dist/modified-time.server.d.ts",
88
- "import": "./dist/modified-time.server.js"
103
+ "default": "./dist/modified-time.server.js"
89
104
  },
90
105
  "./compile-mdx.server": {
106
+ "import": "./dist/compile-mdx.server.js",
91
107
  "types": "./dist/compile-mdx.server.d.ts",
92
- "import": "./dist/compile-mdx.server.js"
108
+ "default": "./dist/compile-mdx.server.js"
93
109
  },
94
110
  "./git.server": {
111
+ "import": "./dist/git.server.js",
95
112
  "types": "./dist/git.server.d.ts",
96
- "import": "./dist/git.server.js"
113
+ "default": "./dist/git.server.js"
97
114
  },
98
115
  "./iframe-sync": {
116
+ "import": "./dist/iframe-sync.js",
99
117
  "types": "./dist/iframe-sync.d.ts",
100
- "import": "./dist/iframe-sync.js"
118
+ "default": "./dist/iframe-sync.js"
101
119
  },
102
120
  "./init-env": {
121
+ "import": "./dist/init-env.js",
103
122
  "types": "./dist/init-env.d.ts",
104
- "import": "./dist/init-env.js"
123
+ "default": "./dist/init-env.js"
105
124
  },
106
125
  "./logger": {
126
+ "import": "./dist/logger.js",
107
127
  "types": "./dist/logger.d.ts",
108
- "import": "./dist/logger.js"
128
+ "default": "./dist/logger.js"
109
129
  },
110
130
  "./playwright.server": {
131
+ "import": "./dist/playwright.server.js",
111
132
  "types": "./dist/playwright.server.d.ts",
112
- "import": "./dist/playwright.server.js"
133
+ "default": "./dist/playwright.server.js"
113
134
  },
114
135
  "./notifications.server": {
136
+ "import": "./dist/notifications.server.js",
115
137
  "types": "./dist/notifications.server.d.ts",
116
- "import": "./dist/notifications.server.js"
138
+ "default": "./dist/notifications.server.js"
117
139
  },
118
140
  "./offline-videos.server": {
141
+ "import": "./dist/offline-videos.server.js",
119
142
  "types": "./dist/offline-videos.server.d.ts",
120
- "import": "./dist/offline-videos.server.js"
143
+ "default": "./dist/offline-videos.server.js"
121
144
  },
122
145
  "./process-manager.server": {
146
+ "import": "./dist/process-manager.server.js",
123
147
  "types": "./dist/process-manager.server.d.ts",
124
- "import": "./dist/process-manager.server.js"
148
+ "default": "./dist/process-manager.server.js"
125
149
  },
126
150
  "./test": {
151
+ "import": "./dist/test.js",
127
152
  "types": "./dist/test.d.ts",
128
- "import": "./dist/test.js"
153
+ "default": "./dist/test.js"
129
154
  },
130
155
  "./request-context.server": {
156
+ "import": "./dist/request-context.server.js",
131
157
  "types": "./dist/request-context.server.d.ts",
132
- "import": "./dist/request-context.server.js"
158
+ "default": "./dist/request-context.server.js"
133
159
  },
134
160
  "./utils.server": {
161
+ "import": "./dist/utils.server.js",
135
162
  "types": "./dist/utils.server.d.ts",
136
- "import": "./dist/utils.server.js"
163
+ "default": "./dist/utils.server.js"
137
164
  },
138
165
  "./utils": {
166
+ "import": "./dist/utils.js",
139
167
  "types": "./dist/utils.d.ts",
140
- "import": "./dist/utils.js"
168
+ "default": "./dist/utils.js"
141
169
  },
142
170
  "./workshops.server": {
171
+ "import": "./dist/workshops.server.js",
143
172
  "types": "./dist/workshops.server.d.ts",
144
- "import": "./dist/workshops.server.js"
173
+ "default": "./dist/workshops.server.js"
145
174
  }
146
175
  },
147
176
  "files": [
@@ -160,62 +189,62 @@
160
189
  "@epic-web/remember": "^1.1.0",
161
190
  "@kentcdodds/md-temp": "^10.0.1",
162
191
  "@mdx-js/mdx": "^3.1.1",
163
- "@playwright/test": "^1.56.1",
164
- "@react-router/node": "^7.9.5",
165
- "@sentry/react-router": "^10.25.0",
192
+ "@playwright/test": "^1.57.0",
193
+ "@react-router/node": "^7.12.0",
194
+ "@sentry/react-router": "^10.35.0",
166
195
  "@testing-library/dom": "^10.4.1",
167
196
  "@testing-library/jest-dom": "^6.9.1",
168
197
  "@total-typescript/ts-reset": "^0.6.1",
169
198
  "@types/chai": "^5.2.3",
170
199
  "@types/chai-dom": "^1.11.3",
171
- "@vitest/expect": "^4.0.8",
172
- "chai": "^6.2.1",
200
+ "@vitest/expect": "^4.0.17",
201
+ "chai": "^6.2.2",
173
202
  "chai-dom": "^1.12.1",
174
203
  "chalk": "^5.6.2",
175
- "chokidar": "^4.0.3",
176
- "close-with-grace": "^2.3.0",
177
- "cookie": "^1.0.2",
204
+ "chokidar": "^5.0.0",
205
+ "close-with-grace": "^2.4.0",
206
+ "cookie": "^1.1.1",
178
207
  "cross-spawn": "^7.0.6",
179
208
  "dayjs": "^1.11.19",
180
- "esbuild": "^0.27.0",
181
- "execa": "^9.6.0",
209
+ "esbuild": "^0.27.2",
210
+ "execa": "^9.6.1",
182
211
  "find-process": "^2.0.0",
183
- "fkill": "^10.0.0",
184
- "fs-extra": "^11.3.2",
185
- "globby": "^15.0.0",
212
+ "fkill": "^10.0.3",
213
+ "fs-extra": "^11.3.3",
214
+ "globby": "^16.1.0",
186
215
  "ignore": "^7.0.5",
187
216
  "json5": "^2.2.3",
188
- "lru-cache": "^11.2.2",
217
+ "lru-cache": "^11.2.4",
189
218
  "lz-string": "^1.5.0",
190
219
  "md5-hex": "^5.0.0",
191
220
  "mdast-util-mdx-jsx": "^3.2.0",
192
221
  "mdx-bundler": "^10.1.1",
193
- "p-queue": "^9.0.0",
222
+ "p-queue": "^9.1.0",
194
223
  "parse-git-diff": "^0.0.19",
195
- "react": "^19.2.0",
196
- "react-dom": "^19.2.0",
197
- "react-router": "^7.9.5",
224
+ "react": "^19.2.3",
225
+ "react-dom": "^19.2.3",
226
+ "react-router": "^7.12.0",
198
227
  "rehype": "^13.0.2",
199
228
  "rehype-autolink-headings": "^7.1.0",
200
229
  "remark": "^15.0.1",
201
230
  "remark-emoji": "^5.0.2",
202
231
  "remark-gfm": "^4.0.1",
203
232
  "shell-quote": "^1.8.3",
204
- "shiki": "^3.15.0",
233
+ "shiki": "^3.21.0",
205
234
  "unified": "^11.0.5",
206
235
  "unist-util-remove-position": "^5.0.0",
207
236
  "unist-util-visit": "^5.0.0",
208
- "zod": "^3.25.76"
237
+ "zod": "^4.3.5"
209
238
  },
210
239
  "devDependencies": {
211
240
  "@types/hast": "^3.0.4",
212
241
  "@types/mdast": "^4.0.4",
213
- "@types/node": "^24.10.0",
214
- "@types/react": "^19.2.3",
215
- "@types/react-dom": "^19.2.2",
242
+ "@types/node": "^25.0.9",
243
+ "@types/react": "^19.2.8",
244
+ "@types/react-dom": "^19.2.3",
216
245
  "@types/shell-quote": "^1.7.5",
217
- "zshy": "^0.3.0",
218
- "vitest": "^4.0.8"
246
+ "zshy": "^0.7.0",
247
+ "vitest": "^4.0.17"
219
248
  },
220
249
  "repository": {
221
250
  "type": "git",