@aphexcms/cms-core 9.2.2 → 9.4.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.
Files changed (89) hide show
  1. package/dist/cli/generate-types.d.ts +9 -1
  2. package/dist/cli/generate-types.d.ts.map +1 -1
  3. package/dist/cli/generate-types.js +23 -17
  4. package/dist/cli/generate-types.js.map +1 -1
  5. package/dist/cli/index.js +22 -0
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/migrate.d.ts +10 -0
  8. package/dist/cli/migrate.d.ts.map +1 -0
  9. package/dist/cli/migrate.js +105 -0
  10. package/dist/cli/migrate.js.map +1 -0
  11. package/dist/components/AdminApp.svelte +12 -0
  12. package/dist/components/AdminApp.svelte.d.ts.map +1 -1
  13. package/dist/components/admin/DocumentVersionPanel.svelte +3 -0
  14. package/dist/components/admin/DocumentVersionPanel.svelte.d.ts.map +1 -1
  15. package/dist/components/admin/MediaBrowser.svelte +0 -1
  16. package/dist/components/admin/MediaBrowser.svelte.d.ts.map +1 -1
  17. package/dist/components/admin/fields/richtext/PortableTextImageView.svelte +3 -0
  18. package/dist/components/admin/fields/richtext/PortableTextImageView.svelte.d.ts.map +1 -1
  19. package/dist/components/admin/fields/richtext/PortableTextInlineView.svelte +3 -1
  20. package/dist/components/admin/fields/richtext/PortableTextInlineView.svelte.d.ts.map +1 -1
  21. package/dist/components/admin/fields/richtext/PortableTextObjectView.svelte +3 -0
  22. package/dist/components/admin/fields/richtext/PortableTextObjectView.svelte.d.ts.map +1 -1
  23. package/dist/components/admin/fields/richtext/RichtextField.svelte +8 -20
  24. package/dist/components/admin/fields/richtext/RichtextField.svelte.d.ts.map +1 -1
  25. package/dist/components/admin/fields/richtext/block-defaults.d.ts +4 -0
  26. package/dist/components/admin/fields/richtext/block-defaults.d.ts.map +1 -0
  27. package/dist/components/admin/fields/richtext/block-defaults.js +8 -0
  28. package/dist/field-validation/utils.d.ts +15 -0
  29. package/dist/field-validation/utils.d.ts.map +1 -1
  30. package/dist/field-validation/utils.js +74 -0
  31. package/dist/graphql/resolvers.d.ts.map +1 -1
  32. package/dist/graphql/resolvers.js +9 -10
  33. package/dist/graphql/schema.d.ts.map +1 -1
  34. package/dist/graphql/schema.js +18 -19
  35. package/dist/lib/components/admin/fields/richtext/block-defaults.d.ts +4 -0
  36. package/dist/lib/components/admin/fields/richtext/block-defaults.d.ts.map +1 -0
  37. package/dist/lib/components/admin/fields/richtext/block-defaults.js +9 -0
  38. package/dist/lib/components/admin/fields/richtext/block-defaults.js.map +1 -0
  39. package/dist/lib/field-validation/utils.d.ts +15 -0
  40. package/dist/lib/field-validation/utils.d.ts.map +1 -1
  41. package/dist/lib/field-validation/utils.js +74 -0
  42. package/dist/lib/field-validation/utils.js.map +1 -1
  43. package/dist/lib/graphql/resolvers.d.ts.map +1 -1
  44. package/dist/lib/graphql/resolvers.js +9 -10
  45. package/dist/lib/graphql/resolvers.js.map +1 -1
  46. package/dist/lib/graphql/schema.d.ts.map +1 -1
  47. package/dist/lib/graphql/schema.js +18 -19
  48. package/dist/lib/graphql/schema.js.map +1 -1
  49. package/dist/lib/mcp/tools.d.ts +28 -0
  50. package/dist/lib/mcp/tools.d.ts.map +1 -0
  51. package/dist/lib/mcp/tools.js +505 -0
  52. package/dist/lib/mcp/tools.js.map +1 -0
  53. package/dist/lib/routes/mcp.d.ts +5 -0
  54. package/dist/lib/routes/mcp.d.ts.map +1 -0
  55. package/dist/lib/routes/mcp.js +72 -0
  56. package/dist/lib/routes/mcp.js.map +1 -0
  57. package/dist/lib/schema-utils/validator.d.ts +6 -0
  58. package/dist/lib/schema-utils/validator.d.ts.map +1 -1
  59. package/dist/lib/schema-utils/validator.js +21 -15
  60. package/dist/lib/schema-utils/validator.js.map +1 -1
  61. package/dist/lib/server/index.d.ts +2 -1
  62. package/dist/lib/server/index.d.ts.map +1 -1
  63. package/dist/lib/server/index.js +4 -1
  64. package/dist/lib/server/index.js.map +1 -1
  65. package/dist/lib/utils/string-case.d.ts +21 -0
  66. package/dist/lib/utils/string-case.d.ts.map +1 -0
  67. package/dist/lib/utils/string-case.js +26 -0
  68. package/dist/lib/utils/string-case.js.map +1 -0
  69. package/dist/lib/vite/index.d.ts.map +1 -1
  70. package/dist/lib/vite/index.js +12 -1
  71. package/dist/lib/vite/index.js.map +1 -1
  72. package/dist/mcp/tools.d.ts +28 -0
  73. package/dist/mcp/tools.d.ts.map +1 -0
  74. package/dist/mcp/tools.js +504 -0
  75. package/dist/routes/mcp.d.ts +5 -0
  76. package/dist/routes/mcp.d.ts.map +1 -0
  77. package/dist/routes/mcp.js +71 -0
  78. package/dist/schema-utils/validator.d.ts +6 -0
  79. package/dist/schema-utils/validator.d.ts.map +1 -1
  80. package/dist/schema-utils/validator.js +21 -15
  81. package/dist/server/index.d.ts +2 -1
  82. package/dist/server/index.d.ts.map +1 -1
  83. package/dist/server/index.js +4 -1
  84. package/dist/utils/string-case.d.ts +21 -0
  85. package/dist/utils/string-case.d.ts.map +1 -0
  86. package/dist/utils/string-case.js +25 -0
  87. package/dist/vite/index.d.ts.map +1 -1
  88. package/dist/vite/index.js +12 -1
  89. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxF,cAAc,wBAAwB,CAAC;AAGvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG/F,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGxF,OAAO,EACN,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/server/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxF,cAAc,wBAAwB,CAAC;AAGvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG/F,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGxF,OAAO,EACN,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,QAAQ,EACR,cAAc,EACd,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACN,iBAAiB,EACjB,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,MAAM,cAAc,CAAC"}
