@intentsolutions/blueprint 2.6.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/analytics/collector.d.ts +73 -0
  2. package/dist/analytics/collector.d.ts.map +1 -0
  3. package/dist/analytics/collector.js +239 -0
  4. package/dist/analytics/collector.js.map +1 -0
  5. package/dist/analytics/dashboard.d.ts +62 -0
  6. package/dist/analytics/dashboard.d.ts.map +1 -0
  7. package/dist/analytics/dashboard.js +346 -0
  8. package/dist/analytics/dashboard.js.map +1 -0
  9. package/dist/analytics/index.d.ts +75 -0
  10. package/dist/analytics/index.d.ts.map +1 -0
  11. package/dist/analytics/index.js +115 -0
  12. package/dist/analytics/index.js.map +1 -0
  13. package/dist/analytics/types.d.ts +169 -0
  14. package/dist/analytics/types.d.ts.map +1 -0
  15. package/dist/analytics/types.js +16 -0
  16. package/dist/analytics/types.js.map +1 -0
  17. package/dist/cli.js +359 -1
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/analytics.d.ts +38 -0
  20. package/dist/commands/analytics.d.ts.map +1 -0
  21. package/dist/commands/analytics.js +196 -0
  22. package/dist/commands/analytics.js.map +1 -0
  23. package/dist/commands/index.d.ts +26 -0
  24. package/dist/commands/index.d.ts.map +1 -0
  25. package/dist/commands/index.js +101 -0
  26. package/dist/commands/index.js.map +1 -0
  27. package/dist/commands/marketplace.d.ts +52 -0
  28. package/dist/commands/marketplace.d.ts.map +1 -0
  29. package/dist/commands/marketplace.js +356 -0
  30. package/dist/commands/marketplace.js.map +1 -0
  31. package/dist/enterprise/api/index.d.ts +8 -0
  32. package/dist/enterprise/api/index.d.ts.map +1 -0
  33. package/dist/enterprise/api/index.js +8 -0
  34. package/dist/enterprise/api/index.js.map +1 -0
  35. package/dist/enterprise/api/server.d.ts +79 -0
  36. package/dist/enterprise/api/server.d.ts.map +1 -0
  37. package/dist/enterprise/api/server.js +468 -0
  38. package/dist/enterprise/api/server.js.map +1 -0
  39. package/dist/enterprise/api/types.d.ts +269 -0
  40. package/dist/enterprise/api/types.d.ts.map +1 -0
  41. package/dist/enterprise/api/types.js +6 -0
  42. package/dist/enterprise/api/types.js.map +1 -0
  43. package/dist/enterprise/api/webhooks.d.ts +214 -0
  44. package/dist/enterprise/api/webhooks.d.ts.map +1 -0
  45. package/dist/enterprise/api/webhooks.js +308 -0
  46. package/dist/enterprise/api/webhooks.js.map +1 -0
  47. package/dist/enterprise/index.d.ts +9 -0
  48. package/dist/enterprise/index.d.ts.map +1 -0
  49. package/dist/enterprise/index.js +13 -0
  50. package/dist/enterprise/index.js.map +1 -0
  51. package/dist/enterprise/models/claude.d.ts +23 -0
  52. package/dist/enterprise/models/claude.d.ts.map +1 -0
  53. package/dist/enterprise/models/claude.js +176 -0
  54. package/dist/enterprise/models/claude.js.map +1 -0
  55. package/dist/enterprise/models/gemini.d.ts +25 -0
  56. package/dist/enterprise/models/gemini.d.ts.map +1 -0
  57. package/dist/enterprise/models/gemini.js +199 -0
  58. package/dist/enterprise/models/gemini.js.map +1 -0
  59. package/dist/enterprise/models/index.d.ts +11 -0
  60. package/dist/enterprise/models/index.d.ts.map +1 -0
  61. package/dist/enterprise/models/index.js +11 -0
  62. package/dist/enterprise/models/index.js.map +1 -0
  63. package/dist/enterprise/models/ollama.d.ts +32 -0
  64. package/dist/enterprise/models/ollama.d.ts.map +1 -0
  65. package/dist/enterprise/models/ollama.js +285 -0
  66. package/dist/enterprise/models/ollama.js.map +1 -0
  67. package/dist/enterprise/models/openai.d.ts +27 -0
  68. package/dist/enterprise/models/openai.d.ts.map +1 -0
  69. package/dist/enterprise/models/openai.js +222 -0
  70. package/dist/enterprise/models/openai.js.map +1 -0
  71. package/dist/enterprise/models/registry.d.ts +101 -0
  72. package/dist/enterprise/models/registry.d.ts.map +1 -0
  73. package/dist/enterprise/models/registry.js +263 -0
  74. package/dist/enterprise/models/registry.js.map +1 -0
  75. package/dist/enterprise/models/types.d.ts +141 -0
  76. package/dist/enterprise/models/types.d.ts.map +1 -0
  77. package/dist/enterprise/models/types.js +40 -0
  78. package/dist/enterprise/models/types.js.map +1 -0
  79. package/dist/enterprise/team/audit.d.ts +153 -0
  80. package/dist/enterprise/team/audit.d.ts.map +1 -0
  81. package/dist/enterprise/team/audit.js +346 -0
  82. package/dist/enterprise/team/audit.js.map +1 -0
  83. package/dist/enterprise/team/config.d.ts +83 -0
  84. package/dist/enterprise/team/config.d.ts.map +1 -0
  85. package/dist/enterprise/team/config.js +245 -0
  86. package/dist/enterprise/team/config.js.map +1 -0
  87. package/dist/enterprise/team/index.d.ts +7 -0
  88. package/dist/enterprise/team/index.d.ts.map +1 -0
  89. package/dist/enterprise/team/index.js +7 -0
  90. package/dist/enterprise/team/index.js.map +1 -0
  91. package/dist/enterprise/templates/engine.d.ts +100 -0
  92. package/dist/enterprise/templates/engine.d.ts.map +1 -0
  93. package/dist/enterprise/templates/engine.js +429 -0
  94. package/dist/enterprise/templates/engine.js.map +1 -0
  95. package/dist/enterprise/templates/index.d.ts +8 -0
  96. package/dist/enterprise/templates/index.d.ts.map +1 -0
  97. package/dist/enterprise/templates/index.js +8 -0
  98. package/dist/enterprise/templates/index.js.map +1 -0
  99. package/dist/enterprise/templates/loader.d.ts +65 -0
  100. package/dist/enterprise/templates/loader.d.ts.map +1 -0
  101. package/dist/enterprise/templates/loader.js +269 -0
  102. package/dist/enterprise/templates/loader.js.map +1 -0
  103. package/dist/enterprise/templates/types.d.ts +212 -0
  104. package/dist/enterprise/templates/types.d.ts.map +1 -0
  105. package/dist/enterprise/templates/types.js +55 -0
  106. package/dist/enterprise/templates/types.js.map +1 -0
  107. package/dist/marketplace/index.d.ts +86 -0
  108. package/dist/marketplace/index.d.ts.map +1 -0
  109. package/dist/marketplace/index.js +112 -0
  110. package/dist/marketplace/index.js.map +1 -0
  111. package/dist/marketplace/manager.d.ts +81 -0
  112. package/dist/marketplace/manager.d.ts.map +1 -0
  113. package/dist/marketplace/manager.js +292 -0
  114. package/dist/marketplace/manager.js.map +1 -0
  115. package/dist/marketplace/packs/fastapi.d.ts +8 -0
  116. package/dist/marketplace/packs/fastapi.d.ts.map +1 -0
  117. package/dist/marketplace/packs/fastapi.js +728 -0
  118. package/dist/marketplace/packs/fastapi.js.map +1 -0
  119. package/dist/marketplace/packs/fintech.d.ts +8 -0
  120. package/dist/marketplace/packs/fintech.d.ts.map +1 -0
  121. package/dist/marketplace/packs/fintech.js +366 -0
  122. package/dist/marketplace/packs/fintech.js.map +1 -0
  123. package/dist/marketplace/packs/gdpr.d.ts +8 -0
  124. package/dist/marketplace/packs/gdpr.d.ts.map +1 -0
  125. package/dist/marketplace/packs/gdpr.js +637 -0
  126. package/dist/marketplace/packs/gdpr.js.map +1 -0
  127. package/dist/marketplace/packs/healthtech.d.ts +8 -0
  128. package/dist/marketplace/packs/healthtech.d.ts.map +1 -0
  129. package/dist/marketplace/packs/healthtech.js +470 -0
  130. package/dist/marketplace/packs/healthtech.js.map +1 -0
  131. package/dist/marketplace/packs/hipaa.d.ts +8 -0
  132. package/dist/marketplace/packs/hipaa.d.ts.map +1 -0
  133. package/dist/marketplace/packs/hipaa.js +473 -0
  134. package/dist/marketplace/packs/hipaa.js.map +1 -0
  135. package/dist/marketplace/packs/index.d.ts +250 -0
  136. package/dist/marketplace/packs/index.d.ts.map +1 -0
  137. package/dist/marketplace/packs/index.js +205 -0
  138. package/dist/marketplace/packs/index.js.map +1 -0
  139. package/dist/marketplace/packs/nextjs.d.ts +8 -0
  140. package/dist/marketplace/packs/nextjs.d.ts.map +1 -0
  141. package/dist/marketplace/packs/nextjs.js +532 -0
  142. package/dist/marketplace/packs/nextjs.js.map +1 -0
  143. package/dist/marketplace/packs/rails.d.ts +8 -0
  144. package/dist/marketplace/packs/rails.d.ts.map +1 -0
  145. package/dist/marketplace/packs/rails.js +866 -0
  146. package/dist/marketplace/packs/rails.js.map +1 -0
  147. package/dist/marketplace/packs/saas.d.ts +8 -0
  148. package/dist/marketplace/packs/saas.d.ts.map +1 -0
  149. package/dist/marketplace/packs/saas.js +516 -0
  150. package/dist/marketplace/packs/saas.js.map +1 -0
  151. package/dist/marketplace/packs/soc2.d.ts +8 -0
  152. package/dist/marketplace/packs/soc2.d.ts.map +1 -0
  153. package/dist/marketplace/packs/soc2.js +455 -0
  154. package/dist/marketplace/packs/soc2.js.map +1 -0
  155. package/dist/marketplace/registry.d.ts +76 -0
  156. package/dist/marketplace/registry.d.ts.map +1 -0
  157. package/dist/marketplace/registry.js +454 -0
  158. package/dist/marketplace/registry.js.map +1 -0
  159. package/dist/marketplace/types.d.ts +202 -0
  160. package/dist/marketplace/types.d.ts.map +1 -0
  161. package/dist/marketplace/types.js +61 -0
  162. package/dist/marketplace/types.js.map +1 -0
  163. package/dist/mcp/index.js +1 -1
  164. package/dist/plugins/builtin/html-formatter.d.ts +11 -0
  165. package/dist/plugins/builtin/html-formatter.d.ts.map +1 -0
  166. package/dist/plugins/builtin/html-formatter.js +214 -0
  167. package/dist/plugins/builtin/html-formatter.js.map +1 -0
  168. package/dist/plugins/builtin/index.d.ts +21 -0
  169. package/dist/plugins/builtin/index.d.ts.map +1 -0
  170. package/dist/plugins/builtin/index.js +31 -0
  171. package/dist/plugins/builtin/index.js.map +1 -0
  172. package/dist/plugins/builtin/markdown-formatter.d.ts +11 -0
  173. package/dist/plugins/builtin/markdown-formatter.d.ts.map +1 -0
  174. package/dist/plugins/builtin/markdown-formatter.js +77 -0
  175. package/dist/plugins/builtin/markdown-formatter.js.map +1 -0
  176. package/dist/plugins/builtin/quality-validator.d.ts +11 -0
  177. package/dist/plugins/builtin/quality-validator.d.ts.map +1 -0
  178. package/dist/plugins/builtin/quality-validator.js +355 -0
  179. package/dist/plugins/builtin/quality-validator.js.map +1 -0
  180. package/dist/plugins/index.d.ts +98 -0
  181. package/dist/plugins/index.d.ts.map +1 -0
  182. package/dist/plugins/index.js +187 -0
  183. package/dist/plugins/index.js.map +1 -0
  184. package/dist/plugins/manager.d.ts +122 -0
  185. package/dist/plugins/manager.d.ts.map +1 -0
  186. package/dist/plugins/manager.js +349 -0
  187. package/dist/plugins/manager.js.map +1 -0
  188. package/dist/plugins/types.d.ts +348 -0
  189. package/dist/plugins/types.d.ts.map +1 -0
  190. package/dist/plugins/types.js +13 -0
  191. package/dist/plugins/types.js.map +1 -0
  192. package/package.json +5 -4
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Custom Template Engine
3
+ * Compiles YAML templates with variable interpolation and conditional logic
4
+ */
5
+ export class TemplateEngine {
6
+ templates = new Map();
7
+ helpers = new Map();
8
+ constructor() {
9
+ this.registerDefaultHelpers();
10
+ }
11
+ /**
12
+ * Register a template
13
+ */
14
+ registerTemplate(template) {
15
+ this.templates.set(template.meta.id, template);
16
+ }
17
+ /**
18
+ * Get a registered template
19
+ */
20
+ getTemplate(id) {
21
+ return this.templates.get(id);
22
+ }
23
+ /**
24
+ * List all registered templates
25
+ */
26
+ listTemplates() {
27
+ return Array.from(this.templates.values());
28
+ }
29
+ /**
30
+ * Register a custom helper function
31
+ */
32
+ registerHelper(name, helper) {
33
+ this.helpers.set(name, helper);
34
+ }
35
+ /**
36
+ * Compile a template with context
37
+ */
38
+ compile(template, context) {
39
+ // Resolve inheritance
40
+ const resolvedTemplate = this.resolveInheritance(template);
41
+ // Merge defaults with provided variables
42
+ const variables = this.resolveVariables(resolvedTemplate.variables, context.variables);
43
+ // Compile sections
44
+ const sections = this.compileSections(resolvedTemplate.sections, variables);
45
+ return {
46
+ template: resolvedTemplate,
47
+ sections,
48
+ variables,
49
+ };
50
+ }
51
+ /**
52
+ * Render compiled template to markdown
53
+ */
54
+ render(compiled) {
55
+ const lines = [];
56
+ // Add title
57
+ lines.push(`# ${this.interpolate(compiled.template.meta.name, compiled.variables)}`);
58
+ lines.push('');
59
+ // Render sections
60
+ for (const section of compiled.sections) {
61
+ lines.push(...this.renderSection(section, 2));
62
+ }
63
+ return lines.join('\n');
64
+ }
65
+ /**
66
+ * Compile and render in one step
67
+ */
68
+ process(template, context) {
69
+ const compiled = this.compile(template, context);
70
+ return this.render(compiled);
71
+ }
72
+ /**
73
+ * Resolve template inheritance
74
+ */
75
+ resolveInheritance(template) {
76
+ if (!template.extends) {
77
+ return template;
78
+ }
79
+ const parent = this.templates.get(template.extends);
80
+ if (!parent) {
81
+ throw new Error(`Parent template not found: ${template.extends}`);
82
+ }
83
+ // Resolve parent first (recursive)
84
+ const resolvedParent = this.resolveInheritance(parent);
85
+ // Merge templates (child overrides parent)
86
+ return {
87
+ meta: { ...resolvedParent.meta, ...template.meta },
88
+ variables: this.mergeVariables(resolvedParent.variables, template.variables),
89
+ sections: this.mergeSections(resolvedParent.sections, template.sections),
90
+ prompts: [...(resolvedParent.prompts || []), ...(template.prompts || [])],
91
+ };
92
+ }
93
+ /**
94
+ * Merge variable definitions
95
+ */
96
+ mergeVariables(parent, child) {
97
+ const merged = new Map();
98
+ // Add parent variables
99
+ for (const v of parent) {
100
+ merged.set(v.name, v);
101
+ }
102
+ // Override/add child variables
103
+ for (const v of child) {
104
+ merged.set(v.name, { ...merged.get(v.name), ...v });
105
+ }
106
+ return Array.from(merged.values());
107
+ }
108
+ /**
109
+ * Merge section definitions
110
+ */
111
+ mergeSections(parent, child) {
112
+ const merged = new Map();
113
+ // Add parent sections
114
+ for (const s of parent) {
115
+ merged.set(s.id, s);
116
+ }
117
+ // Override/add child sections
118
+ for (const s of child) {
119
+ const existing = merged.get(s.id);
120
+ if (existing) {
121
+ merged.set(s.id, {
122
+ ...existing,
123
+ ...s,
124
+ sections: s.sections
125
+ ? this.mergeSections(existing.sections || [], s.sections)
126
+ : existing.sections,
127
+ });
128
+ }
129
+ else {
130
+ merged.set(s.id, s);
131
+ }
132
+ }
133
+ // Sort by order
134
+ return Array.from(merged.values()).sort((a, b) => (a.order || 0) - (b.order || 0));
135
+ }
136
+ /**
137
+ * Resolve variables with defaults
138
+ */
139
+ resolveVariables(definitions, provided) {
140
+ const resolved = {};
141
+ for (const def of definitions) {
142
+ if (provided[def.name] !== undefined) {
143
+ resolved[def.name] = provided[def.name];
144
+ }
145
+ else if (def.default !== undefined) {
146
+ resolved[def.name] = def.default;
147
+ }
148
+ else if (def.required) {
149
+ throw new Error(`Required variable missing: ${def.name}`);
150
+ }
151
+ }
152
+ // Add any extra provided variables
153
+ for (const [key, value] of Object.entries(provided)) {
154
+ if (resolved[key] === undefined) {
155
+ resolved[key] = value;
156
+ }
157
+ }
158
+ return resolved;
159
+ }
160
+ /**
161
+ * Compile sections with conditions and interpolation
162
+ */
163
+ compileSections(sections, variables) {
164
+ const compiled = [];
165
+ for (const section of sections) {
166
+ // Check condition
167
+ if (section.condition && !this.evaluateCondition(section.condition, variables)) {
168
+ continue;
169
+ }
170
+ // Compile section
171
+ const compiledSection = {
172
+ id: section.id,
173
+ title: this.interpolate(section.title, variables),
174
+ content: this.interpolate(section.content, variables),
175
+ };
176
+ // Compile nested sections
177
+ if (section.sections) {
178
+ compiledSection.sections = this.compileSections(section.sections, variables);
179
+ }
180
+ compiled.push(compiledSection);
181
+ }
182
+ return compiled;
183
+ }
184
+ /**
185
+ * Evaluate a condition
186
+ */
187
+ evaluateCondition(condition, variables) {
188
+ const value = variables[condition.variable];
189
+ switch (condition.operator) {
190
+ case 'equals':
191
+ return value === condition.value;
192
+ case 'not_equals':
193
+ return value !== condition.value;
194
+ case 'contains':
195
+ if (Array.isArray(value)) {
196
+ return value.includes(condition.value);
197
+ }
198
+ if (typeof value === 'string') {
199
+ return value.includes(String(condition.value));
200
+ }
201
+ return false;
202
+ case 'not_contains':
203
+ if (Array.isArray(value)) {
204
+ return !value.includes(condition.value);
205
+ }
206
+ if (typeof value === 'string') {
207
+ return !value.includes(String(condition.value));
208
+ }
209
+ return true;
210
+ case 'greater_than':
211
+ return typeof value === 'number' && value > Number(condition.value);
212
+ case 'less_than':
213
+ return typeof value === 'number' && value < Number(condition.value);
214
+ case 'exists':
215
+ return value !== undefined && value !== null && value !== '';
216
+ case 'not_exists':
217
+ return value === undefined || value === null || value === '';
218
+ default:
219
+ return true;
220
+ }
221
+ }
222
+ /**
223
+ * Interpolate variables in a string
224
+ */
225
+ interpolate(text, variables) {
226
+ // Handle {{variable}} syntax
227
+ let result = text.replace(/\{\{(\w+)\}\}/g, (_, name) => {
228
+ const value = variables[name];
229
+ if (value === undefined)
230
+ return `{{${name}}}`;
231
+ return String(value);
232
+ });
233
+ // Handle {{#if condition}}...{{/if}} blocks
234
+ result = this.processConditionalBlocks(result, variables);
235
+ // Handle {{#each array}}...{{/each}} blocks
236
+ result = this.processLoopBlocks(result, variables);
237
+ // Handle {{helper arg1 arg2}} calls
238
+ result = this.processHelperCalls(result, variables);
239
+ return result;
240
+ }
241
+ /**
242
+ * Process conditional blocks
243
+ */
244
+ processConditionalBlocks(text, variables) {
245
+ const ifPattern = /\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g;
246
+ const ifElsePattern = /\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{else\}\}([\s\S]*?)\{\{\/if\}\}/g;
247
+ // Handle if-else first
248
+ let result = text.replace(ifElsePattern, (_, varName, ifContent, elseContent) => {
249
+ const value = variables[varName];
250
+ const isTruthy = value !== undefined && value !== null && value !== false && value !== '';
251
+ return isTruthy ? ifContent : elseContent;
252
+ });
253
+ // Handle simple if
254
+ result = result.replace(ifPattern, (_, varName, content) => {
255
+ const value = variables[varName];
256
+ const isTruthy = value !== undefined && value !== null && value !== false && value !== '';
257
+ return isTruthy ? content : '';
258
+ });
259
+ // Handle {{#unless variable}}
260
+ const unlessPattern = /\{\{#unless\s+(\w+)\}\}([\s\S]*?)\{\{\/unless\}\}/g;
261
+ result = result.replace(unlessPattern, (_, varName, content) => {
262
+ const value = variables[varName];
263
+ const isFalsy = value === undefined || value === null || value === false || value === '';
264
+ return isFalsy ? content : '';
265
+ });
266
+ return result;
267
+ }
268
+ /**
269
+ * Process loop blocks
270
+ */
271
+ processLoopBlocks(text, variables) {
272
+ const eachPattern = /\{\{#each\s+(\w+)\}\}([\s\S]*?)\{\{\/each\}\}/g;
273
+ return text.replace(eachPattern, (_, varName, content) => {
274
+ const value = variables[varName];
275
+ if (!Array.isArray(value))
276
+ return '';
277
+ return value.map((item, index) => {
278
+ // Replace {{this}} with item value
279
+ let itemContent = content.replace(/\{\{this\}\}/g, String(item));
280
+ // Replace {{@index}} with index
281
+ itemContent = itemContent.replace(/\{\{@index\}\}/g, String(index));
282
+ // Replace {{@first}} and {{@last}}
283
+ itemContent = itemContent.replace(/\{\{@first\}\}/g, String(index === 0));
284
+ itemContent = itemContent.replace(/\{\{@last\}\}/g, String(index === value.length - 1));
285
+ // If item is object, allow {{property}} access
286
+ if (typeof item === 'object' && item !== null) {
287
+ for (const [key, val] of Object.entries(item)) {
288
+ itemContent = itemContent.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), String(val));
289
+ }
290
+ }
291
+ return itemContent;
292
+ }).join('');
293
+ });
294
+ }
295
+ /**
296
+ * Process helper function calls
297
+ */
298
+ processHelperCalls(text, variables) {
299
+ // Match {{helperName arg1 arg2 ...}}
300
+ const helperPattern = /\{\{(\w+)(?:\s+([^}]+))?\}\}/g;
301
+ return text.replace(helperPattern, (match, helperName, argsString) => {
302
+ const helper = this.helpers.get(helperName);
303
+ if (!helper)
304
+ return match; // Not a helper, return unchanged
305
+ // Parse arguments
306
+ const args = argsString
307
+ ? argsString.split(/\s+/).map((arg) => {
308
+ // Check if arg is a variable reference
309
+ if (variables[arg] !== undefined) {
310
+ return variables[arg];
311
+ }
312
+ // Check if arg is a string literal
313
+ if (arg.startsWith('"') && arg.endsWith('"')) {
314
+ return arg.slice(1, -1);
315
+ }
316
+ if (arg.startsWith("'") && arg.endsWith("'")) {
317
+ return arg.slice(1, -1);
318
+ }
319
+ // Check if arg is a number
320
+ if (!isNaN(Number(arg))) {
321
+ return Number(arg);
322
+ }
323
+ return arg;
324
+ })
325
+ : [];
326
+ return String(helper(args, variables));
327
+ });
328
+ }
329
+ /**
330
+ * Render a section to markdown
331
+ */
332
+ renderSection(section, level) {
333
+ const lines = [];
334
+ const prefix = '#'.repeat(Math.min(level, 6));
335
+ lines.push(`${prefix} ${section.title}`);
336
+ lines.push('');
337
+ if (section.content.trim()) {
338
+ lines.push(section.content.trim());
339
+ lines.push('');
340
+ }
341
+ if (section.sections) {
342
+ for (const child of section.sections) {
343
+ lines.push(...this.renderSection(child, level + 1));
344
+ }
345
+ }
346
+ return lines;
347
+ }
348
+ /**
349
+ * Register default helper functions
350
+ */
351
+ registerDefaultHelpers() {
352
+ // Date formatting
353
+ this.registerHelper('date', (args) => {
354
+ const format = args[0] || 'YYYY-MM-DD';
355
+ const date = new Date();
356
+ return this.formatDate(date, format);
357
+ });
358
+ // Uppercase
359
+ this.registerHelper('uppercase', (args) => {
360
+ return String(args[0] || '').toUpperCase();
361
+ });
362
+ // Lowercase
363
+ this.registerHelper('lowercase', (args) => {
364
+ return String(args[0] || '').toLowerCase();
365
+ });
366
+ // Capitalize
367
+ this.registerHelper('capitalize', (args) => {
368
+ const str = String(args[0] || '');
369
+ return str.charAt(0).toUpperCase() + str.slice(1);
370
+ });
371
+ // Join array
372
+ this.registerHelper('join', (args) => {
373
+ const arr = args[0];
374
+ const separator = String(args[1] || ', ');
375
+ if (Array.isArray(arr)) {
376
+ return arr.join(separator);
377
+ }
378
+ return String(arr);
379
+ });
380
+ // Default value
381
+ this.registerHelper('default', (args) => {
382
+ return args[0] !== undefined && args[0] !== null && args[0] !== '' ? args[0] : args[1];
383
+ });
384
+ // Length
385
+ this.registerHelper('length', (args) => {
386
+ const val = args[0];
387
+ if (Array.isArray(val))
388
+ return val.length;
389
+ if (typeof val === 'string')
390
+ return val.length;
391
+ return 0;
392
+ });
393
+ // Truncate
394
+ this.registerHelper('truncate', (args) => {
395
+ const str = String(args[0] || '');
396
+ const len = Number(args[1]) || 100;
397
+ if (str.length <= len)
398
+ return str;
399
+ return str.slice(0, len) + '...';
400
+ });
401
+ // Slug
402
+ this.registerHelper('slug', (args) => {
403
+ return String(args[0] || '')
404
+ .toLowerCase()
405
+ .replace(/[^a-z0-9]+/g, '-')
406
+ .replace(/^-|-$/g, '');
407
+ });
408
+ }
409
+ /**
410
+ * Format date helper
411
+ */
412
+ formatDate(date, format) {
413
+ const pad = (n) => String(n).padStart(2, '0');
414
+ return format
415
+ .replace('YYYY', String(date.getFullYear()))
416
+ .replace('MM', pad(date.getMonth() + 1))
417
+ .replace('DD', pad(date.getDate()))
418
+ .replace('HH', pad(date.getHours()))
419
+ .replace('mm', pad(date.getMinutes()))
420
+ .replace('ss', pad(date.getSeconds()));
421
+ }
422
+ }
423
+ /**
424
+ * Create a template engine instance
425
+ */
426
+ export function createTemplateEngine() {
427
+ return new TemplateEngine();
428
+ }
429
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/enterprise/templates/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Custom Template System
3
+ * YAML-based templates with variable interpolation, conditionals, and inheritance
4
+ */
5
+ export * from './types.js';
6
+ export * from './engine.js';
7
+ export * from './loader.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/enterprise/templates/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Custom Template System
3
+ * YAML-based templates with variable interpolation, conditionals, and inheritance
4
+ */
5
+ export * from './types.js';
6
+ export * from './engine.js';
7
+ export * from './loader.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enterprise/templates/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Template Loader
3
+ * Load and validate YAML template definitions
4
+ */
5
+ import type { CustomTemplate, TemplateLibrary } from './types.js';
6
+ export declare class TemplateLoader {
7
+ private basePath;
8
+ constructor(basePath?: string);
9
+ /**
10
+ * Load a template from a YAML file
11
+ */
12
+ loadFile(filePath: string): CustomTemplate;
13
+ /**
14
+ * Load all templates from a directory
15
+ */
16
+ loadDirectory(dirPath: string): CustomTemplate[];
17
+ /**
18
+ * Load a template library
19
+ */
20
+ loadLibrary(libraryPath: string): {
21
+ library: TemplateLibrary;
22
+ templates: CustomTemplate[];
23
+ };
24
+ /**
25
+ * Parse YAML content into a template
26
+ */
27
+ parse(content: string, source?: string): CustomTemplate;
28
+ /**
29
+ * Validate and normalize template data
30
+ */
31
+ validate(data: Record<string, unknown>, source?: string): CustomTemplate;
32
+ /**
33
+ * Validate template meta
34
+ */
35
+ private validateMeta;
36
+ /**
37
+ * Validate template variables
38
+ */
39
+ private validateVariables;
40
+ /**
41
+ * Validate template sections
42
+ */
43
+ private validateSections;
44
+ /**
45
+ * Check if file is a template file
46
+ */
47
+ private isTemplateFile;
48
+ /**
49
+ * Resolve file path
50
+ */
51
+ private resolvePath;
52
+ /**
53
+ * Create a blank template scaffold
54
+ */
55
+ static createBlankTemplate(id: string, name: string): CustomTemplate;
56
+ /**
57
+ * Export template to YAML
58
+ */
59
+ static toYaml(template: CustomTemplate): string;
60
+ }
61
+ /**
62
+ * Create a template loader instance
63
+ */
64
+ export declare function createTemplateLoader(basePath?: string): TemplateLoader;
65
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/enterprise/templates/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,cAAc,EAId,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAI7B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAW1C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE;IA6BhD;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,eAAe,CAAC;QAAC,SAAS,EAAE,cAAc,EAAE,CAAA;KAAE;IAqB3F;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc;IAKvD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc;IA8CxE;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc;IAyCpE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;CAQhD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAEtE"}