@portel/photon 1.14.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/auto-ui/beam/photon-management.d.ts +1 -1
  2. package/dist/auto-ui/beam/photon-management.d.ts.map +1 -1
  3. package/dist/auto-ui/beam/photon-management.js +5 -1
  4. package/dist/auto-ui/beam/photon-management.js.map +1 -1
  5. package/dist/auto-ui/beam/routes/api-config.d.ts.map +1 -1
  6. package/dist/auto-ui/beam/routes/api-config.js +31 -9
  7. package/dist/auto-ui/beam/routes/api-config.js.map +1 -1
  8. package/dist/auto-ui/beam/routes/api-marketplace.d.ts.map +1 -1
  9. package/dist/auto-ui/beam/routes/api-marketplace.js +3 -0
  10. package/dist/auto-ui/beam/routes/api-marketplace.js.map +1 -1
  11. package/dist/auto-ui/beam.d.ts.map +1 -1
  12. package/dist/auto-ui/beam.js +205 -56
  13. package/dist/auto-ui/beam.js.map +1 -1
  14. package/dist/auto-ui/bridge/index.d.ts.map +1 -1
  15. package/dist/auto-ui/bridge/index.js +578 -0
  16. package/dist/auto-ui/bridge/index.js.map +1 -1
  17. package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
  18. package/dist/auto-ui/bridge/renderers.js +7 -3
  19. package/dist/auto-ui/bridge/renderers.js.map +1 -1
  20. package/dist/auto-ui/bridge/types.d.ts +6 -0
  21. package/dist/auto-ui/bridge/types.d.ts.map +1 -1
  22. package/dist/auto-ui/frontend/pure-view.html +289 -0
  23. package/dist/auto-ui/photon-bridge.d.ts +11 -0
  24. package/dist/auto-ui/photon-bridge.d.ts.map +1 -1
  25. package/dist/auto-ui/photon-bridge.js +75 -1
  26. package/dist/auto-ui/photon-bridge.js.map +1 -1
  27. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  28. package/dist/auto-ui/streamable-http-transport.js +29 -3
  29. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  30. package/dist/beam-form.bundle.js +5707 -0
  31. package/dist/beam-form.bundle.js.map +7 -0
  32. package/dist/beam.bundle.js +2863 -895
  33. package/dist/beam.bundle.js.map +4 -4
  34. package/dist/claude-code-plugin.js +11 -3
  35. package/dist/claude-code-plugin.js.map +1 -1
  36. package/dist/cli/commands/build.js +1 -1
  37. package/dist/cli/commands/build.js.map +1 -1
  38. package/dist/cli/commands/doctor.d.ts.map +1 -1
  39. package/dist/cli/commands/doctor.js +7 -5
  40. package/dist/cli/commands/doctor.js.map +1 -1
  41. package/dist/cli/commands/info.d.ts.map +1 -1
  42. package/dist/cli/commands/info.js +18 -4
  43. package/dist/cli/commands/info.js.map +1 -1
  44. package/dist/cli/commands/mcp.js +2 -2
  45. package/dist/cli/commands/mcp.js.map +1 -1
  46. package/dist/cli/commands/update.d.ts.map +1 -1
  47. package/dist/cli/commands/update.js +6 -2
  48. package/dist/cli/commands/update.js.map +1 -1
  49. package/dist/cli-alias.d.ts.map +1 -1
  50. package/dist/cli-alias.js +3 -2
  51. package/dist/cli-alias.js.map +1 -1
  52. package/dist/daemon/client.d.ts +5 -0
  53. package/dist/daemon/client.d.ts.map +1 -1
  54. package/dist/daemon/client.js +50 -0
  55. package/dist/daemon/client.js.map +1 -1
  56. package/dist/daemon/manager.d.ts +15 -0
  57. package/dist/daemon/manager.d.ts.map +1 -1
  58. package/dist/daemon/manager.js +142 -11
  59. package/dist/daemon/manager.js.map +1 -1
  60. package/dist/daemon/worker-manager.js +1 -1
  61. package/dist/daemon/worker-manager.js.map +1 -1
  62. package/dist/deploy/cloudflare.d.ts.map +1 -1
  63. package/dist/deploy/cloudflare.js +12 -10
  64. package/dist/deploy/cloudflare.js.map +1 -1
  65. package/dist/loader.d.ts.map +1 -1
  66. package/dist/loader.js +37 -2
  67. package/dist/loader.js.map +1 -1
  68. package/dist/marketplace-manager.d.ts +9 -0
  69. package/dist/marketplace-manager.d.ts.map +1 -1
  70. package/dist/marketplace-manager.js +115 -42
  71. package/dist/marketplace-manager.js.map +1 -1
  72. package/dist/meta.d.ts +51 -0
  73. package/dist/meta.d.ts.map +1 -0
  74. package/dist/meta.js +320 -0
  75. package/dist/meta.js.map +1 -0
  76. package/dist/photon-cli-runner.d.ts.map +1 -1
  77. package/dist/photon-cli-runner.js +30 -5
  78. package/dist/photon-cli-runner.js.map +1 -1
  79. package/dist/photon-doc-extractor.d.ts +1 -0
  80. package/dist/photon-doc-extractor.d.ts.map +1 -1
  81. package/dist/photon-doc-extractor.js +33 -21
  82. package/dist/photon-doc-extractor.js.map +1 -1
  83. package/dist/photons/builder-compass.photon.d.ts +167 -0
  84. package/dist/photons/builder-compass.photon.d.ts.map +1 -0
  85. package/dist/photons/builder-compass.photon.js +816 -0
  86. package/dist/photons/builder-compass.photon.js.map +1 -0
  87. package/dist/photons/builder-compass.photon.ts +1129 -0
  88. package/dist/photons/docs/ui/docs.html +441 -0
  89. package/dist/photons/docs.photon.d.ts +237 -0
  90. package/dist/photons/docs.photon.d.ts.map +1 -0
  91. package/dist/photons/docs.photon.js +483 -0
  92. package/dist/photons/docs.photon.js.map +1 -0
  93. package/dist/photons/docs.photon.ts +536 -0
  94. package/dist/photons/maker.photon.d.ts.map +1 -1
  95. package/dist/photons/maker.photon.js +19 -2
  96. package/dist/photons/maker.photon.js.map +1 -1
  97. package/dist/photons/maker.photon.ts +18 -2
  98. package/dist/photons/slides.photon.d.ts +212 -0
  99. package/dist/photons/slides.photon.d.ts.map +1 -0
  100. package/dist/photons/slides.photon.js +355 -0
  101. package/dist/photons/slides.photon.js.map +1 -0
  102. package/dist/photons/slides.photon.ts +370 -0
  103. package/dist/photons/spreadsheet/ui/spreadsheet.html +779 -0
  104. package/dist/photons/spreadsheet.photon.d.ts +554 -0
  105. package/dist/photons/spreadsheet.photon.d.ts.map +1 -0
  106. package/dist/photons/spreadsheet.photon.js +1050 -0
  107. package/dist/photons/spreadsheet.photon.js.map +1 -0
  108. package/dist/photons/spreadsheet.photon.ts +1239 -0
  109. package/dist/photons/ui/builder-compass.html +1199 -0
  110. package/dist/photons/ui/builder-compass.photon.html +380 -0
  111. package/dist/server.d.ts.map +1 -1
  112. package/dist/server.js +33 -59
  113. package/dist/server.js.map +1 -1
  114. package/dist/shared/error-handler.d.ts +8 -0
  115. package/dist/shared/error-handler.d.ts.map +1 -1
  116. package/dist/shared/error-handler.js +50 -0
  117. package/dist/shared/error-handler.js.map +1 -1
  118. package/dist/shared-utils.d.ts +16 -2
  119. package/dist/shared-utils.d.ts.map +1 -1
  120. package/dist/shared-utils.js +37 -3
  121. package/dist/shared-utils.js.map +1 -1
  122. package/dist/template-manager.d.ts.map +1 -1
  123. package/dist/template-manager.js +2 -1
  124. package/dist/template-manager.js.map +1 -1
  125. package/package.json +8 -3
