@knapsack/doctor 4.81.3--canary.6318.5026fc0.0 → 4.81.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.
@@ -10,7 +10,8 @@
10
10
  ✔ v4 › detect › ui › Single missing blockId within custom page is detected
11
11
  ✔ v4 › detect › ui › All navs have corresponding pages and patterns
12
12
  Block with id "4f3tc2Ymq6" does not exist, removing.
13
- Block with id "ZspecgaYgs" does not exist, removing.
13
+ Block with id "PuYzpKnKII" does not exist, removing.
14
+ Block with id "4f3tc2Ymq6" does not exist, removing.
14
15
  Block with id "4f3tc2Ymq6" does not exist, removing.
15
16
  Block with id "4f3tc2Ymq6" does not exist, removing.
16
17
  Block with id "4f3tc2Ymq6" does not exist, removing.
@@ -19,7 +20,8 @@ Block with id "4f3tc2Ymq6" does not exist, removing.
19
20
  ✔ fix-app-client-data › orphaned demos
20
21
  ✔ fix-app-client-data › orphaned demos in slots
21
22
  ✔ fix-app-client-data › orphaned demos from deleted patterns or templates
23
+ ✔ fix-app-client-data › fixes bad navstate
22
24
  ✔ fix-app-client-data › migrateDeprecatedPageData
23
25
  ─
24
26
 
