canopycms 0.0.3 → 0.0.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/api/entries.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,OAAO,KAAK,EAAE,aAAa,EAAmC,MAAM,WAAW,CAAA;AAE/E,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,SAAS,CAAA;AAalE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAIrF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,aAAa,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,cAAc,EAAE,WAAW,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,UAAU,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAA;AA8X9D;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;+BAkBtB,CAAA;AAMF,0CAA0C;AAC1C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAC,CAAA;AA2IF;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;mCAWtB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGf,CAAA"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/api/entries.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,OAAO,KAAK,EAAE,aAAa,EAAmC,MAAM,WAAW,CAAA;AAE/E,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,SAAS,CAAA;AAYlE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAKrF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,aAAa,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,cAAc,EAAE,WAAW,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,UAAU,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAA;AAoT9D;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;+BAkBtB,CAAA;AAMF,0CAA0C;AAC1C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAC,CAAA;AA2IF;;;;GAIG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;mCAWtB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGf,CAAA"}
@@ -8,9 +8,9 @@ import { getFormatExtension } from '../utils/format';
8
8
  import { resolveCollectionPath } from '../content-id-index';
9
9
  import { validateAndNormalizePath, normalizeFilesystemPath, parseSlug, parseLogicalPath, } from '../paths';
10
10
  import { isNotFoundError } from '../utils/error';
11
- import { isValidId } from '../id';
12
11
  import { branchNameSchema, logicalPathSchema } from './validators';
13
12
  import { SchemaOps } from '../schema/schema-store';
13
+ import { parseTypedFilename, sortByOrder } from '../content-listing';
14
14
  // ============================================================================
15
15
  // Zod Schemas for Validation
16
16
  // ============================================================================
@@ -50,68 +50,6 @@ const readTitle = async (filePath, format) => {
50
50
  return undefined;
51
51
  }
52
52
  };