@@ -0,0 +1,536 @@
1
+ /**
2
+ * Docs — Markdown Document Editor with PDF Export
3
+ *
4
+ * A document editor backed by plain markdown files with YAML frontmatter.
5
+ * Each instance is a document: `_use('quarterly-report')` → `quarterly-report.md`.
6
+ * Pass a full path to open any file: `_use('/path/to/doc.md')`.
7
+ *
8
+ * Features page-aware preview via Paged.js, TOC generation, footnotes,
9
+ * custom containers (note/warning/tip), multi-column layouts, and PDF export.
10
+ *
11
+ * @version 1.0.0
12
+ * @runtime ^1.14.0
13
+ * @tags document, markdown, pdf, writing, authoring
14
+ * @icon 📄
15
+ * @stateful
16
+ * @ui editor ./ui/docs.html
17
+ */
18
+ import * as fs from 'fs/promises';
19
+ import { existsSync, mkdirSync } from 'fs';
20
+ import * as path from 'path';
21
+ import * as os from 'os';
22
+
23
+ const DEFAULT_DOC = `---
24
+ title: Untitled Document
25
+ author: ""
26
+ date: ${new Date().toISOString().split('T')[0]}
27
+ size: A4
28
+ margins:
29
+ top: 2.5cm
30
+ bottom: 2.5cm
31
+ left: 3cm
32
+ right: 2cm
33
+ header:
34
+ right: "{date}"
35
+ footer:
36
+ center: "Page {page} of {pages}"
37
+ toc: false
38
+ numbersections: false
39
+ theme: default
40
+ ---
41
+
42
+ # Untitled Document
43
+
44
+ Start writing here. This is a plain markdown document with superpowers.
45
+
46
+ ## Features
47
+
48
+ - **YAML frontmatter** controls page layout, headers, footers, and theme
49
+ - **Page breaks** with \`---pagebreak---\`
50
+ - **Footnotes** with \`[^1]\` syntax
51
+ - **Callout boxes** with \`::: note\`, \`::: warning\`, \`::: tip\`
52
+ - **Multi-column layouts** with \`::: columns\`
53
+ - **Table of contents** with \`[[toc]]\`
54
+ - **PDF export** that matches exactly what you see
55
+
56
+ ## Next Steps
57
+
58
+ Ask AI to help you write, restructure, or format this document.
59
+ `;
60
+
61
+ export default class Docs {
62
+ protected settings = {
63
+ /** @property Directory where document files are stored */
64
+ folder: path.join(os.homedir(), 'Documents', 'docs'),
65
+ };
66
+
67
+ declare memory: {
68
+ get<T>(key: string): Promise<T | null>;
69
+ set(key: string, value: unknown): Promise<void>;
70
+ };
71
+ declare emit: (payload: { event: string; data: unknown }) => void;
72
+ declare instanceName: string;
73
+
74
+ // ── File Resolution ─────────────────────────────────────────────────────
75
+
76
+ private get defaultFolder(): string {
77
+ return this.settings?.folder || path.join(os.homedir(), 'Documents', 'docs');
78
+ }
79
+
80
+ private get docPath(): string {
81
+ const name = this.instanceName || 'untitled';
82
+ if (path.isAbsolute(name)) return name.endsWith('.md') ? name : name + '.md';
83
+ if (name.includes('/') || name.includes('\\')) {
84
+ const resolved = path.resolve(name);
85
+ return resolved.endsWith('.md') ? resolved : resolved + '.md';
86
+ }
87
+ const dir = this.defaultFolder;
88
+ if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
89
+ return path.join(dir, name.endsWith('.md') ? name : name + '.md');
90
+ }
91
+
92
+ async onInitialize() {
93
+ const dir = this.defaultFolder;
94
+ if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
95
+ if (!existsSync(this.docPath)) {
96
+ await fs.writeFile(this.docPath, DEFAULT_DOC, 'utf8');
97
+ }
98
+ }
99
+
100
+ // ── Editor ──────────────────────────────────────────────────────────────
101
+
102
+ /**
103
+ * Open the document editor UI
104
+ * @ui editor
105
+ * @autorun
106
+ */
107
+ async main() {
108
+ const markdown = await this.readDoc();
109
+ const { frontmatter, body } = parseFrontmatter(markdown);
110
+ const outline = buildOutline(body);
111
+ return {
112
+ file: path.basename(this.docPath),
113
+ markdown,
114
+ frontmatter,
115
+ outline,
116
+ stats: computeStats(body),
117
+ };
118
+ }
119
+
120
+ /**
121
+ * Read the document markdown
122
+ * @readOnly
123
+ */
124
+ async read() {
125
+ return { file: path.basename(this.docPath), markdown: await this.readDoc() };
126
+ }
127
+
128
+ /**
129
+ * Save the full document markdown
130
+ * @param markdown Full markdown content with YAML frontmatter
131
+ * @ui editor
132
+ */
133
+ async save({ markdown }: { markdown: string }) {
134
+ await fs.writeFile(this.docPath, markdown, 'utf8');
135
+ const { frontmatter, body } = parseFrontmatter(markdown);
136
+ const result = {
137
+ file: path.basename(this.docPath),
138
+ markdown,
139
+ frontmatter,
140
+ outline: buildOutline(body),
141
+ stats: computeStats(body),
142
+ };
143
+ this.emit({ event: 'docChanged', data: result });
144
+ return result;
145
+ }
146
+
147
+ // ── Structural Editing ──────────────────────────────────────────────────
148
+
149
+ /**
150
+ * Get the document's heading structure for navigation
151
+ * @readOnly
152
+ */
153
+ async outline() {
154
+ const body = getBody(await this.readDoc());
155
+ return { outline: buildOutline(body) };
156
+ }
157
+
158
+ /**
159
+ * Edit a specific section by heading path
160
+ * @param section Heading text or path like "Chapter 3/Introduction"
161
+ * @param markdown New content for that section (everything under the heading until next same-level heading)
162
+ * @ui editor
163
+ */
164
+ async edit({ section, markdown: newContent }: { section: string; markdown: string }) {
165
+ const doc = await this.readDoc();
166
+ const { frontmatterRaw, body } = splitDoc(doc);
167
+ const updated = replaceSection(body, section, newContent);
168
+ if (updated === null) return { error: `Section "${section}" not found` };
169
+ const full = frontmatterRaw + updated;
170
+ await fs.writeFile(this.docPath, full, 'utf8');
171
+ const { frontmatter } = parseFrontmatter(full);
172
+ const result = {
173
+ file: path.basename(this.docPath),
174
+ markdown: full,
175
+ frontmatter,
176
+ outline: buildOutline(updated),
177
+ stats: computeStats(updated),
178
+ };
179
+ this.emit({ event: 'docChanged', data: result });
180
+ return result;
181
+ }
182
+
183
+ /**
184
+ * Append content at the end of the document or after a specific section
185
+ * @param markdown Content to append
186
+ * @param after Optional heading text — inserts after that section instead of end
187
+ * @ui editor
188
+ */
189
+ async append({ markdown: content, after }: { markdown: string; after?: string }) {
190
+ const doc = await this.readDoc();
191
+ const { frontmatterRaw, body } = splitDoc(doc);
192
+ let updated: string;
193
+ if (after) {
194
+ updated = insertAfterSection(body, after, content);
195
+ } else {
196
+ updated = body.trimEnd() + '\n\n' + content + '\n';
197
+ }
198
+ const full = frontmatterRaw + updated;
199
+ await fs.writeFile(this.docPath, full, 'utf8');
200
+ const { frontmatter } = parseFrontmatter(full);
201
+ const result = {
202
+ file: path.basename(this.docPath),
203
+ markdown: full,
204
+ frontmatter,
205
+ outline: buildOutline(updated),
206
+ stats: computeStats(updated),
207
+ };
208
+ this.emit({ event: 'docChanged', data: result });
209
+ return result;
210
+ }
211
+
212
+ // ── Search & Replace ────────────────────────────────────────────────────
213
+
214
+ /**
215
+ * Find text in the document with optional fuzzy matching
216
+ * @param query Search text
217
+ * @param fuzzy Enable fuzzy matching {@default false}
218
+ * @param scope Limit search to a section heading
219
+ * @readOnly
220
+ */
221
+ async find({ query, fuzzy, scope }: { query: string; fuzzy?: boolean; scope?: string }) {
222
+ const body = getBody(await this.readDoc());
223
+ const searchIn = scope ? extractSection(body, scope) || body : body;
224
+ const lines = searchIn.split('\n');
225
+ const queryLower = query.toLowerCase();
226
+
227
+ const matches: { line: number; text: string; context: string }[] = [];
228
+ for (let i = 0; i < lines.length; i++) {
229
+ const lineLower = lines[i].toLowerCase();
230
+ const found = fuzzy ? fuzzyMatch(lineLower, queryLower) : lineLower.includes(queryLower);
231
+ if (found) {
232
+ matches.push({
233
+ line: i + 1,
234
+ text: lines[i],
235
+ context: lines.slice(Math.max(0, i - 1), i + 2).join('\n'),
236
+ });
237
+ }
238
+ }
239
+ return { query, fuzzy: !!fuzzy, scope: scope || null, matches, total: matches.length };
240
+ }
241
+
242
+ /**
243
+ * Find and replace text in the document
244
+ * @param pattern Text to find (string or regex pattern)
245
+ * @param replacement Replacement text
246
+ * @param scope Limit to a section heading
247
+ * @param all Replace all occurrences {@default true}
248
+ * @ui editor
249
+ */
250
+ async replace({
251
+ pattern,
252
+ replacement,
253
+ scope,
254
+ all,
255
+ }: {
256
+ pattern: string;
257
+ replacement: string;
258
+ scope?: string;
259
+ all?: boolean;
260
+ }) {
261
+ const doc = await this.readDoc();
262
+ const { frontmatterRaw, body } = splitDoc(doc);
263
+
264
+ let target = scope ? extractSection(body, scope) || body : body;
265
+ const replaceAll = all !== false;
266
+
267
+ let count = 0;
268
+ if (replaceAll) {
269
+ const parts = target.split(pattern);
270
+ count = parts.length - 1;
271
+ target = parts.join(replacement);
272
+ } else {
273
+ if (target.includes(pattern)) {
274
+ target = target.replace(pattern, replacement);
275
+ count = 1;
276
+ }
277
+ }
278
+
279
+ const updated = scope ? body.replace(extractSection(body, scope) || '', target) : target;
280
+ const full = frontmatterRaw + updated;
281
+ await fs.writeFile(this.docPath, full, 'utf8');
282
+ const { frontmatter } = parseFrontmatter(full);
283
+ const result = {
284
+ file: path.basename(this.docPath),
285
+ markdown: full,
286
+ frontmatter,
287
+ outline: buildOutline(updated),
288
+ stats: computeStats(updated),
289
+ replacements: count,
290
+ };
291
+ this.emit({ event: 'docChanged', data: result });
292
+ return result;
293
+ }
294
+
295
+ // ── Document Management ─────────────────────────────────────────────────
296
+
297
+ /**
298
+ * List saved documents in the docs folder
299
+ * @readOnly
300
+ */
301
+ async list() {
302
+ const dir = this.defaultFolder;
303
+ if (!existsSync(dir)) return { folder: dir, docs: [] };
304
+ const entries = await fs.readdir(dir, { withFileTypes: true });
305
+ const docs = await Promise.all(
306
+ entries
307
+ .filter((e) => e.isFile() && e.name.toLowerCase().endsWith('.md'))
308
+ .map(async (e) => {
309
+ const stat = await fs.stat(path.join(dir, e.name));
310
+ const md = await fs.readFile(path.join(dir, e.name), 'utf8');
311
+ const { frontmatter } = parseFrontmatter(md);
312
+ const body = getBody(md);
313
+ return {
314
+ file: e.name,
315
+ title: (frontmatter as any).title || firstHeading(body) || e.name.replace(/\.md$/i, ''),
316
+ author: (frontmatter as any).author || '',
317
+ updatedAt: stat.mtime.toISOString(),
318
+ wordCount: body.split(/\s+/).filter(Boolean).length,
319
+ };
320
+ })
321
+ );
322
+ return { folder: dir, docs: docs.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt)) };
323
+ }
324
+
325
+ /**
326
+ * Generate table of contents from the document structure
327
+ * @readOnly
328
+ */
329
+ async toc() {
330
+ const body = getBody(await this.readDoc());
331
+ const outline = buildOutline(body);
332
+ const tocMarkdown = outline.map((h) => `${' '.repeat(h.level - 1)}- ${h.text}`).join('\n');
333
+ return { outline, markdown: tocMarkdown };
334
+ }
335
+
336
+ /**
337
+ * Document statistics: word count, reading time, section breakdown
338
+ * @readOnly
339
+ */
340
+ async stats() {
341
+ const body = getBody(await this.readDoc());
342
+ return computeStats(body);
343
+ }
344
+
345
+ // ── Private ─────────────────────────────────────────────────────────────
346
+
347
+ private async readDoc(): Promise<string> {
348
+ try {
349
+ return await fs.readFile(this.docPath, 'utf8');
350
+ } catch {
351
+ return DEFAULT_DOC;
352
+ }
353
+ }
354
+ }
355
+
356
+ // ── Pure Helpers ──────────────────────────────────────────────────────────
357
+
358
+ function parseFrontmatter(markdown: string): { frontmatter: Record<string, any>; body: string } {
359
+ const match = markdown.match(/^---\n([\s\S]*?)\n---\n?/);
360
+ if (!match) return { frontmatter: {}, body: markdown };
361
+ const yamlText = match[1];
362
+ const body = markdown.slice(match[0].length);
363
+ // Simple YAML parser for flat/nested values
364
+ const frontmatter: Record<string, any> = {};
365
+ let currentKey = '';
366
+ let currentNested: Record<string, string> | null = null;
367
+ for (const line of yamlText.split('\n')) {
368
+ const nestedMatch = line.match(/^ (\w+):\s*(.+)/);
369
+ if (nestedMatch && currentKey) {
370
+ if (!currentNested) currentNested = {};
371
+ currentNested[nestedMatch[1]] = nestedMatch[2].replace(/^["']|["']$/g, '');
372
+ frontmatter[currentKey] = currentNested;
373
+ continue;
374
+ }
375
+ const kvMatch = line.match(/^(\w[\w-]*):\s*(.*)/);
376
+ if (kvMatch) {
377
+ if (currentNested) currentNested = null;
378
+ currentKey = kvMatch[1];
379
+ const val = kvMatch[2].replace(/^["']|["']$/g, '').trim();
380
+ if (val === 'true') frontmatter[currentKey] = true;
381
+ else if (val === 'false') frontmatter[currentKey] = false;
382
+ else if (val === '' || val === '""') frontmatter[currentKey] = '';
383
+ else if (/^\d+$/.test(val)) frontmatter[currentKey] = parseInt(val, 10);
384
+ else frontmatter[currentKey] = val;
385
+ }
386
+ }
387
+ return { frontmatter, body };
388
+ }
389
+
390
+ function splitDoc(markdown: string): { frontmatterRaw: string; body: string } {
391
+ const match = markdown.match(/^(---\n[\s\S]*?\n---\n?)/);
392
+ if (!match) return { frontmatterRaw: '', body: markdown };
393
+ return { frontmatterRaw: match[1], body: markdown.slice(match[1].length) };
394
+ }
395
+
396
+ function getBody(markdown: string): string {
397
+ return splitDoc(markdown).body;
398
+ }
399
+
400
+ interface HeadingEntry {
401
+ level: number;
402
+ text: string;
403
+ line: number;
404
+ }
405
+
406
+ function buildOutline(body: string): HeadingEntry[] {
407
+ const headings: HeadingEntry[] = [];
408
+ const lines = body.split('\n');
409
+ for (let i = 0; i < lines.length; i++) {
410
+ const match = lines[i].match(/^(#{1,6})\s+(.+)/);
411
+ if (match) {
412
+ headings.push({ level: match[1].length, text: match[2].trim(), line: i + 1 });
413
+ }
414
+ }
415
+ return headings;
416
+ }
417
+
418
+ function computeStats(body: string) {
419
+ const words = body.split(/\s+/).filter(Boolean).length;
420
+ const chars = body.length;
421
+ const paragraphs = body.split(/\n\n+/).filter((p) => p.trim().length > 0).length;
422
+ const headings = buildOutline(body);
423
+ const readingTime = Math.max(1, Math.ceil(words / 200));
424
+
425
+ // Per-section word counts
426
+ const sections = headings.map((h, i) => {
427
+ const start = body.indexOf(body.split('\n')[h.line - 1]);
428
+ const nextHeading = headings[i + 1];
429
+ const end = nextHeading ? body.indexOf(body.split('\n')[nextHeading.line - 1]) : body.length;
430
+ const sectionText = body.slice(start, end);
431
+ return {
432
+ heading: h.text,
433
+ level: h.level,
434
+ words: sectionText.split(/\s+/).filter(Boolean).length,
435
+ };
436
+ });
437
+
438
+ return { words, chars, paragraphs, headings: headings.length, readingTime, sections };
439
+ }
440
+
441
+ function firstHeading(body: string): string {
442
+ return body.match(/^#\s+(.+)$/m)?.[1]?.trim() || '';
443
+ }
444
+
445
+ function extractSection(body: string, heading: string): string | null {
446
+ const lines = body.split('\n');
447
+ let startLine = -1;
448
+ let headingLevel = 0;
449
+
450
+ for (let i = 0; i < lines.length; i++) {
451
+ const match = lines[i].match(/^(#{1,6})\s+(.+)/);
452
+ if (match && match[2].trim().toLowerCase() === heading.toLowerCase()) {
453
+ startLine = i;
454
+ headingLevel = match[1].length;
455
+ break;
456
+ }
457
+ }
458
+
459
+ if (startLine === -1) return null;
460
+
461
+ let endLine = lines.length;
462
+ for (let i = startLine + 1; i < lines.length; i++) {
463
+ const match = lines[i].match(/^(#{1,6})\s+/);
464
+ if (match && match[1].length <= headingLevel) {
465
+ endLine = i;
466
+ break;
467
+ }
468
+ }
469
+
470
+ return lines.slice(startLine, endLine).join('\n');
471
+ }
472
+
473
+ function replaceSection(body: string, heading: string, newContent: string): string | null {
474
+ const lines = body.split('\n');
475
+ let startLine = -1;
476
+ let headingLevel = 0;
477
+
478
+ for (let i = 0; i < lines.length; i++) {
479
+ const match = lines[i].match(/^(#{1,6})\s+(.+)/);
480
+ if (match && match[2].trim().toLowerCase() === heading.toLowerCase()) {
481
+ startLine = i;
482
+ headingLevel = match[1].length;
483
+ break;
484
+ }
485
+ }
486
+
487
+ if (startLine === -1) return null;
488
+
489
+ let endLine = lines.length;
490
+ for (let i = startLine + 1; i < lines.length; i++) {
491
+ const match = lines[i].match(/^(#{1,6})\s+/);
492
+ if (match && match[1].length <= headingLevel) {
493
+ endLine = i;
494
+ break;
495
+ }
496
+ }
497
+
498
+ const before = lines.slice(0, startLine);
499
+ const after = lines.slice(endLine);
500
+ return [...before, newContent, ...after].join('\n');
501
+ }
502
+
503
+ function insertAfterSection(body: string, heading: string, content: string): string {
504
+ const lines = body.split('\n');
505
+ let headingLevel = 0;
506
+ let insertAt = lines.length;
507
+
508
+ for (let i = 0; i < lines.length; i++) {
509
+ const match = lines[i].match(/^(#{1,6})\s+(.+)/);
510
+ if (match && match[2].trim().toLowerCase() === heading.toLowerCase()) {
511
+ headingLevel = match[1].length;
512
+ // Find end of this section
513
+ for (let j = i + 1; j < lines.length; j++) {
514
+ const nextMatch = lines[j].match(/^(#{1,6})\s+/);
515
+ if (nextMatch && nextMatch[1].length <= headingLevel) {
516
+ insertAt = j;
517
+ break;
518
+ }
519
+ }
520
+ if (insertAt === lines.length) insertAt = lines.length;
521
+ break;
522
+ }
523
+ }
524
+
525
+ const before = lines.slice(0, insertAt);
526
+ const after = lines.slice(insertAt);
527
+ return [...before, '', content, '', ...after].join('\n');
528
+ }
529
+
530
+ function fuzzyMatch(text: string, query: string): boolean {
531
+ let qi = 0;
532
+ for (let i = 0; i < text.length && qi < query.length; i++) {
533
+ if (text[i] === query[qi]) qi++;
534
+ }
535
+ return qi === query.length;
536
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"maker.photon.d.ts","sourceRoot":"","sources":["../../src/photons/maker.photon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maker.photon.d.ts","sourceRoot":"","sources":["../../src/photons/maker.photon.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@
39
39
  */
40
40
  import * as fs from 'fs/promises';
41
41
  import * as path from 'path';
42
- import { exec, execFile } from 'child_process';
42
+ import { exec, execFile, execSync } from 'child_process';
43
43
  import { promisify } from 'util';
44
44
  import { DEFAULT_PHOTON_DIR } from '@portel/photon-core';
45
45
  const execAsync = promisify(exec);
@@ -50,6 +50,20 @@ const NPM_PACKAGE_NAME_RE = /^(@[a-z0-9\-~][a-z0-9\-._~]*\/)?[a-z0-9\-~][a-z0-9\
50
50
  function validateNpmPackageName(input) {
51
51
  return NPM_PACKAGE_NAME_RE.test(input);
52
52
  }
53
+ // Inlined from shared-utils — photon files can't import from runtime shared modules
54
+ let _cachedMakerPM = null;
55
+ function detectMakerPM() {
56
+ if (_cachedMakerPM)
57
+ return _cachedMakerPM;
58
+ try {
59
+ execSync('bun --version', { stdio: 'ignore' });
60
+ _cachedMakerPM = 'bun';
61
+ }
62
+ catch {
63
+ _cachedMakerPM = process.platform === 'win32' ? 'npm.cmd' : 'npm';
64
+ }
65
+ return _cachedMakerPM;
66
+ }
53
67
  export default class Maker {
54
68
  photonPath;
55
69
  photonName;
@@ -419,7 +433,10 @@ ${allStubs.join('\n\n')}
419
433
  return { valid: false };
420
434
  }
421
435
  try {
422
- const { stdout } = await execFileAsync('npm', ['view', name, 'version', '--json'], {
436
+ const pm = detectMakerPM();
437
+ // bun doesn't support `view` subcommand — fall back to npm for registry queries
438
+ const pmForView = pm === 'bun' ? 'npm' : pm;
439
+ const { stdout } = await execFileAsync(pmForView, ['view', name, 'version', '--json'], {
423
440
  timeout: 10000,
424
441
  });
425
442
  const version = JSON.parse(stdout.trim());
@@ -1 +1 @@
1
- {"version":3,"file":"maker.photon.js","sourceRoot":"","sources":["../../src/photons/maker.photon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maker.photon.js","sourceRoot":"","sources":["../../src/photons/maker.photon.ts"],"names":[],"mappings":"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"}