@knapsack/update 4.76.1--canary.4cb4a8f.0 → 4.76.1

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 (42) hide show
  1. package/.turbo/turbo-lint.log +6 -0
  2. package/CHANGELOG.md +21 -0
  3. package/dist/updates/4.0.0/index.d.ts +1 -5
  4. package/dist/updates/4.0.0/index.d.ts.map +1 -1
  5. package/dist/updates/4.0.0/index.js +1 -5
  6. package/dist/updates/4.0.0/index.js.map +1 -1
  7. package/dist/updates/4.0.0/markdown.d.ts +0 -2
  8. package/dist/updates/4.0.0/markdown.d.ts.map +1 -1
  9. package/dist/updates/4.0.0/markdown.js +0 -18
  10. package/dist/updates/4.0.0/markdown.js.map +1 -1
  11. package/dist/updates/4.0.0/placeholder.d.ts +7 -0
  12. package/dist/updates/4.0.0/placeholder.d.ts.map +1 -0
  13. package/dist/updates/4.0.0/placeholder.js +12 -0
  14. package/dist/updates/4.0.0/placeholder.js.map +1 -0
  15. package/dist/updates/index.d.ts.map +1 -1
  16. package/dist/updates/index.js +2 -7
  17. package/dist/updates/index.js.map +1 -1
  18. package/package.json +14 -14
  19. package/src/updates/4.0.0/index.ts +1 -5
  20. package/src/updates/4.0.0/markdown.ts +3 -21
  21. package/src/updates/4.0.0/placeholder.ts +14 -0
  22. package/src/updates/index.ts +2 -14
  23. package/dist/updates/4.0.0/blocks.d.ts +0 -3
  24. package/dist/updates/4.0.0/blocks.d.ts.map +0 -1
  25. package/dist/updates/4.0.0/blocks.js +0 -139
  26. package/dist/updates/4.0.0/blocks.js.map +0 -1
  27. package/dist/updates/4.0.0/navs.d.ts +0 -8
  28. package/dist/updates/4.0.0/navs.d.ts.map +0 -1
  29. package/dist/updates/4.0.0/navs.js +0 -51
  30. package/dist/updates/4.0.0/navs.js.map +0 -1
  31. package/dist/updates/4.0.0/tokens.d.ts +0 -7
  32. package/dist/updates/4.0.0/tokens.d.ts.map +0 -1
  33. package/dist/updates/4.0.0/tokens.js +0 -47
  34. package/dist/updates/4.0.0/tokens.js.map +0 -1
  35. package/dist/updates/4.0.0/ui-config.d.ts +0 -7
  36. package/dist/updates/4.0.0/ui-config.d.ts.map +0 -1
  37. package/dist/updates/4.0.0/ui-config.js +0 -68
  38. package/dist/updates/4.0.0/ui-config.js.map +0 -1
  39. package/src/updates/4.0.0/blocks.ts +0 -202
  40. package/src/updates/4.0.0/navs.ts +0 -62
  41. package/src/updates/4.0.0/tokens.ts +0 -56
  42. package/src/updates/4.0.0/ui-config.ts +0 -88
@@ -2,3 +2,9 @@
2
2
  > @knapsack/update@4.76.0 lint /home/runner/work/app-monorepo/app-monorepo/apps/client/update
3
3
  > eslint ./
4
4
 
