@jsonpages/cli 3.0.59 → 3.0.61
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/assets/src_tenant_alpha.sh +59 -15
- package/package.json +1 -1
- package/src/index.js +1 -9
|
@@ -23,6 +23,50 @@ cat << 'END_OF_FILE_CONTENT' > "index.html"
|
|
|
23
23
|
</html>
|
|
24
24
|
|
|
25
25
|
|
|
26
|
+
END_OF_FILE_CONTENT
|
|
27
|
+
echo "Creating package.json..."
|
|
28
|
+
cat << 'END_OF_FILE_CONTENT' > "package.json"
|
|
29
|
+
{
|
|
30
|
+
"name": "tenant-alpha",
|
|
31
|
+
"version": "1.0.0",
|
|
32
|
+
"private": true,
|
|
33
|
+
"type": "module",
|
|
34
|
+
"scripts": {
|
|
35
|
+
"dev": "vite",
|
|
36
|
+
"dev:clean": "vite --force",
|
|
37
|
+
"build": "tsc && vite build",
|
|
38
|
+
"dist": "bash ./src2Code.sh src index.html package.json",
|
|
39
|
+
"preview": "vite preview"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@tiptap/extension-image": "latest",
|
|
43
|
+
"@tiptap/extension-link": "latest",
|
|
44
|
+
"@tiptap/extension-underline": "latest",
|
|
45
|
+
"@tiptap/react": "latest",
|
|
46
|
+
"@tiptap/starter-kit": "latest",
|
|
47
|
+
"@jsonpages/core": "^1.0.48",
|
|
48
|
+
"clsx": "^2.1.1",
|
|
49
|
+
"lucide-react": "^0.474.0",
|
|
50
|
+
"react": "^19.0.0",
|
|
51
|
+
"react-markdown": "latest",
|
|
52
|
+
"react-dom": "^19.0.0",
|
|
53
|
+
"react-router-dom": "^6.30.3",
|
|
54
|
+
"rehype-sanitize": "latest",
|
|
55
|
+
"remark-gfm": "latest",
|
|
56
|
+
"tailwind-merge": "^3.0.1",
|
|
57
|
+
"tiptap-markdown": "latest",
|
|
58
|
+
"zod": "^3.24.1"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@tailwindcss/vite": "^4.0.0",
|
|
62
|
+
"@types/react": "^19.0.8",
|
|
63
|
+
"@types/react-dom": "^19.0.3",
|
|
64
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
65
|
+
"typescript": "^5.7.3",
|
|
66
|
+
"vite": "^6.0.11"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
26
70
|
END_OF_FILE_CONTENT
|
|
27
71
|
mkdir -p "src"
|
|
28
72
|
echo "Creating src/App.tsx..."
|
|
@@ -3117,26 +3161,26 @@ const UploadableImage = Image.extend({
|
|
|
3117
3161
|
...this.parent?.(),
|
|
3118
3162
|
uploadId: {
|
|
3119
3163
|
default: null,
|
|
3120
|
-
parseHTML: (element) => element.getAttribute('data-upload-id'),
|
|
3121
|
-
renderHTML: (attributes) =>
|
|
3164
|
+
parseHTML: (element: HTMLElement) => element.getAttribute('data-upload-id'),
|
|
3165
|
+
renderHTML: (attributes: Record<string, unknown>) =>
|
|
3122
3166
|
attributes.uploadId ? { 'data-upload-id': String(attributes.uploadId) } : {},
|
|
3123
3167
|
},
|
|
3124
3168
|
uploading: {
|
|
3125
3169
|
default: false,
|
|
3126
|
-
parseHTML: (element) => element.getAttribute('data-uploading') === 'true',
|
|
3127
|
-
renderHTML: (attributes) =>
|
|
3170
|
+
parseHTML: (element: HTMLElement) => element.getAttribute('data-uploading') === 'true',
|
|
3171
|
+
renderHTML: (attributes: Record<string, unknown>) =>
|
|
3128
3172
|
attributes.uploading ? { 'data-uploading': 'true' } : {},
|
|
3129
3173
|
},
|
|
3130
3174
|
uploadError: {
|
|
3131
3175
|
default: false,
|
|
3132
|
-
parseHTML: (element) => element.getAttribute('data-upload-error') === 'true',
|
|
3133
|
-
renderHTML: (attributes) =>
|
|
3176
|
+
parseHTML: (element: HTMLElement) => element.getAttribute('data-upload-error') === 'true',
|
|
3177
|
+
renderHTML: (attributes: Record<string, unknown>) =>
|
|
3134
3178
|
attributes.uploadError ? { 'data-upload-error': 'true' } : {},
|
|
3135
3179
|
},
|
|
3136
3180
|
awaitingUpload: {
|
|
3137
3181
|
default: false,
|
|
3138
|
-
parseHTML: (element) => element.getAttribute('data-awaiting-upload') === 'true',
|
|
3139
|
-
renderHTML: (attributes) =>
|
|
3182
|
+
parseHTML: (element: HTMLElement) => element.getAttribute('data-awaiting-upload') === 'true',
|
|
3183
|
+
renderHTML: (attributes: Record<string, unknown>) =>
|
|
3140
3184
|
attributes.awaitingUpload ? { 'data-awaiting-upload': 'true' } : {},
|
|
3141
3185
|
},
|
|
3142
3186
|
};
|
|
@@ -3184,7 +3228,7 @@ const updateImageByUploadId = (
|
|
|
3184
3228
|
patch: Record<string, unknown>
|
|
3185
3229
|
): boolean => {
|
|
3186
3230
|
let targetPos: number | null = null;
|
|
3187
|
-
editor.state.doc.descendants((node, pos) => {
|
|
3231
|
+
editor.state.doc.descendants((node: { type: { name: string }; attrs?: Record<string, unknown> }, pos: number) => {
|
|
3188
3232
|
if (node.type.name === 'image' && node.attrs?.uploadId === uploadId) {
|
|
3189
3233
|
targetPos = pos;
|
|
3190
3234
|
return false;
|
|
@@ -3338,7 +3382,7 @@ const StudioTiptapEditor: React.FC<{ data: TiptapData }> = ({ data }) => {
|
|
|
3338
3382
|
class:
|
|
3339
3383
|
'prose prose-invert max-w-none min-h-[220px] rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 text-zinc-100 outline-none',
|
|
3340
3384
|
},
|
|
3341
|
-
handleDrop: (_view, event) => {
|
|
3385
|
+
handleDrop: (_view: unknown, event: DragEvent) => {
|
|
3342
3386
|
const file = event.dataTransfer?.files?.[0];
|
|
3343
3387
|
if (!file || !file.type.startsWith('image/') || !assets?.onAssetUpload) return false;
|
|
3344
3388
|
event.preventDefault();
|
|
@@ -3351,8 +3395,8 @@ const StudioTiptapEditor: React.FC<{ data: TiptapData }> = ({ data }) => {
|
|
|
3351
3395
|
})();
|
|
3352
3396
|
return true;
|
|
3353
3397
|
},
|
|
3354
|
-
handlePaste: (_view, event) => {
|
|
3355
|
-
const file = Array.from(event.clipboardData?.files ?? []).find((f) =>
|
|
3398
|
+
handlePaste: (_view: unknown, event: ClipboardEvent) => {
|
|
3399
|
+
const file = Array.from(event.clipboardData?.files ?? []).find((f: File) =>
|
|
3356
3400
|
f.type.startsWith('image/')
|
|
3357
3401
|
);
|
|
3358
3402
|
if (!file || !assets?.onAssetUpload) return false;
|
|
@@ -3366,7 +3410,7 @@ const StudioTiptapEditor: React.FC<{ data: TiptapData }> = ({ data }) => {
|
|
|
3366
3410
|
})();
|
|
3367
3411
|
return true;
|
|
3368
3412
|
},
|
|
3369
|
-
handleClickOn: (_view, _pos, node) => {
|
|
3413
|
+
handleClickOn: (_view: unknown, _pos: number, node: { type: { name: string }; attrs?: Record<string, unknown> }) => {
|
|
3370
3414
|
if (node.type.name !== 'image') return false;
|
|
3371
3415
|
if (node.attrs?.awaitingUpload !== true) return false;
|
|
3372
3416
|
const uploadId = typeof node.attrs?.uploadId === 'string' ? node.attrs.uploadId : null;
|
|
@@ -3376,14 +3420,14 @@ const StudioTiptapEditor: React.FC<{ data: TiptapData }> = ({ data }) => {
|
|
|
3376
3420
|
return true;
|
|
3377
3421
|
},
|
|
3378
3422
|
},
|
|
3379
|
-
onUpdate: ({ editor: currentEditor }) => {
|
|
3423
|
+
onUpdate: ({ editor: currentEditor }: { editor: Editor }) => {
|
|
3380
3424
|
const markdown = getEditorMarkdown(currentEditor);
|
|
3381
3425
|
emitInlineUpdate(markdown);
|
|
3382
3426
|
},
|
|
3383
3427
|
onFocus: () => {
|
|
3384
3428
|
setFocusLock(true);
|
|
3385
3429
|
},
|
|
3386
|
-
onBlur: ({ editor: currentEditor }) => {
|
|
3430
|
+
onBlur: ({ editor: currentEditor }: { editor: Editor }) => {
|
|
3387
3431
|
const markdown = getEditorMarkdown(currentEditor);
|
|
3388
3432
|
if (markdown !== latestEmittedMarkdownRef.current) {
|
|
3389
3433
|
emitInlineUpdate(markdown);
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -134,15 +134,7 @@ program
|
|
|
134
134
|
await processScriptInNode(scriptPath, targetDir);
|
|
135
135
|
spinner.succeed('Source code and assets projected successfully.');
|
|
136
136
|
|
|
137
|
-
// 5.
|
|
138
|
-
spinner.start('Installing dependencies (this may take a minute)...');
|
|
139
|
-
const stack = (await import('@jsonpages/stack')).default;
|
|
140
|
-
const depSpecs = Object.entries(stack.dependencies || {}).map(([name, ver]) => `${name}@${ver}`);
|
|
141
|
-
const devDepSpecs = Object.entries(stack.devDependencies || {}).map(([name, ver]) => `${name}@${ver}`);
|
|
142
|
-
|
|
143
|
-
await execa(npmCmd, ['install', ...depSpecs], { cwd: targetDir });
|
|
144
|
-
await execa(npmCmd, ['install', '-D', ...devDepSpecs], { cwd: targetDir });
|
|
145
|
-
|
|
137
|
+
// 5. Dependencies: gestite nello script .sh (es. copia/package.json da tenant-alpha o npm install)
|
|
146
138
|
spinner.succeed(chalk.green.bold('✨ Tenant Ready!'));
|
|
147
139
|
|
|
148
140
|
console.log(`\n${chalk.white.bgBlue(' NEXT STEPS ')}`);
|