@embeddables/cli 0.14.4-beta.2 → 0.14.4-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +3 -253
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update-project-files.d.ts +8 -0
- package/dist/commands/update-project-files.d.ts.map +1 -0
- package/dist/commands/update-project-files.js +265 -0
- package/dist/commands/update-project-files.js.map +1 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +16 -0
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/compiler/parsePage.d.ts.map +1 -1
- package/dist/compiler/parsePage.js +12 -16
- package/dist/compiler/parsePage.js.map +1 -1
- package/dist/compiler/reverse.d.ts.map +1 -1
- package/dist/compiler/reverse.js +33 -76
- package/dist/compiler/reverse.js.map +1 -1
- package/dist/components/primitives/CustomHTML.d.ts +2 -1
- package/dist/components/primitives/CustomHTML.d.ts.map +1 -1
- package/dist/components/primitives/CustomHTML.js +11 -2
- package/dist/components/primitives/CustomHTML.js.map +1 -1
- package/dist/helpers/json.d.ts.map +1 -1
- package/dist/helpers/json.js +132 -17
- package/dist/helpers/json.js.map +1 -1
- package/dist/types-builder.d.ts +3 -0
- package/dist/types-builder.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBAqBxE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,41 +1,11 @@
|
|
|
1
|
-
import fs from 'node:fs';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
1
|
import * as Sentry from '@sentry/node';
|
|
5
2
|
import pc from 'picocolors';
|
|
6
3
|
import { writeProjectConfig, readProjectConfig } from '../config/index.js';
|
|
7
4
|
import { isLoggedIn } from '../auth/index.js';
|
|
8
5
|
import { captureException, createLogger, exit } from '../logger.js';
|
|
9
6
|
import { promptForProject } from '../prompts/index.js';
|
|
10
|
-
import { writeTypeStubs } from '../helpers/typeStubs.js';
|
|
11
|
-
import { renderDefaultTagStylesCss } from '../constants/defaultTagStylesV4.js';
|
|
12
7
|
import * as stdout from '../stdout.js';
|
|
13
|
-
|
|
14
|
-
const __dirname = path.dirname(__filename);
|
|
15
|
-
/** Strip the first YAML frontmatter block (--- ... ---) from content. Returns body only, or full content if no frontmatter. */
|
|
16
|
-
function stripFrontmatter(content) {
|
|
17
|
-
const open = content.startsWith('---\n');
|
|
18
|
-
if (!open)
|
|
19
|
-
return content;
|
|
20
|
-
const afterFirst = content.indexOf('\n---', 4);
|
|
21
|
-
if (afterFirst === -1)
|
|
22
|
-
return content;
|
|
23
|
-
return content.slice(afterFirst + 4).replace(/^\n/, '');
|
|
24
|
-
}
|
|
25
|
-
/** Recursively copy a directory, creating target dirs as needed. */
|
|
26
|
-
function copyDirSync(src, dest) {
|
|
27
|
-
fs.mkdirSync(dest, { recursive: true });
|
|
28
|
-
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
29
|
-
const srcPath = path.join(src, entry.name);
|
|
30
|
-
const destPath = path.join(dest, entry.name);
|
|
31
|
-
if (entry.isDirectory()) {
|
|
32
|
-
copyDirSync(srcPath, destPath);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
fs.copyFileSync(srcPath, destPath);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
8
|
+
import { updateProjectFiles } from './update-project-files.js';
|
|
39
9
|
export async function runInit(opts) {
|
|
40
10
|
const logger = createLogger('runInit');
|
|
41
11
|
logger.info('init started');
|
|
@@ -61,8 +31,6 @@ export async function runInit(opts) {
|
|
|
61
31
|
}
|
|
62
32
|
async function runInitInner(opts) {
|
|
63
33
|
const cwd = process.cwd();
|
|
64
|
-
const gitignorePath = path.join(cwd, '.gitignore');
|
|
65
|
-
const embeddablesDir = path.join(cwd, 'embeddables');
|
|
66
34
|
stdout.header(`${stdout.symbols.rocket} Your Embeddables Project is Ready!`);
|
|
67
35
|
const existingConfig = readProjectConfig();
|
|
68
36
|
// Step 1: Get Embeddables project
|
|
@@ -125,226 +93,8 @@ async function runInitInner(opts) {
|
|
|
125
93
|
infoParts.unshift(['Project Title', selectedProjectTitle]);
|
|
126
94
|
stdout.infoBox(infoParts.map(([k, v]) => `${k}: ${v}`).join(' · '));
|
|
127
95
|
}
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
const embeddablesBlock = `# Embeddables\n${gitignoreEntries.join('\n')}\n`;
|
|
131
|
-
let existingGitignore = '';
|
|
132
|
-
if (fs.existsSync(gitignorePath)) {
|
|
133
|
-
existingGitignore = fs.readFileSync(gitignorePath, 'utf8');
|
|
134
|
-
}
|
|
135
|
-
const embeddablesSectionRegex = /# Embeddables\n(?:[^\n]*\n)*?(?=\n#|\n\n|$)/;
|
|
136
|
-
if (embeddablesSectionRegex.test(existingGitignore)) {
|
|
137
|
-
const updated = existingGitignore.replace(embeddablesSectionRegex, embeddablesBlock);
|
|
138
|
-
if (updated !== existingGitignore) {
|
|
139
|
-
fs.writeFileSync(gitignorePath, updated, 'utf8');
|
|
140
|
-
stdout.success('Updated .gitignore');
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
stdout.dim(' ✓ .gitignore already configured');
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
const separator = existingGitignore && !existingGitignore.endsWith('\n') ? '\n' : '';
|
|
148
|
-
const content = existingGitignore
|
|
149
|
-
? `${existingGitignore}${separator}\n${embeddablesBlock}`
|
|
150
|
-
: embeddablesBlock;
|
|
151
|
-
fs.writeFileSync(gitignorePath, content, 'utf8');
|
|
152
|
-
stdout.success(existingGitignore ? 'Updated .gitignore' : 'Created .gitignore');
|
|
153
|
-
}
|
|
154
|
-
// Create embeddables directory
|
|
155
|
-
if (!fs.existsSync(embeddablesDir)) {
|
|
156
|
-
fs.mkdirSync(embeddablesDir, { recursive: true });
|
|
157
|
-
stdout.success('Created embeddables/ directory');
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
stdout.dim(' ✓ embeddables/ directory exists');
|
|
161
|
-
}
|
|
162
|
-
// Create default-styles.css in project root for standard tag defaults
|
|
163
|
-
const defaultStylesPath = path.join(cwd, 'default-styles.css');
|
|
164
|
-
if (!fs.existsSync(defaultStylesPath)) {
|
|
165
|
-
fs.writeFileSync(defaultStylesPath, renderDefaultTagStylesCss(), 'utf8');
|
|
166
|
-
stdout.success('Created default-styles.css');
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
stdout.dim(' ✓ default-styles.css already exists');
|
|
170
|
-
}
|
|
171
|
-
// Remove old .claudefiles folder (replaced by .cursor/ and .claude/)
|
|
172
|
-
const claudefilesDir = path.join(cwd, '.claudefiles');
|
|
173
|
-
if (fs.existsSync(claudefilesDir)) {
|
|
174
|
-
fs.rmSync(claudefilesDir, { recursive: true });
|
|
175
|
-
stdout.success('Removed old .claudefiles/');
|
|
176
|
-
}
|
|
177
|
-
// Inject .cursor/ and .claude/ from source .prompts/embeddables-cli.md (or copy if pre-built dirs exist)
|
|
178
|
-
const packageRoot = path.resolve(__dirname, '..', '..');
|
|
179
|
-
const promptsSource = path.join(packageRoot, '.prompts', 'embeddables-cli.md');
|
|
180
|
-
const sourceCursorDir = path.join(packageRoot, '.cursor');
|
|
181
|
-
const sourceClaudeDir = path.join(packageRoot, '.claude');
|
|
182
|
-
const sourceAgentDir = path.join(packageRoot, '.agent');
|
|
183
|
-
if (fs.existsSync(promptsSource)) {
|
|
184
|
-
const content = fs.readFileSync(promptsSource, 'utf8');
|
|
185
|
-
const cursorFrontmatter = `---
|
|
186
|
-
globs:
|
|
187
|
-
alwaysApply: true
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
`;
|
|
191
|
-
const antigravityFrontmatter = `---
|
|
192
|
-
globs:
|
|
193
|
-
alwaysOn: true
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
`;
|
|
197
|
-
const claudeIntro = `# Embeddables project (Claude Code)
|
|
198
|
-
|
|
199
|
-
This is an Embeddables project managed by the Embeddables CLI. The CLI transforms Embeddable JSON into a local file structure for development, then compiles it back to JSON for saving.
|
|
200
|
-
|
|
201
|
-
For full context when editing embeddables (pages, components, styles, actions, computed fields), see:
|
|
202
|
-
|
|
203
|
-
- **.claude/embeddables-cli.md** — Embeddables CLI structure, types, file layout, and conventions.
|
|
204
|
-
|
|
205
|
-
All TypeScript types are in \`.types/\` (generated by \`embeddables init\`). Use \`embeddables dev\` to run the dev server and \`embeddables pull\` / \`embeddables save\` to sync with the project.
|
|
206
|
-
`;
|
|
207
|
-
const codexIntro = `# Embeddables project (Codex)
|
|
208
|
-
|
|
209
|
-
This is an Embeddables project managed by the Embeddables CLI. The CLI transforms Embeddable JSON into a local file structure for development, then compiles it back to JSON for saving.
|
|
210
|
-
|
|
211
|
-
All TypeScript types are in \`.types/\` (generated by \`embeddables init\`). Use \`embeddables dev\` to run the dev server and \`embeddables pull\` / \`embeddables save\` to sync with the project.
|
|
212
|
-
|
|
213
|
-
`;
|
|
214
|
-
const cursorRulesDir = path.join(cwd, '.cursor', 'rules');
|
|
215
|
-
const claudeDir = path.join(cwd, '.claude');
|
|
216
|
-
const agentRulesDir = path.join(cwd, '.agent', 'rules');
|
|
217
|
-
fs.mkdirSync(cursorRulesDir, { recursive: true });
|
|
218
|
-
fs.mkdirSync(claudeDir, { recursive: true });
|
|
219
|
-
fs.mkdirSync(agentRulesDir, { recursive: true });
|
|
220
|
-
fs.writeFileSync(path.join(cursorRulesDir, 'embeddables-cli.md'), cursorFrontmatter + content, 'utf8');
|
|
221
|
-
fs.writeFileSync(path.join(claudeDir, 'CLAUDE.md'), claudeIntro, 'utf8');
|
|
222
|
-
fs.writeFileSync(path.join(claudeDir, 'embeddables-cli.md'), content, 'utf8');
|
|
223
|
-
fs.writeFileSync(path.join(cwd, 'AGENTS.md'), codexIntro + content, 'utf8');
|
|
224
|
-
fs.writeFileSync(path.join(agentRulesDir, 'embeddables-cli.md'), antigravityFrontmatter + stripFrontmatter(content), 'utf8');
|
|
225
|
-
stdout.success('Injected .cursor/ rules');
|
|
226
|
-
stdout.success('Injected .claude/');
|
|
227
|
-
stdout.success('Injected AGENTS.md (Codex)');
|
|
228
|
-
stdout.success('Injected .agent/ rules (Antigravity)');
|
|
229
|
-
}
|
|
230
|
-
else if (fs.existsSync(sourceCursorDir) || fs.existsSync(sourceClaudeDir) || fs.existsSync(sourceAgentDir)) {
|
|
231
|
-
if (fs.existsSync(sourceCursorDir)) {
|
|
232
|
-
copyDirSync(sourceCursorDir, path.join(cwd, '.cursor'));
|
|
233
|
-
stdout.success('Injected .cursor/ rules');
|
|
234
|
-
}
|
|
235
|
-
if (fs.existsSync(sourceClaudeDir)) {
|
|
236
|
-
copyDirSync(sourceClaudeDir, path.join(cwd, '.claude'));
|
|
237
|
-
stdout.success('Injected .claude/');
|
|
238
|
-
}
|
|
239
|
-
if (fs.existsSync(sourceAgentDir)) {
|
|
240
|
-
copyDirSync(sourceAgentDir, path.join(cwd, '.agent'));
|
|
241
|
-
stdout.success('Injected .agent/ rules (Antigravity)');
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
// Create tsconfig.json for editor support (JSX, type checking)
|
|
245
|
-
const tsconfigPath = path.join(cwd, 'tsconfig.json');
|
|
246
|
-
if (!fs.existsSync(tsconfigPath)) {
|
|
247
|
-
const tsconfig = {
|
|
248
|
-
compilerOptions: {
|
|
249
|
-
target: 'esnext',
|
|
250
|
-
module: 'esnext',
|
|
251
|
-
moduleResolution: 'bundler',
|
|
252
|
-
jsx: 'react-jsx',
|
|
253
|
-
noEmit: true,
|
|
254
|
-
strict: false,
|
|
255
|
-
skipLibCheck: true,
|
|
256
|
-
esModuleInterop: true,
|
|
257
|
-
baseUrl: '.',
|
|
258
|
-
paths: {
|
|
259
|
-
'react/jsx-runtime': ['./.types/react-jsx-runtime.d.ts'],
|
|
260
|
-
'@embeddables/cli/components': ['./.types/components.d.ts'],
|
|
261
|
-
'@embeddables/cli/types': ['./.types/types.d.ts'],
|
|
262
|
-
},
|
|
263
|
-
},
|
|
264
|
-
include: ['embeddables'],
|
|
265
|
-
};
|
|
266
|
-
fs.writeFileSync(tsconfigPath, JSON.stringify(tsconfig, null, 2) + '\n', 'utf8');
|
|
267
|
-
stdout.success('Created tsconfig.json');
|
|
268
|
-
}
|
|
269
|
-
else {
|
|
270
|
-
stdout.dim(' ✓ tsconfig.json already exists');
|
|
271
|
-
}
|
|
272
|
-
// Migrate .types from old location (embeddables/.types/) to project root (.types/)
|
|
273
|
-
const oldTypesDir = path.join(embeddablesDir, '.types');
|
|
274
|
-
if (fs.existsSync(oldTypesDir)) {
|
|
275
|
-
fs.rmSync(oldTypesDir, { recursive: true });
|
|
276
|
-
stdout.success('Removed old embeddables/.types/');
|
|
277
|
-
}
|
|
278
|
-
// Ensure tsconfig has baseUrl and paths for type resolution
|
|
279
|
-
if (fs.existsSync(tsconfigPath)) {
|
|
280
|
-
let tsconfigContent = fs.readFileSync(tsconfigPath, 'utf8');
|
|
281
|
-
let updated = false;
|
|
282
|
-
// Migrate old embeddables/.types/ location → .types/
|
|
283
|
-
if (tsconfigContent.includes('./embeddables/.types/')) {
|
|
284
|
-
tsconfigContent = tsconfigContent.replaceAll('./embeddables/.types/', './.types/');
|
|
285
|
-
updated = true;
|
|
286
|
-
}
|
|
287
|
-
// Migrate old .types/types-builder → .types/types
|
|
288
|
-
if (tsconfigContent.includes('./.types/types-builder')) {
|
|
289
|
-
tsconfigContent = tsconfigContent.replace(/\.\/\.types\/types-builder(\.d\.ts)?"/g, './.types/types.d.ts"');
|
|
290
|
-
updated = true;
|
|
291
|
-
}
|
|
292
|
-
// Migrate paths without .d.ts extension → with .d.ts
|
|
293
|
-
const extensionless = [
|
|
294
|
-
['./.types/react-jsx-runtime"', './.types/react-jsx-runtime.d.ts"'],
|
|
295
|
-
['./.types/components"', './.types/components.d.ts"'],
|
|
296
|
-
['./.types/types"', './.types/types.d.ts"'],
|
|
297
|
-
];
|
|
298
|
-
for (const [old, replacement] of extensionless) {
|
|
299
|
-
if (tsconfigContent.includes(old) && !tsconfigContent.includes(replacement)) {
|
|
300
|
-
tsconfigContent = tsconfigContent.replaceAll(old, replacement);
|
|
301
|
-
updated = true;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
// Add baseUrl and paths if missing entirely
|
|
305
|
-
try {
|
|
306
|
-
const tsconfig = JSON.parse(tsconfigContent);
|
|
307
|
-
const co = tsconfig.compilerOptions ?? {};
|
|
308
|
-
let coUpdated = false;
|
|
309
|
-
if (!co.baseUrl) {
|
|
310
|
-
co.baseUrl = '.';
|
|
311
|
-
coUpdated = true;
|
|
312
|
-
}
|
|
313
|
-
const requiredPaths = {
|
|
314
|
-
'react/jsx-runtime': ['./.types/react-jsx-runtime.d.ts'],
|
|
315
|
-
'@embeddables/cli/components': ['./.types/components.d.ts'],
|
|
316
|
-
'@embeddables/cli/types': ['./.types/types.d.ts'],
|
|
317
|
-
};
|
|
318
|
-
if (!co.paths)
|
|
319
|
-
co.paths = {};
|
|
320
|
-
for (const [key, value] of Object.entries(requiredPaths)) {
|
|
321
|
-
if (!co.paths[key]) {
|
|
322
|
-
co.paths[key] = value;
|
|
323
|
-
coUpdated = true;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
if (coUpdated) {
|
|
327
|
-
tsconfig.compilerOptions = co;
|
|
328
|
-
tsconfigContent = JSON.stringify(tsconfig, null, 2) + '\n';
|
|
329
|
-
updated = true;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
catch {
|
|
333
|
-
// If tsconfig isn't valid JSON (e.g. has comments), fall through to string-based updates above
|
|
334
|
-
}
|
|
335
|
-
if (updated) {
|
|
336
|
-
fs.writeFileSync(tsconfigPath, tsconfigContent, 'utf8');
|
|
337
|
-
stdout.success('Updated tsconfig.json');
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
// Remove old .types/types-builder.d.ts (now named .types/types.d.ts)
|
|
341
|
-
const legacyTypesBuilderDts = path.join(cwd, '.types', 'types-builder.d.ts');
|
|
342
|
-
if (fs.existsSync(legacyTypesBuilderDts)) {
|
|
343
|
-
fs.rmSync(legacyTypesBuilderDts);
|
|
344
|
-
}
|
|
345
|
-
// Generate type declaration stubs for editor support (no npm install needed)
|
|
346
|
-
writeTypeStubs(cwd);
|
|
347
|
-
stdout.success('Generated type declarations');
|
|
96
|
+
// Update all project scaffold files (gitignore, AI rules, type stubs, tsconfig, etc.)
|
|
97
|
+
updateProjectFiles(cwd);
|
|
348
98
|
// Next steps in a compact box
|
|
349
99
|
stdout.gap();
|
|
350
100
|
const nextStepsLines = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Updates all project scaffold files (gitignore, AI/editor rules, type stubs, tsconfig, etc.)
|
|
3
|
+
* without touching project configuration (embeddables.json).
|
|
4
|
+
*
|
|
5
|
+
* Called by both `init` (full project setup) and `upgrade` (refresh files after CLI update).
|
|
6
|
+
*/
|
|
7
|
+
export declare function updateProjectFiles(cwd: string): void;
|
|
8
|
+
//# sourceMappingURL=update-project-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-project-files.d.ts","sourceRoot":"","sources":["../../src/commands/update-project-files.ts"],"names":[],"mappings":"AAiCA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAyPpD"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { writeTypeStubs } from '../helpers/typeStubs.js';
|
|
5
|
+
import { renderDefaultTagStylesCss } from '../constants/defaultTagStylesV4.js';
|
|
6
|
+
import * as stdout from '../stdout.js';
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = path.dirname(__filename);
|
|
9
|
+
/** Strip the first YAML frontmatter block (--- ... ---) from content. Returns body only, or full content if no frontmatter. */
|
|
10
|
+
function stripFrontmatter(content) {
|
|
11
|
+
const open = content.startsWith('---\n');
|
|
12
|
+
if (!open)
|
|
13
|
+
return content;
|
|
14
|
+
const afterFirst = content.indexOf('\n---', 4);
|
|
15
|
+
if (afterFirst === -1)
|
|
16
|
+
return content;
|
|
17
|
+
return content.slice(afterFirst + 4).replace(/^\n/, '');
|
|
18
|
+
}
|
|
19
|
+
/** Recursively copy a directory, creating target dirs as needed. */
|
|
20
|
+
function copyDirSync(src, dest) {
|
|
21
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
22
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
23
|
+
const srcPath = path.join(src, entry.name);
|
|
24
|
+
const destPath = path.join(dest, entry.name);
|
|
25
|
+
if (entry.isDirectory()) {
|
|
26
|
+
copyDirSync(srcPath, destPath);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
fs.copyFileSync(srcPath, destPath);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Updates all project scaffold files (gitignore, AI/editor rules, type stubs, tsconfig, etc.)
|
|
35
|
+
* without touching project configuration (embeddables.json).
|
|
36
|
+
*
|
|
37
|
+
* Called by both `init` (full project setup) and `upgrade` (refresh files after CLI update).
|
|
38
|
+
*/
|
|
39
|
+
export function updateProjectFiles(cwd) {
|
|
40
|
+
const gitignorePath = path.join(cwd, '.gitignore');
|
|
41
|
+
const embeddablesDir = path.join(cwd, 'embeddables');
|
|
42
|
+
// Create or update .gitignore
|
|
43
|
+
const gitignoreEntries = ['**/.generated/', 'node_modules/', '.DS_Store'];
|
|
44
|
+
const embeddablesBlock = `# Embeddables\n${gitignoreEntries.join('\n')}\n`;
|
|
45
|
+
let existingGitignore = '';
|
|
46
|
+
if (fs.existsSync(gitignorePath)) {
|
|
47
|
+
existingGitignore = fs.readFileSync(gitignorePath, 'utf8');
|
|
48
|
+
}
|
|
49
|
+
const embeddablesSectionRegex = /# Embeddables\n(?:[^\n]*\n)*?(?=\n#|\n\n|$)/;
|
|
50
|
+
if (embeddablesSectionRegex.test(existingGitignore)) {
|
|
51
|
+
const updated = existingGitignore.replace(embeddablesSectionRegex, embeddablesBlock);
|
|
52
|
+
if (updated !== existingGitignore) {
|
|
53
|
+
fs.writeFileSync(gitignorePath, updated, 'utf8');
|
|
54
|
+
stdout.success('Updated .gitignore');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
stdout.dim(' ✓ .gitignore already configured');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const separator = existingGitignore && !existingGitignore.endsWith('\n') ? '\n' : '';
|
|
62
|
+
const content = existingGitignore
|
|
63
|
+
? `${existingGitignore}${separator}\n${embeddablesBlock}`
|
|
64
|
+
: embeddablesBlock;
|
|
65
|
+
fs.writeFileSync(gitignorePath, content, 'utf8');
|
|
66
|
+
stdout.success(existingGitignore ? 'Updated .gitignore' : 'Created .gitignore');
|
|
67
|
+
}
|
|
68
|
+
// Create embeddables directory
|
|
69
|
+
if (!fs.existsSync(embeddablesDir)) {
|
|
70
|
+
fs.mkdirSync(embeddablesDir, { recursive: true });
|
|
71
|
+
stdout.success('Created embeddables/ directory');
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
stdout.dim(' ✓ embeddables/ directory exists');
|
|
75
|
+
}
|
|
76
|
+
// Create default-styles.css in project root for standard tag defaults
|
|
77
|
+
const defaultStylesPath = path.join(cwd, 'default-styles.css');
|
|
78
|
+
if (!fs.existsSync(defaultStylesPath)) {
|
|
79
|
+
fs.writeFileSync(defaultStylesPath, renderDefaultTagStylesCss(), 'utf8');
|
|
80
|
+
stdout.success('Created default-styles.css');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
stdout.dim(' ✓ default-styles.css already exists');
|
|
84
|
+
}
|
|
85
|
+
// Remove old .claudefiles folder (replaced by .cursor/ and .claude/)
|
|
86
|
+
const claudefilesDir = path.join(cwd, '.claudefiles');
|
|
87
|
+
if (fs.existsSync(claudefilesDir)) {
|
|
88
|
+
fs.rmSync(claudefilesDir, { recursive: true });
|
|
89
|
+
stdout.success('Removed old .claudefiles/');
|
|
90
|
+
}
|
|
91
|
+
// Inject .cursor/ and .claude/ from source .prompts/embeddables-cli.md (or copy if pre-built dirs exist)
|
|
92
|
+
const packageRoot = path.resolve(__dirname, '..', '..');
|
|
93
|
+
const promptsSource = path.join(packageRoot, '.prompts', 'embeddables-cli.md');
|
|
94
|
+
const sourceCursorDir = path.join(packageRoot, '.cursor');
|
|
95
|
+
const sourceClaudeDir = path.join(packageRoot, '.claude');
|
|
96
|
+
const sourceAgentDir = path.join(packageRoot, '.agent');
|
|
97
|
+
if (fs.existsSync(promptsSource)) {
|
|
98
|
+
const content = fs.readFileSync(promptsSource, 'utf8');
|
|
99
|
+
const cursorFrontmatter = `---
|
|
100
|
+
globs:
|
|
101
|
+
alwaysApply: true
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
`;
|
|
105
|
+
const antigravityFrontmatter = `---
|
|
106
|
+
globs:
|
|
107
|
+
alwaysOn: true
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
`;
|
|
111
|
+
const claudeIntro = `# Embeddables project (Claude Code)
|
|
112
|
+
|
|
113
|
+
This is an Embeddables project managed by the Embeddables CLI. The CLI transforms Embeddable JSON into a local file structure for development, then compiles it back to JSON for saving.
|
|
114
|
+
|
|
115
|
+
For full context when editing embeddables (pages, components, styles, actions, computed fields), see:
|
|
116
|
+
|
|
117
|
+
- **.claude/embeddables-cli.md** — Embeddables CLI structure, types, file layout, and conventions.
|
|
118
|
+
|
|
119
|
+
All TypeScript types are in \`.types/\` (generated by \`embeddables init\`). Use \`embeddables dev\` to run the dev server and \`embeddables pull\` / \`embeddables save\` to sync with the project.
|
|
120
|
+
`;
|
|
121
|
+
const codexIntro = `# Embeddables project (Codex)
|
|
122
|
+
|
|
123
|
+
This is an Embeddables project managed by the Embeddables CLI. The CLI transforms Embeddable JSON into a local file structure for development, then compiles it back to JSON for saving.
|
|
124
|
+
|
|
125
|
+
All TypeScript types are in \`.types/\` (generated by \`embeddables init\`). Use \`embeddables dev\` to run the dev server and \`embeddables pull\` / \`embeddables save\` to sync with the project.
|
|
126
|
+
|
|
127
|
+
`;
|
|
128
|
+
const cursorRulesDir = path.join(cwd, '.cursor', 'rules');
|
|
129
|
+
const claudeDir = path.join(cwd, '.claude');
|
|
130
|
+
const agentRulesDir = path.join(cwd, '.agent', 'rules');
|
|
131
|
+
fs.mkdirSync(cursorRulesDir, { recursive: true });
|
|
132
|
+
fs.mkdirSync(claudeDir, { recursive: true });
|
|
133
|
+
fs.mkdirSync(agentRulesDir, { recursive: true });
|
|
134
|
+
fs.writeFileSync(path.join(cursorRulesDir, 'embeddables-cli.md'), cursorFrontmatter + content, 'utf8');
|
|
135
|
+
fs.writeFileSync(path.join(claudeDir, 'CLAUDE.md'), claudeIntro, 'utf8');
|
|
136
|
+
fs.writeFileSync(path.join(claudeDir, 'embeddables-cli.md'), content, 'utf8');
|
|
137
|
+
fs.writeFileSync(path.join(cwd, 'AGENTS.md'), codexIntro + content, 'utf8');
|
|
138
|
+
fs.writeFileSync(path.join(agentRulesDir, 'embeddables-cli.md'), antigravityFrontmatter + stripFrontmatter(content), 'utf8');
|
|
139
|
+
stdout.success('Injected .cursor/ rules');
|
|
140
|
+
stdout.success('Injected .claude/');
|
|
141
|
+
stdout.success('Injected AGENTS.md (Codex)');
|
|
142
|
+
stdout.success('Injected .agent/ rules (Antigravity)');
|
|
143
|
+
}
|
|
144
|
+
else if (fs.existsSync(sourceCursorDir) ||
|
|
145
|
+
fs.existsSync(sourceClaudeDir) ||
|
|
146
|
+
fs.existsSync(sourceAgentDir)) {
|
|
147
|
+
if (fs.existsSync(sourceCursorDir)) {
|
|
148
|
+
copyDirSync(sourceCursorDir, path.join(cwd, '.cursor'));
|
|
149
|
+
stdout.success('Injected .cursor/ rules');
|
|
150
|
+
}
|
|
151
|
+
if (fs.existsSync(sourceClaudeDir)) {
|
|
152
|
+
copyDirSync(sourceClaudeDir, path.join(cwd, '.claude'));
|
|
153
|
+
stdout.success('Injected .claude/');
|
|
154
|
+
}
|
|
155
|
+
if (fs.existsSync(sourceAgentDir)) {
|
|
156
|
+
copyDirSync(sourceAgentDir, path.join(cwd, '.agent'));
|
|
157
|
+
stdout.success('Injected .agent/ rules (Antigravity)');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Create tsconfig.json for editor support (JSX, type checking)
|
|
161
|
+
const tsconfigPath = path.join(cwd, 'tsconfig.json');
|
|
162
|
+
if (!fs.existsSync(tsconfigPath)) {
|
|
163
|
+
const tsconfig = {
|
|
164
|
+
compilerOptions: {
|
|
165
|
+
target: 'esnext',
|
|
166
|
+
module: 'esnext',
|
|
167
|
+
moduleResolution: 'bundler',
|
|
168
|
+
jsx: 'react-jsx',
|
|
169
|
+
noEmit: true,
|
|
170
|
+
strict: false,
|
|
171
|
+
skipLibCheck: true,
|
|
172
|
+
esModuleInterop: true,
|
|
173
|
+
baseUrl: '.',
|
|
174
|
+
paths: {
|
|
175
|
+
'react/jsx-runtime': ['./.types/react-jsx-runtime.d.ts'],
|
|
176
|
+
'@embeddables/cli/components': ['./.types/components.d.ts'],
|
|
177
|
+
'@embeddables/cli/types': ['./.types/types.d.ts'],
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
include: ['embeddables'],
|
|
181
|
+
};
|
|
182
|
+
fs.writeFileSync(tsconfigPath, JSON.stringify(tsconfig, null, 2) + '\n', 'utf8');
|
|
183
|
+
stdout.success('Created tsconfig.json');
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
stdout.dim(' ✓ tsconfig.json already exists');
|
|
187
|
+
}
|
|
188
|
+
// Migrate .types from old location (embeddables/.types/) to project root (.types/)
|
|
189
|
+
const oldTypesDir = path.join(embeddablesDir, '.types');
|
|
190
|
+
if (fs.existsSync(oldTypesDir)) {
|
|
191
|
+
fs.rmSync(oldTypesDir, { recursive: true });
|
|
192
|
+
stdout.success('Removed old embeddables/.types/');
|
|
193
|
+
}
|
|
194
|
+
// Ensure tsconfig has baseUrl and paths for type resolution
|
|
195
|
+
if (fs.existsSync(tsconfigPath)) {
|
|
196
|
+
let tsconfigContent = fs.readFileSync(tsconfigPath, 'utf8');
|
|
197
|
+
let updated = false;
|
|
198
|
+
// Migrate old embeddables/.types/ location → .types/
|
|
199
|
+
if (tsconfigContent.includes('./embeddables/.types/')) {
|
|
200
|
+
tsconfigContent = tsconfigContent.replaceAll('./embeddables/.types/', './.types/');
|
|
201
|
+
updated = true;
|
|
202
|
+
}
|
|
203
|
+
// Migrate old .types/types-builder → .types/types
|
|
204
|
+
if (tsconfigContent.includes('./.types/types-builder')) {
|
|
205
|
+
tsconfigContent = tsconfigContent.replace(/\.\/\.types\/types-builder(\.d\.ts)?"/g, './.types/types.d.ts"');
|
|
206
|
+
updated = true;
|
|
207
|
+
}
|
|
208
|
+
// Migrate paths without .d.ts extension → with .d.ts
|
|
209
|
+
const extensionless = [
|
|
210
|
+
['./.types/react-jsx-runtime"', './.types/react-jsx-runtime.d.ts"'],
|
|
211
|
+
['./.types/components"', './.types/components.d.ts"'],
|
|
212
|
+
['./.types/types"', './.types/types.d.ts"'],
|
|
213
|
+
];
|
|
214
|
+
for (const [old, replacement] of extensionless) {
|
|
215
|
+
if (tsconfigContent.includes(old) && !tsconfigContent.includes(replacement)) {
|
|
216
|
+
tsconfigContent = tsconfigContent.replaceAll(old, replacement);
|
|
217
|
+
updated = true;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// Add baseUrl and paths if missing entirely
|
|
221
|
+
try {
|
|
222
|
+
const tsconfig = JSON.parse(tsconfigContent);
|
|
223
|
+
const co = tsconfig.compilerOptions ?? {};
|
|
224
|
+
let coUpdated = false;
|
|
225
|
+
if (!co.baseUrl) {
|
|
226
|
+
co.baseUrl = '.';
|
|
227
|
+
coUpdated = true;
|
|
228
|
+
}
|
|
229
|
+
const requiredPaths = {
|
|
230
|
+
'react/jsx-runtime': ['./.types/react-jsx-runtime.d.ts'],
|
|
231
|
+
'@embeddables/cli/components': ['./.types/components.d.ts'],
|
|
232
|
+
'@embeddables/cli/types': ['./.types/types.d.ts'],
|
|
233
|
+
};
|
|
234
|
+
if (!co.paths)
|
|
235
|
+
co.paths = {};
|
|
236
|
+
for (const [key, value] of Object.entries(requiredPaths)) {
|
|
237
|
+
if (!co.paths[key]) {
|
|
238
|
+
co.paths[key] = value;
|
|
239
|
+
coUpdated = true;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (coUpdated) {
|
|
243
|
+
tsconfig.compilerOptions = co;
|
|
244
|
+
tsconfigContent = JSON.stringify(tsconfig, null, 2) + '\n';
|
|
245
|
+
updated = true;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// If tsconfig isn't valid JSON (e.g. has comments), fall through to string-based updates above
|
|
250
|
+
}
|
|
251
|
+
if (updated) {
|
|
252
|
+
fs.writeFileSync(tsconfigPath, tsconfigContent, 'utf8');
|
|
253
|
+
stdout.success('Updated tsconfig.json');
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Remove old .types/types-builder.d.ts (now named .types/types.d.ts)
|
|
257
|
+
const legacyTypesBuilderDts = path.join(cwd, '.types', 'types-builder.d.ts');
|
|
258
|
+
if (fs.existsSync(legacyTypesBuilderDts)) {
|
|
259
|
+
fs.rmSync(legacyTypesBuilderDts);
|
|
260
|
+
}
|
|
261
|
+
// Generate type declaration stubs for editor support (no npm install needed)
|
|
262
|
+
writeTypeStubs(cwd);
|
|
263
|
+
stdout.success('Generated type declarations');
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=update-project-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-project-files.js","sourceRoot":"","sources":["../../src/commands/update-project-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAmCA,wBAAsB,UAAU,kBAkF/B"}
|