canopycms 0.0.41 → 0.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/generate-ai-content.js +2 -9
- package/dist/cli/init.js +2 -9
- package/dist/cli/template-files/schemas.ts.template +20 -5
- package/dist/config/flatten.d.ts +1 -6
- package/dist/config/flatten.d.ts.map +1 -1
- package/dist/config/flatten.js +1 -23
- package/dist/config/flatten.js.map +1 -1
- package/dist/config/helpers.d.ts +10 -5
- package/dist/config/helpers.d.ts.map +1 -1
- package/dist/config/helpers.js +10 -5
- package/dist/config/helpers.js.map +1 -1
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -2
- package/dist/config/index.js.map +1 -1
- package/dist/config/schemas/collection.d.ts +0 -53
- package/dist/config/schemas/collection.d.ts.map +1 -1
- package/dist/config/schemas/collection.js +0 -6
- package/dist/config/schemas/collection.js.map +1 -1
- package/dist/config/schemas/config.d.ts +1 -80
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +6 -5
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config/validation.d.ts +13 -6
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +65 -127
- package/dist/config/validation.js.map +1 -1
- package/dist/config-test.d.ts +1 -1
- package/dist/config-test.d.ts.map +1 -1
- package/dist/config-test.js.map +1 -1
- package/dist/content-tree.d.ts +85 -7
- package/dist/content-tree.d.ts.map +1 -1
- package/dist/content-tree.js +34 -9
- package/dist/content-tree.js.map +1 -1
- package/dist/context.d.ts +9 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/entry-schema-registry.d.ts +54 -10
- package/dist/entry-schema-registry.d.ts.map +1 -1
- package/dist/entry-schema-registry.js +62 -10
- package/dist/entry-schema-registry.js.map +1 -1
- package/dist/entry-schema.d.ts +34 -0
- package/dist/entry-schema.d.ts.map +1 -1
- package/dist/entry-schema.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/server.d.ts +53 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +50 -2
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/content-tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-tree.js","sourceRoot":"","sources":["../src/content-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"content-tree.js","sourceRoot":"","sources":["../src/content-tree.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CanopyUser } from './user';
|
|
2
2
|
import type { CanopyServices } from './services';
|
|
3
|
-
import { type BuildContentTreeOptions, type ContentTreeNode } from './content-tree';
|
|
3
|
+
import { type BuildContentTreeOptions, type ContentTreeNode, type DefaultEntryTypes } from './content-tree';
|
|
4
4
|
import { type ListEntriesOptions, type ListEntriesItem } from './content-listing';
|
|
5
5
|
export interface CanopyContextOptions {
|
|
6
6
|
services: CanopyServices;
|
|
@@ -26,8 +26,14 @@ export interface CanopyContextOptions {
|
|
|
26
26
|
* scanning the whole collection.
|
|
27
27
|
*/
|
|
28
28
|
export interface CanopyBuildContext {
|
|
29
|
-
/**
|
|
30
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Build a content tree from the schema and filesystem entries.
|
|
31
|
+
*
|
|
32
|
+
* Supply TEntryTypes (a map of entry type name → data shape, typically
|
|
33
|
+
* derived via `TypeFromEntrySchema<typeof yourSchema>`) to get narrowed
|
|
34
|
+
* access to `meta.indexEntry.data` inside the `extract` callback.
|
|
35
|
+
*/
|
|
36
|
+
buildContentTree: <T = unknown, TEntryTypes = DefaultEntryTypes>(options?: BuildContentTreeOptions<T, TEntryTypes>) => Promise<ContentTreeNode<T>[]>;
|
|
31
37
|
/** List all content entries as a flat array. */
|
|
32
38
|
listEntries: <T = Record<string, unknown>>(options?: ListEntriesOptions<T>) => Promise<ListEntriesItem<T>[]>;
|
|
33
39
|
/** Content reader (auth context applied automatically — admin at build time). */
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAA;AAO1B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAA;IACxB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,WAAW,GAAG,iBAAiB,EAC7D,OAAO,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,WAAW,CAAC,KAC9C,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAElC,gDAAgD;IAChD,WAAW,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAC5B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAElC,iFAAiF;IACjF,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE;QACzB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAExC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,aAAa,EAAE,CAAC,CAAC,GAAG,OAAO,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,KACvD,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAE9C,0BAA0B;IAC1B,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,WAAW,aAAc,SAAQ,kBAAkB;IACvD,iCAAiC;IACjC,IAAI,EAAE,UAAU,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB;sBAsBlC,OAAO,CAAC,aAAa,CAAC;;EA6HpD"}
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAA;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EACL,gBAAgB,IAAI,oBAAoB,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAA;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EACL,gBAAgB,IAAI,oBAAoB,GAIzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,WAAW,IAAI,eAAe,GAG/B,MAAM,mBAAmB,CAAA;AAE1B,6GAA6G;AAC7G,SAAS,eAAe,CAAC,GAAsB;IAC7C,OAAO,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAA;AAClE,CAAC;AAsFD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAEjC;;;OAGG;IACH,MAAM,OAAO,GAAG,KAAK,IAAyB,EAAE;QAC9C,iFAAiF;QACjF,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,CAAC;YACvD,OAAO,kBAAkB,CAAA;QAC3B,CAAC;QAED,uDAAuD;QACvD,wEAAwE;QACxE,OAAO,MAAM,OAAO,CAAC,WAAW,EAAE,CAAA;IACpC,CAAC,CAAA;IAED;;;OAGG;IACH,MAAM,UAAU,GAAG,KAAK,IAA4B,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAA;QAE5B,6BAA6B;QAC7B,MAAM,UAAU,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEpD,gGAAgG;QAChG,MAAM,IAAI,GAA0B,KAAK,EAAe,KAKvD,EAAE,EAAE;YACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACpD,IAAI,IAAsB,CAAA;YAC1B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;gBACtD,CAAC;gBACD,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;YACxB,CAAC;YACD,MAAM,SAAS,GAAqB;gBAClC,SAAS;gBACT,IAAI;gBACJ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI;gBACJ,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,IAAI;aACnD,CAAA;YACD,OAAO,UAAU,CAAC,IAAI,CAAI,SAAS,CAAC,CAAA;QACtC,CAAC,CAAA;QAED,MAAM,aAAa,GAAmC,KAAK,EACzD,OAAe,EACf,OAA0D,EAC1D,EAAE;YACF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,CAAA;YAC5D,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YACjE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAA;YAExC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;YAEnD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,qFAAqF;gBACrF,uFAAuF;gBACvF,iFAAiF;gBACjF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;oBAAE,SAAQ;gBAC3C,IAAI,CAAC;oBACH,OAAO,MAAM,IAAI,CAAI;wBACnB,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,IAAI,EAAE,SAAS,CAAC,IAAI;wBACpB,MAAM;wBACN,iBAAiB;qBAClB,CAAC,CAAA;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,+DAA+D;oBAC/D,iEAAiE;oBACjE,IAAI,GAAG,YAAY,iBAAiB,IAAI,eAAe,CAAC,GAAG,CAAC;wBAAE,SAAQ;oBACtE,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QAED,sHAAsH;QACtH,IAAI,oBAAoB,GAAuD,IAAI,CAAA;QACnF,MAAM,wBAAwB,GAAG,KAAK,IAAI,EAAE;YAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAA;YAC1C,MAAM,aAAa,GACjB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,IAAI,QAAQ,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAA;YACpF,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC;gBACpD,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,aAAa;gBACzB,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,mBAAmB;gBAC9B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB;aAC5C,CAAC,CAAA;YACF,MAAM,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;YACvE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,CAAA;YAChE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAC/D,UAAU,EACV,QAAQ,CAAC,mBAAmB,EAC5B,eAAe,CAChB,CAAA;YACD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,CAAA;QACpD,CAAC,CAAA;QACD,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,oBAAoB,GAAG,wBAAwB,EAAE,CAAA;YACnD,CAAC;YACD,OAAO,oBAAoB,CAAA;QAC7B,CAAC,CAAA;QAED,MAAM,gBAAgB,GAAsC,KAAK,EAI/D,OAAiD,EACjD,EAAE;YACF,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,oBAAoB,EAAE,CAAA;YAChF,OAAO,oBAAoB,CAAiB,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QAC/F,CAAC,CAAA;QAED,MAAM,WAAW,GAAiC,KAAK,EACrD,OAA+B,EAC/B,EAAE;YACF,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,MAAM,oBAAoB,EAAE,CAAA;YAChF,OAAO,eAAe,CAAI,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QAC7E,CAAC,CAAA;QAED,OAAO;YACL,IAAI;YACJ,aAAa;YACb,gBAAgB;YAChB,WAAW;YACX,QAAQ;YACR,IAAI;SACL,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,UAAU;QACV,QAAQ;KACT,CAAA;AACH,CAAC"}
|
|
@@ -1,25 +1,69 @@
|
|
|
1
1
|
import type { EntrySchema } from './config';
|
|
2
2
|
import type { EntrySchemaRegistry } from './schema/types';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Create a type-safe entry schema registry with runtime validation.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* The KEYS in the registry are the strings that `.collection.json` files (and
|
|
7
|
+
* the editor wire format) use to look up each schema via the `entry.schema`
|
|
8
|
+
* property. You can pick any string — but the **recommended convention is to
|
|
9
|
+
* key by the entry-type name** (the filename token, the same string that
|
|
10
|
+
* appears in `meta.entryType` in `buildContentTree` callbacks). When you do
|
|
11
|
+
* that, `EntryTypesFromRegistry<typeof yourRegistry>` derives the
|
|
12
|
+
* discriminated-union map for `buildContentTree`'s `TEntryTypes` parameter
|
|
13
|
+
* automatically — no parallel interface to maintain.
|
|
8
14
|
*
|
|
9
15
|
* @example
|
|
16
|
+
* Recommended — keys are entry-type names:
|
|
10
17
|
* ```typescript
|
|
11
18
|
* import { createEntrySchemaRegistry } from 'canopycms/server'
|
|
19
|
+
* import { type EntryTypesFromRegistry, defineEntrySchema } from 'canopycms'
|
|
12
20
|
*
|
|
21
|
+
* export const partnerSchema = defineEntrySchema([
|
|
22
|
+
* { name: 'name', type: 'string', label: 'Name', isTitle: true },
|
|
23
|
+
* { name: 'isFictional', type: 'boolean', label: 'Fictional?' },
|
|
24
|
+
* ])
|
|
25
|
+
* export const docSchema = defineEntrySchema([
|
|
26
|
+
* { name: 'title', type: 'string', label: 'Title' },
|
|
27
|
+
* ])
|
|
28
|
+
*
|
|
29
|
+
* export const entrySchemaRegistry = createEntrySchemaRegistry({
|
|
30
|
+
* partner: partnerSchema,
|
|
31
|
+
* doc: docSchema,
|
|
32
|
+
* })
|
|
33
|
+
*
|
|
34
|
+
* // Then in .collection.json:
|
|
35
|
+
* // { "name": "partner", "format": "yaml", "schema": "partner" }
|
|
36
|
+
*
|
|
37
|
+
* // Derive entry-type map for typed narrowing:
|
|
38
|
+
* export type EntryTypes = EntryTypesFromRegistry<typeof entrySchemaRegistry>
|
|
39
|
+
*
|
|
40
|
+
* // Per-schema aliases stay one line each, anchored to the registry:
|
|
41
|
+
* export type PartnerContent = EntryTypes['partner']
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* Also valid — keys are schema-variable names (prior convention):
|
|
46
|
+
* ```typescript
|
|
13
47
|
* export const entrySchemaRegistry = createEntrySchemaRegistry({
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* { type: 'markdown', name: 'body', label: 'Body' },
|
|
17
|
-
* ],
|
|
18
|
-
* authorSchema: [
|
|
19
|
-
* { type: 'string', name: 'name', label: 'Name', required: true },
|
|
20
|
-
* ],
|
|
48
|
+
* partnerSchema, // JS shorthand — key is the string "partnerSchema"
|
|
49
|
+
* docSchema,
|
|
21
50
|
* })
|
|
51
|
+
*
|
|
52
|
+
* // .collection.json must then say:
|
|
53
|
+
* // { "name": "partner", "schema": "partnerSchema" }
|
|
54
|
+
* //
|
|
55
|
+
* // EntryTypesFromRegistry produces a map keyed by "partnerSchema" rather than
|
|
56
|
+
* // by "partner", so it can't plug straight into buildContentTree's TEntryTypes.
|
|
57
|
+
* // Either rekey the registry to the recommended convention, or declare the
|
|
58
|
+
* // entry-type map manually using TypeFromEntrySchema<typeof partnerSchema>.
|
|
22
59
|
* ```
|
|
60
|
+
*
|
|
61
|
+
* Runtime validation: registry must be non-empty, each schema must be a
|
|
62
|
+
* non-empty `EntrySchema` array, at most one `isTitle` per schema (string
|
|
63
|
+
* fields only), at most one `isBody` per schema (markdown/mdx only). Field-
|
|
64
|
+
* shape checks: select fields must have options, reference fields must have
|
|
65
|
+
* `collections` or `entryTypes`, no inline groups inside object/block fields,
|
|
66
|
+
* no field-name collisions after group flattening.
|
|
23
67
|
*/
|
|
24
68
|
export declare function createEntrySchemaRegistry<T extends Record<string, EntrySchema>>(registry: T): T;
|
|
25
69
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-schema-registry.d.ts","sourceRoot":"","sources":["../src/entry-schema-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,UAAU,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"entry-schema-registry.d.ts","sourceRoot":"","sources":["../src/entry-schema-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,UAAU,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAiCzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CA2D/F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,2BAA2B,CAC/C,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAmDf"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { countTitleFields, findInvalidTitleFields, findTitleFieldsInLists, } from './utils/title-field.js';
|
|
2
2
|
import { countBodyFields, findInvalidBodyFields } from './utils/body-field.js';
|
|
3
3
|
import { flattenGroupFields } from './utils/flatten-group-fields.js';
|
|
4
|
+
import { ensureSelectFieldsHaveOptions, ensureReferenceFieldsHaveScope, ensureNoFlattenedFieldNameCollisions, ensureNoGroupsInsideComplexFields, } from './config/validation.js';
|
|
4
5
|
/** Look up a field's type by dotted path (e.g., "meta.order").
|
|
5
6
|
* Groups are transparent — their children are searched at the same path level. */
|
|
6
7
|
function findFieldType(fields, dottedPath) {
|
|
@@ -22,25 +23,69 @@ function findFieldType(fields, dottedPath) {
|
|
|
22
23
|
return 'unknown';
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
+
* Create a type-safe entry schema registry with runtime validation.
|
|
26
27
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
28
|
+
* The KEYS in the registry are the strings that `.collection.json` files (and
|
|
29
|
+
* the editor wire format) use to look up each schema via the `entry.schema`
|
|
30
|
+
* property. You can pick any string — but the **recommended convention is to
|
|
31
|
+
* key by the entry-type name** (the filename token, the same string that
|
|
32
|
+
* appears in `meta.entryType` in `buildContentTree` callbacks). When you do
|
|
33
|
+
* that, `EntryTypesFromRegistry<typeof yourRegistry>` derives the
|
|
34
|
+
* discriminated-union map for `buildContentTree`'s `TEntryTypes` parameter
|
|
35
|
+
* automatically — no parallel interface to maintain.
|
|
29
36
|
*
|
|
30
37
|
* @example
|
|
38
|
+
* Recommended — keys are entry-type names:
|
|
31
39
|
* ```typescript
|
|
32
40
|
* import { createEntrySchemaRegistry } from 'canopycms/server'
|
|
41
|
+
* import { type EntryTypesFromRegistry, defineEntrySchema } from 'canopycms'
|
|
33
42
|
*
|
|
43
|
+
* export const partnerSchema = defineEntrySchema([
|
|
44
|
+
* { name: 'name', type: 'string', label: 'Name', isTitle: true },
|
|
45
|
+
* { name: 'isFictional', type: 'boolean', label: 'Fictional?' },
|
|
46
|
+
* ])
|
|
47
|
+
* export const docSchema = defineEntrySchema([
|
|
48
|
+
* { name: 'title', type: 'string', label: 'Title' },
|
|
49
|
+
* ])
|
|
50
|
+
*
|
|
51
|
+
* export const entrySchemaRegistry = createEntrySchemaRegistry({
|
|
52
|
+
* partner: partnerSchema,
|
|
53
|
+
* doc: docSchema,
|
|
54
|
+
* })
|
|
55
|
+
*
|
|
56
|
+
* // Then in .collection.json:
|
|
57
|
+
* // { "name": "partner", "format": "yaml", "schema": "partner" }
|
|
58
|
+
*
|
|
59
|
+
* // Derive entry-type map for typed narrowing:
|
|
60
|
+
* export type EntryTypes = EntryTypesFromRegistry<typeof entrySchemaRegistry>
|
|
61
|
+
*
|
|
62
|
+
* // Per-schema aliases stay one line each, anchored to the registry:
|
|
63
|
+
* export type PartnerContent = EntryTypes['partner']
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* Also valid — keys are schema-variable names (prior convention):
|
|
68
|
+
* ```typescript
|
|
34
69
|
* export const entrySchemaRegistry = createEntrySchemaRegistry({
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* { type: 'markdown', name: 'body', label: 'Body' },
|
|
38
|
-
* ],
|
|
39
|
-
* authorSchema: [
|
|
40
|
-
* { type: 'string', name: 'name', label: 'Name', required: true },
|
|
41
|
-
* ],
|
|
70
|
+
* partnerSchema, // JS shorthand — key is the string "partnerSchema"
|
|
71
|
+
* docSchema,
|
|
42
72
|
* })
|
|
73
|
+
*
|
|
74
|
+
* // .collection.json must then say:
|
|
75
|
+
* // { "name": "partner", "schema": "partnerSchema" }
|
|
76
|
+
* //
|
|
77
|
+
* // EntryTypesFromRegistry produces a map keyed by "partnerSchema" rather than
|
|
78
|
+
* // by "partner", so it can't plug straight into buildContentTree's TEntryTypes.
|
|
79
|
+
* // Either rekey the registry to the recommended convention, or declare the
|
|
80
|
+
* // entry-type map manually using TypeFromEntrySchema<typeof partnerSchema>.
|
|
43
81
|
* ```
|
|
82
|
+
*
|
|
83
|
+
* Runtime validation: registry must be non-empty, each schema must be a
|
|
84
|
+
* non-empty `EntrySchema` array, at most one `isTitle` per schema (string
|
|
85
|
+
* fields only), at most one `isBody` per schema (markdown/mdx only). Field-
|
|
86
|
+
* shape checks: select fields must have options, reference fields must have
|
|
87
|
+
* `collections` or `entryTypes`, no inline groups inside object/block fields,
|
|
88
|
+
* no field-name collisions after group flattening.
|
|
44
89
|
*/
|
|
45
90
|
export function createEntrySchemaRegistry(registry) {
|
|
46
91
|
// Validate that registry is not empty
|
|
@@ -79,6 +124,13 @@ export function createEntrySchemaRegistry(registry) {
|
|
|
79
124
|
if (invalidBodyFields.length > 0) {
|
|
80
125
|
throw new Error(`Entry schema registry entry "${key}": field "${invalidBodyFields[0]}" has isBody: true but is type "${findFieldType(schema, invalidBodyFields[0])}" — isBody is only valid on markdown or mdx fields`);
|
|
81
126
|
}
|
|
127
|
+
// Field-shape checks moved here from validateCanopyConfig — these used to walk
|
|
128
|
+
// the (now-removed) inline-config schema; the registry is now the canonical
|
|
129
|
+
// entry point for entry schemas, so they run here.
|
|
130
|
+
ensureSelectFieldsHaveOptions(schema);
|
|
131
|
+
ensureReferenceFieldsHaveScope(schema);
|
|
132
|
+
ensureNoGroupsInsideComplexFields(schema);
|
|
133
|
+
ensureNoFlattenedFieldNameCollisions(schema, `entry schema "${key}"`);
|
|
82
134
|
}
|
|
83
135
|
return registry;
|
|
84
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-schema-registry.js","sourceRoot":"","sources":["../src/entry-schema-registry.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"entry-schema-registry.js","sourceRoot":"","sources":["../src/entry-schema-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/entry-schema.d.ts
CHANGED
|
@@ -105,6 +105,40 @@ export declare const defineEntrySchema: <const T extends readonly InferableField
|
|
|
105
105
|
* Convenience alias to derive the content shape from a `defineEntrySchema` result.
|
|
106
106
|
*/
|
|
107
107
|
export type TypeFromEntrySchema<T extends readonly InferableField[]> = InferContentShape<T>;
|
|
108
|
+
/**
|
|
109
|
+
* Derive a map of entry-type-name → content-shape from an `entrySchemaRegistry`.
|
|
110
|
+
*
|
|
111
|
+
* Pass `typeof entrySchemaRegistry` as the type argument. The registry must be keyed
|
|
112
|
+
* by entry-type name (the filename token, also the value of `meta.entryType` in
|
|
113
|
+
* `buildContentTree` callbacks) for the derived map to plug straight into
|
|
114
|
+
* `buildContentTree`'s `TEntryTypes` generic.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* export const entrySchemaRegistry = createEntrySchemaRegistry({
|
|
119
|
+
* partner: partnerSchema,
|
|
120
|
+
* doc: docSchema,
|
|
121
|
+
* home: homeSchema,
|
|
122
|
+
* })
|
|
123
|
+
*
|
|
124
|
+
* export type EntryTypes = EntryTypesFromRegistry<typeof entrySchemaRegistry>
|
|
125
|
+
*
|
|
126
|
+
* // Then per-schema aliases stay one line each, anchored to the registry:
|
|
127
|
+
* export type PartnerContent = EntryTypes['partner']
|
|
128
|
+
*
|
|
129
|
+
* // And the tree-builder narrows on entryType:
|
|
130
|
+
* await canopy.buildContentTree<NavFields, EntryTypes>({
|
|
131
|
+
* extract: (data, meta) => {
|
|
132
|
+
* if (meta.kind === 'collection' && meta.indexEntry?.entryType === 'partner') {
|
|
133
|
+
* // meta.indexEntry.data is typed PartnerContent
|
|
134
|
+
* }
|
|
135
|
+
* },
|
|
136
|
+
* })
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export type EntryTypesFromRegistry<T extends Record<string, readonly InferableField[]>> = {
|
|
140
|
+
[K in keyof T]: TypeFromEntrySchema<T[K]>;
|
|
141
|
+
};
|
|
108
142
|
/**
|
|
109
143
|
* Define a reusable inline field group — a visual container in the editor that groups
|
|
110
144
|
* related fields together without creating a nested data key. The group's fields are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-schema.d.ts","sourceRoot":"","sources":["../src/entry-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry-schema.d.ts","sourceRoot":"","sources":["../src/entry-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/entry-schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-schema.js","sourceRoot":"","sources":["../src/entry-schema.ts"],"names":[],"mappings":"AA2GA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAA4C,MAAS,EAAK,EAAE,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"entry-schema.js","sourceRoot":"","sources":["../src/entry-schema.ts"],"names":[],"mappings":"AA2GA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAA4C,MAAS,EAAK,EAAE,CAAC,MAAM,CAAA;AA0CpG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAQpC,KAAQ,EACwB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,OAAgB,EAAE,CAAC,CAAA;AAE3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAGpC,KAAQ,EACyB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAQjC,QAAW,EACR,EAAE,CAAC,QAAQ,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,6 @@ export type { AuthPlugin, AuthPluginFactory } from './auth/plugin';
|
|
|
9
9
|
export type { UserSearchResult, GroupMetadata, AuthenticationResult } from './auth/types';
|
|
10
10
|
export { isCanopyRequest, isHeadersLike, extractHeaders, validateAuthContext, } from './auth/context-helpers';
|
|
11
11
|
export type { HeadersLike } from './auth/context-helpers';
|
|
12
|
-
export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, } from './content-tree';
|
|
12
|
+
export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, EntryTypeMap, DefaultEntryTypes, } from './content-tree';
|
|
13
13
|
export type { ListEntriesItem, ListEntriesOptions } from './content-listing';
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AAGtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAClE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACzF,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AAGtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAClE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACzF,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,GACpB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,GAClB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/server.d.ts
CHANGED
|
@@ -8,17 +8,67 @@ export * from './branch-workspace';
|
|
|
8
8
|
export * from './content-store';
|
|
9
9
|
export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMetaFiles, resolveSchema, } from './schema';
|
|
10
10
|
export type { CollectionMeta, RootCollectionMeta } from './schema';
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Create a type-safe entry schema registry with runtime validation.
|
|
13
|
+
*
|
|
14
|
+
* Maps each entry-type's name to its `EntrySchema`. Keys are referenced by
|
|
15
|
+
* `.collection.json` files via the `entry.schema` property. Recommended
|
|
16
|
+
* convention is to key by entry-type name (filename token, also the value of
|
|
17
|
+
* `meta.entryType` in tree-builder callbacks) — that way
|
|
18
|
+
* `EntryTypesFromRegistry<typeof yourRegistry>` derives the
|
|
19
|
+
* discriminated-union map for `buildContentTree`'s `TEntryTypes` parameter
|
|
20
|
+
* automatically. See `createEntrySchemaRegistry`'s source-file JSDoc for the
|
|
21
|
+
* full example.
|
|
22
|
+
*/
|
|
23
|
+
export { createEntrySchemaRegistry } from './entry-schema-registry';
|
|
24
|
+
/**
|
|
25
|
+
* Validate that entry-schema references in `.collection.json` files exist in
|
|
26
|
+
* the registry. Useful at build time to fail fast on stale references rather
|
|
27
|
+
* than at request time.
|
|
28
|
+
*/
|
|
29
|
+
export { validateEntrySchemaRegistry } from './entry-schema-registry';
|
|
30
|
+
/**
|
|
31
|
+
* Derive a discriminated-union entry-type map from a registry value. Pass
|
|
32
|
+
* `typeof entrySchemaRegistry` as the type argument. The registry must be
|
|
33
|
+
* keyed by entry-type name for the result to plug straight into
|
|
34
|
+
* `buildContentTree`'s `TEntryTypes` generic.
|
|
35
|
+
*/
|
|
36
|
+
export type { EntryTypesFromRegistry } from './entry-schema';
|
|
37
|
+
/** Generate a Canopy-format 12-character Base58 content ID. */
|
|
38
|
+
export { generateId } from './id';
|
|
39
|
+
/** Returns true if a string is a valid 12-character Base58 Canopy ID. */
|
|
40
|
+
export { isValidId } from './id';
|
|
41
|
+
/**
|
|
42
|
+
* Build a hierarchical tree of content nodes from the schema and filesystem.
|
|
43
|
+
*
|
|
44
|
+
* Pass `TEntryTypes` (typically `EntryTypesFromRegistry<typeof entrySchemaRegistry>`)
|
|
45
|
+
* to get narrowed access to `meta.indexEntry.data` after switching on
|
|
46
|
+
* `meta.entryType` in your `extract` callback.
|
|
47
|
+
*
|
|
48
|
+
* Adopters using `canopycms-next` typically call `canopy.buildContentTree(...)`
|
|
49
|
+
* via `getCanopyForBuild()` rather than the bare function.
|
|
50
|
+
*/
|
|
13
51
|
export { buildContentTree } from './content-tree';
|
|
14
|
-
export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, } from './content-tree';
|
|
52
|
+
export type { ContentTreeNode, BuildContentTreeOptions, ContentTreeExtractMeta, EntryTypeMap, DefaultEntryTypes, } from './content-tree';
|
|
53
|
+
/** List all content entries as a flat array. */
|
|
15
54
|
export { listEntries } from './content-listing';
|
|
16
55
|
export type { ListEntriesItem, ListEntriesOptions } from './content-listing';
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a canopy entry-link to its URL. Pair with the field-walker variants
|
|
58
|
+
* (`resolveEntryLinksInText`, `resolveEntryLinksInData`) when rendering MDX
|
|
59
|
+
* bodies or arbitrary frontmatter that may contain link tokens.
|
|
60
|
+
*/
|
|
17
61
|
export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver';
|
|
18
62
|
export type { EntryLinkUrlResolver } from './entry-link-resolver';
|
|
63
|
+
/** Compute the canonical URL for an entry given its logical path + slug. */
|
|
19
64
|
export { computeEntryUrl } from './utils/entry-url';
|
|
65
|
+
/** Collect static paths for `generateStaticParams` / sitemap emission. */
|
|
20
66
|
export { collectStaticPaths } from './static';
|
|
21
67
|
export type { StaticPathEntry, CollectStaticPathsOptions } from './static';
|
|
68
|
+
/**
|
|
69
|
+
* Start a chokidar-backed watcher that detects divergence between the dev
|
|
70
|
+
* working tree and the resolved branch clone. Dev mode only.
|
|
71
|
+
*/
|
|
22
72
|
export { startDevContentWatcher } from './dev-content-watcher';
|
|
23
73
|
export type { StartDevContentWatcherOptions } from './dev-content-watcher';
|
|
24
74
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,aAAa,GACd,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEnE;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAErE;;;;;GAKG;AACH,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAE5D,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,yEAAyE;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAEhC;;;;;;;;;GASG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,GAClB,MAAM,gBAAgB,CAAA;AAEvB,gDAAgD;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE5E;;;;GAIG;AACH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAEjE,4EAA4E;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,0EAA0E;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE7C,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAE1E;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,YAAY,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
// Public server-side API for adopters. JSDoc is duplicated at each named
|
|
2
|
+
// re-export so it shows on hover in adopter editors — TypeScript propagation
|
|
3
|
+
// through `export { X } from './module.js'` is inconsistent across LSP versions
|
|
4
|
+
// and module-resolution modes. New top-level public re-exports should follow
|
|
5
|
+
// the same pattern (see DEVELOPING.md).
|
|
1
6
|
export * from './content-reader.js';
|
|
2
7
|
export * from './services.js';
|
|
3
8
|
export * from './build-mode.js';
|
|
@@ -7,12 +12,55 @@ export * from './authorization/groups/index.js';
|
|
|
7
12
|
export * from './branch-workspace.js';
|
|
8
13
|
export * from './content-store.js';
|
|
9
14
|
export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMetaFiles, resolveSchema, } from './schema/index.js';
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Create a type-safe entry schema registry with runtime validation.
|
|
17
|
+
*
|
|
18
|
+
* Maps each entry-type's name to its `EntrySchema`. Keys are referenced by
|
|
19
|
+
* `.collection.json` files via the `entry.schema` property. Recommended
|
|
20
|
+
* convention is to key by entry-type name (filename token, also the value of
|
|
21
|
+
* `meta.entryType` in tree-builder callbacks) — that way
|
|
22
|
+
* `EntryTypesFromRegistry<typeof yourRegistry>` derives the
|
|
23
|
+
* discriminated-union map for `buildContentTree`'s `TEntryTypes` parameter
|
|
24
|
+
* automatically. See `createEntrySchemaRegistry`'s source-file JSDoc for the
|
|
25
|
+
* full example.
|
|
26
|
+
*/
|
|
27
|
+
export { createEntrySchemaRegistry } from './entry-schema-registry.js';
|
|
28
|
+
/**
|
|
29
|
+
* Validate that entry-schema references in `.collection.json` files exist in
|
|
30
|
+
* the registry. Useful at build time to fail fast on stale references rather
|
|
31
|
+
* than at request time.
|
|
32
|
+
*/
|
|
33
|
+
export { validateEntrySchemaRegistry } from './entry-schema-registry.js';
|
|
34
|
+
/** Generate a Canopy-format 12-character Base58 content ID. */
|
|
35
|
+
export { generateId } from './id.js';
|
|
36
|
+
/** Returns true if a string is a valid 12-character Base58 Canopy ID. */
|
|
37
|
+
export { isValidId } from './id.js';
|
|
38
|
+
/**
|
|
39
|
+
* Build a hierarchical tree of content nodes from the schema and filesystem.
|
|
40
|
+
*
|
|
41
|
+
* Pass `TEntryTypes` (typically `EntryTypesFromRegistry<typeof entrySchemaRegistry>`)
|
|
42
|
+
* to get narrowed access to `meta.indexEntry.data` after switching on
|
|
43
|
+
* `meta.entryType` in your `extract` callback.
|
|
44
|
+
*
|
|
45
|
+
* Adopters using `canopycms-next` typically call `canopy.buildContentTree(...)`
|
|
46
|
+
* via `getCanopyForBuild()` rather than the bare function.
|
|
47
|
+
*/
|
|
12
48
|
export { buildContentTree } from './content-tree.js';
|
|
49
|
+
/** List all content entries as a flat array. */
|
|
13
50
|
export { listEntries } from './content-listing.js';
|
|
51
|
+
/**
|
|
52
|
+
* Resolve a canopy entry-link to its URL. Pair with the field-walker variants
|
|
53
|
+
* (`resolveEntryLinksInText`, `resolveEntryLinksInData`) when rendering MDX
|
|
54
|
+
* bodies or arbitrary frontmatter that may contain link tokens.
|
|
55
|
+
*/
|
|
14
56
|
export { resolveEntryUrl, resolveEntryLinksInText, resolveEntryLinksInData, extractEntryLinkIds, } from './entry-link-resolver.js';
|
|
57
|
+
/** Compute the canonical URL for an entry given its logical path + slug. */
|
|
15
58
|
export { computeEntryUrl } from './utils/entry-url.js';
|
|
59
|
+
/** Collect static paths for `generateStaticParams` / sitemap emission. */
|
|
16
60
|
export { collectStaticPaths } from './static/index.js';
|
|
61
|
+
/**
|
|
62
|
+
* Start a chokidar-backed watcher that detects divergence between the dev
|
|
63
|
+
* working tree and the resolved branch clone. Dev mode only.
|
|
64
|
+
*/
|
|
17
65
|
export { startDevContentWatcher } from './dev-content-watcher.js';
|
|
18
66
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,aAAa,GACd,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,wCAAwC;AAExC,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,aAAa,GACd,MAAM,UAAU,CAAA;AAGjB;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEnE;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAUrE,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAEjC,yEAAyE;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAEhC;;;;;;;;;GASG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAUjD,gDAAgD;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAI/C;;;;GAIG;AACH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAI9B,4EAA4E;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,0EAA0E;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAI7C;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"//": "@codemirror/language, @lezer/highlight: workaround — @mdxeditor/editor uses cm6-theme-basic-light which peer-requires these but mdxeditor doesn't declare them as dependencies",
|
|
3
3
|
"name": "canopycms",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.42",
|
|
5
5
|
"description": "CanopyCMS core package: schema-driven content, branch-aware editing, and editor UI for Next.js.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|