cmssy-cli 0.19.6 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ import ora from "ora";
6
6
  import path from "path";
7
7
  import semver from "semver";
8
8
  import { hasConfig, loadConfig } from "../utils/config.js";
9
- import { PUBLISH_PACKAGE_MUTATION, IMPORT_BLOCK_MUTATION, } from "../utils/graphql.js";
9
+ import { PUBLISH_PACKAGE_MUTATION, IMPORT_BLOCK_MUTATION, IMPORT_TEMPLATE_MUTATION, } from "../utils/graphql.js";
10
10
  import { loadBlockConfig, } from "../utils/block-config.js";
11
11
  export async function publishCommand(packageNames = [], options) {
12
12
  console.log(chalk.blue.bold("\nšŸ“¦ Cmssy - Publish\n"));
@@ -59,7 +59,42 @@ export async function publishCommand(packageNames = [], options) {
59
59
  process.exit(1);
60
60
  }
61
61
  // Scan for packages to publish
62
- const packages = await scanPackages(packageNames, options);
62
+ let packages = await scanPackages(packageNames, options);
63
+ // Auto-detect and add template dependencies (blocks used in pages.json)
64
+ // Only for workspace publish, not marketplace
65
+ if (options.workspace) {
66
+ const templatesToProcess = packages.filter((p) => p.type === "template");
67
+ for (const template of templatesToProcess) {
68
+ const pagesJsonPath = path.join(template.path, "pages.json");
69
+ const requiredBlockTypes = extractBlockTypesFromPagesJson(pagesJsonPath);
70
+ if (requiredBlockTypes.length > 0) {
71
+ // Find which blocks exist in the project
72
+ const availableBlocks = findProjectBlocks(requiredBlockTypes);
73
+ // Check which blocks are not already in the packages list
74
+ const existingBlockNames = packages
75
+ .filter((p) => p.type === "block")
76
+ .map((p) => p.name);
77
+ const missingBlocks = availableBlocks.filter((b) => !existingBlockNames.includes(b));
78
+ if (missingBlocks.length > 0) {
79
+ console.log(chalk.cyan(`\nšŸ“¦ Auto-detected dependencies for ${template.name}:\n`));
80
+ missingBlocks.forEach((b) => console.log(chalk.gray(` • ${b}`)));
81
+ console.log("");
82
+ // Scan and add missing blocks
83
+ const dependencyPackages = await scanPackages(missingBlocks, {
84
+ ...options,
85
+ all: false,
86
+ });
87
+ // Insert dependencies BEFORE the template
88
+ const templateIndex = packages.findIndex((p) => p.name === template.name);
89
+ packages = [
90
+ ...packages.slice(0, templateIndex),
91
+ ...dependencyPackages,
92
+ ...packages.slice(templateIndex),
93
+ ];
94
+ }
95
+ }
96
+ }
97
+ }
63
98
  if (packages.length === 0) {
64
99
  console.log(chalk.yellow("⚠ No packages found to publish\n"));
65
100
  if (packageNames.length > 0) {
@@ -226,6 +261,61 @@ export async function publishCommand(packageNames = [], options) {
226
261
  console.log(chalk.yellow(`⚠ ${successCount} succeeded, ${errorCount} failed\n`));
227
262
  }
228
263
  }
264
+ /**
265
+ * Extract block type names from pages.json (pages + layoutSlots)
266
+ * @example "@cmssy-marketing/blocks.hero" -> "hero"
267
+ */
268
+ function extractBlockTypesFromPagesJson(pagesJsonPath) {
269
+ if (!fs.existsSync(pagesJsonPath)) {
270
+ return [];
271
+ }
272
+ const pagesData = fs.readJsonSync(pagesJsonPath);
273
+ const blockTypes = new Set();
274
+ // Extract from pages
275
+ for (const page of pagesData.pages || []) {
276
+ for (const block of page.blocks || []) {
277
+ if (block.type) {
278
+ // Convert full name to simple type: "@scope/blocks.hero" -> "hero"
279
+ let blockType = block.type;
280
+ if (blockType.includes("/")) {
281
+ blockType = blockType.split("/").pop();
282
+ }
283
+ if (blockType.startsWith("blocks.")) {
284
+ blockType = blockType.substring(7);
285
+ }
286
+ blockTypes.add(blockType);
287
+ }
288
+ }
289
+ }
290
+ // Extract from layoutSlots
291
+ for (const [_slot, data] of Object.entries(pagesData.layoutSlots || {})) {
292
+ if (data.type) {
293
+ let blockType = data.type;
294
+ if (blockType.includes("/")) {
295
+ blockType = blockType.split("/").pop();
296
+ }
297
+ if (blockType.startsWith("blocks.")) {
298
+ blockType = blockType.substring(7);
299
+ }
300
+ blockTypes.add(blockType);
301
+ }
302
+ }
303
+ return Array.from(blockTypes);
304
+ }
305
+ /**
306
+ * Find which blocks from a list exist in the project's blocks/ directory
307
+ */
308
+ function findProjectBlocks(blockTypes) {
309
+ const blocksDir = path.join(process.cwd(), "blocks");
310
+ if (!fs.existsSync(blocksDir)) {
311
+ return [];
312
+ }
313
+ const existingBlocks = fs
314
+ .readdirSync(blocksDir, { withFileTypes: true })
315
+ .filter((d) => d.isDirectory())
316
+ .map((d) => d.name);
317
+ return blockTypes.filter((bt) => existingBlocks.includes(bt));
318
+ }
229
319
  async function scanPackages(packageNames, options) {
230
320
  const packages = [];
231
321
  // Scan blocks
@@ -523,7 +613,7 @@ async function publishToMarketplace(pkg, apiToken, apiUrl) {
523
613
  }
524
614
  }
525
615
  async function publishToWorkspace(pkg, workspaceId, apiToken, apiUrl) {
526
- const { packageJson, path: packagePath, blockConfig } = pkg;
616
+ const { packageJson, path: packagePath, blockConfig, type: packageType } = pkg;
527
617
  // Use blockConfig if available, fallback to package.json cmssy
528
618
  const metadata = blockConfig || packageJson.cmssy || {};
529
619
  // Generate block_type from package name
@@ -558,6 +648,7 @@ async function publishToWorkspace(pkg, workspaceId, apiToken, apiUrl) {
558
648
  sourceRegistry: "local",
559
649
  sourceItem: packageJson.name,
560
650
  version: packageJson.version || "1.0.0",
651
+ packageType, // "block" or "template"
561
652
  };
562
653
  // Add layoutSlot if defined (for header/footer blocks)
563
654
  if (blockConfig?.layoutSlot) {
@@ -567,6 +658,10 @@ async function publishToWorkspace(pkg, workspaceId, apiToken, apiUrl) {
567
658
  if (blockConfig?.requires) {
568
659
  input.requires = blockConfig.requires;
569
660
  }
661
+ // Check if this is a template with pages.json
662
+ const isTemplate = packageType === "template";
663
+ const pagesJsonPath = path.join(packagePath, "pages.json");
664
+ const hasPagesJson = isTemplate && fs.existsSync(pagesJsonPath);
570
665
  // Create client with workspace header
571
666
  const client = new GraphQLClient(apiUrl, {
572
667
  headers: {
@@ -587,17 +682,67 @@ async function publishToWorkspace(pkg, workspaceId, apiToken, apiUrl) {
587
682
  "Check backend logs for more details."));
588
683
  }, TIMEOUT_MS);
589
684
  });
590
- const requestPromise = client.request(IMPORT_BLOCK_MUTATION, { input });
591
- try {
592
- const result = await Promise.race([requestPromise, timeoutPromise]);
593
- clearTimeout(timeoutId); // Clear timeout so Node can exit immediately
594
- if (!result.importBlock) {
595
- throw new Error("Failed to import block to workspace");
685
+ // Use different mutation for templates with pages
686
+ if (hasPagesJson) {
687
+ // Load pages.json for template
688
+ const pagesData = fs.readJsonSync(pagesJsonPath);
689
+ // Convert pages.json format to mutation input format
690
+ const pages = (pagesData.pages || []).map((page) => ({
691
+ name: page.name,
692
+ slug: page.slug,
693
+ blocks: (page.blocks || []).map((block) => ({
694
+ type: block.type,
695
+ content: block.content || {},
696
+ })),
697
+ }));
698
+ // Convert layoutSlots to array format
699
+ const layoutSlots = [];
700
+ if (pagesData.layoutSlots) {
701
+ for (const [slot, data] of Object.entries(pagesData.layoutSlots)) {
702
+ layoutSlots.push({
703
+ slot,
704
+ type: data.type,
705
+ content: data.content || {},
706
+ });
707
+ }
708
+ }
709
+ // Add pages and layout slots to input
710
+ input.pages = pages;
711
+ input.layoutSlots = layoutSlots;
712
+ // Remove packageType - ImportTemplateInput doesn't have this field
713
+ // (backend sets package_type="template" automatically for templates)
714
+ delete input.packageType;
715
+ const requestPromise = client.request(IMPORT_TEMPLATE_MUTATION, { input });
716
+ try {
717
+ const result = await Promise.race([requestPromise, timeoutPromise]);
718
+ clearTimeout(timeoutId);
719
+ if (!result.importTemplate?.success) {
720
+ throw new Error(result.importTemplate?.message || "Failed to import template to workspace");
721
+ }
722
+ // Log template import summary
723
+ const { pagesCreated, pagesUpdated, layoutSlotsCreated, layoutSlotsUpdated } = result.importTemplate;
724
+ console.log(chalk.gray(` └─ ${pagesCreated} pages created, ${pagesUpdated} updated | ` +
725
+ `${layoutSlotsCreated} layout slots created, ${layoutSlotsUpdated} updated`));
726
+ }
727
+ catch (error) {
728
+ clearTimeout(timeoutId);
729
+ throw error;
596
730
  }
597
731
  }
598
- catch (error) {
599
- clearTimeout(timeoutId); // Clear timeout on error too
600
- throw error;
732
+ else {
733
+ // Standard block import
734
+ const requestPromise = client.request(IMPORT_BLOCK_MUTATION, { input });
735
+ try {
736
+ const result = await Promise.race([requestPromise, timeoutPromise]);
737
+ clearTimeout(timeoutId);
738
+ if (!result.importBlock) {
739
+ throw new Error("Failed to import block to workspace");
740
+ }
741
+ }
742
+ catch (error) {
743
+ clearTimeout(timeoutId);
744
+ throw error;
745
+ }
601
746
  }
602
747
  }
603
748
  // Helper: Convert block.config.ts schema to schemaFields array
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,18 @@ let blocks = [];
4
4
  let previewData = {};
5
5
  let eventSource = null;
6
6
 
7
+ // Filters state
8
+ let filters = {
9
+ search: '',
10
+ type: 'all',
11
+ category: '',
12
+ tags: []
13
+ };
14
+
15
+ // Available categories and tags (populated from blocks)
16
+ let availableCategories = [];
17
+ let availableTags = [];
18
+
7
19
  // Initialize app
8
20
  async function init() {
9
21
  await loadBlocks();
@@ -15,6 +27,7 @@ async function loadBlocks() {
15
27
  try {
16
28
  const response = await fetch('/api/blocks');
17
29
  blocks = await response.json();
30
+ populateFilters();
18
31
  renderBlocksList();
19
32
  } catch (error) {
20
33
  console.error('Failed to load blocks:', error);
@@ -26,6 +39,170 @@ async function loadBlocks() {
26
39
  }
27
40
  }
28
41
 
42
+ // Populate filter options from loaded blocks
43
+ function populateFilters() {
44
+ // Extract unique categories
45
+ const categoriesSet = new Set();
46
+ const tagsSet = new Set();
47
+
48
+ blocks.forEach(block => {
49
+ if (block.category) {
50
+ categoriesSet.add(block.category);
51
+ }
52
+ if (block.tags && Array.isArray(block.tags)) {
53
+ block.tags.forEach(tag => tagsSet.add(tag));
54
+ }
55
+ });
56
+
57
+ availableCategories = Array.from(categoriesSet).sort();
58
+ availableTags = Array.from(tagsSet).sort();
59
+
60
+ // Populate category dropdown
61
+ const categorySelect = document.getElementById('category-filter');
62
+ if (categorySelect) {
63
+ categorySelect.innerHTML = '<option value="">All Categories</option>';
64
+ availableCategories.forEach(cat => {
65
+ const option = document.createElement('option');
66
+ option.value = cat;
67
+ option.textContent = cat;
68
+ categorySelect.appendChild(option);
69
+ });
70
+ }
71
+
72
+ // Populate tags filter
73
+ const tagsContainer = document.getElementById('tags-filter');
74
+ if (tagsContainer) {
75
+ if (availableTags.length === 0) {
76
+ tagsContainer.style.display = 'none';
77
+ } else {
78
+ tagsContainer.style.display = 'flex';
79
+ tagsContainer.innerHTML = availableTags.map(tag => `
80
+ <button
81
+ type="button"
82
+ class="tag-chip ${filters.tags.includes(tag) ? 'active' : ''}"
83
+ data-tag="${escapeHtml(tag)}"
84
+ onclick="toggleTagFilter('${escapeHtml(tag)}')"
85
+ >${escapeHtml(tag)}</button>
86
+ `).join('');
87
+
88
+ // Add clear button if any filters active
89
+ if (hasActiveFilters()) {
90
+ tagsContainer.innerHTML += `
91
+ <button type="button" class="clear-filters" onclick="clearAllFilters()">
92
+ Clear all
93
+ </button>
94
+ `;
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ // Check if any filters are active
101
+ function hasActiveFilters() {
102
+ return filters.search !== '' ||
103
+ filters.type !== 'all' ||
104
+ filters.category !== '' ||
105
+ filters.tags.length > 0;
106
+ }
107
+
108
+ // Filter handlers
109
+ window.handleSearchInput = function(event) {
110
+ filters.search = event.target.value.toLowerCase();
111
+ renderBlocksList();
112
+ };
113
+
114
+ window.setTypeFilter = function(type) {
115
+ filters.type = type;
116
+
117
+ // Update tab UI
118
+ document.querySelectorAll('.filter-tab').forEach(tab => {
119
+ tab.classList.toggle('active', tab.dataset.type === type);
120
+ });
121
+
122
+ renderBlocksList();
123
+ };
124
+
125
+ window.setCategoryFilter = function(category) {
126
+ filters.category = category;
127
+ renderBlocksList();
128
+ };
129
+
130
+ window.toggleTagFilter = function(tag) {
131
+ const index = filters.tags.indexOf(tag);
132
+ if (index === -1) {
133
+ filters.tags.push(tag);
134
+ } else {
135
+ filters.tags.splice(index, 1);
136
+ }
137
+
138
+ // Update tag chip UI
139
+ document.querySelectorAll('.tag-chip').forEach(chip => {
140
+ if (chip.dataset.tag === tag) {
141
+ chip.classList.toggle('active');
142
+ }
143
+ });
144
+
145
+ // Re-render to update clear button
146
+ populateFilters();
147
+ renderBlocksList();
148
+ };
149
+
150
+ window.clearAllFilters = function() {
151
+ filters = {
152
+ search: '',
153
+ type: 'all',
154
+ category: '',
155
+ tags: []
156
+ };
157
+
158
+ // Reset UI
159
+ document.getElementById('search-input').value = '';
160
+ document.getElementById('category-filter').value = '';
161
+ document.querySelectorAll('.filter-tab').forEach(tab => {
162
+ tab.classList.toggle('active', tab.dataset.type === 'all');
163
+ });
164
+
165
+ populateFilters();
166
+ renderBlocksList();
167
+ };
168
+
169
+ // Get filtered blocks based on current filters
170
+ function getFilteredBlocks() {
171
+ return blocks.filter(block => {
172
+ // Search filter
173
+ if (filters.search) {
174
+ const searchLower = filters.search.toLowerCase();
175
+ const matchesSearch =
176
+ (block.displayName || block.name).toLowerCase().includes(searchLower) ||
177
+ (block.description || '').toLowerCase().includes(searchLower) ||
178
+ (block.name || '').toLowerCase().includes(searchLower);
179
+ if (!matchesSearch) return false;
180
+ }
181
+
182
+ // Type filter
183
+ if (filters.type !== 'all') {
184
+ const blockType = block.type || 'block';
185
+ if (blockType !== filters.type) {
186
+ return false;
187
+ }
188
+ }
189
+
190
+ // Category filter
191
+ if (filters.category && block.category !== filters.category) {
192
+ return false;
193
+ }
194
+
195
+ // Tags filter (match ANY selected tag)
196
+ if (filters.tags.length > 0) {
197
+ const blockTags = block.tags || [];
198
+ const hasAnyTag = filters.tags.some(tag => blockTags.includes(tag));
199
+ if (!hasAnyTag) return false;
200
+ }
201
+
202
+ return true;
203
+ });
204
+ }
205
+
29
206
  // Render blocks list
30
207
  function renderBlocksList() {
31
208
  const listEl = document.getElementById('blocks-list');
@@ -37,24 +214,85 @@ function renderBlocksList() {
37
214
  return;
38
215
  }
39
216
 
40
- countEl.textContent = `${blocks.length} ${blocks.length === 1 ? 'block' : 'blocks'}`;
217
+ // Get filtered blocks
218
+ const filteredBlocks = getFilteredBlocks();
219
+
220
+ // Update count with filter info
221
+ if (hasActiveFilters()) {
222
+ countEl.textContent = `${filteredBlocks.length} of ${blocks.length} items`;
223
+ } else {
224
+ countEl.textContent = `${blocks.length} ${blocks.length === 1 ? 'item' : 'items'}`;
225
+ }
226
+
227
+ // Handle empty filtered results
228
+ if (filteredBlocks.length === 0) {
229
+ listEl.innerHTML = `
230
+ <div class="no-results">
231
+ <div class="no-results-icon">šŸ”</div>
232
+ <div>No items match your filters</div>
233
+ <button
234
+ type="button"
235
+ style="margin-top: 12px; padding: 6px 16px; background: #667eea; color: white; border: none; border-radius: 6px; cursor: pointer; font-size: 13px;"
236
+ onclick="clearAllFilters()"
237
+ >Clear filters</button>
238
+ </div>
239
+ `;
240
+ return;
241
+ }
242
+
243
+ // Group blocks by category
244
+ const grouped = {};
245
+ filteredBlocks.forEach(block => {
246
+ const cat = block.category || 'Uncategorized';
247
+ if (!grouped[cat]) grouped[cat] = [];
248
+ grouped[cat].push(block);
249
+ });
41
250
 
42
- listEl.innerHTML = blocks.map(block => `
251
+ // Sort categories alphabetically (but put Uncategorized last)
252
+ const sortedCategories = Object.keys(grouped).sort((a, b) => {
253
+ if (a === 'Uncategorized') return 1;
254
+ if (b === 'Uncategorized') return -1;
255
+ return a.localeCompare(b);
256
+ });
257
+
258
+ // Render grouped blocks
259
+ listEl.innerHTML = sortedCategories.map(category => `
260
+ <div class="block-category">
261
+ <div class="category-header">
262
+ ${escapeHtml(category)}
263
+ <span class="category-count">${grouped[category].length}</span>
264
+ </div>
265
+ ${grouped[category].map(block => renderBlockItem(block)).join('')}
266
+ </div>
267
+ `).join('');
268
+ }
269
+
270
+ // Render a single block item
271
+ function renderBlockItem(block) {
272
+ const isTemplate = block.type === 'template';
273
+ const typeBadge = isTemplate
274
+ ? '<span class="type-badge template">Template</span>'
275
+ : '';
276
+
277
+ return `
43
278
  <div
44
279
  class="block-item ${currentBlock?.name === block.name ? 'active' : ''}"
45
- data-block="${block.name}"
46
- onclick="selectBlock('${block.name}')"
280
+ data-block="${escapeHtml(block.name)}"
281
+ onclick="selectBlock('${escapeHtml(block.name)}')"
47
282
  >
48
283
  <div class="block-item-header">
49
- <div class="block-item-name">${block.displayName || block.name}</div>
284
+ <div class="block-item-name">
285
+ ${escapeHtml(block.displayName || block.name)}
286
+ ${typeBadge}
287
+ </div>
50
288
  <span class="version-badge">v${block.version || '1.0.0'}</span>
51
289
  </div>
52
290
  <div class="block-item-footer">
53
- <span class="block-item-type">${block.type}</span>
291
+ <span class="block-item-type">${escapeHtml(block.category || 'Block')}</span>
54
292
  <span class="status-badge status-local">Local</span>
55
293
  </div>
56
294
  </div>
57
- `).join('');
295
+ `;
58
296
  }
59
297
 
60
298
  // Select a block