25
- 11 tests passed
27
+ 12 tests passed
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ # v4.81.3 (Tue Jul 01 2025)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - doctor: ensure healthy navs state [#6290](https://github.com/knapsack-labs/app-monorepo/pull/6290) ([@GormanDesign](https://github.com/GormanDesign))
6
+
7
+ #### 🏠 Internal
8
+
9
+ - fixes unhandled demo type error [#6303](https://github.com/knapsack-labs/app-monorepo/pull/6303) ([@mabry1985](https://github.com/mabry1985))
10
+ - Sync config from auth0 production tenant [#6312](https://github.com/knapsack-labs/app-monorepo/pull/6312) ([@freneticpixel](https://github.com/freneticpixel))
11
+
12
+ #### Authors: 3
13
+
14
+ - Jim Frenette ([@freneticpixel](https://github.com/freneticpixel))
15
+ - Josh Mabry ([@mabry1985](https://github.com/mabry1985))
16
+ - Matt Gorman ([@GormanDesign](https://github.com/GormanDesign))
17
+
18
+ ---
19
+
1
20
  # v4.81.0 (Fri Jun 20 2025)
2
21
 
3
22
  #### 🐛 Bug Fix
@@ -1 +1 @@
1
- {"version":3,"file":"fix-app-client-data.d.ts","sourceRoot":"","sources":["../src/fix-app-client-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,KAAK,EAAW,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AA0LzB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,aAAa,GACd,EAAE;IACD,aAAa,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAC7C,QA0GA"}
1
+ {"version":3,"file":"fix-app-client-data.d.ts","sourceRoot":"","sources":["../src/fix-app-client-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,KAAK,EAAW,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAiRzB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,aAAa,GACd,EAAE;IACD,aAAa,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;CAC7C,QA2FA"}
@@ -145,6 +145,74 @@ function migrateDeprecatedPageSettings({ settings = {}, }) {
145
145
  delete settings.hideTableOfContents;
146
146
  }
147
147
  }
148
+ function ensureHealthyNavsState({ appClientData, }) {
149
+ var _a, _b, _c, _d;
150
+ const navItems = appClientData.navsState.byId;
151
+ const cleanNavItems = {};
152
+ for (const [key, navItem] of Object.entries(navItems)) {
153
+ // handle groups (no path) and external nav items
154
+ if (isEmpty(navItem.path) || navItem.path.startsWith('http')) {
155
+ cleanNavItems[key] = navItem;
156
+ continue;
157
+ }
158
+ // skip items that dont return a valid id from the path
159
+ const [_relativeSlash, // path starts with / so need to handle it
160
+ /** @type {'pages' | 'pattern'} */
161
+ pathType, pathId,] = navItem.path.split('/');
162
+ if (!pathId) {
163
+ cleanNavItems[key] = navItem;
164
+ continue;
165
+ }
166
+ // ensure the pathId references an existing entity
167
+ if ((pathType === 'pages' &&
168
+ !((_b = (_a = appClientData.customPagesState) === null || _a === void 0 ? void 0 : _a.pages) === null || _b === void 0 ? void 0 : _b[pathId])) ||
169
+ (pathType === 'pattern' &&
170
+ !((_d = (_c = appClientData.patternsState) === null || _c === void 0 ? void 0 : _c.patterns) === null || _d === void 0 ? void 0 : _d[pathId]))) {
171
+ // delete the nav item from navsState.byId
172
+ delete cleanNavItems[key];
173
+ continue;
174
+ }
175
+ // handle internal nav items
176
+ if (pathId !== key || pathId !== navItem.id) {
177
+ // clean up the nav item
178
+ cleanNavItems[pathId] = {
179
+ ...navItem,
180
+ id: pathId,
181
+ };
182
+ // make sure any children are updated
183
+ const children = Object.values(appClientData.navsState.byId).filter((child) => child.parentId === key);
184
+ for (const child of children) {
185
+ child.parentId = pathId;
186
+ }
187
+ // replace the old item in order
188
+ const orderIndex = appClientData.navsState.order.indexOf(key);
189
+ if (orderIndex !== -1) {
190
+ appClientData.navsState.order[orderIndex] = pathId;
191
+ }
192
+ }
193
+ else {
194
+ cleanNavItems[key] = navItem;
195
+ }
196
+ }
197
+ // if they are equal, we don't need to update b/c we don't want to make a patch if we don't need to
198
+ if (!looseEqual(cleanNavItems, navItems)) {
199
+ appClientData.navsState.byId = cleanNavItems;
200
+ }
201
+ // these IDs are in `byId` but not in `order`, we'll add them to end of order
202
+ const orphanedIds = Object.keys(appClientData.navsState.byId).filter((id) => !appClientData.navsState.order.includes(id));
203
+ const newOrder = [
204
+ // this should be unique, but we're being safe by making it unique
205
+ ...new Set([
206
+ // exclude any IDs that are in `order` but not in `byId`
207
+ ...appClientData.navsState.order.filter((id) => appClientData.navsState.byId[id]),
208
+ // add any IDs that are in `byId` but not in `order`
209
+ ...orphanedIds,
210
+ ]),
211
+ ];
212
+ if (!looseEqual(newOrder, appClientData.navsState.order)) {
213
+ appClientData.navsState.order = newOrder;
214
+ }
215
+ }
148
216
  /**
149
217
  * Keep this function fast. It sits in critical path of UI load.
150
218
  * Minimize repeated work (especially in nested loops).
@@ -223,20 +291,8 @@ export function fixAppClientData({ appClientData, }) {
223
291
  appClientData,
224
292
  });
225
293
  }
226
- // these IDs are in `byId` but not in `order`, we'll add them to end of order
227
- const orphanedIds = Object.keys(appClientData.navsState.byId).filter((id) => !appClientData.navsState.order.includes(id));
228
- const newOrder = [
229
- // this should be unique, but we're being safe by making it unique
230
- ...new Set([
231
- // exclude any IDs that are in `order` but not in `byId`
232
- ...appClientData.navsState.order.filter((id) => appClientData.navsState.byId[id]),
233
- // add any IDs that are in `byId` but not in `order`
234
- ...orphanedIds,
235
- ]),
236
- ];
237
- if (!looseEqual(newOrder, appClientData.navsState.order)) {
238
- appClientData.navsState.order = newOrder;
239
- }
294
+ // clean up navs
295
+ ensureHealthyNavsState({ appClientData });
240
296
  for (const id of Object.keys(appClientData.db.demos.byId)) {
241
297
  if (!usedDemoIds.has(id)) {
242
298
  delete appClientData.db.demos.byId[id];
@@ -1 +1 @@
1
- {"version":3,"file":"fix-app-client-data.js","sourceRoot":"","sources":["../src/fix-app-client-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix-app-client-data.js","sourceRoot":"","sources":["../src/fix-app-client-data.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@knapsack/doctor",
3
3
  "description": "",
4
- "version": "4.81.3--canary.6318.5026fc0.0",
4
+ "version": "4.81.3",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
@@ -19,14 +19,14 @@
19
19
  "test": "ava"
20
20
  },
21
21
  "dependencies": {
22
- "@knapsack/utils": "4.81.3--canary.6318.5026fc0.0"
22
+ "@knapsack/utils": "4.81.3"
23
23
  },
24
24
  "devDependencies": {
25
- "@knapsack/eslint-config-starter": "4.81.3--canary.6318.5026fc0.0",
26
- "@knapsack/prettier-config": "4.81.3--canary.6318.5026fc0.0",
27
- "@knapsack/test-ava": "4.81.3--canary.6318.5026fc0.0",
28
- "@knapsack/types": "4.81.3--canary.6318.5026fc0.0",
29
- "@knapsack/typescript-config-starter": "4.81.3--canary.6318.5026fc0.0",
25
+ "@knapsack/eslint-config-starter": "4.81.3",
26
+ "@knapsack/prettier-config": "4.81.3",
27
+ "@knapsack/test-ava": "4.81.3",
28
+ "@knapsack/types": "4.81.3",
29
+ "@knapsack/typescript-config-starter": "4.81.3",
30
30
  "@types/node": "^20.17.57",
31
31
  "ava": "^6.2.0",
32
32
  "eslint": "^8.57.0",
@@ -41,5 +41,5 @@
41
41
  "directory": "libs/doctor",
42
42
  "type": "git"
43
43
  },
44
- "gitHead": "5026fc0dfd6da49f639d4675e2aa3ba3527733b7"
44
+ "gitHead": "49f3938756389990c7afd4b73d42ed95d675c69c"
45
45
  }
@@ -189,6 +189,93 @@ function migrateDeprecatedPageSettings({
189
189
  }
190
190
  }
191
191
 
192
+ function ensureHealthyNavsState({
193
+ appClientData,
194
+ }: {
195
+ appClientData: Draft<KsAppClientDataNoMeta>;
196
+ }): void {
197
+ const navItems = appClientData.navsState.byId;
198
+ const cleanNavItems: typeof navItems = {};
199
+ for (const [key, navItem] of Object.entries(navItems)) {
200
+ // handle groups (no path) and external nav items
201
+ if (isEmpty(navItem.path) || navItem.path.startsWith('http')) {
202
+ cleanNavItems[key] = navItem;
203
+ continue;
204
+ }
205
+ // skip items that dont return a valid id from the path
206
+ const [
207
+ _relativeSlash, // path starts with / so need to handle it
208
+ /** @type {'pages' | 'pattern'} */
209
+ pathType,
210
+ pathId,
211
+ ] = navItem.path.split('/');
212
+ if (!pathId) {
213
+ cleanNavItems[key] = navItem;
214
+ continue;
215
+ }
216
+
217
+ // ensure the pathId references an existing entity
218
+ if (
219
+ (pathType === 'pages' &&
220
+ !appClientData.customPagesState?.pages?.[pathId]) ||
221
+ (pathType === 'pattern' &&
222
+ !appClientData.patternsState?.patterns?.[pathId])
223
+ ) {
224
+ // delete the nav item from navsState.byId
225
+ delete cleanNavItems[key];
226
+ continue;
227
+ }
228
+
229
+ // handle internal nav items
230
+ if (pathId !== key || pathId !== navItem.id) {
231
+ // clean up the nav item
232
+ cleanNavItems[pathId] = {
233
+ ...navItem,
234
+ id: pathId,
235
+ };
236
+
237
+ // make sure any children are updated
238
+ const children = Object.values(appClientData.navsState.byId).filter(
239
+ (child) => child.parentId === key,
240
+ );
241
+ for (const child of children) {
242
+ child.parentId = pathId;
243
+ }
244
+
245
+ // replace the old item in order
246
+ const orderIndex = appClientData.navsState.order.indexOf(key);
247
+ if (orderIndex !== -1) {
248
+ appClientData.navsState.order[orderIndex] = pathId;
249
+ }
250
+ } else {
251
+ cleanNavItems[key] = navItem;
252
+ }
253
+ }
254
+ // if they are equal, we don't need to update b/c we don't want to make a patch if we don't need to
255
+ if (!looseEqual(cleanNavItems, navItems)) {
256
+ appClientData.navsState.byId = cleanNavItems;
257
+ }
258
+
259
+ // these IDs are in `byId` but not in `order`, we'll add them to end of order
260
+ const orphanedIds = Object.keys(appClientData.navsState.byId).filter(
261
+ (id) => !appClientData.navsState.order.includes(id),
262
+ );
263
+ const newOrder = [
264
+ // this should be unique, but we're being safe by making it unique
265
+ ...new Set([
266
+ // exclude any IDs that are in `order` but not in `byId`
267
+ ...appClientData.navsState.order.filter(
268
+ (id) => appClientData.navsState.byId[id],
269
+ ),
270
+ // add any IDs that are in `byId` but not in `order`
271
+ ...orphanedIds,
272
+ ]),
273
+ ];
274
+ if (!looseEqual(newOrder, appClientData.navsState.order)) {
275
+ appClientData.navsState.order = newOrder;
276
+ }
277
+ }
278
+
192
279
  /**
193
280
  * Keep this function fast. It sits in critical path of UI load.
194
281
  * Minimize repeated work (especially in nested loops).
@@ -280,24 +367,9 @@ export function fixAppClientData({
280
367
  });
281
368
  }
282
369
 
283
- // these IDs are in `byId` but not in `order`, we'll add them to end of order
284
- const orphanedIds = Object.keys(appClientData.navsState.byId).filter(
285
- (id) => !appClientData.navsState.order.includes(id),
286
- );
287
- const newOrder = [
288
- // this should be unique, but we're being safe by making it unique
289
- ...new Set([
290
- // exclude any IDs that are in `order` but not in `byId`
291
- ...appClientData.navsState.order.filter(
292
- (id) => appClientData.navsState.byId[id],
293
- ),
294
- // add any IDs that are in `byId` but not in `order`
295
- ...orphanedIds,
296
- ]),
297
- ];
298
- if (!looseEqual(newOrder, appClientData.navsState.order)) {
299
- appClientData.navsState.order = newOrder;
300
- }
370
+ // clean up navs
371
+ ensureHealthyNavsState({ appClientData });
372
+
301
373
  for (const id of Object.keys(appClientData.db.demos.byId)) {
302
374
  if (!usedDemoIds.has(id)) {
303
375
  delete appClientData.db.demos.byId[id];