53
- /**
54
- * Sort entries by the collection's order array.
55
- * Items in the order array come first (in order), items not in the array come at the end alphabetically by slug.
56
- * @param entries - The entries to sort
57
- * @param order - The order array (embedded IDs)
58
- * @returns Sorted entries
59
- */
60
- const sortEntriesByOrder = (entries, order) => {
61
- if (!order || order.length === 0) {
62
- // No order defined, sort alphabetically by slug
63
- return entries.sort((a, b) => a.slug.localeCompare(b.slug));
64
- }
65
- // Create a map of contentId to order index
66
- const orderMap = new Map();
67
- order.forEach((id, index) => orderMap.set(id, index));
68
- return entries.sort((a, b) => {
69
- const aIndex = orderMap.get(a.contentId);
70
- const bIndex = orderMap.get(b.contentId);
71
- // Both in order array: sort by order index
72
- if (aIndex !== undefined && bIndex !== undefined) {
73
- return aIndex - bIndex;
74
- }
75
- // Only a is in order: a comes first
76
- if (aIndex !== undefined)
77
- return -1;
78
- // Only b is in order: b comes first
79
- if (bIndex !== undefined)
80
- return 1;
81
- // Neither in order: sort alphabetically by slug
82
- return a.slug.localeCompare(b.slug);
83
- });
84
- };
85
- /**
86
- * Parse a filename: {type}.{slug}.{id}.{ext}
87
- * Returns { type, slug, id } or null if the filename doesn't match the pattern.
88
- */
89
- const parseTypedFilename = (filename, entryTypes) => {
90
- // Remove extension
91
- const lastDot = filename.lastIndexOf('.');
92
- if (lastDot === -1)
93
- return null;
94
- const nameWithoutExt = filename.slice(0, lastDot);
95
- // Parse: {type}.{slug}.{id}
96
- const parts = nameWithoutExt.split('.');
97
- if (parts.length >= 3) {
98
- // Check if first part matches a known entry type
99
- const potentialType = parts[0];
100
- const matchingType = entryTypes.find((e) => e.name === potentialType);
101
- if (matchingType) {
102
- const id = parts[parts.length - 1];
103
- if (!isValidId(id))
104
- return null;
105
- const slug = parts.slice(1, -1).join('.');
106
- return {
107
- type: potentialType,
108
- slug: slug,
109
- id: id,
110
- };
111
- }
112
- }
113
- return null;
114
- };
115
53
  const listCollectionEntries = async (root, collection) => {
116
54
  // Only collections with entries can be listed
117
55
  if (collection.type !== 'collection' || !collection.entries) {
@@ -263,7 +201,7 @@ const listEntriesHandler = async (gc, ctx, req, params) => {
263
201
  try {
264
202
  const items = await listCollectionEntries(root, item);
265
203
  // Sort by collection's order array (items in order first, then alphabetically)
266
- sortEntriesByOrder(items, item.order);
204
+ sortByOrder(items, item.order, (i) => i.slug);
267
205
  for (const entry of items) {
268
206
  // Use the physicalPath for access control
269
207
  const readAccess = await ctx.services.checkContentAccess(branchContext, root, entry.physicalPath, req.user, 'read');
@@ -1 +1 @@
1
- {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/api/entries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,MAAM,MAAM,aAAa,CAAA;AAGhC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,SAAS,EACT,gBAAgB,GACjB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAkDlD,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,MAAc,EAAU,EAAE;IAC7D,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACrD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,KAAK,IAAI,yBAAyB,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,MAAM,CAAC,cAAe,CAAA;AAC/B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,KAAK,EAAE,QAAgB,EAAE,MAAqB,EAA+B,EAAE;IAC/F,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAA;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAA;YACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QACtD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1B,MAAM,gBAAgB,GACnB,MAAM,CAAC,IAAgC,EAAE,KAAK;YAC9C,MAAM,CAAC,IAAgC,EAAE,IAAI,CAAA;QAChD,OAAO,OAAO,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,CACzB,OAAyB,EACzB,KAAyB,EACP,EAAE;IACpB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,gDAAgD;QAChD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;IAErD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAExC,2CAA2C;QAC3C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QAED,oCAAoC;QACpC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAA;QAEnC,oCAAoC;QACpC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,CAAA;QAElC,gDAAgD;QAChD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CACzB,QAAgB,EAChB,UAAsC,EACmB,EAAE;IAC3D,mBAAmB;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACzC,IAAI,OAAO,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/B,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAEjD,4BAA4B;IAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,iDAAiD;QACjD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;QACrE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAClC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzC,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,IAAiB;gBACvB,EAAE,EAAE,EAAe;aACpB,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,KAAK,EACjC,IAAY,EACZ,UAA0B,EACC,EAAE;IAC7B,8CAA8C;IAC9C,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5D,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,OAAqC,CAAA;IAEnE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAA;IACvD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC1C,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,+CAA+C;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;IAE/C,qDAAqD;IACrD,0EAA0E;IAC1E,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAEhF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,yCAAyC;QACzC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACnC,IAAI,OAAiB,CAAA;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAA;QACnC,MAAM,GAAG,CAAA;IACX,CAAC;IAED,wCAAwC;IACxC,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,EAAE;QACV,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAChC;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAE/C,gEAAgE;IAChE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACzD,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAEtD,mDAAmD;QACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACxD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CACV,oDAAoD,IAAI,CAAC,IAAI,0FAA0F,CACxJ,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;QAE3D,sCAAsC;QACtC,iCAAiC;QACjC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;QAClE,MAAM,MAAM,GAAkB,SAAS,EAAE,MAAM,IAAI,MAAM,CAAA;QAEzD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;YACrB,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;SAChC,CAAC,CAAA;QAEF,MAAM,IAAI,GAAmB;YAC3B,mFAAmF;YACnF,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,IAAI,IAAI,EAAiB;YAC/D,SAAS,EAAE,6CAA6C;YACxD,IAAI;YACJ,cAAc,EAAE,UAAU,CAAC,WAAW;YACtC,cAAc,EAAE,UAAU,CAAC,IAAI;YAC/B,MAAM;YACN,SAAS,EAAE,aAAa,IAAI,SAAS;YACrC,YAAY,EAAE,YAA4B;YAC1C,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE,uDAAuD;YACzF,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE,IAAI;SACb,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CACH,CAAA;IAED,sCAAsC;IACtC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,8BAA8B,GAAG,KAAK,EAC1C,IAAY,EACZ,UAAkB,EAClB,eAAiC,EACN,EAAE;IAC7B,+DAA+D;IAC/D,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAClD,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA;IACzF,CAAC,CAAC,CAAA;IAEF,8DAA8D;IAC9D,MAAM,sBAAsB,GAAG,WAAW,CAAC,MAAM,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,OAAO,CACrD,CAAA;IACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CACxE,CAAA;IAED,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,KAAK,EAC9B,EAA8C,EAC9C,GAAe,EACf,GAAe,EACf,MAA+C,EACrB,EAAE;IAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;IAChE,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAA;IACrC,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAA;IAC3C,MAAM,eAAe,GAAG,UAAU,CAAA;IAElC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7F,IAAI,iBAAiB,GAAG,eAAe,CAAA;IAEvC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAA;QACvE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAA;QAClE,CAAC;QACD,iBAAiB,GAAG,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAA;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,CAAA;IACtC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAA;IAE3C,MAAM,OAAO,GAAqB,EAAE,CAAA;IAEpC,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;QAC5B,2EAA2E;QAC3E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,8BAA8B,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;YACrF,oEAAoE;YACpE,gEAAgE;YAChE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,0CAA0C;gBAC1C,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CACtD,aAAa,EACb,IAAI,EACJ,IAAI,CAAC,YAAY,EACjB,GAAG,CAAC,IAAI,EACR,MAAM,CACP,CAAA;gBACD,IAAI,CAAC,UAAU,CAAC,OAAO;oBAAE,SAAQ;gBACjC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CACtD,aAAa,EACb,IAAI,EACJ,IAAI,CAAC,YAAY,EACjB,GAAG,CAAC,IAAI,EACR,MAAM,CACP,CAAA;gBACD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GACZ,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAA;oBAC/E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,SAAQ;oBACV,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;gBACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;YACvD,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;SAAM,CAAC;QACN,2DAA2D;QAC3D,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACrC,wFAAwF;YACxF,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;gBAAE,SAAQ;YAExC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBACrD,+EAA+E;gBAC/E,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBACrC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;oBAC1B,0CAA0C;oBAC1C,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CACtD,aAAa,EACb,IAAI,EACJ,KAAK,CAAC,YAAY,EAClB,GAAG,CAAC,IAAI,EACR,MAAM,CACP,CAAA;oBACD,IAAI,CAAC,UAAU,CAAC,OAAO;wBAAE,SAAQ;oBACjC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CACtD,aAAa,EACb,IAAI,EACJ,KAAK,CAAC,YAAY,EAClB,GAAG,CAAC,IAAI,EACR,MAAM,CACP,CAAA;oBACD,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,QAAQ,GACZ,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAA;wBAClF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC/B,SAAQ;wBACV,CAAC;oBACH,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;gBACzD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;oBACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;gBACvD,CAAC;gBACD,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEvF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;gBAC5B,KAAK;aACN;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAED,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;IACxC,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,uBAAuB;IAC/B,YAAY,EAAE,iBAAiB;IAC/B,QAAQ,EAAE,EAAqB;IAC/B,eAAe,EAAE;QACf,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE;SACV;KACF;IACD,MAAM,EAAE,CAAC,QAAQ,CAAU;IAC3B,OAAO,EAAE,kBAAkB;CAC5B,CAAC,CAAA;AAYF,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,iBAAiB,EAAE,8BAA8B;CAC7D,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAC9B,EAA8C,EAC9C,GAAe,EACf,GAAe,EACf,MAA+C,EACjB,EAAE;IAChC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,CAAA;IAE5B,6CAA6C;IAC7C,wFAAwF;IACxF,+EAA+E;IAC/E,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,uBAAuB,eAAe,CAAC,KAAK,EAAE;SACtD,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAA;IAEtC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,0DAA0D;SAClE,CAAA;IACH,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IAE3C,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,0DAA0D;SAClE,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAA;IAE3C,qCAAqC;IACrC,+CAA+C;IAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,WAAW,KAAK,cAAc,CAC5E,CAAA;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAA;IAClE,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAC3E,MAAM,qBAAqB,GAAG,cAA6B,CAAA;IAC3D,wCAAwC;IACxC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,uBAAuB,UAAU,CAAC,KAAK,EAAE;SACjD,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAiB,CAAA;IAE9C,6DAA6D;IAC7D,IAAI,YAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;QACzF,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAA;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;QAC7D,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;IAChE,CAAC;IAED,iDAAiD;IACjD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CACtD,aAAa,EACb,aAAa,CAAC,UAAU,EACxB,YAAY,EACZ,GAAG,CAAC,IAAI,EACR,MAAM,CACP,CAAA;IACD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,0CAA0C;SAClD,CAAA;IACH,CAAC;IAED,IAAI,CAAC;QACH,gEAAgE;QAChE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;QAEpF,mBAAmB;QACnB,MAAM,YAAY,CAAC,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAA;QAE3D,iEAAiE;QACjE,IAAI,SAAS,IAAI,UAAU,CAAC,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACtE,MAAM,WAAW,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;YAC7F,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAA;YAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAChD,MAAM,WAAW,CAAC,WAAW,CAAC,cAA6B,EAAE,QAAoB,CAAC,CAAA;YACpF,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE;SAC3D,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;QAC7D,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;SACrE,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;IACxC,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,+BAA+B;IACrC,MAAM,EAAE,uBAAuB;IAC/B,YAAY,EAAE,qBAAqB;IACnC,QAAQ,EAAE,EAAyB;IACnC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAClC,MAAM,EAAE,CAAC,QAAQ,CAAU;IAC3B,OAAO,EAAE,kBAAkB;CAC5B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,WAAW;CACX,CAAA"}
1
+ {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/api/entries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Shared content-listing utilities used by both the entries API and the content tree builder.
3
+ *
4
+ * Extracted from api/entries.ts to avoid duplication.
5
+ */
6
+ import type { ContentFormat, FlatSchemaItem, EntryTypeConfig } from './config';
7
+ import type { LogicalPath, PhysicalPath, EntrySlug, ContentId } from './paths/types';
8
+ /**
9
+ * An entry listing item with raw data from the filesystem.
10
+ * Does not include API-specific fields like canEdit.
11
+ */
12
+ export interface CollectionListItem {
13
+ logicalPath: LogicalPath;
14
+ contentId: ContentId;
15
+ slug: EntrySlug;
16
+ collectionPath: LogicalPath;
17
+ collectionName: string;
18
+ format: ContentFormat;
19
+ entryType: string;
20
+ physicalPath: PhysicalPath;
21
+ /** Raw entry data (frontmatter for md/mdx, parsed JSON for json) */
22
+ data: Record<string, unknown>;
23
+ updatedAt?: string;
24
+ }
25
+ /**
26
+ * Read frontmatter (md/mdx) or full JSON data from an entry file.
27
+ * Returns an empty object on read/parse failure.
28
+ */
29
+ export declare const readEntryData: (filePath: string, format: ContentFormat) => Promise<Record<string, unknown>>;
30
+ /**
31
+ * Parse a filename: {type}.{slug}.{id}.{ext}
32
+ * Returns { type, slug, id } or null if the filename doesn't match the pattern.
33
+ */
34
+ export declare const parseTypedFilename: (filename: string, entryTypes: readonly EntryTypeConfig[]) => {
35
+ type: string;
36
+ slug: EntrySlug;
37
+ id: ContentId;
38
+ } | null;
39
+ /**
40
+ * Sort items by a content ID order array.
41
+ * Items in the order array come first (in order), items not in the array come at the end
42
+ * sorted by the provided fallback key.
43
+ */
44
+ export declare const sortByOrder: <T extends {
45
+ contentId?: ContentId;
46
+ }>(items: T[], order: readonly string[] | undefined, fallbackKey: (item: T) => string) => T[];
47
+ /**
48
+ * List all entries in a collection directory.
49
+ * Reads each entry's data (frontmatter or JSON).
50
+ */
51
+ export declare const listCollectionEntries: (root: string, collection: FlatSchemaItem) => Promise<CollectionListItem[]>;
52
+ //# sourceMappingURL=content-listing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-listing.d.ts","sourceRoot":"","sources":["../src/content-listing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAM9E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGpF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,SAAS,CAAA;IACf,cAAc,EAAE,WAAW,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAcD;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,MAAM,EAChB,QAAQ,aAAa,KACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,EAChB,YAAY,SAAS,eAAe,EAAE,KACrC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GAAG,IAyBrD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,EAC7D,OAAO,CAAC,EAAE,EACV,OAAO,SAAS,MAAM,EAAE,GAAG,SAAS,EACpC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,KAC/B,CAAC,EAkBH,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,YAAY,cAAc,KACzB,OAAO,CAAC,kBAAkB,EAAE,CAiF9B,CAAA"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Shared content-listing utilities used by both the entries API and the content tree builder.
3
+ *
4
+ * Extracted from api/entries.ts to avoid duplication.
5
+ */
6
+ import fs from 'node:fs/promises';
7
+ import path from 'node:path';
8
+ import matter from 'gray-matter';
9
+ import { getFormatExtension } from './utils/format';
10
+ import { resolveCollectionPath } from './content-id-index';
11
+ import { validateAndNormalizePath } from './paths';
12
+ import { isNotFoundError } from './utils/error';
13
+ import { isValidId } from './id';
14
+ import { ContentStoreError } from './content-store';
15
+ /**
16
+ * Validate and normalize a path relative to root.
17
+ * Throws ContentStoreError on traversal attempt.
18
+ */
19
+ const normalizePath = (root, target) => {
20
+ const result = validateAndNormalizePath(root, target);
21
+ if (!result.valid) {
22
+ throw new ContentStoreError(result.error || 'Path traversal detected');
23
+ }
24
+ return result.normalizedPath;
25
+ };
26
+ /**
27
+ * Read frontmatter (md/mdx) or full JSON data from an entry file.
28
+ * Returns an empty object on read/parse failure.
29
+ */
30
+ export const readEntryData = async (filePath, format) => {
31
+ try {
32
+ const raw = await fs.readFile(filePath, 'utf8');
33
+ if (format === 'json') {
34
+ const parsed = JSON.parse(raw);
35
+ return parsed;
36
+ }
37
+ const parsed = matter(raw);
38
+ return parsed.data ?? {};
39
+ }
40
+ catch {
41
+ return {};
42
+ }
43
+ };
44
+ /**
45
+ * Parse a filename: {type}.{slug}.{id}.{ext}
46
+ * Returns { type, slug, id } or null if the filename doesn't match the pattern.
47
+ */
48
+ export const parseTypedFilename = (filename, entryTypes) => {
49
+ // Remove extension
50
+ const lastDot = filename.lastIndexOf('.');
51
+ if (lastDot === -1)
52
+ return null;
53
+ const nameWithoutExt = filename.slice(0, lastDot);
54
+ // Parse: {type}.{slug}.{id}
55
+ const parts = nameWithoutExt.split('.');
56
+ if (parts.length >= 3) {
57
+ // Check if first part matches a known entry type
58
+ const potentialType = parts[0];
59
+ const matchingType = entryTypes.find((e) => e.name === potentialType);
60
+ if (matchingType) {
61
+ const id = parts[parts.length - 1];
62
+ if (!isValidId(id))
63
+ return null;
64
+ const slug = parts.slice(1, -1).join('.');
65
+ return {
66
+ type: potentialType,
67
+ slug: slug,
68
+ id: id,
69
+ };
70
+ }
71
+ }
72
+ return null;
73
+ };
74
+ /**
75
+ * Sort items by a content ID order array.
76
+ * Items in the order array come first (in order), items not in the array come at the end
77
+ * sorted by the provided fallback key.
78
+ */
79
+ export const sortByOrder = (items, order, fallbackKey) => {
80
+ if (!order || order.length === 0) {
81
+ return items.sort((a, b) => fallbackKey(a).localeCompare(fallbackKey(b)));
82
+ }
83
+ const orderMap = new Map();
84
+ order.forEach((id, index) => orderMap.set(id, index));
85
+ return items.sort((a, b) => {
86
+ const aIndex = a.contentId ? orderMap.get(a.contentId) : undefined;
87
+ const bIndex = b.contentId ? orderMap.get(b.contentId) : undefined;
88
+ if (aIndex !== undefined && bIndex !== undefined)
89
+ return aIndex - bIndex;
90
+ if (aIndex !== undefined)
91
+ return -1;
92
+ if (bIndex !== undefined)
93
+ return 1;
94
+ return fallbackKey(a).localeCompare(fallbackKey(b));
95
+ });
96
+ };
97
+ /**
98
+ * List all entries in a collection directory.
99
+ * Reads each entry's data (frontmatter or JSON).
100
+ */
101
+ export const listCollectionEntries = async (root, collection) => {
102
+ if (collection.type !== 'collection' || !collection.entries) {
103
+ return [];
104
+ }
105
+ const entryTypes = collection.entries;
106
+ // Build a map of extension to entry types for efficient lookup
107
+ const extToTypes = new Map();
108
+ for (const entryType of entryTypes) {
109
+ const ext = getFormatExtension(entryType.format);
110
+ const existing = extToTypes.get(ext) || [];
111
+ existing.push(entryType);
112
+ extToTypes.set(ext, existing);
113
+ }
114
+ const validExts = Array.from(extToTypes.keys());
115
+ // Resolve the full collection path with embedded IDs
116
+ const collectionRoot = await resolveCollectionPath(root, collection.logicalPath);
117
+ if (!collectionRoot) {
118
+ return [];
119
+ }
120
+ normalizePath(root, collectionRoot);
121
+ let dirents;
122
+ try {
123
+ dirents = await fs.readdir(collectionRoot, { withFileTypes: true });
124
+ }
125
+ catch (err) {
126
+ if (isNotFoundError(err))
127
+ return [];
128
+ throw err;
129
+ }
130
+ const files = dirents
131
+ .filter((d) => d.isFile() &&
132
+ validExts.some((ext) => d.name.endsWith(ext)) &&
133
+ d.name !== '.collection.json')
134
+ .sort((a, b) => a.name.localeCompare(b.name));
135
+ const entries = await Promise.all(files.map(async (file) => {
136
+ const absolutePath = path.join(collectionRoot, file.name);
137
+ const relativePath = normalizePath(root, absolutePath);
138
+ const parsed = parseTypedFilename(file.name, entryTypes);
139
+ if (!parsed) {
140
+ console.warn(`Skipping file with unrecognized filename format: ${file.name} (expected {type}.{slug}.{id}.{ext} with a known entry type and valid 12-char Base58 ID)`);
141
+ return null;
142
+ }
143
+ const { type: entryTypeName, slug, id: contentId } = parsed;
144
+ const entryType = entryTypes.find((e) => e.name === entryTypeName);
145
+ const format = entryType?.format || 'json';
146
+ const [stats, data] = await Promise.all([
147
+ fs.stat(absolutePath),
148
+ readEntryData(absolutePath, format),
149
+ ]);
150
+ const item = {
151
+ logicalPath: `${collection.logicalPath}/${slug}`,
152
+ contentId,
153
+ slug,
154
+ collectionPath: collection.logicalPath,
155
+ collectionName: collection.name,
156
+ format,
157
+ entryType: entryTypeName || 'default',
158
+ physicalPath: relativePath,
159
+ data,
160
+ updatedAt: stats.mtime.toISOString(),
161
+ };
162
+ return item;
163
+ }));
164
+ return entries.filter((e) => e !== null);
165
+ };
166
+ //# sourceMappingURL=content-listing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-listing.js","sourceRoot":"","sources":["../src/content-listing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Content tree builder for adopters.
3
+ *
4
+ * Walks the schema + filesystem and returns a tree of content nodes that
5
+ * adopters can use for navigation, sitemaps, search indexes, breadcrumbs, etc.
6
+ *
7
+ * Nodes carry Canopy's structural facts (logicalPath, contentId, collection
8
+ * metadata, entry metadata). Display concerns like labels are left to the
9
+ * adopter via the `extract` callback.
10
+ */
11
+ import type { FlatSchemaItem, ContentFormat } from './config';
12
+ import type { LogicalPath, ContentId, EntrySlug } from './paths/types';
13
+ export interface ContentTreeNode<T = unknown> {
14
+ /** URL path, e.g. "/docs/getting-started". Computed by buildPath option. */
15
+ path: string;
16
+ /** Logical CMS path */
17
+ logicalPath: LogicalPath;
18
+ /** 'collection' or 'entry' */
19
+ kind: 'collection' | 'entry';
20
+ /** Content ID (collections from schema, entries from filename) */
21
+ contentId?: ContentId;
22
+ /** Collection metadata — present when kind === 'collection' */
23
+ collection?: {
24
+ name: string;
25
+ label?: string;
26
+ };
27
+ /** Entry metadata — present when kind === 'entry' */
28
+ entry?: {
29
+ slug: EntrySlug;
30
+ entryType: string;
31
+ format: ContentFormat;
32
+ /** Raw entry data (frontmatter for md/mdx, parsed JSON for json). */
33
+ data: Record<string, unknown>;
34
+ };
35
+ /** Adopter-extracted custom fields from the extract callback */
36
+ fields?: T;
37
+ /** Children (entries + subcollections interleaved by order array) */
38
+ children?: ContentTreeNode<T>[];
39
+ }
40
+ export interface BuildContentTreeOptions<T = unknown> {
41
+ /** Starting collection path. Defaults to content root. */
42
+ rootPath?: string;
43
+ /**
44
+ * Extract typed custom fields from each node's raw data.
45
+ * For entries: data is frontmatter (md/mdx) or parsed JSON.
46
+ * For collections: data is `{ name, label }` from the schema.
47
+ */
48
+ extract?: (data: Record<string, unknown>, node: {
49
+ kind: 'collection' | 'entry';
50
+ logicalPath: LogicalPath;
51
+ }) => T;
52
+ /**
53
+ * Filter: return false to exclude a node and its descendants.
54
+ * Runs after extract, so `fields` is available.
55
+ */
56
+ filter?: (node: ContentTreeNode<T>) => boolean;
57
+ /** Custom URL path builder. Default: strips content root prefix, joins with /. */
58
+ buildPath?: (logicalPath: LogicalPath, kind: 'collection' | 'entry') => string;
59
+ /**
60
+ * Custom sort for children at each level.
61
+ * When provided, replaces the default sort (order array → alphabetical).
62
+ * Runs after extract + filter, so `fields` is available.
63
+ */
64
+ sort?: (a: ContentTreeNode<T>, b: ContentTreeNode<T>) => number;
65
+ /** Max depth to traverse. Default: unlimited. */
66
+ maxDepth?: number;
67
+ }
68
+ /**
69
+ * Build a content tree from a flattened schema and the filesystem.
70
+ *
71
+ * @param branchRoot - Absolute path to the branch workspace root
72
+ * @param flatSchema - Flattened schema items (from flattenSchema)
73
+ * @param contentRootName - The content root name (e.g. "content")
74
+ * @param options - Tree-building options
75
+ */
76
+ export declare function buildContentTree<T = unknown>(branchRoot: string, flatSchema: FlatSchemaItem[], contentRootName: string, options?: BuildContentTreeOptions<T>): Promise<ContentTreeNode<T>[]>;
77
+ //# sourceMappingURL=content-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-tree.d.ts","sourceRoot":"","sources":["../src/content-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAOtE,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,8BAA8B;IAC9B,IAAI,EAAE,YAAY,GAAG,OAAO,CAAA;IAC5B,kEAAkE;IAClE,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,+DAA+D;IAC/D,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,qDAAqD;IACrD,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,SAAS,CAAA;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,aAAa,CAAA;QACrB,qEAAqE;QACrE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9B,CAAA;IACD,gEAAgE;IAChE,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,qEAAqE;IACrE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,OAAO;IAClD,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE;QAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;QAAC,WAAW,EAAE,WAAW,CAAA;KAAE,KAC7D,CAAC,CAAA;IACN;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,OAAO,CAAA;IAC9C,kFAAkF;IAClF,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,KAAK,MAAM,CAAA;IAC9E;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,CAAA;IAC/D,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAgCD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAChD,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,EAAE,EAC5B,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAmG/B"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Content tree builder for adopters.
3
+ *
4
+ * Walks the schema + filesystem and returns a tree of content nodes that
5
+ * adopters can use for navigation, sitemaps, search indexes, breadcrumbs, etc.
6
+ *
7
+ * Nodes carry Canopy's structural facts (logicalPath, contentId, collection
8
+ * metadata, entry metadata). Display concerns like labels are left to the
9
+ * adopter via the `extract` callback.
10
+ */
11
+ import { listCollectionEntries, sortByOrder } from './content-listing';
12
+ /** Group flat schema items by parentPath for O(1) child lookup. */
13
+ const groupByParent = (flat) => {
14
+ const map = new Map();
15
+ for (const item of flat) {
16
+ if (item.type !== 'collection')
17
+ continue;
18
+ const key = item.parentPath;
19
+ if (!map.has(key))
20
+ map.set(key, []);
21
+ map.get(key).push(item);
22
+ }
23
+ return map;
24
+ };
25
+ /** Default path builder: strips the content root prefix and prepends /. */
26
+ const defaultBuildPath = (logicalPath, contentRootName) => {
27
+ const prefix = contentRootName ? `${contentRootName}/` : '';
28
+ const stripped = prefix && logicalPath.startsWith(prefix) ? logicalPath.slice(prefix.length) : logicalPath;
29
+ return stripped ? `/${stripped}` : '/';
30
+ };
31
+ // ---------------------------------------------------------------------------
32
+ // Core builder
33
+ // ---------------------------------------------------------------------------
34
+ /**
35
+ * Build a content tree from a flattened schema and the filesystem.
36
+ *
37
+ * @param branchRoot - Absolute path to the branch workspace root
38
+ * @param flatSchema - Flattened schema items (from flattenSchema)
39
+ * @param contentRootName - The content root name (e.g. "content")
40
+ * @param options - Tree-building options
41
+ */
42
+ export async function buildContentTree(branchRoot, flatSchema, contentRootName, options) {
43
+ const childrenByParent = groupByParent(flatSchema);
44
+ const extract = options?.extract;
45
+ const filter = options?.filter;
46
+ const buildPath = options?.buildPath ?? ((lp) => defaultBuildPath(lp, contentRootName));
47
+ const customSort = options?.sort;
48
+ const maxDepth = options?.maxDepth;
49
+ // Find the starting collection(s)
50
+ const rootPath = options?.rootPath ?? contentRootName;
51
+ const rootCollection = flatSchema.find((item) => item.type === 'collection' && item.logicalPath === rootPath);
52
+ if (!rootCollection)
53
+ return [];
54
+ const buildNode = async (collection, depth) => {
55
+ // Build collection node (before children, so filter can reject early)
56
+ const collectionData = {
57
+ name: collection.name,
58
+ label: collection.label,
59
+ };
60
+ const node = {
61
+ path: buildPath(collection.logicalPath, 'collection'),
62
+ logicalPath: collection.logicalPath,
63
+ kind: 'collection',
64
+ contentId: collection.contentId,
65
+ collection: {
66
+ name: collection.name,
67
+ label: collection.label,
68
+ },
69
+ };
70
+ if (extract) {
71
+ node.fields = extract(collectionData, {
72
+ kind: 'collection',
73
+ logicalPath: collection.logicalPath,
74
+ });
75
+ }
76
+ if (filter && !filter(node))
77
+ return null;
78
+ // If at max depth, return collection without children
79
+ if (maxDepth !== undefined && depth >= maxDepth)
80
+ return node;
81
+ // Gather child collections and entries in parallel
82
+ const childCollections = childrenByParent.get(collection.logicalPath) ?? [];
83
+ const [childCollectionNodes, entries] = await Promise.all([
84
+ Promise.all(childCollections.map((child) => buildNode(child, depth + 1))),
85
+ listCollectionEntries(branchRoot, collection),
86
+ ]);
87
+ // Build entry nodes
88
+ const entryNodes = [];
89
+ for (const entry of entries) {
90
+ const entryNode = buildEntryNode(entry, buildPath, extract);
91
+ if (filter && !filter(entryNode))
92
+ continue;
93
+ entryNodes.push(entryNode);
94
+ }
95
+ // Combine and interleave by order array (or custom sort)
96
+ const allChildren = interleaveChildren(childCollectionNodes.filter((n) => n !== null), entryNodes, collection.order, customSort);
97
+ // Prune empty collections (no children after filtering)
98
+ if (allChildren.length === 0)
99
+ return null;
100
+ node.children = allChildren;
101
+ return node;
102
+ };
103
+ // Start from root's children (don't include the root collection itself)
104
+ const topLevelCollections = childrenByParent.get(rootCollection.logicalPath) ?? [];
105
+ // Also get entries directly in the root collection
106
+ const [collectionNodes, rootEntries] = await Promise.all([
107
+ Promise.all(topLevelCollections.map((child) => buildNode(child, 1))),
108
+ listCollectionEntries(branchRoot, rootCollection),
109
+ ]);
110
+ const rootEntryNodes = [];
111
+ for (const entry of rootEntries) {
112
+ const entryNode = buildEntryNode(entry, buildPath, extract);
113
+ if (filter && !filter(entryNode))
114
+ continue;
115
+ rootEntryNodes.push(entryNode);
116
+ }
117
+ return interleaveChildren(collectionNodes.filter((n) => n !== null), rootEntryNodes, rootCollection.order, customSort);
118
+ }
119
+ /** Build a ContentTreeNode for an entry. */
120
+ function buildEntryNode(entry, buildPath, extract) {
121
+ const node = {
122
+ path: buildPath(entry.logicalPath, 'entry'),
123
+ logicalPath: entry.logicalPath,
124
+ kind: 'entry',
125
+ contentId: entry.contentId,
126
+ entry: {
127
+ slug: entry.slug,
128
+ entryType: entry.entryType,
129
+ format: entry.format,
130
+ data: entry.data,
131
+ },
132
+ };
133
+ if (extract) {
134
+ node.fields = extract(entry.data, {
135
+ kind: 'entry',
136
+ logicalPath: entry.logicalPath,
137
+ });
138
+ }
139
+ return node;
140
+ }
141
+ /**
142
+ * Interleave collection nodes and entry nodes.
143
+ * When a custom sort is provided, it replaces the default order-array sort entirely.
144
+ * Otherwise: items in the order array come first (by position), then the rest alphabetically.
145
+ */
146
+ function interleaveChildren(collectionNodes, entryNodes, order, customSort) {
147
+ const all = [...collectionNodes, ...entryNodes];
148
+ if (customSort) {
149
+ return all.sort(customSort);
150
+ }
151
+ return sortByOrder(all, order, (item) => item.kind === 'collection' ? (item.collection?.name ?? '') : (item.entry?.slug ?? ''));
152
+ }
153
+ //# sourceMappingURL=content-tree.js.map
@@ -0,0 +1 @@
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,5 +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
4
  export interface CanopyContextOptions {
4
5
  services: CanopyServices;
5
6
  /**
@@ -21,6 +22,8 @@ export interface CanopyContext {
21
22
  data: T;
22
23
  path: string;
23
24
  }>;
25
+ /** Build a content tree from the schema and filesystem entries. */
26
+ buildContentTree: <T = unknown>(options?: BuildContentTreeOptions<T>) => Promise<ContentTreeNode<T>[]>;
24
27
  /** Underlying services */
25
28
  services: CanopyServices;
26
29
  /** Current authenticated user */
@@ -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;AAMhD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAA;IACxB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,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,0BAA0B;IAC1B,QAAQ,EAAE,cAAc,CAAA;IAExB,iCAAiC;IACjC,IAAI,EAAE,UAAU,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB;sBAsBlC,OAAO,CAAC,aAAa,CAAC;;EA2CpD"}
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;AAMhD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAA;AAEvB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAA;IACxB;;;;;OAKG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,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,mEAAmE;IACnE,gBAAgB,EAAE,CAAC,CAAC,GAAG,OAAO,EAC5B,OAAO,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,KACjC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAElC,0BAA0B;IAC1B,QAAQ,EAAE,cAAc,CAAA;IAExB,iCAAiC;IACjC,IAAI,EAAE,UAAU,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB;sBAsBlC,OAAO,CAAC,aAAa,CAAC;;EAkEpD"}
package/dist/context.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { isDeployedStatic, isBuildMode, STATIC_DEPLOY_USER } from './build-mode';
2
2
  import { createContentReader } from './content-reader';
3
- import { createLogicalPath, parseSlug } from './paths';
3
+ import { createLogicalPath, parseSlug, resolveBranchPaths } from './paths';
4
+ import { loadBranchContext } from './branch-workspace';
5
+ import { buildContentTree as buildContentTreeImpl, } from './content-tree';
4
6
  /**
5
7
  * Create a Canopy context that manages auth + content reading.
6
8
  * Framework-agnostic - the adapter provides the extractUser function.
@@ -55,8 +57,24 @@ export function createCanopyContext(options) {
55
57
  };
56
58
  return baseReader.read(readInput);
57
59
  };
60
+ const buildContentTree = async (options) => {
61
+ const operatingMode = services.config.mode;
62
+ const defaultBranch = services.config.defaultBaseBranch ?? 'main';
63
+ const branchContext = await loadBranchContext({
64
+ branchName: defaultBranch,
65
+ mode: operatingMode,
66
+ });
67
+ if (!branchContext) {
68
+ return [];
69
+ }
70
+ const { branchRoot } = resolveBranchPaths(branchContext, operatingMode);
71
+ const contentRootName = services.config.contentRoot || 'content';
72
+ const { flatSchema } = await services.branchSchemaCache.getSchema(branchRoot, services.entrySchemaRegistry, contentRootName);
73
+ return buildContentTreeImpl(branchRoot, flatSchema, contentRootName, options);
74
+ };
58
75
  return {
59
76
  read,
77
+ buildContentTree,
60
78
  services,
61
79
  user,
62
80
  };
@@ -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,SAAS,EAAkB,MAAM,SAAS,CAAA;AA6BtE;;;;;;;;;;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,IAA2B,CAAA;YAC/B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBACjD,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,IAAiB,CAAA;YACrC,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,OAAO;YACL,IAAI;YACJ,QAAQ;YACR,IAAI;SACL,CAAA;IACH,CAAC,CAAA;IAED,OAAO;QACL,UAAU;QACV,QAAQ;KACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAM9E,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAmJD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2CtD,CAAA;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"MarkdownField.d.ts","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAM9E,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAwJD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2CtD,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import React, { Suspense, useId, useRef, useCallback, useEffect } from 'react';
3
3
  import { Text, Textarea } from '@mantine/core';
4
4
  const MDXEditorLazy = React.lazy(async () => {
5
- const [{ MDXEditor }, { headingsPlugin, listsPlugin, quotePlugin, thematicBreakPlugin, markdownShortcutPlugin, linkPlugin, linkDialogPlugin, tablePlugin, toolbarPlugin, codeBlockPlugin, codeMirrorPlugin, BoldItalicUnderlineToggles, BlockTypeSelect, ListsToggle, CreateLink, InsertTable, InsertThematicBreak, CodeToggle, InsertCodeBlock, UndoRedo, Separator, },] = await Promise.all([import('@mdxeditor/editor'), import('@mdxeditor/editor')]);
5
+ const [{ MDXEditor }, { headingsPlugin, listsPlugin, quotePlugin, thematicBreakPlugin, markdownShortcutPlugin, linkPlugin, linkDialogPlugin, imagePlugin, tablePlugin, toolbarPlugin, codeBlockPlugin, codeMirrorPlugin, BoldItalicUnderlineToggles, BlockTypeSelect, ListsToggle, CreateLink, InsertImage, InsertTable, InsertThematicBreak, CodeToggle, InsertCodeBlock, UndoRedo, Separator, },] = await Promise.all([import('@mdxeditor/editor'), import('@mdxeditor/editor')]);
6
6
  const WrappedEditor = ({ markdown, onChange, editorRef }) => {
7
7
  return (_jsx(MDXEditor, { ref: editorRef, markdown: markdown, onChange: onChange, plugins: [
8
8
  headingsPlugin(),
@@ -12,6 +12,7 @@ const MDXEditorLazy = React.lazy(async () => {
12
12
  markdownShortcutPlugin(),
13
13
  linkPlugin(),
14
14
  linkDialogPlugin(),
15
+ imagePlugin(),
15
16
  tablePlugin(),
16
17
  codeBlockPlugin({ defaultCodeBlockLanguage: '' }),
17
18
  codeMirrorPlugin({
@@ -31,7 +32,7 @@ const MDXEditorLazy = React.lazy(async () => {
31
32
  },
32
33
  }),
33
34
  toolbarPlugin({
34
- toolbarContents: () => (_jsxs(_Fragment, { children: [_jsx(UndoRedo, {}), _jsx(Separator, {}), _jsx(BoldItalicUnderlineToggles, {}), _jsx(CodeToggle, {}), _jsx(Separator, {}), _jsx(BlockTypeSelect, {}), _jsx(Separator, {}), _jsx(ListsToggle, {}), _jsx(Separator, {}), _jsx(CreateLink, {}), _jsx(InsertTable, {}), _jsx(InsertThematicBreak, {}), _jsx(InsertCodeBlock, {})] })),
35
+ toolbarContents: () => (_jsxs(_Fragment, { children: [_jsx(UndoRedo, {}), _jsx(Separator, {}), _jsx(BoldItalicUnderlineToggles, {}), _jsx(CodeToggle, {}), _jsx(Separator, {}), _jsx(BlockTypeSelect, {}), _jsx(Separator, {}), _jsx(ListsToggle, {}), _jsx(Separator, {}), _jsx(CreateLink, {}), _jsx(InsertImage, {}), _jsx(InsertTable, {}), _jsx(InsertThematicBreak, {}), _jsx(InsertCodeBlock, {})] })),
35
36
  }),
36
37
  ], contentEditableClassName: "canopy-mdx-content" }));
37
38
  };
@@ -70,6 +71,7 @@ const EditorContentStyles = () => (_jsx("style", { children: `
70
71
  .canopy-mdx-content hr { border: none; border-top: 1px solid var(--mantine-color-gray-4, #ced4da); margin: 1em 0; }
71
72
  .canopy-mdx-content p { margin: 0.75em 0; }
72
73
  .canopy-mdx-content a { color: var(--mantine-color-blue-6, #228be6); text-decoration: underline; }
74
+ .canopy-mdx-content img { max-width: 100%; height: auto; }
73
75
  ` }));
74
76
  const FallbackTextarea = ({ value, onChange, }) => (_jsx(Textarea, { value: value, onChange: (e) => onChange(e.currentTarget.value), placeholder: "Loading markdown editor...", autosize: true, minRows: 6, size: "sm", readOnly: true }));
75
77
  export const MarkdownField = ({ id, label, value, onChange, dataCanopyField, }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownField.js","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownField.js","sourceRoot":"","sources":["../../../src/editor/fields/MarkdownField.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export type { AuthPlugin, AuthPluginFactory } from './auth/plugin';
8
8
  export type { UserSearchResult, GroupMetadata, AuthenticationResult } from './auth/types';
9
9
  export { isCanopyRequest, isHeadersLike, extractHeaders, validateAuthContext, } from './auth/context-helpers';
10
10
  export type { HeadersLike } from './auth/context-helpers';
11
+ export type { ContentTreeNode, BuildContentTreeOptions } from './content-tree';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/server.d.ts CHANGED
@@ -10,4 +10,6 @@ export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMe
10
10
  export type { CollectionMeta, RootCollectionMeta } from './schema';
11
11
  export { createEntrySchemaRegistry, validateEntrySchemaRegistry } from './entry-schema-registry';
12
12
  export { generateId, isValidId } from './id';
13
+ export { buildContentTree } from './content-tree';
14
+ export type { ContentTreeNode, BuildContentTreeOptions } from './content-tree';
13
15
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","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;AACjB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA"}
1
+ {"version":3,"file":"server.d.ts","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;AACjB,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClE,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/server.js CHANGED
@@ -9,4 +9,5 @@ export * from './content-store';
9
9
  export { loadCollectionMetaFiles, resolveCollectionReferences, watchCollectionMetaFiles, resolveSchema, } from './schema';
10
10
  export { createEntrySchemaRegistry, validateEntrySchemaRegistry } from './entry-schema-registry';
11
11
  export { generateId, isValidId } from './id';
12
+ export { buildContentTree } from './content-tree';
12
13
  //# sourceMappingURL=server.js.map
@@ -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;AAEjB,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA"}
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;AAEjB,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "canopycms",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "CanopyCMS core package: schema-driven content, branch-aware editing, and editor UI for Next.js.",
5
5
  "license": "MIT",
6
6
  "repository": {