synthos 0.6.0 → 0.7.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.
- package/README.md +33 -1
- package/default-pages/app_builder.html +40 -0
- package/default-pages/app_builder.json +1 -0
- package/default-pages/json_tools.html +89 -159
- package/default-pages/json_tools.json +1 -0
- package/default-pages/my_notes.html +33 -0
- package/default-pages/my_notes.json +12 -0
- package/default-pages/neon_asteroids.html +77 -0
- package/default-pages/neon_asteroids.json +12 -0
- package/default-pages/sidebar_builder.html +49 -0
- package/default-pages/sidebar_builder.json +1 -0
- package/default-pages/solar_explorer.html +1956 -0
- package/default-pages/solar_explorer.json +12 -0
- package/default-pages/solar_tutorial.html +476 -0
- package/default-pages/solar_tutorial.json +1 -0
- package/default-pages/two-panel_builder.html +66 -0
- package/default-pages/two-panel_builder.json +1 -0
- package/dist/connectors/index.d.ts +3 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +6 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/registry.d.ts +3 -0
- package/dist/connectors/registry.d.ts.map +1 -0
- package/dist/connectors/registry.js +100 -0
- package/dist/connectors/registry.js.map +1 -0
- package/dist/connectors/types.d.ts +61 -0
- package/dist/connectors/types.d.ts.map +1 -0
- package/dist/connectors/types.js +3 -0
- package/dist/connectors/types.js.map +1 -0
- package/dist/files.d.ts +2 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +12 -1
- package/dist/files.js.map +1 -1
- package/dist/init.d.ts +8 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +155 -3
- package/dist/init.js.map +1 -1
- package/dist/migrations.d.ts +11 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +281 -0
- package/dist/migrations.js.map +1 -0
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +10 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/providers.d.ts +7 -0
- package/dist/models/providers.d.ts.map +1 -0
- package/dist/models/providers.js +33 -0
- package/dist/models/providers.js.map +1 -0
- package/dist/models/types.d.ts +21 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +3 -0
- package/dist/models/types.js.map +1 -0
- package/dist/pages.d.ts +21 -2
- package/dist/pages.d.ts.map +1 -1
- package/dist/pages.js +202 -23
- package/dist/pages.js.map +1 -1
- package/dist/scripts.js +2 -2
- package/dist/scripts.js.map +1 -1
- package/dist/service/createCompletePrompt.d.ts +3 -2
- package/dist/service/createCompletePrompt.d.ts.map +1 -1
- package/dist/service/createCompletePrompt.js +11 -16
- package/dist/service/createCompletePrompt.js.map +1 -1
- package/dist/service/debugLog.d.ts +11 -0
- package/dist/service/debugLog.d.ts.map +1 -0
- package/dist/service/debugLog.js +26 -0
- package/dist/service/debugLog.js.map +1 -0
- package/dist/service/modelInstructions.d.ts +7 -0
- package/dist/service/modelInstructions.d.ts.map +1 -0
- package/dist/service/modelInstructions.js +16 -0
- package/dist/service/modelInstructions.js.map +1 -0
- package/dist/service/requiresSettings.d.ts +2 -2
- package/dist/service/requiresSettings.d.ts.map +1 -1
- package/dist/service/requiresSettings.js.map +1 -1
- package/dist/service/server.d.ts.map +1 -1
- package/dist/service/server.js +15 -0
- package/dist/service/server.js.map +1 -1
- package/dist/service/transformPage.d.ts +81 -2
- package/dist/service/transformPage.d.ts.map +1 -1
- package/dist/service/transformPage.js +672 -82
- package/dist/service/transformPage.js.map +1 -1
- package/dist/service/useApiRoutes.d.ts.map +1 -1
- package/dist/service/useApiRoutes.js +579 -13
- package/dist/service/useApiRoutes.js.map +1 -1
- package/dist/service/useConnectorRoutes.d.ts +4 -0
- package/dist/service/useConnectorRoutes.d.ts.map +1 -0
- package/dist/service/useConnectorRoutes.js +389 -0
- package/dist/service/useConnectorRoutes.js.map +1 -0
- package/dist/service/useDataRoutes.d.ts.map +1 -1
- package/dist/service/useDataRoutes.js +83 -70
- package/dist/service/useDataRoutes.js.map +1 -1
- package/dist/service/usePageRoutes.d.ts.map +1 -1
- package/dist/service/usePageRoutes.js +243 -38
- package/dist/service/usePageRoutes.js.map +1 -1
- package/dist/settings.d.ts +33 -4
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +108 -15
- package/dist/settings.js.map +1 -1
- package/dist/synthos-cli.d.ts.map +1 -1
- package/dist/synthos-cli.js +11 -1
- package/dist/synthos-cli.js.map +1 -1
- package/dist/themes.d.ts +9 -0
- package/dist/themes.d.ts.map +1 -0
- package/dist/themes.js +64 -0
- package/dist/themes.js.map +1 -0
- package/package.json +5 -3
- package/required-pages/builder.html +74 -0
- package/required-pages/builder.json +1 -0
- package/required-pages/pages.html +169 -126
- package/required-pages/pages.json +1 -0
- package/required-pages/settings.html +812 -156
- package/required-pages/settings.json +1 -0
- package/required-pages/synthos_apis.html +272 -0
- package/required-pages/synthos_apis.json +1 -0
- package/required-pages/synthos_scripts.html +87 -0
- package/required-pages/synthos_scripts.json +1 -0
- package/src/connectors/index.ts +12 -0
- package/src/connectors/registry.ts +98 -0
- package/src/connectors/types.ts +68 -0
- package/src/files.ts +11 -0
- package/src/init.ts +151 -5
- package/src/migrations.ts +266 -0
- package/src/models/index.ts +2 -0
- package/src/models/providers.ts +33 -0
- package/src/models/types.ts +23 -0
- package/src/pages.ts +234 -26
- package/src/scripts.ts +2 -2
- package/src/service/createCompletePrompt.ts +14 -18
- package/src/service/debugLog.ts +17 -0
- package/src/service/modelInstructions.ts +14 -0
- package/src/service/requiresSettings.ts +3 -3
- package/src/service/server.ts +19 -2
- package/src/service/transformPage.ts +709 -88
- package/src/service/useApiRoutes.ts +632 -16
- package/src/service/useConnectorRoutes.ts +427 -0
- package/src/service/useDataRoutes.ts +87 -71
- package/src/service/usePageRoutes.ts +237 -44
- package/src/settings.ts +143 -20
- package/src/synthos-cli.ts +11 -1
- package/src/themes.ts +71 -0
- package/default-pages/[application].html +0 -95
- package/default-pages/[markdown].html +0 -271
- package/default-pages/[sidebar].html +0 -114
- package/default-pages/[split-application].html +0 -118
- package/default-pages/solar_system.html +0 -432
- package/default-pages/space_invaders.html +0 -617
- package/required-pages/apis.html +0 -362
- package/required-pages/home.html +0 -126
- package/required-pages/scripts.html +0 -350
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CONNECTOR_REGISTRY = void 0;
|
|
4
|
+
exports.CONNECTOR_REGISTRY = [
|
|
5
|
+
{
|
|
6
|
+
id: 'brave-search',
|
|
7
|
+
name: 'Brave Search',
|
|
8
|
+
category: 'Search',
|
|
9
|
+
description: 'Web search powered by the Brave Search API. Provides real-time search results from the web.',
|
|
10
|
+
baseUrl: 'https://api.search.brave.com',
|
|
11
|
+
authStrategy: 'header',
|
|
12
|
+
authKey: 'X-Subscription-Token',
|
|
13
|
+
fields: [
|
|
14
|
+
{ name: 'apiKey', label: 'API Key', type: 'password' }
|
|
15
|
+
],
|
|
16
|
+
hints: [
|
|
17
|
+
'Endpoint: GET /res/v1/web/search',
|
|
18
|
+
'Query params: q (required), count (1-20, default 10), country, freshness',
|
|
19
|
+
'Response: { web: { results: [{ title, url, description }] } }',
|
|
20
|
+
'Note: synthos.search.web() is a convenience wrapper — prefer it over raw connector calls for basic web search.'
|
|
21
|
+
].join('\n')
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: 'elevenlabs',
|
|
25
|
+
name: 'ElevenLabs',
|
|
26
|
+
category: 'Audio',
|
|
27
|
+
description: 'AI-powered text-to-speech and voice synthesis. Generate natural-sounding audio from text.',
|
|
28
|
+
baseUrl: 'https://api.elevenlabs.io',
|
|
29
|
+
authStrategy: 'header',
|
|
30
|
+
authKey: 'xi-api-key',
|
|
31
|
+
fields: [
|
|
32
|
+
{ name: 'apiKey', label: 'API Key', type: 'password' }
|
|
33
|
+
],
|
|
34
|
+
hints: [
|
|
35
|
+
'List voices: GET /v1/voices → { voices: [{ voice_id, name, category }] }',
|
|
36
|
+
'Text-to-speech: POST /v1/text-to-speech/{voice_id}?output_format=mp3_44100_128',
|
|
37
|
+
' Request headers: Accept: audio/mpeg, Content-Type: application/json',
|
|
38
|
+
' Request body: { text: string, model_id: "eleven_multilingual_v2" }',
|
|
39
|
+
' Response: raw audio/mpeg binary — use resp.arrayBuffer() then new Blob([buf], {type:"audio/mpeg"}) and URL.createObjectURL() to play',
|
|
40
|
+
' IMPORTANT: The proxy returns raw binary, NOT JSON. Call fetch("/api/connectors", ...) directly instead of synthos.connectors.call() for TTS, since the helper parses JSON.',
|
|
41
|
+
'Default voice: "Rachel" (voice_id: 21m00Tcm4TlvDq8ikWAM) is a good general-purpose voice.',
|
|
42
|
+
'Max text length: 5000 characters per request.'
|
|
43
|
+
].join('\n')
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'stability-ai',
|
|
47
|
+
name: 'Stability AI',
|
|
48
|
+
category: 'Image',
|
|
49
|
+
description: 'AI image generation powered by Stable Diffusion. Create images from text prompts.',
|
|
50
|
+
baseUrl: 'https://api.stability.ai',
|
|
51
|
+
authStrategy: 'bearer',
|
|
52
|
+
authKey: 'Authorization',
|
|
53
|
+
fields: [
|
|
54
|
+
{ name: 'apiKey', label: 'API Key', type: 'password' }
|
|
55
|
+
],
|
|
56
|
+
hints: [
|
|
57
|
+
'Text-to-image: POST /v1/generation/stable-diffusion-xl-1024-v1-0/text-to-image',
|
|
58
|
+
' Request headers: Content-Type: application/json, Accept: application/json',
|
|
59
|
+
' Request body: { text_prompts: [{ text: string, weight: 1 }], cfg_scale: 7, steps: 30, width: 1024, height: 1024 }',
|
|
60
|
+
' Response: { artifacts: [{ base64: string, finishReason: string }] }',
|
|
61
|
+
' Display with: <img src="data:image/png;base64,{base64}">'
|
|
62
|
+
].join('\n')
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: 'instagram',
|
|
66
|
+
name: 'Instagram',
|
|
67
|
+
category: 'Social',
|
|
68
|
+
description: 'Post photos and videos to Instagram via the Instagram Graph API.',
|
|
69
|
+
baseUrl: 'https://graph.facebook.com/v21.0',
|
|
70
|
+
authStrategy: 'oauth2',
|
|
71
|
+
authKey: 'access_token',
|
|
72
|
+
authorizationUrl: 'https://www.facebook.com/v21.0/dialog/oauth',
|
|
73
|
+
tokenUrl: 'https://graph.facebook.com/v21.0/oauth/access_token',
|
|
74
|
+
scopes: [
|
|
75
|
+
'instagram_basic',
|
|
76
|
+
'instagram_content_publish',
|
|
77
|
+
'pages_show_list',
|
|
78
|
+
'pages_read_engagement'
|
|
79
|
+
],
|
|
80
|
+
fields: [
|
|
81
|
+
{ name: 'clientId', label: 'App ID', type: 'text' },
|
|
82
|
+
{ name: 'clientSecret', label: 'App Secret', type: 'password' }
|
|
83
|
+
],
|
|
84
|
+
hints: [
|
|
85
|
+
'Publishing flow (two-step):',
|
|
86
|
+
' 1. Create media container: POST /{ig-user-id}/media',
|
|
87
|
+
' Body (photo): { image_url, caption }',
|
|
88
|
+
' Body (reel/video): { video_url, caption, media_type: "REELS" }',
|
|
89
|
+
' Response: { id: "<container-id>" }',
|
|
90
|
+
' 2. Publish container: POST /{ig-user-id}/media_publish',
|
|
91
|
+
' Body: { creation_id: "<container-id>" }',
|
|
92
|
+
' Response: { id: "<media-id>" }',
|
|
93
|
+
'IMPORTANT: Do NOT include access_token in body or query params — the proxy attaches it automatically.',
|
|
94
|
+
'IMPORTANT: Images must be publicly accessible URLs. Use a hosting service or the data API to serve local images.',
|
|
95
|
+
'Rate limit: 25 posts per 24-hour period.',
|
|
96
|
+
'Requires a Business or Creator Instagram account linked to a Facebook Page.'
|
|
97
|
+
].join('\n')
|
|
98
|
+
}
|
|
99
|
+
];
|
|
100
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/connectors/registry.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAA0B;IACrD;QACI,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,6FAA6F;QAC1G,OAAO,EAAE,8BAA8B;QACvC,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;SACzD;QACD,KAAK,EAAE;YACH,kCAAkC;YAClC,0EAA0E;YAC1E,+DAA+D;YAC/D,gHAAgH;SACnH,CAAC,IAAI,CAAC,IAAI,CAAC;KACf;IACD;QACI,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,2FAA2F;QACxG,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;SACzD;QACD,KAAK,EAAE;YACH,0EAA0E;YAC1E,gFAAgF;YAChF,uEAAuE;YACvE,sEAAsE;YACtE,wIAAwI;YACxI,8KAA8K;YAC9K,2FAA2F;YAC3F,+CAA+C;SAClD,CAAC,IAAI,CAAC,IAAI,CAAC;KACf;IACD;QACI,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,mFAAmF;QAChG,OAAO,EAAE,0BAA0B;QACnC,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;SACzD;QACD,KAAK,EAAE;YACH,gFAAgF;YAChF,6EAA6E;YAC7E,qHAAqH;YACrH,uEAAuE;YACvE,4DAA4D;SAC/D,CAAC,IAAI,CAAC,IAAI,CAAC;KACf;IACD;QACI,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,QAAQ;QAClB,WAAW,EAAE,kEAAkE;QAC/E,OAAO,EAAE,kCAAkC;QAC3C,YAAY,EAAE,QAAQ;QACtB,OAAO,EAAE,cAAc;QACvB,gBAAgB,EAAE,6CAA6C;QAC/D,QAAQ,EAAE,qDAAqD;QAC/D,MAAM,EAAE;YACJ,iBAAiB;YACjB,2BAA2B;YAC3B,iBAAiB;YACjB,uBAAuB;SAC1B;QACD,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;YACnD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE;SAClE;QACD,KAAK,EAAE;YACH,6BAA6B;YAC7B,uDAAuD;YACvD,2CAA2C;YAC3C,qEAAqE;YACrE,yCAAyC;YACzC,0DAA0D;YAC1D,8CAA8C;YAC9C,qCAAqC;YACrC,uGAAuG;YACvG,kHAAkH;YAClH,0CAA0C;YAC1C,6EAA6E;SAChF,CAAC,IAAI,CAAC,IAAI,CAAC;KACf;CACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type AuthStrategy = 'header' | 'bearer' | 'query' | 'oauth2';
|
|
2
|
+
export interface ConnectorField {
|
|
3
|
+
name: string;
|
|
4
|
+
label: string;
|
|
5
|
+
type: 'password' | 'text';
|
|
6
|
+
}
|
|
7
|
+
export interface ConnectorDefinition {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
category: string;
|
|
11
|
+
description: string;
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
authStrategy: AuthStrategy;
|
|
14
|
+
authKey: string;
|
|
15
|
+
fields: ConnectorField[];
|
|
16
|
+
/** Usage hints shown to the LLM — recommended endpoints, default settings, gotchas. */
|
|
17
|
+
hints?: string;
|
|
18
|
+
/** OAuth2: Authorization endpoint URL. */
|
|
19
|
+
authorizationUrl?: string;
|
|
20
|
+
/** OAuth2: Token exchange endpoint URL. */
|
|
21
|
+
tokenUrl?: string;
|
|
22
|
+
/** OAuth2: Requested scopes. */
|
|
23
|
+
scopes?: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface ConnectorConfig {
|
|
26
|
+
apiKey: string;
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface ConnectorOAuthConfig extends ConnectorConfig {
|
|
30
|
+
accessToken?: string;
|
|
31
|
+
refreshToken?: string;
|
|
32
|
+
expiresAt?: number;
|
|
33
|
+
userId?: string;
|
|
34
|
+
accountName?: string;
|
|
35
|
+
clientId?: string;
|
|
36
|
+
clientSecret?: string;
|
|
37
|
+
}
|
|
38
|
+
export type ConnectorsConfig = Record<string, ConnectorConfig | ConnectorOAuthConfig>;
|
|
39
|
+
export interface ConnectorSummary {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
category: string;
|
|
43
|
+
configured: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface ConnectorDetail extends ConnectorDefinition {
|
|
46
|
+
configured: boolean;
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
hasKey: boolean;
|
|
49
|
+
connected?: boolean;
|
|
50
|
+
accountName?: string;
|
|
51
|
+
userId?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface ConnectorCallRequest {
|
|
54
|
+
connector: string;
|
|
55
|
+
method: string;
|
|
56
|
+
path: string;
|
|
57
|
+
headers?: Record<string, string>;
|
|
58
|
+
body?: unknown;
|
|
59
|
+
query?: Record<string, string>;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connectors/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,oBAAoB,CAAC,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/connectors/types.ts"],"names":[],"mappings":""}
|
package/dist/files.d.ts
CHANGED
|
@@ -3,7 +3,9 @@ export declare function copyFile(srcFile: string, destFolder: string): Promise<v
|
|
|
3
3
|
export declare function copyFiles(srcFolder: string, destFolder: string): Promise<void>;
|
|
4
4
|
export declare function ensureFolderExists(path: string): Promise<void>;
|
|
5
5
|
export declare function listFiles(path: string): Promise<string[]>;
|
|
6
|
+
export declare function listFolders(dirPath: string): Promise<string[]>;
|
|
6
7
|
export declare function loadFile(path: string): Promise<string>;
|
|
7
8
|
export declare function saveFile(path: string, content: string): Promise<void>;
|
|
8
9
|
export declare function deleteFile(path: string): Promise<void>;
|
|
10
|
+
export declare function deleteFolder(dirPath: string): Promise<void>;
|
|
9
11
|
//# sourceMappingURL=files.d.ts.map
|
package/dist/files.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOlE;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjF;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE/D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D"}
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOlE;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjF;AAED,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE/D;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAKpE;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE"}
|
package/dist/files.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.deleteFile = exports.saveFile = exports.loadFile = exports.listFiles = exports.ensureFolderExists = exports.copyFiles = exports.copyFile = exports.checkIfExists = void 0;
|
|
29
|
+
exports.deleteFolder = exports.deleteFile = exports.saveFile = exports.loadFile = exports.listFolders = exports.listFiles = exports.ensureFolderExists = exports.copyFiles = exports.copyFile = exports.checkIfExists = void 0;
|
|
30
30
|
const fs = __importStar(require("fs/promises"));
|
|
31
31
|
const path_1 = __importDefault(require("path"));
|
|
32
32
|
async function checkIfExists(path) {
|
|
@@ -64,6 +64,13 @@ async function listFiles(path) {
|
|
|
64
64
|
return (await fs.readdir(path)).filter(file => !file.startsWith('.') && file.includes('.'));
|
|
65
65
|
}
|
|
66
66
|
exports.listFiles = listFiles;
|
|
67
|
+
async function listFolders(dirPath) {
|
|
68
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
69
|
+
return entries
|
|
70
|
+
.filter(entry => entry.isDirectory() && !entry.name.startsWith('.'))
|
|
71
|
+
.map(entry => entry.name);
|
|
72
|
+
}
|
|
73
|
+
exports.listFolders = listFolders;
|
|
67
74
|
async function loadFile(path) {
|
|
68
75
|
return await fs.readFile(path, 'utf8');
|
|
69
76
|
}
|
|
@@ -76,4 +83,8 @@ async function deleteFile(path) {
|
|
|
76
83
|
await fs.unlink(path);
|
|
77
84
|
}
|
|
78
85
|
exports.deleteFile = deleteFile;
|
|
86
|
+
async function deleteFolder(dirPath) {
|
|
87
|
+
await fs.rm(dirPath, { recursive: true });
|
|
88
|
+
}
|
|
89
|
+
exports.deleteFolder = deleteFolder;
|
|
79
90
|
//# sourceMappingURL=files.js.map
|
package/dist/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,gDAAwB;AAEjB,KAAK,UAAU,aAAa,CAAC,IAAY;IAC5C,IAAI;QACA,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;KACf;IAAC,MAAM;QACJ,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAPD,sCAOC;AAEM,KAAK,UAAU,QAAQ,CAAC,OAAe,EAAE,UAAkB;IAC9D,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AALD,4BAKC;AAEM,KAAK,UAAU,SAAS,CAAC,SAAiB,EAAE,UAAkB;IACjE,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;QACzC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KACxC;AACL,CAAC;AATD,8BASC;AAEM,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACjD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAFD,gDAEC;AAEM,KAAK,UAAU,SAAS,CAAC,IAAY;IACxC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAChG,CAAC;AAFD,8BAEC;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAY;IACvC,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,OAAe;IACxD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,UAAU,CAAC,IAAY;IACzC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAFD,gCAEC"}
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts
CHANGED
|
@@ -3,7 +3,14 @@ export interface SynthOSConfig {
|
|
|
3
3
|
requiredPagesFolder: string;
|
|
4
4
|
defaultPagesFolder: string;
|
|
5
5
|
defaultScriptsFolder: string;
|
|
6
|
+
defaultThemesFolder: string;
|
|
7
|
+
pageScriptsFolder: string;
|
|
8
|
+
debug: boolean;
|
|
9
|
+
debugPageUpdates: boolean;
|
|
6
10
|
}
|
|
7
|
-
export declare function createConfig(pagesFolder?: string
|
|
11
|
+
export declare function createConfig(pagesFolder?: string, options?: {
|
|
12
|
+
debug?: boolean;
|
|
13
|
+
debugPageUpdates?: boolean;
|
|
14
|
+
}): SynthOSConfig;
|
|
8
15
|
export declare function init(config: SynthOSConfig, includeDefaultPages?: boolean): Promise<boolean>;
|
|
9
16
|
//# sourceMappingURL=init.d.ts.map
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,WAAW,SAAa,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAW/H;AAED,wBAAsB,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,mBAAmB,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAoDvG"}
|
package/dist/init.js
CHANGED
|
@@ -1,24 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.init = exports.createConfig = void 0;
|
|
30
|
+
const fs = __importStar(require("fs/promises"));
|
|
7
31
|
const path_1 = __importDefault(require("path"));
|
|
8
32
|
const files_1 = require("./files");
|
|
33
|
+
const pages_1 = require("./pages");
|
|
9
34
|
const settings_1 = require("./settings");
|
|
10
|
-
function createConfig(pagesFolder = '.synthos') {
|
|
35
|
+
function createConfig(pagesFolder = '.synthos', options) {
|
|
11
36
|
return {
|
|
12
37
|
pagesFolder: path_1.default.join(process.cwd(), pagesFolder),
|
|
13
38
|
requiredPagesFolder: path_1.default.join(__dirname, '../required-pages'),
|
|
14
39
|
defaultPagesFolder: path_1.default.join(__dirname, '../default-pages'),
|
|
15
|
-
defaultScriptsFolder: path_1.default.join(__dirname, '../default-scripts')
|
|
40
|
+
defaultScriptsFolder: path_1.default.join(__dirname, '../default-scripts'),
|
|
41
|
+
defaultThemesFolder: path_1.default.join(__dirname, '../default-themes'),
|
|
42
|
+
pageScriptsFolder: path_1.default.join(__dirname, '../page-scripts'),
|
|
43
|
+
debug: options?.debug ?? false,
|
|
44
|
+
debugPageUpdates: options?.debugPageUpdates ?? false
|
|
16
45
|
};
|
|
17
46
|
}
|
|
18
47
|
exports.createConfig = createConfig;
|
|
19
48
|
async function init(config, includeDefaultPages = true) {
|
|
20
49
|
// Check for existing folder
|
|
21
50
|
if (await (0, files_1.checkIfExists)(config.pagesFolder)) {
|
|
51
|
+
await repairMissingFolders(config);
|
|
22
52
|
return false;
|
|
23
53
|
}
|
|
24
54
|
console.log(`Initializing .synthos folder...`);
|
|
@@ -48,12 +78,134 @@ async function init(config, includeDefaultPages = true) {
|
|
|
48
78
|
break;
|
|
49
79
|
}
|
|
50
80
|
await (0, files_1.saveFile)(path_1.default.join(scriptsFolder, 'example.sh'), '#!/bin/bash\n\n# This is an example script\n\n# You can run this script using the following command:\n# sh .synthos/scripts/example.sh\n\n# This script will print "Hello, World!" to the console\n\necho "Hello, World!"\n');
|
|
81
|
+
// Setup default themes
|
|
82
|
+
console.log(`Copying default themes to .synthos folder...`);
|
|
83
|
+
const themesFolder = path_1.default.join(config.pagesFolder, 'themes');
|
|
84
|
+
await (0, files_1.ensureFolderExists)(themesFolder);
|
|
85
|
+
await (0, files_1.copyFiles)(config.defaultThemesFolder, themesFolder);
|
|
51
86
|
// Copy pages
|
|
52
87
|
if (includeDefaultPages) {
|
|
53
88
|
console.log(`Copying default pages to .synthos folder...`);
|
|
54
|
-
await (
|
|
89
|
+
await copyDefaultPages(config.defaultPagesFolder, config.pagesFolder);
|
|
55
90
|
}
|
|
56
91
|
return true;
|
|
57
92
|
}
|
|
58
93
|
exports.init = init;
|
|
94
|
+
async function repairMissingFolders(config) {
|
|
95
|
+
// Rebuild scripts folder from defaults if missing
|
|
96
|
+
const scriptsFolder = path_1.default.join(config.pagesFolder, 'scripts');
|
|
97
|
+
if (!await (0, files_1.checkIfExists)(scriptsFolder)) {
|
|
98
|
+
console.log(`Restoring default scripts to .synthos folder...`);
|
|
99
|
+
await (0, files_1.ensureFolderExists)(scriptsFolder);
|
|
100
|
+
switch (process.platform) {
|
|
101
|
+
case 'win32':
|
|
102
|
+
await (0, files_1.copyFile)(path_1.default.join(config.defaultScriptsFolder, 'windows-terminal.json'), scriptsFolder);
|
|
103
|
+
break;
|
|
104
|
+
case 'darwin':
|
|
105
|
+
await (0, files_1.copyFile)(path_1.default.join(config.defaultScriptsFolder, 'mac-terminal.json'), scriptsFolder);
|
|
106
|
+
break;
|
|
107
|
+
case 'android':
|
|
108
|
+
await (0, files_1.copyFile)(path_1.default.join(config.defaultScriptsFolder, 'android-terminal.json'), scriptsFolder);
|
|
109
|
+
break;
|
|
110
|
+
case 'linux':
|
|
111
|
+
default:
|
|
112
|
+
await (0, files_1.copyFile)(path_1.default.join(config.defaultScriptsFolder, 'linux-terminal.json'), scriptsFolder);
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
await (0, files_1.saveFile)(path_1.default.join(scriptsFolder, 'example.sh'), '#!/bin/bash\n\n# This is an example script\n\n# You can run this script using the following command:\n# sh .synthos/scripts/example.sh\n\n# This script will print "Hello, World!" to the console\n\necho "Hello, World!"\n');
|
|
116
|
+
}
|
|
117
|
+
// Rebuild themes folder from defaults if missing
|
|
118
|
+
const themesFolder = path_1.default.join(config.pagesFolder, 'themes');
|
|
119
|
+
if (!await (0, files_1.checkIfExists)(themesFolder)) {
|
|
120
|
+
console.log(`Restoring default themes to .synthos folder...`);
|
|
121
|
+
await (0, files_1.ensureFolderExists)(themesFolder);
|
|
122
|
+
await (0, files_1.copyFiles)(config.defaultThemesFolder, themesFolder);
|
|
123
|
+
}
|
|
124
|
+
// Ensure pages/ subfolder exists
|
|
125
|
+
const pagesSubdir = path_1.default.join(config.pagesFolder, 'pages');
|
|
126
|
+
if (!await (0, files_1.checkIfExists)(pagesSubdir)) {
|
|
127
|
+
// No pages folder and no flat files — rebuild from defaults
|
|
128
|
+
const htmlFiles = (await (0, files_1.listFiles)(config.pagesFolder)).filter(f => f.endsWith('.html'));
|
|
129
|
+
if (htmlFiles.length === 0) {
|
|
130
|
+
console.log(`Restoring default pages to .synthos/pages/ folder...`);
|
|
131
|
+
await copyDefaultPages(config.defaultPagesFolder, config.pagesFolder);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
await (0, files_1.ensureFolderExists)(pagesSubdir);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Migrate any stray flat .html files from root into pages/<name>/
|
|
138
|
+
await migrateFlatPages(config.pagesFolder);
|
|
139
|
+
}
|
|
140
|
+
function toTitleCase(name) {
|
|
141
|
+
// Strip brackets, replace underscores/hyphens with spaces, then Title Case each word
|
|
142
|
+
return name
|
|
143
|
+
.replace(/[\[\]]/g, '')
|
|
144
|
+
.replace(/[_-]/g, ' ')
|
|
145
|
+
.replace(/\b\w/g, c => c.toUpperCase());
|
|
146
|
+
}
|
|
147
|
+
async function migrateFlatPages(pagesFolder) {
|
|
148
|
+
const pagesSubdir = path_1.default.join(pagesFolder, 'pages');
|
|
149
|
+
const htmlFiles = (await (0, files_1.listFiles)(pagesFolder)).filter(f => f.endsWith('.html'));
|
|
150
|
+
if (htmlFiles.length === 0)
|
|
151
|
+
return;
|
|
152
|
+
console.log(`Migrating ${htmlFiles.length} page(s) to .synthos/pages/ folder...`);
|
|
153
|
+
await (0, files_1.ensureFolderExists)(pagesSubdir);
|
|
154
|
+
const now = new Date().toISOString();
|
|
155
|
+
for (const file of htmlFiles) {
|
|
156
|
+
const pageName = file.replace(/\.html$/, '');
|
|
157
|
+
const category = pageName.startsWith('[') ? 'Builder' : 'Pages';
|
|
158
|
+
const title = toTitleCase(pageName);
|
|
159
|
+
const pageFolder = path_1.default.join(pagesSubdir, pageName);
|
|
160
|
+
await (0, files_1.ensureFolderExists)(pageFolder);
|
|
161
|
+
await fs.copyFile(path_1.default.join(pagesFolder, file), path_1.default.join(pageFolder, 'page.html'));
|
|
162
|
+
await (0, files_1.saveFile)(path_1.default.join(pageFolder, 'page.json'), JSON.stringify({
|
|
163
|
+
title,
|
|
164
|
+
categories: [category],
|
|
165
|
+
pinned: false,
|
|
166
|
+
createdDate: now,
|
|
167
|
+
lastModified: now,
|
|
168
|
+
pageVersion: 1,
|
|
169
|
+
mode: 'unlocked',
|
|
170
|
+
}, null, 4));
|
|
171
|
+
await (0, files_1.deleteFile)(path_1.default.join(pagesFolder, file));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async function copyDefaultPages(srcFolder, destFolder) {
|
|
175
|
+
const pagesDir = path_1.default.join(destFolder, 'pages');
|
|
176
|
+
await (0, files_1.ensureFolderExists)(pagesDir);
|
|
177
|
+
const files = await fs.readdir(srcFolder);
|
|
178
|
+
const now = new Date().toISOString();
|
|
179
|
+
for (const file of files) {
|
|
180
|
+
if (!file.endsWith('.html'))
|
|
181
|
+
continue;
|
|
182
|
+
const pageName = file.replace(/\.html$/, '');
|
|
183
|
+
const pageFolder = path_1.default.join(pagesDir, pageName);
|
|
184
|
+
await (0, files_1.ensureFolderExists)(pageFolder);
|
|
185
|
+
await fs.copyFile(path_1.default.join(srcFolder, file), path_1.default.join(pageFolder, 'page.html'));
|
|
186
|
+
// Read companion .json metadata from source folder, fall back to defaults
|
|
187
|
+
let metadata = {};
|
|
188
|
+
const jsonPath = path_1.default.join(srcFolder, `${pageName}.json`);
|
|
189
|
+
if (await (0, files_1.checkIfExists)(jsonPath)) {
|
|
190
|
+
try {
|
|
191
|
+
const raw = await fs.readFile(jsonPath, 'utf-8');
|
|
192
|
+
metadata = JSON.parse(raw);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// use defaults
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
const fullMetadata = {
|
|
199
|
+
title: typeof metadata.title === 'string' ? metadata.title : '',
|
|
200
|
+
categories: Array.isArray(metadata.categories) ? metadata.categories : [],
|
|
201
|
+
pinned: typeof metadata.pinned === 'boolean' ? metadata.pinned : false,
|
|
202
|
+
createdDate: now,
|
|
203
|
+
lastModified: now,
|
|
204
|
+
pageVersion: typeof metadata.pageVersion === 'number' ? metadata.pageVersion
|
|
205
|
+
: typeof metadata.uxVersion === 'number' ? metadata.uxVersion : pages_1.PAGE_VERSION,
|
|
206
|
+
mode: metadata.mode === 'locked' ? 'locked' : 'unlocked',
|
|
207
|
+
};
|
|
208
|
+
await (0, files_1.saveFile)(path_1.default.join(pageFolder, 'page.json'), JSON.stringify(fullMetadata, null, 4));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
59
211
|
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { completePrompt } from 'agentm-core';
|
|
2
|
+
/**
|
|
3
|
+
* Migrate a page's HTML from one version to another by applying
|
|
4
|
+
* sequential migration steps.
|
|
5
|
+
*/
|
|
6
|
+
export declare function migratePage(html: string, fromVersion: number, toVersion: number, completePrompt: completePrompt): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Cheerio-based post-processing to verify the LLM output meets v2 requirements.
|
|
9
|
+
*/
|
|
10
|
+
export declare function postProcessV2(html: string): string;
|
|
11
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAW7C;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAUvI;AAgLD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4DlD"}
|