5
+
6
+ /home/runner/work/app-monorepo/app-monorepo/apps/client/update/src/updates/4.0.0/placeholder.ts
7
+ 11:21 warning 'config' is defined but never used. Allowed unused args must match /^_/u unused-imports/no-unused-vars
8
+
9
+ ✖ 1 problem (0 errors, 1 warning)
10
+
package/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ # v4.76.1 (Wed Mar 05 2025)
2
+
3
+ #### 🐛 Bug Fix
4
+
5
+ - ksp-6088: remove v3 to v4 migrations [#5668](https://github.com/knapsack-labs/app-monorepo/pull/5668) ([@illepic](https://github.com/illepic))
6
+ - remove v3 to v4 migrations ([@illepic](https://github.com/illepic))
7
+ - Merge branch 'latest' into feature/strictNullChecks-server ([@illepic](https://github.com/illepic))
8
+ - Merge branch 'latest' into feature/strictNullChecks-server ([@freneticpixel](https://github.com/freneticpixel))
9
+ - merge latest, integrate new auth work ([@illepic](https://github.com/illepic))
10
+
11
+ #### 🏠 Internal
12
+
13
+ - KSP-6170: strictNullChecks: apps/api/server [#5393](https://github.com/knapsack-labs/app-monorepo/pull/5393) ([@illepic](https://github.com/illepic) [@freneticpixel](https://github.com/freneticpixel))
14
+
15
+ #### Authors: 2
16
+
17
+ - Christopher Bloom ([@illepic](https://github.com/illepic))
18
+ - Jim Frenette ([@freneticpixel](https://github.com/freneticpixel))
19
+
20
+ ---
21
+
1
22
  # v4.76.0 (Tue Mar 04 2025)
2
23
 
3
24
  #### 🏠 Internal
@@ -1,7 +1,3 @@
1
- export * from './tokens.js';
2
- export * from './blocks.js';
3
- export * from './demos.js';
4
- export * from './navs.js';
5
- export * from './ui-config.js';
1
+ export * from './placeholder.js';
6
2
  export * from './markdown.js';
7
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
@@ -1,7 +1,3 @@
1
- export * from './tokens.js';
2
- export * from './blocks.js';
3
- export * from './demos.js';
4
- export * from './navs.js';
5
- export * from './ui-config.js';
1
+ export * from './placeholder.js';
6
2
  export * from './markdown.js';
7
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
@@ -1,7 +1,5 @@
1
1
  import type { KnapsackConfig } from '@knapsack/app';
2
- import { Update } from '../../types.js';
3
2
  export declare function migrateMdBlocks({ config }: {
4
3
  config: KnapsackConfig;
5
4
  }): Promise<void>;
6
- export declare const update400_markdown: Update;
7
5
  //# sourceMappingURL=markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/markdown.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAwBxC,wBAAsB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,iBA6H3E;AAED,eAAO,MAAM,kBAAkB,EAAE,MAgBhC,CAAC"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/markdown.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAyBpD,wBAAsB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,iBA6H3E"}
@@ -1,6 +1,5 @@
1
1
  import { makeShortId } from '@knapsack/utils';
2
2
  import { readKsPatternConfigs, writeKsPatternConfigs, readKsPagesConfig, writeKsPagesConfig, } from '@knapsack/ks-file-utils';
3
- import prompts from 'prompts';
4
3
  import { mdToTipTapJson } from './markdown.utils.js';
5
4
  import { readDb, writeDb } from '../../utils/oldDb.js';
6
5
  /**
@@ -125,21 +124,4 @@ export async function migrateMdBlocks({ config }) {
125
124
  }),
126
125
  ]);
127
126
  }
128
- export const update400_markdown = {
129
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
130
- title: 'Markdown blocks migration',
131
- updater: async ({ config }) => {
132
- const response = await prompts({
133
- type: 'confirm',
134
- name: 'shouldConvert',
135
- message: 'Convert markdown blocks to text-editor blocks?',
136
- initial: true,
137
- });
138
- if (!response.shouldConvert) {
139
- console.log('Skipping markdown block conversion');
140
- return;
141
- }
142
- await migrateMdBlocks({ config });
143
- },
144
- };
145
127
  //# sourceMappingURL=markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @file
3
+ * Placeholder migration for future reference
4
+ */
5
+ import { Update } from '../../types.js';
6
+ export declare const update400_placeholder: Update;
7
+ //# sourceMappingURL=placeholder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/placeholder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,eAAO,MAAM,qBAAqB,EAAE,MAMnC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @file
3
+ * Placeholder migration for future reference
4
+ */
5
+ export const update400_placeholder = {
6
+ shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
7
+ title: 'Placeholder migration',
8
+ updater: async ({ config }) => {
9
+ console.log('Placeholder migration');
10
+ },
11
+ };
12
+ //# sourceMappingURL=placeholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/placeholder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAW;IAC3C,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;IACtE,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/updates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAWrC,eAAO,MAAM,OAAO,UAQA,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/updates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,eAAO,MAAM,OAAO,UAGA,CAAC"}
@@ -1,12 +1,7 @@
1
- import { update400_tokens, update400_blocks, update400_demos, update400_navs, update400_uiConfig, update400_markdown, } from './4.0.0/index.js';
1
+ import { update400_placeholder } from './4.0.0/index.js';
2
2
  import { update4_28_DB_to_files } from './4.28.0-db-to-files.js';
3
3
  export const updates = [
4
- update400_tokens,
5
- update400_demos,
6
- update400_blocks,
7
- update400_navs,
8
- update400_uiConfig,
9
- update400_markdown,
4
+ update400_placeholder,
10
5
  update4_28_DB_to_files,
11
6
  ];
12
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/updates/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,sBAAsB;CACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/updates/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,qBAAqB;IACrB,sBAAsB;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@knapsack/update",
3
3
  "description": "",
4
- "version": "4.76.1--canary.4cb4a8f.0",
4
+ "version": "4.76.1",
5
5
  "bin": {
6
6
  "knapsack-update": "./cli.js"
7
7
  },
@@ -18,13 +18,13 @@
18
18
  "test": "ava"
19
19
  },
20
20
  "dependencies": {
21
- "@knapsack/app": "4.76.1--canary.4cb4a8f.0",
22
- "@knapsack/creator-utils": "4.76.1--canary.4cb4a8f.0",
23
- "@knapsack/design-token-utils": "4.76.1--canary.4cb4a8f.0",
24
- "@knapsack/file-utils": "4.76.1--canary.4cb4a8f.0",
25
- "@knapsack/ks-file-utils": "4.76.1--canary.4cb4a8f.0",
26
- "@knapsack/tiptap-utils": "4.76.1--canary.4cb4a8f.0",
27
- "@knapsack/utils": "4.76.1--canary.4cb4a8f.0",
21
+ "@knapsack/app": "4.76.1",
22
+ "@knapsack/creator-utils": "4.76.1",
23
+ "@knapsack/design-token-utils": "4.76.1",
24
+ "@knapsack/file-utils": "4.76.1",
25
+ "@knapsack/ks-file-utils": "4.76.1",
26
+ "@knapsack/tiptap-utils": "4.76.1",
27
+ "@knapsack/utils": "4.76.1",
28
28
  "cheerio": "^1.0.0",
29
29
  "isomorphic-dompurify": "^1.13.0",
30
30
  "marked": "^6.0.0",
@@ -32,11 +32,11 @@
32
32
  "yargs": "^17.7.2"
33
33
  },
34
34
  "devDependencies": {
35
- "@knapsack/eslint-config-starter": "4.76.1--canary.4cb4a8f.0",
36
- "@knapsack/prettier-config": "4.76.1--canary.4cb4a8f.0",
37
- "@knapsack/test-ava": "4.76.1--canary.4cb4a8f.0",
38
- "@knapsack/types": "4.76.1--canary.4cb4a8f.0",
39
- "@knapsack/typescript-config-starter": "4.76.1--canary.4cb4a8f.0",
35
+ "@knapsack/eslint-config-starter": "4.76.1",
36
+ "@knapsack/prettier-config": "4.76.1",
37
+ "@knapsack/test-ava": "4.76.1",
38
+ "@knapsack/types": "4.76.1",
39
+ "@knapsack/typescript-config-starter": "4.76.1",
40
40
  "@types/node": "^20.17.17",
41
41
  "@types/prompts": "^2.4.9",
42
42
  "@types/yargs": "^17.0.33",
@@ -53,5 +53,5 @@
53
53
  "directory": "apps/client/update",
54
54
  "type": "git"
55
55
  },
56
- "gitHead": "4cb4a8fe60763d493c83c1ea41e60ab341f894af"
56
+ "gitHead": "ec562f52815b5bcee12104c022b0e80f390bd596"
57
57
  }
@@ -1,6 +1,2 @@
1
- export * from './tokens.js';
2
- export * from './blocks.js';
3
- export * from './demos.js';
4
- export * from './navs.js';
5
- export * from './ui-config.js';
1
+ export * from './placeholder.js';
6
2
  export * from './markdown.js';
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * @file
3
3
  *
4
- * Convert markdown blocks to text-editor blocks
4
+ * Convert markdown blocks to text-editor blocks. This module does not export an
5
+ * `Update` object because it is not a migration. It is a one-time conversion
6
+ * triggered manually.
5
7
  */
6
8
  import { BlockConfig } from '@knapsack/types';
7
9
  import { makeShortId } from '@knapsack/utils';
@@ -12,9 +14,7 @@ import {
12
14
  writeKsPagesConfig,
13
15
  } from '@knapsack/ks-file-utils';
14
16
  import type { KnapsackConfig } from '@knapsack/app';
15
- import prompts from 'prompts';
16
17
 
17
- import { Update } from '../../types.js';
18
18
  import { mdToTipTapJson } from './markdown.utils.js';
19
19
  import { readDb, writeDb } from '../../utils/oldDb.js';
20
20
 
@@ -164,21 +164,3 @@ export async function migrateMdBlocks({ config }: { config: KnapsackConfig }) {
164
164
  }),
165
165
  ]);
166
166
  }
167
-
168
- export const update400_markdown: Update = {
169
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
170
- title: 'Markdown blocks migration',
171
- updater: async ({ config }) => {
172
- const response = await prompts({
173
- type: 'confirm',
174
- name: 'shouldConvert',
175
- message: 'Convert markdown blocks to text-editor blocks?',
176
- initial: true,
177
- });
178
- if (!response.shouldConvert) {
179
- console.log('Skipping markdown block conversion');
180
- return;
181
- }
182
- await migrateMdBlocks({ config });
183
- },
184
- };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file
3
+ * Placeholder migration for future reference
4
+ */
5
+
6
+ import { Update } from '../../types.js';
7
+
8
+ export const update400_placeholder: Update = {
9
+ shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
10
+ title: 'Placeholder migration',
11
+ updater: async ({ config }) => {
12
+ console.log('Placeholder migration');
13
+ },
14
+ };
@@ -1,20 +1,8 @@
1
1
  import { Update } from '../types.js';
2
- import {
3
- update400_tokens,
4
- update400_blocks,
5
- update400_demos,
6
- update400_navs,
7
- update400_uiConfig,
8
- update400_markdown,
9
- } from './4.0.0/index.js';
2
+ import { update400_placeholder } from './4.0.0/index.js';
10
3
  import { update4_28_DB_to_files } from './4.28.0-db-to-files.js';
11
4
 
12
5
  export const updates = [
13
- update400_tokens,
14
- update400_demos,
15
- update400_blocks,
16
- update400_navs,
17
- update400_uiConfig,
18
- update400_markdown,
6
+ update400_placeholder,
19
7
  update4_28_DB_to_files,
20
8
  ] satisfies Update[];
@@ -1,3 +0,0 @@
1
- import { Update } from '../../types.js';
2
- export declare const update400_blocks: Update;
3
- //# sourceMappingURL=blocks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/blocks.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAyBxC,eAAO,MAAM,gBAAgB,EAAE,MAuJ9B,CAAC"}
@@ -1,139 +0,0 @@
1
- import { isArray, makeShortId } from '@knapsack/utils';
2
- import { readKsPatternConfigs, writeKsPatternConfigs, readKsPagesConfig, writeKsPagesConfig, } from '@knapsack/ks-file-utils';
3
- import { readDb, writeDb } from '../../utils/oldDb.js';
4
- export const update400_blocks = {
5
- title: 'Blocks migration',
6
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
7
- updater: async ({ config }) => {
8
- const { data: dataDir } = config;
9
- const [patterns, pages, db] = await Promise.all([
10
- readKsPatternConfigs({
11
- dataDir,
12
- }),
13
- readKsPagesConfig({
14
- dataDir,
15
- }),
16
- readDb({ dataDir }),
17
- ]);
18
- db.blocks.byId = db.blocks.byId || {};
19
- db.demos.byId = db.demos.byId || {};
20
- // Also, our block IDs have a prefix that we need to remove
21
- // If it's a duplicated block, make a new ID
22
- const cleanId = (id) => {
23
- const newId = id
24
- // Certain customers ended up with single quotes in their IDs
25
- .replaceAll("'", '')
26
- // Remove this standard prefix
27
- .replace('ks-content-block-', '');
28
- if (db.blocks.byId[newId]) {
29
- return makeShortId();
30
- }
31
- return newId;
32
- };
33
- // Loop through all custom page data, and migrate slices -> blockIds
34
- pages.forEach((page) => {
35
- // Ensure blockIds key exists, w/ migrated data if migration has been run already
36
- page.blockIds = [...(page.blockIds || [])];
37
- // If `slices` exists: loop, clean id, insert into db.blocks.byId, ensure
38
- // only IDs exists in page.blockIds array
39
- isArray(page.slices) &&
40
- page.slices.forEach((slice) => {
41
- slice.id = cleanId(slice.id);
42
- // Migrate blockId to blockType
43
- // @ts-expect-error this is fine
44
- slice.blockType = slice.blockId
45
- // change things like `markdown-slice` to `markdown-block`
46
- .replace('slice', 'block');
47
- delete slice.blockId;
48
- db.blocks.byId[slice.id] = slice;
49
- page.blockIds.push(slice.id);
50
- });
51
- // Bye bye slices, hello blockIds
52
- delete page.slices;
53
- });
54
- // Loop through all patterns, and migrate slices -> blockIds
55
- patterns.forEach((pattern) => {
56
- var _a;
57
- (_a = pattern.subPages) === null || _a === void 0 ? void 0 : _a.forEach((subPage) => {
58
- subPage.blockIds = [...(subPage.blockIds || [])];
59
- isArray(subPage.slices) &&
60
- subPage.slices.forEach((slice) => {
61
- slice.id = cleanId(slice.id);
62
- // Migrate blockId to blockType
63
- // @ts-expect-error this is fine
64
- slice.blockType = slice.blockId
65
- // change things like `markdown-slice` to `markdown-block`
66
- .replace('slice', 'block');
67
- delete slice.blockId;
68
- db.blocks.byId[slice.id] = slice;
69
- subPage.blockIds.push(slice.id);
70
- });
71
- delete subPage.slices;
72
- });
73
- pattern.templates.forEach((template) => {
74
- template.blockIds = [...(template.blockIds || [])];
75
- isArray(template.slices) &&
76
- template.slices.forEach((slice) => {
77
- slice.id = cleanId(slice.id);
78
- // Migrate blockId to blockType
79
- // @ts-expect-error this is fine
80
- slice.blockType = slice.blockId
81
- // change things like `markdown-slice` to `markdown-block`
82
- .replace('slice', 'block');
83
- delete slice.blockId;
84
- db.blocks.byId[slice.id] = slice;
85
- template.blockIds.push(slice.id);
86
- });
87
- delete template.slices;
88
- });
89
- });
90
- Object.values(db.blocks.byId).forEach((block) => {
91
- var _a, _b;
92
- switch (block.blockType) {
93
- case 'pattern-variations':
94
- case 'pattern-template-block': {
95
- // `block.data` has at least this shared shape:
96
- // `{ patternId: string; templateId: string; demoId: string; }`
97
- if (((_a = block.data) === null || _a === void 0 ? void 0 : _a.demoId) !== 'main')
98
- break;
99
- // If the demoId is 'main', we need to find the first real demoId
100
- if (block.data.patternId && block.data.templateId) {
101
- const pattern = patterns.find((p) => p.id === block.data.patternId);
102
- if (!pattern) {
103
- console.warn(`Missing patternId: ${block.data.patternId}. The block that references this pattern will be skipped.`);
104
- break;
105
- }
106
- const template = pattern.templates.find((t) => t.id === block.data.templateId);
107
- if (!template) {
108
- console.warn(`Missing templateId: ${block.data.templateId}. The block that references this template will be skipped.`);
109
- break;
110
- }
111
- const [firstDemoId] = (_b = template.demoIds) !== null && _b !== void 0 ? _b : [];
112
- if (!firstDemoId) {
113
- console.warn(`Template has no demos: ${block.data.templateId} in pattern ${block.data.patternId}`);
114
- break;
115
- }
116
- block.data.demoId = firstDemoId;
117
- db.blocks.byId[block.id] = block;
118
- }
119
- break;
120
- }
121
- }
122
- });
123
- await Promise.all([
124
- writeKsPagesConfig({
125
- dataDir,
126
- pages,
127
- }),
128
- writeKsPatternConfigs({
129
- dataDir,
130
- patterns,
131
- }),
132
- writeDb({
133
- dataDir,
134
- db,
135
- }),
136
- ]);
137
- },
138
- };
139
- //# sourceMappingURL=blocks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/blocks.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAwBvD,MAAM,CAAC,MAAM,gBAAgB,GAAW;IACtC,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QACjC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,oBAAoB,CAAC;gBACnB,OAAO;aACR,CAAC;YACF,iBAAiB,CAAC;gBAChB,OAAO;aACR,CAAC;YACF,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;SACpB,CAAC,CAAC;QAEH,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACtC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAEpC,2DAA2D;QAC3D,4CAA4C;QAC5C,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,EAAE;gBACd,6DAA6D;iBAC5D,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;gBACpB,8BAA8B;iBAC7B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,WAAW,EAAE,CAAC;YACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,oEAAoE;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAiC,EAAE,EAAE;YAClD,iFAAiF;YACjF,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,yEAAyE;YACzE,yCAAyC;YACzC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC5B,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAE7B,+BAA+B;oBAC/B,gCAAgC;oBAChC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;wBAC7B,0DAA0D;yBACzD,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC7B,OAAO,KAAK,CAAC,OAAO,CAAC;oBAErB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,iCAAiC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAiC,EAAE,EAAE;;YACrD,MAAA,OAAO,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACpC,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;oBACrB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC/B,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAE7B,+BAA+B;wBAC/B,gCAAgC;wBAChC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;4BAC7B,0DAA0D;6BACzD,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC7B,OAAO,KAAK,CAAC,OAAO,CAAC;wBAErB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;wBACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC,CAAC,CAAC;gBACL,OAAO,OAAO,CAAC,MAAM,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrC,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACtB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAChC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAE7B,+BAA+B;wBAC/B,gCAAgC;wBAChC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO;4BAC7B,0DAA0D;6BACzD,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC7B,OAAO,KAAK,CAAC,OAAO,CAAC;wBAErB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;wBACjC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACnC,CAAC,CAAC,CAAC;gBACL,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;YAC9C,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;gBACxB,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,wBAAwB,CAAC,CAAC,CAAC;oBAC9B,+CAA+C;oBAC/C,+DAA+D;oBAC/D,IAAI,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,MAAM,MAAK,MAAM;wBAAE,MAAM;oBACzC,iEAAiE;oBACjE,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACpE,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,OAAO,CAAC,IAAI,CACV,sBAAsB,KAAK,CAAC,IAAI,CAAC,SAAS,2DAA2D,CACtG,CAAC;4BACF,MAAM;wBACR,CAAC;wBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CACtC,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,OAAO,CAAC,IAAI,CACV,uBAAuB,KAAK,CAAC,IAAI,CAAC,UAAU,4DAA4D,CACzG,CAAC;4BACF,MAAM;wBACR,CAAC;wBACD,MAAM,CAAC,WAAW,CAAC,GAAG,MAAA,QAAQ,CAAC,OAAO,mCAAI,EAAE,CAAC;wBAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjB,OAAO,CAAC,IAAI,CACV,0BAA0B,KAAK,CAAC,IAAI,CAAC,UAAU,eAAe,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CACrF,CAAC;4BACF,MAAM;wBACR,CAAC;wBACD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;wBAChC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;oBACnC,CAAC;oBACD,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,kBAAkB,CAAC;gBACjB,OAAO;gBACP,KAAK;aACN,CAAC;YACF,qBAAqB,CAAC;gBACpB,OAAO;gBACP,QAAQ;aACT,CAAC;YACF,OAAO,CAAC;gBACN,OAAO;gBACP,EAAE;aACH,CAAC;SACH,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @file
3
- *
4
- * Merge dangling secondary navs into new, cleaner nav shape
5
- */
6
- import { Update } from '../../types.js';
7
- export declare const update400_navs: Update;
8
- //# sourceMappingURL=navs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navs.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/navs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,eAAO,MAAM,cAAc,EAAE,MAgD5B,CAAC"}
@@ -1,51 +0,0 @@
1
- /**
2
- * @file
3
- *
4
- * Merge dangling secondary navs into new, cleaner nav shape
5
- */
6
- import { join } from 'node:path';
7
- import { existsSync, readJSON, remove } from '@knapsack/file-utils';
8
- import { writeKsNavConfig } from '@knapsack/ks-file-utils';
9
- export const update400_navs = {
10
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
11
- title: 'Navs migration',
12
- updater: async ({ config }) => {
13
- const { data } = config;
14
- const legacyNavPath = join(data, 'knapsack.navs.json');
15
- if (!existsSync(legacyNavPath)) {
16
- console.info('No legacy navs found. Skipping navs migration.');
17
- return;
18
- }
19
- // Load up legacy navs system
20
- const navItemsRaw = await readJSON(legacyNavPath);
21
- // New navs
22
- const navsState = {
23
- byId: {},
24
- order: [],
25
- };
26
- if ('secondary' in navItemsRaw && Array.isArray(navItemsRaw.secondary)) {
27
- // Merge legacy navs into contemporary navs
28
- navsState.byId = {
29
- ...navsState.byId,
30
- ...navItemsRaw.secondary.reduce((acc, item) => {
31
- acc[item.id] = item;
32
- return acc;
33
- }, {}),
34
- };
35
- navsState.order = [
36
- ...navsState.order,
37
- ...navItemsRaw.secondary.map((item) => item.id),
38
- ];
39
- }
40
- await Promise.all([
41
- // Write to new knapsack.navs.yml
42
- writeKsNavConfig({
43
- data: navsState,
44
- dataDir: config.data,
45
- }),
46
- // Nuke old knapsack.navs.json
47
- remove(legacyNavPath),
48
- ]);
49
- },
50
- };
51
- //# sourceMappingURL=navs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navs.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/navs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAK3D,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;IACtE,KAAK,EAAE,gBAAgB;IACvB,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QAElD,WAAW;QACX,MAAM,SAAS,GAAuB;YACpC,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,IAAI,WAAW,IAAI,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YACvE,2CAA2C;YAC3C,SAAS,CAAC,IAAI,GAAG;gBACf,GAAG,SAAS,CAAC,IAAI;gBACjB,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;oBAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;oBACpB,OAAO,GAAG,CAAC;gBACb,CAAC,EAAE,EAAqC,CAAC;aAC1C,CAAC;YACF,SAAS,CAAC,KAAK,GAAG;gBAChB,GAAG,SAAS,CAAC,KAAK;gBAClB,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;aAChD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,iCAAiC;YACjC,gBAAgB,CAAC;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,MAAM,CAAC,IAAI;aACrB,CAAC;YAEF,8BAA8B;YAC9B,MAAM,CAAC,aAAa,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Script to use the built-in migration method on ksBrain.tokens to update v3
3
- * tokens to v4 tokens.
4
- */
5
- import { Update } from '../../types.js';
6
- export declare const update400_tokens: Update;
7
- //# sourceMappingURL=tokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/tokens.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,eAAO,MAAM,gBAAgB,EAAE,MAyC9B,CAAC"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Script to use the built-in migration method on ksBrain.tokens to update v3
3
- * tokens to v4 tokens.
4
- */
5
- import { convertStyleDictFormat } from '@knapsack/design-token-utils';
6
- import { readJSON, writeFormattedFile } from '@knapsack/file-utils';
7
- import { writeKsDesignTokensConfig, readKsDesignTokensConfig, } from '@knapsack/ks-file-utils';
8
- export const update400_tokens = {
9
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
10
- title: 'Tokens migration',
11
- updater: async ({ config }) => {
12
- var _a;
13
- const customTokensPath = (_a = config === null || config === void 0 ? void 0 : config.designTokens) === null || _a === void 0 ? void 0 : _a.srcFilePath;
14
- const tokensSrcGroup = customTokensPath
15
- ? // Does the workspace have a custom design tokens path (which includes
16
- // specific file name)? If so, read that file directly as JSON.
17
- await readJSON(customTokensPath)
18
- : // Otherwise, just read the default tokens file within the data dir
19
- await readKsDesignTokensConfig({
20
- dataDir: config.data,
21
- });
22
- // Dirty hack to see if the json includes old, v3 version of "value". If so,
23
- // do not update.
24
- if (JSON.stringify(tokensSrcGroup).includes('"$value"')) {
25
- console.log('Skipping tokens migration. Already v4 tokens.');
26
- return;
27
- }
28
- // Convert v3 to v4 tokens
29
- const data = convertStyleDictFormat({
30
- tokensSrcGroup,
31
- });
32
- // Write back to disk
33
- customTokensPath
34
- ? // Again, custom path means writing arbitrary data to specific path
35
- // (which includes file name)
36
- await writeFormattedFile({
37
- contents: data,
38
- path: customTokensPath,
39
- })
40
- : // Otherwise default
41
- await writeKsDesignTokensConfig({
42
- data,
43
- dataDir: config.data,
44
- });
45
- },
46
- };
47
- //# sourceMappingURL=tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/tokens.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,CAAC,MAAM,gBAAgB,GAAW;IACtC,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;IACtE,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;;QAC5B,MAAM,gBAAgB,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,0CAAE,WAAW,CAAC;QAE3D,MAAM,cAAc,GAAG,gBAAgB;YACrC,CAAC,CAAC,sEAAsE;gBACtE,+DAA+D;gBAC/D,MAAM,QAAQ,CAAwB,gBAAgB,CAAC;YACzD,CAAC,CAAC,mEAAmE;gBACnE,MAAM,wBAAwB,CAAC;oBAC7B,OAAO,EAAE,MAAM,CAAC,IAAI;iBACrB,CAAC,CAAC;QAEP,4EAA4E;QAC5E,iBAAiB;QACjB,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,MAAM,IAAI,GAAG,sBAAsB,CAAC;YAClC,cAAc;SACf,CAAC,CAAC;QAEH,qBAAqB;QACrB,gBAAgB;YACd,CAAC,CAAC,mEAAmE;gBACnE,6BAA6B;gBAC7B,MAAM,kBAAkB,CAAC;oBACvB,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,gBAAgB;iBACvB,CAAC;YACJ,CAAC,CAAC,oBAAoB;gBACpB,MAAM,yBAAyB,CAAC;oBAC9B,IAAI;oBACJ,OAAO,EAAE,MAAM,CAAC,IAAI;iBACrB,CAAC,CAAC;IACT,CAAC;CACF,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * @file
3
- * Migrate Ui Config to new format
4
- */
5
- import { Update } from '../../types.js';
6
- export declare const update400_uiConfig: Update;
7
- //# sourceMappingURL=ui-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../../src/updates/4.0.0/ui-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,eAAO,MAAM,kBAAkB,EAAE,MA0EhC,CAAC"}
@@ -1,68 +0,0 @@
1
- /**
2
- * @file
3
- * Migrate Ui Config to new format
4
- */
5
- import { join } from 'node:path';
6
- import { fetcher } from '@knapsack/utils';
7
- import { readJSON } from '@knapsack/file-utils';
8
- import { readDb, writeDb } from '../../utils/oldDb.js';
9
- export const update400_uiConfig = {
10
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
11
- title: 'UI config migration',
12
- updater: async ({ config }) => {
13
- var _a, _b;
14
- const { cloud, data } = config;
15
- const siteId = cloud === null || cloud === void 0 ? void 0 : cloud.siteId;
16
- if (!siteId) {
17
- console.log('No site ID found. Skipping UI Config migration.');
18
- return;
19
- }
20
- const db = await readDb({ dataDir: data });
21
- // 1. GraphQL call to site DB to pull down UIConfig
22
- const query = `
23
- query GetSiteBasicInfo($siteId: String!) {
24
- site: sites_by_pk(id: $siteId) {
25
- title
26
- logoUrl
27
- uiConfig
28
- }
29
- }
30
- `;
31
- const results = await fetcher({
32
- url: 'https://db.knapsack.cloud/v1/graphql',
33
- body: {
34
- query,
35
- variables: { siteId },
36
- },
37
- });
38
- if (!results.data.site.uiConfig) {
39
- console.error('No UI Config to migrate');
40
- }
41
- const legacySettings = await readJSON(join(data, 'knapsack.settings.json'));
42
- if (typeof legacySettings.title === 'string') {
43
- db.settings.title = legacySettings.title;
44
- }
45
- else {
46
- db.settings.title = siteId;
47
- }
48
- db.settings.logoUrl = (_a = results.data.site.logoUrl) !== null && _a !== void 0 ? _a : '';
49
- if (results.data.site.uiConfig) {
50
- db.settings.theme = results.data.site.uiConfig;
51
- }
52
- db.blocks.settings = {
53
- tokens: {
54
- rootFontSize: 'tokens' in legacySettings &&
55
- typeof legacySettings.tokens === 'object' &&
56
- 'rootFontSize' in legacySettings.tokens &&
57
- typeof legacySettings.tokens.rootFontSize === 'string'
58
- ? (_b = legacySettings.tokens) === null || _b === void 0 ? void 0 : _b.rootFontSize
59
- : '16px',
60
- },
61
- };
62
- await writeDb({
63
- dataDir: data,
64
- db,
65
- });
66
- },
67
- };
68
- //# sourceMappingURL=ui-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-config.js","sourceRoot":"","sources":["../../../src/updates/4.0.0/ui-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC;IACtE,KAAK,EAAE,qBAAqB;IAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;;QAC5B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC;QAE7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3C,mDAAmD;QACnD,MAAM,KAAK,GAAG;;;;;;;;GAQf,CAAC;QAEA,MAAM,OAAO,GAAG,MAAM,OAAO,CAQ1B;YACD,GAAG,EAAE,sCAAsC;YAC3C,IAAI,EAAE;gBACJ,KAAK;gBACL,SAAS,EAAE,EAAE,MAAM,EAAE;aACtB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC;QAE5E,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7C,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;QAC7B,CAAC;QAED,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,mCAAI,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjD,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG;YACnB,MAAM,EAAE;gBACN,YAAY,EACV,QAAQ,IAAI,cAAc;oBAC1B,OAAO,cAAc,CAAC,MAAM,KAAK,QAAQ;oBACzC,cAAc,IAAI,cAAc,CAAC,MAAM;oBACvC,OAAO,cAAc,CAAC,MAAM,CAAC,YAAY,KAAK,QAAQ;oBACpD,CAAC,CAAC,MAAA,cAAc,CAAC,MAAM,0CAAE,YAAY;oBACrC,CAAC,CAAC,MAAM;aACb;SACF,CAAC;QAEF,MAAM,OAAO,CAAC;YACZ,OAAO,EAAE,IAAI;YACb,EAAE;SACH,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1,202 +0,0 @@
1
- /**
2
- * @file
3
- *
4
- * Script to migrate v3 slices to v4 blocks wherever slices exist, which is:
5
- *
6
- * 1. Custom pages
7
- * 2. Within Pattern templates
8
- * 3. Within Pattern subPages
9
- *
10
- * This script writes all blocks data to db.yml as well as mutating the original
11
- * yml and json files within the site data directory.
12
- */
13
- import {
14
- KnapsackCustomPage,
15
- KnapsackPattern,
16
- BlockConfig,
17
- } from '@knapsack/types';
18
- import { isArray, makeShortId } from '@knapsack/utils';
19
- import {
20
- readKsPatternConfigs,
21
- writeKsPatternConfigs,
22
- readKsPagesConfig,
23
- writeKsPagesConfig,
24
- } from '@knapsack/ks-file-utils';
25
-
26
- import { Update } from '../../types.js';
27
- import { readDb, writeDb } from '../../utils/oldDb.js';
28
-
29
- // Temporarily mock up the old, v3 version of Custom Page which has slices key
30
- // plus a blocks key, so we can temporarily have both on the incoming object
31
- type CustomSliceMigration = BlockConfig & {
32
- blockId: string;
33
- };
34
-
35
- type KnapsackCustomPageMigration = KnapsackCustomPage & {
36
- slices?: CustomSliceMigration[];
37
- };
38
- // Temp shape of Pattern data that may have either or both slices and blocks
39
- type KnapsackPatternMigration = Omit<
40
- KnapsackPattern,
41
- 'subPages' | 'templates'
42
- > & {
43
- templates?: (KnapsackPattern['templates'][0] & {
44
- slices?: CustomSliceMigration[];
45
- })[];
46
- subPages?: (KnapsackPattern['subPages'][0] & {
47
- slices?: CustomSliceMigration[];
48
- })[];
49
- };
50
-
51
- export const update400_blocks: Update = {
52
- title: 'Blocks migration',
53
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
54
- updater: async ({ config }) => {
55
- const { data: dataDir } = config;
56
- const [patterns, pages, db] = await Promise.all([
57
- readKsPatternConfigs({
58
- dataDir,
59
- }),
60
- readKsPagesConfig({
61
- dataDir,
62
- }),
63
- readDb({ dataDir }),
64
- ]);
65
-
66
- db.blocks.byId = db.blocks.byId || {};
67
- db.demos.byId = db.demos.byId || {};
68
-
69
- // Also, our block IDs have a prefix that we need to remove
70
- // If it's a duplicated block, make a new ID
71
- const cleanId = (id: string) => {
72
- const newId = id
73
- // Certain customers ended up with single quotes in their IDs
74
- .replaceAll("'", '')
75
- // Remove this standard prefix
76
- .replace('ks-content-block-', '');
77
- if (db.blocks.byId[newId]) {
78
- return makeShortId();
79
- }
80
- return newId;
81
- };
82
-
83
- // Loop through all custom page data, and migrate slices -> blockIds
84
- pages.forEach((page: KnapsackCustomPageMigration) => {
85
- // Ensure blockIds key exists, w/ migrated data if migration has been run already
86
- page.blockIds = [...(page.blockIds || [])];
87
- // If `slices` exists: loop, clean id, insert into db.blocks.byId, ensure
88
- // only IDs exists in page.blockIds array
89
- isArray(page.slices) &&
90
- page.slices.forEach((slice) => {
91
- slice.id = cleanId(slice.id);
92
-
93
- // Migrate blockId to blockType
94
- // @ts-expect-error this is fine
95
- slice.blockType = slice.blockId
96
- // change things like `markdown-slice` to `markdown-block`
97
- .replace('slice', 'block');
98
- delete slice.blockId;
99
-
100
- db.blocks.byId[slice.id] = slice;
101
- page.blockIds.push(slice.id);
102
- });
103
- // Bye bye slices, hello blockIds
104
- delete page.slices;
105
- });
106
-
107
- // Loop through all patterns, and migrate slices -> blockIds
108
- patterns.forEach((pattern: KnapsackPatternMigration) => {
109
- pattern.subPages?.forEach((subPage) => {
110
- subPage.blockIds = [...(subPage.blockIds || [])];
111
- isArray(subPage.slices) &&
112
- subPage.slices.forEach((slice) => {
113
- slice.id = cleanId(slice.id);
114
-
115
- // Migrate blockId to blockType
116
- // @ts-expect-error this is fine
117
- slice.blockType = slice.blockId
118
- // change things like `markdown-slice` to `markdown-block`
119
- .replace('slice', 'block');
120
- delete slice.blockId;
121
-
122
- db.blocks.byId[slice.id] = slice;
123
- subPage.blockIds.push(slice.id);
124
- });
125
- delete subPage.slices;
126
- });
127
- pattern.templates.forEach((template) => {
128
- template.blockIds = [...(template.blockIds || [])];
129
- isArray(template.slices) &&
130
- template.slices.forEach((slice) => {
131
- slice.id = cleanId(slice.id);
132
-
133
- // Migrate blockId to blockType
134
- // @ts-expect-error this is fine
135
- slice.blockType = slice.blockId
136
- // change things like `markdown-slice` to `markdown-block`
137
- .replace('slice', 'block');
138
- delete slice.blockId;
139
-
140
- db.blocks.byId[slice.id] = slice;
141
- template.blockIds.push(slice.id);
142
- });
143
- delete template.slices;
144
- });
145
- });
146
-
147
- Object.values(db.blocks.byId).forEach((block) => {
148
- switch (block.blockType) {
149
- case 'pattern-variations':
150
- case 'pattern-template-block': {
151
- // `block.data` has at least this shared shape:
152
- // `{ patternId: string; templateId: string; demoId: string; }`
153
- if (block.data?.demoId !== 'main') break;
154
- // If the demoId is 'main', we need to find the first real demoId
155
- if (block.data.patternId && block.data.templateId) {
156
- const pattern = patterns.find((p) => p.id === block.data.patternId);
157
- if (!pattern) {
158
- console.warn(
159
- `Missing patternId: ${block.data.patternId}. The block that references this pattern will be skipped.`,
160
- );
161
- break;
162
- }
163
- const template = pattern.templates.find(
164
- (t) => t.id === block.data.templateId,
165
- );
166
- if (!template) {
167
- console.warn(
168
- `Missing templateId: ${block.data.templateId}. The block that references this template will be skipped.`,
169
- );
170
- break;
171
- }
172
- const [firstDemoId] = template.demoIds ?? [];
173
- if (!firstDemoId) {
174
- console.warn(
175
- `Template has no demos: ${block.data.templateId} in pattern ${block.data.patternId}`,
176
- );
177
- break;
178
- }
179
- block.data.demoId = firstDemoId;
180
- db.blocks.byId[block.id] = block;
181
- }
182
- break;
183
- }
184
- }
185
- });
186
-
187
- await Promise.all([
188
- writeKsPagesConfig({
189
- dataDir,
190
- pages,
191
- }),
192
- writeKsPatternConfigs({
193
- dataDir,
194
- patterns,
195
- }),
196
- writeDb({
197
- dataDir,
198
- db,
199
- }),
200
- ]);
201
- },
202
- };
@@ -1,62 +0,0 @@
1
- /**
2
- * @file
3
- *
4
- * Merge dangling secondary navs into new, cleaner nav shape
5
- */
6
-
7
- import { join } from 'node:path';
8
- import { existsSync, readJSON, remove } from '@knapsack/file-utils';
9
- import { writeKsNavConfig } from '@knapsack/ks-file-utils';
10
- import { KnapsackNavItem, KnapsackNavsConfig } from '@knapsack/types';
11
-
12
- import { Update } from '../../types.js';
13
-
14
- export const update400_navs: Update = {
15
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
16
- title: 'Navs migration',
17
- updater: async ({ config }) => {
18
- const { data } = config;
19
-
20
- const legacyNavPath = join(data, 'knapsack.navs.json');
21
-
22
- if (!existsSync(legacyNavPath)) {
23
- console.info('No legacy navs found. Skipping navs migration.');
24
- return;
25
- }
26
-
27
- // Load up legacy navs system
28
- const navItemsRaw = await readJSON(legacyNavPath);
29
-
30
- // New navs
31
- const navsState: KnapsackNavsConfig = {
32
- byId: {},
33
- order: [],
34
- };
35
-
36
- if ('secondary' in navItemsRaw && Array.isArray(navItemsRaw.secondary)) {
37
- // Merge legacy navs into contemporary navs
38
- navsState.byId = {
39
- ...navsState.byId,
40
- ...navItemsRaw.secondary.reduce((acc, item) => {
41
- acc[item.id] = item;
42
- return acc;
43
- }, {} as Record<string, KnapsackNavItem>),
44
- };
45
- navsState.order = [
46
- ...navsState.order,
47
- ...navItemsRaw.secondary.map((item) => item.id),
48
- ];
49
- }
50
-
51
- await Promise.all([
52
- // Write to new knapsack.navs.yml
53
- writeKsNavConfig({
54
- data: navsState,
55
- dataDir: config.data,
56
- }),
57
-
58
- // Nuke old knapsack.navs.json
59
- remove(legacyNavPath),
60
- ]);
61
- },
62
- };
@@ -1,56 +0,0 @@
1
- /**
2
- * Script to use the built-in migration method on ksBrain.tokens to update v3
3
- * tokens to v4 tokens.
4
- */
5
-
6
- import { convertStyleDictFormat } from '@knapsack/design-token-utils';
7
- import { KsDesignTokenSrcGroup } from '@knapsack/types';
8
- import { readJSON, writeFormattedFile } from '@knapsack/file-utils';
9
- import {
10
- writeKsDesignTokensConfig,
11
- readKsDesignTokensConfig,
12
- } from '@knapsack/ks-file-utils';
13
- import { Update } from '../../types.js';
14
-
15
- export const update400_tokens: Update = {
16
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
17
- title: 'Tokens migration',
18
- updater: async ({ config }) => {
19
- const customTokensPath = config?.designTokens?.srcFilePath;
20
-
21
- const tokensSrcGroup = customTokensPath
22
- ? // Does the workspace have a custom design tokens path (which includes
23
- // specific file name)? If so, read that file directly as JSON.
24
- await readJSON<KsDesignTokenSrcGroup>(customTokensPath)
25
- : // Otherwise, just read the default tokens file within the data dir
26
- await readKsDesignTokensConfig({
27
- dataDir: config.data,
28
- });
29
-
30
- // Dirty hack to see if the json includes old, v3 version of "value". If so,
31
- // do not update.
32
- if (JSON.stringify(tokensSrcGroup).includes('"$value"')) {
33
- console.log('Skipping tokens migration. Already v4 tokens.');
34
- return;
35
- }
36
-
37
- // Convert v3 to v4 tokens
38
- const data = convertStyleDictFormat({
39
- tokensSrcGroup,
40
- });
41
-
42
- // Write back to disk
43
- customTokensPath
44
- ? // Again, custom path means writing arbitrary data to specific path
45
- // (which includes file name)
46
- await writeFormattedFile({
47
- contents: data,
48
- path: customTokensPath,
49
- })
50
- : // Otherwise default
51
- await writeKsDesignTokensConfig({
52
- data,
53
- dataDir: config.data,
54
- });
55
- },
56
- };
@@ -1,88 +0,0 @@
1
- /**
2
- * @file
3
- * Migrate Ui Config to new format
4
- */
5
-
6
- import { join } from 'node:path';
7
- import { fetcher } from '@knapsack/utils';
8
- import { readJSON } from '@knapsack/file-utils';
9
- import type { UiConfig } from '@knapsack/types';
10
-
11
- import { Update } from '../../types.js';
12
- import { readDb, writeDb } from '../../utils/oldDb.js';
13
-
14
- export const update400_uiConfig: Update = {
15
- shouldRun: ({ installedVersion }) => installedVersion.startsWith('3.'),
16
- title: 'UI config migration',
17
- updater: async ({ config }) => {
18
- const { cloud, data } = config;
19
- const siteId = cloud?.siteId;
20
-
21
- if (!siteId) {
22
- console.log('No site ID found. Skipping UI Config migration.');
23
- return;
24
- }
25
- const db = await readDb({ dataDir: data });
26
-
27
- // 1. GraphQL call to site DB to pull down UIConfig
28
- const query = `
29
- query GetSiteBasicInfo($siteId: String!) {
30
- site: sites_by_pk(id: $siteId) {
31
- title
32
- logoUrl
33
- uiConfig
34
- }
35
- }
36
- `;
37
-
38
- const results = await fetcher<{
39
- data: {
40
- site: {
41
- title: string;
42
- logoUrl: string;
43
- uiConfig: UiConfig; // trust me, bro
44
- };
45
- };
46
- }>({
47
- url: 'https://db.knapsack.cloud/v1/graphql',
48
- body: {
49
- query,
50
- variables: { siteId },
51
- },
52
- });
53
-
54
- if (!results.data.site.uiConfig) {
55
- console.error('No UI Config to migrate');
56
- }
57
-
58
- const legacySettings = await readJSON(join(data, 'knapsack.settings.json'));
59
-
60
- if (typeof legacySettings.title === 'string') {
61
- db.settings.title = legacySettings.title;
62
- } else {
63
- db.settings.title = siteId;
64
- }
65
-
66
- db.settings.logoUrl = results.data.site.logoUrl ?? '';
67
- if (results.data.site.uiConfig) {
68
- db.settings.theme = results.data.site.uiConfig;
69
- }
70
-
71
- db.blocks.settings = {
72
- tokens: {
73
- rootFontSize:
74
- 'tokens' in legacySettings &&
75
- typeof legacySettings.tokens === 'object' &&
76
- 'rootFontSize' in legacySettings.tokens &&
77
- typeof legacySettings.tokens.rootFontSize === 'string'
78
- ? legacySettings.tokens?.rootFontSize
79
- : '16px',
80
- },
81
- };
82
-
83
- await writeDb({
84
- dataDir: data,
85
- db,
86
- });
87
- },
88
- };