@@ -41,4 +41,7 @@ export { getPreviewPerspective } from '../preview/perspective.js';
41
41
  // GraphQL (built-in, enabled by default)
42
42
  export { createGraphQLHandler } from '../graphql/index.js';
43
43
  // Local API (unified operations layer)
44
- export { LocalAPI, createLocalAPI, getLocalAPI, CollectionAPI, SingletonOperationError, PermissionChecker, PermissionError } from '../local-api/index.js';
44
+ export { LocalAPI, createLocalAPI, getLocalAPI, CollectionAPI, SingletonOperationError, PermissionChecker, PermissionError, authToContext, requireAuth, systemContext } from '../local-api/index.js';
45
+ // MCP — transport-agnostic tool registry (the MCP route + a future AI panel
46
+ // both consume these). The SvelteKit route handler is at ./routes/mcp.
47
+ export { buildContentTools } from '../mcp/tools.js';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Convert a string to PascalCase.
3
+ * Handles hyphens, underscores, and camelCase boundaries.
4
+ *
5
+ * @example
6
+ * toPascalCase('type-name') // 'TypeName'
7
+ * toPascalCase('my_field') // 'MyField'
8
+ * toPascalCase('parentName') // 'ParentName'
9
+ */
10
+ export declare function toPascalCase(str: string): string;
11
+ /**
12
+ * Convert a string to camelCase.
13
+ * Handles hyphens, underscores, and existing casing.
14
+ *
15
+ * @example
16
+ * toCamelCase('type-name') // 'typeName'
17
+ * toCamelCase('my_field') // 'myField'
18
+ * toCamelCase('alreadyCamel') // 'alreadyCamel'
19
+ */
20
+ export declare function toCamelCase(str: string): string;
21
+ //# sourceMappingURL=string-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-case.d.ts","sourceRoot":"","sources":["../../src/lib/utils/string-case.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Convert a string to PascalCase.
3
+ * Handles hyphens, underscores, and camelCase boundaries.
4
+ *
5
+ * @example
6
+ * toPascalCase('type-name') // 'TypeName'
7
+ * toPascalCase('my_field') // 'MyField'
8
+ * toPascalCase('parentName') // 'ParentName'
9
+ */
10
+ export function toPascalCase(str) {
11
+ return str.replace(/(^|[-_])(\w)/g, (_, _sep, c) => c.toUpperCase());
12
+ }
13
+ /**
14
+ * Convert a string to camelCase.
15
+ * Handles hyphens, underscores, and existing casing.
16
+ *
17
+ * @example
18
+ * toCamelCase('type-name') // 'typeName'
19
+ * toCamelCase('my_field') // 'myField'
20
+ * toCamelCase('alreadyCamel') // 'alreadyCamel'
21
+ */
22
+ export function toCamelCase(str) {
23
+ const pascal = toPascalCase(str);
24
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/vite/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAElD,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IACnC,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC5B,8DAA8D;IAC9D,GAAG,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAC9B,iGAAiG;IACjG,OAAO,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACtC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAiF9D;AAuOD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,MAAM,EAAE,CAuB1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/vite/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAElD,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IACnC,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC5B,8DAA8D;IAC9D,GAAG,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAC9B,iGAAiG;IACjG,OAAO,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACtC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAiF9D;AAkPD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,MAAM,EAAE,CAuB1D"}
@@ -205,7 +205,18 @@ function aphexOptimizeDeps() {
205
205
  '@aphexcms/cms-core > dayjs/plugin/customParseFormat',
206
206
  '@aphexcms/cms-core > dayjs/plugin/customParseFormat.js',
207
207
  '@aphexcms/cms-core > dayjs/plugin/utc',
208
- '@aphexcms/cms-core > dayjs/plugin/utc.js'
208
+ '@aphexcms/cms-core > dayjs/plugin/utc.js',
209
+ // TipTap powers the richtext editor, lazily imported only when a document
210
+ // with block content is opened — so Vite discovers it mid-session and forces
211
+ // a reload (which can also break in-flight dynamic route imports). Pre-bundle
212
+ // it upfront. Nested under cms-core (which owns the dep) so it resolves in
213
+ // both the monorepo and scaffolded apps — a bare '@tiptap/core' wouldn't
214
+ // resolve from an app that doesn't depend on TipTap directly.
215
+ '@aphexcms/cms-core > @tiptap/core',
216
+ '@aphexcms/cms-core > @tiptap/starter-kit',
217
+ '@aphexcms/cms-core > @tiptap/extension-link',
218
+ '@aphexcms/cms-core > @tiptap/extension-underline',
219
+ '@aphexcms/cms-core > @tiptap/pm/view'
209
220
  ]
210
221
  }
211
222
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aphexcms/cms-core",
3
- "version": "9.2.2",
3
+ "version": "9.4.0",
4
4
  "description": "Aphex CMS Core - A Sanity-style CMS with ports and adapters architecture",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -81,7 +81,7 @@
81
81
  "svelte": "^5.44.0",
82
82
  "tailwind-merge": "^3.4.0",
83
83
  "tailwind-variants": "^3.2.2",
84
- "@aphexcms/ui": "^0.8.1"
84
+ "@aphexcms/ui": "^0.8.2"
85
85
  },
86
86
  "peerDependenciesMeta": {
87
87
  "graphql": {
@@ -101,7 +101,9 @@
101
101
  "@clack/prompts": "^0.11.0",
102
102
  "@dnd-kit/helpers": "^0.3.0",
103
103
  "@dnd-kit/svelte": "^0.3.0",
104
+ "@hono/mcp": "^0.3.0",
104
105
  "@hono/zod-validator": "^0.7.6",
106
+ "@modelcontextprotocol/sdk": "^1.29.0",
105
107
  "@tiptap/core": "^3.23.4",
106
108
  "@tiptap/extension-link": "^3.23.4",
107
109
  "@tiptap/extension-underline": "^3.23.4",