@silexlabs/silex 3.6.3 → 3.6.4
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/client/index.html +2 -2
- package/dist/client/js/main.js +4 -4
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +8 -1
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +276 -46
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -1
- package/package.json +1 -1
- package/src/ts/client/grapesjs/PublicationUi.ts +2 -2
- package/src/ts/client/grapesjs/storage.ts +26 -16
- package/src/ts/plugins/server/GitlabHostingConnector.ts +305 -49
|
@@ -11,6 +11,13 @@ export default class GitlabHostingConnector extends GitlabConnector implements H
|
|
|
11
11
|
getUrl(session: GitlabSession, websiteId: WebsiteId): Promise<string>;
|
|
12
12
|
getAdminUrl(session: GitlabSession, websiteId: WebsiteId): Promise<string>;
|
|
13
13
|
getPageUrl(session: GitlabSession, websiteId: WebsiteId, projectUrl: string): Promise<string>;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Wait for the GitLab CI/CD job to complete
|
|
16
|
+
* Polls the job status and updates the Silex job with progress
|
|
17
|
+
*/
|
|
18
|
+
waitForGitlabJobCompletion(session: GitlabSession, websiteId: WebsiteId, job: PublicationJobData, projectUrl: string, tag: string, gitlabUrl: string, pageUrl: string): Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
message: string;
|
|
21
|
+
}>;
|
|
15
22
|
createTag(session: GitlabSession, websiteId: WebsiteId, job: PublicationJobData, { startJob, jobSuccess, jobError }: JobManager): Promise<string | null>;
|
|
16
23
|
}
|
|
@@ -29,8 +29,103 @@ const dedent_1 = __importDefault(require("dedent"));
|
|
|
29
29
|
const GitlabConnector_1 = __importDefault(require("./GitlabConnector"));
|
|
30
30
|
const types_1 = require("../../types");
|
|
31
31
|
const promises_1 = require("timers/promises");
|
|
32
|
-
const waitTimeOut = 5000; /* for wait loop
|
|
32
|
+
const waitTimeOut = 5000; /* for wait loop waiting for job to appear */
|
|
33
|
+
const jobPollInterval = 10000; /* poll job status every 10 seconds */
|
|
34
|
+
const jobCompletionTimeOut = 45 * 60 * 1000; /* 45 minutes max for job completion */
|
|
33
35
|
const SILEX_OVERWRITE_NOTICE = '# silexOverwrite: true';
|
|
36
|
+
// GitLab job statuses that indicate the job is still running
|
|
37
|
+
const GITLAB_RUNNING_STATUSES = ['created', 'waiting_for_resource', 'preparing', 'pending', 'running'];
|
|
38
|
+
// GitLab job statuses that indicate success
|
|
39
|
+
const GITLAB_SUCCESS_STATUSES = ['success'];
|
|
40
|
+
// GitLab job statuses that indicate failure
|
|
41
|
+
const GITLAB_FAILED_STATUSES = ['failed', 'canceled', 'skipped'];
|
|
42
|
+
/**
|
|
43
|
+
* Filter GitLab trace to remove technical noise
|
|
44
|
+
* Returns an array of meaningful log lines
|
|
45
|
+
*/
|
|
46
|
+
function filterTraceLines(trace) {
|
|
47
|
+
return trace.split('\n')
|
|
48
|
+
.map(l => l.trim())
|
|
49
|
+
.filter(l => l.length > 0)
|
|
50
|
+
// Remove GitLab internal markers
|
|
51
|
+
.filter(l => !l.match(/^section_/))
|
|
52
|
+
// eslint-disable-next-line no-control-regex
|
|
53
|
+
.filter(l => !l.match(/^\x1b/)) // Remove ANSI escape sequences at start
|
|
54
|
+
// Remove timestamps at the beginning of lines
|
|
55
|
+
.map(l => l.replace(/^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s*\d*O?\s*/, ''))
|
|
56
|
+
// Remove Docker/Git setup noise
|
|
57
|
+
.filter(l => !l.includes('Using Docker executor'))
|
|
58
|
+
.filter(l => !l.includes('Pulling docker image'))
|
|
59
|
+
.filter(l => !l.includes('Fetching changes'))
|
|
60
|
+
.filter(l => !l.includes('Checking out'))
|
|
61
|
+
.filter(l => !l.includes('Skipping Git submodules'))
|
|
62
|
+
.filter(l => !l.includes('Getting source from Git'))
|
|
63
|
+
.filter(l => !l.includes('Executing "step_script"'))
|
|
64
|
+
.filter(l => !l.includes('Restoring cache'))
|
|
65
|
+
.filter(l => !l.includes('Saving cache'))
|
|
66
|
+
.filter(l => !l.match(/^\s*\$\s/)) // Remove shell command echoes
|
|
67
|
+
.filter(l => !l.match(/^Running with gitlab-runner/))
|
|
68
|
+
.filter(l => !l.match(/^Preparing the .* executor/))
|
|
69
|
+
.filter(l => !l.match(/^Using .* as base image/))
|
|
70
|
+
// Keep non-empty lines after filtering
|
|
71
|
+
.filter(l => l.trim().length > 0);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Parse GitLab/11ty job logs to extract meaningful status
|
|
75
|
+
* Returns a short user-friendly status message
|
|
76
|
+
*/
|
|
77
|
+
function parseJobTrace(trace) {
|
|
78
|
+
const lines = filterTraceLines(trace);
|
|
79
|
+
// Look for 11ty build progress
|
|
80
|
+
if (trace.includes('[11ty]')) {
|
|
81
|
+
// Look for 11ty completion first
|
|
82
|
+
if (trace.includes('[11ty] Wrote') || trace.includes('[11ty] Copied')) {
|
|
83
|
+
const wroteMatch = trace.match(/\[11ty\] Wrote (\d+)/i);
|
|
84
|
+
const copiedMatch = trace.match(/\[11ty\] Copied (\d+)/i);
|
|
85
|
+
const parts = [];
|
|
86
|
+
if (wroteMatch)
|
|
87
|
+
parts.push(`${wroteMatch[1]} pages generated`);
|
|
88
|
+
if (copiedMatch)
|
|
89
|
+
parts.push(`${copiedMatch[1]} files copied`);
|
|
90
|
+
if (parts.length)
|
|
91
|
+
return parts.join(', ');
|
|
92
|
+
}
|
|
93
|
+
// Look for 11ty processing
|
|
94
|
+
const eleventyMatch = trace.match(/\[11ty\].*?(\d+)\s+files?/i);
|
|
95
|
+
if (eleventyMatch) {
|
|
96
|
+
return `Generating ${eleventyMatch[1]} pages...`;
|
|
97
|
+
}
|
|
98
|
+
return 'Building pages...';
|
|
99
|
+
}
|
|
100
|
+
// Look for npm/npx installing
|
|
101
|
+
if (trace.includes('npm') && trace.includes('install')) {
|
|
102
|
+
return 'Installing dependencies...';
|
|
103
|
+
}
|
|
104
|
+
// Look for npx running eleventy
|
|
105
|
+
if (trace.includes('npx') && trace.includes('eleventy')) {
|
|
106
|
+
return 'Running page generator...';
|
|
107
|
+
}
|
|
108
|
+
// Look for artifact upload
|
|
109
|
+
if (trace.includes('Uploading artifacts')) {
|
|
110
|
+
return 'Preparing files for deployment...';
|
|
111
|
+
}
|
|
112
|
+
// Look for pages deployment
|
|
113
|
+
if (trace.includes('CI_PAGES_URL') || trace.includes('will be deployed')) {
|
|
114
|
+
return 'Finalizing deployment...';
|
|
115
|
+
}
|
|
116
|
+
// Look for job completion
|
|
117
|
+
if (trace.includes('Job succeeded')) {
|
|
118
|
+
return 'Build complete';
|
|
119
|
+
}
|
|
120
|
+
// Look for errors
|
|
121
|
+
const errorMatch = trace.match(/error[:\s]+(.{0,100})/i);
|
|
122
|
+
if (errorMatch) {
|
|
123
|
+
const errorMsg = errorMatch[1].trim().substring(0, 60);
|
|
124
|
+
return `Error: ${errorMsg}${errorMsg.length >= 60 ? '...' : ''}`;
|
|
125
|
+
}
|
|
126
|
+
// Return empty string to avoid showing technical noise
|
|
127
|
+
return '';
|
|
128
|
+
}
|
|
34
129
|
class GitlabHostingConnector extends GitlabConnector_1.default {
|
|
35
130
|
displayName = 'Gitlab hosting';
|
|
36
131
|
connectorType = types_1.ConnectorType.HOSTING;
|
|
@@ -113,30 +208,16 @@ class GitlabHostingConnector extends GitlabConnector_1.default {
|
|
|
113
208
|
job.logs[0].push(job.message);
|
|
114
209
|
const pageUrl = await this.getPageUrl(session, websiteId, adminUrl);
|
|
115
210
|
job.logs[0].push(`Page URL: ${pageUrl}`);
|
|
116
|
-
|
|
211
|
+
// Wait for the GitLab job to complete
|
|
212
|
+
job.message = 'Starting build...';
|
|
117
213
|
job.logs[0].push(job.message);
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
errorMessage +=
|
|
125
|
-
`<div class="notice">
|
|
126
|
-
If your GitLab account is recent, you may need to verify it <a href="${verifyURL}" target="_blank">here</a>
|
|
127
|
-
in order to be able to use pipelines (this is GitLab's policy, not Silex's).
|
|
128
|
-
</div>`;
|
|
129
|
-
}
|
|
130
|
-
throw new Error(errorMessage);
|
|
214
|
+
const result = await this.waitForGitlabJobCompletion(session, websiteId, job, adminUrl, successTag, gitlabUrl, pageUrl);
|
|
215
|
+
if (result.success) {
|
|
216
|
+
jobSuccess(job.jobId, result.message);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
jobError(job.jobId, result.message);
|
|
131
220
|
}
|
|
132
|
-
job.logs[0].push(`Deployment logs URL: ${gitlabJobLogsUrl}`);
|
|
133
|
-
const message = `
|
|
134
|
-
<p><a href="${gitlabUrl}" target="_blank">Your website will soon be live here</a>.</p>
|
|
135
|
-
<p>Changes may take a few minutes to appear, <a href="${gitlabJobLogsUrl}" target="_blank">follow deployment here</a>.</p>
|
|
136
|
-
<p>Manage <a href="${pageUrl}" target="_blank">GitLab Pages settings</a>.</p>
|
|
137
|
-
`;
|
|
138
|
-
job.logs[0].push(message);
|
|
139
|
-
jobSuccess(job.jobId, message);
|
|
140
221
|
}
|
|
141
222
|
catch (error) {
|
|
142
223
|
console.error('Error during getting the website URLs:', error.message);
|
|
@@ -216,35 +297,184 @@ class GitlabHostingConnector extends GitlabConnector_1.default {
|
|
|
216
297
|
async getPageUrl(session, websiteId, projectUrl) {
|
|
217
298
|
return `${projectUrl}/pages`;
|
|
218
299
|
}
|
|
219
|
-
|
|
220
|
-
|
|
300
|
+
/**
|
|
301
|
+
* Wait for the GitLab CI/CD job to complete
|
|
302
|
+
* Polls the job status and updates the Silex job with progress
|
|
303
|
+
*/
|
|
304
|
+
async waitForGitlabJobCompletion(session, websiteId, job, projectUrl, tag, gitlabUrl, pageUrl) {
|
|
221
305
|
const t0 = Date.now();
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
306
|
+
let gitlabJobId = null;
|
|
307
|
+
let gitlabJobLogsUrl = null;
|
|
308
|
+
// First, wait for the job to appear
|
|
309
|
+
while (!gitlabJobId && (Date.now() - t0) < this.options.timeOut) {
|
|
310
|
+
try {
|
|
311
|
+
const jobs = await this.callApi({
|
|
312
|
+
session,
|
|
313
|
+
path: `api/v4/projects/${websiteId}/jobs`,
|
|
314
|
+
method: 'GET'
|
|
315
|
+
});
|
|
316
|
+
const matchingJob = jobs.find(j => j.ref === tag);
|
|
317
|
+
if (matchingJob) {
|
|
318
|
+
gitlabJobId = matchingJob.id;
|
|
319
|
+
gitlabJobLogsUrl = `${projectUrl}/-/jobs/${matchingJob.id}`;
|
|
320
|
+
job.logs[0].push('Build started');
|
|
321
|
+
job.message = `
|
|
322
|
+
<p><strong>Building...</strong></p>
|
|
323
|
+
<p><a href="${gitlabJobLogsUrl}" target="_blank">View build logs</a></p>
|
|
324
|
+
`;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
catch (e) {
|
|
328
|
+
console.error('Error fetching GitLab jobs:', e.message);
|
|
329
|
+
}
|
|
330
|
+
if (!gitlabJobId) {
|
|
331
|
+
await (0, promises_1.setTimeout)(waitTimeOut);
|
|
232
332
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
333
|
+
}
|
|
334
|
+
// If job never appeared, handle the error
|
|
335
|
+
if (!gitlabJobId) {
|
|
336
|
+
let errorMessage = 'Could not start the build. The server may be busy or unavailable.';
|
|
337
|
+
if (this.isUsingOfficialInstance()) {
|
|
338
|
+
const verifyURL = 'https://gitlab.com/-/identity_verification';
|
|
339
|
+
errorMessage +=
|
|
340
|
+
`<div class="notice">
|
|
341
|
+
If your GitLab account is recent, you may need to <a href="${verifyURL}" target="_blank">verify it here</a>
|
|
342
|
+
before you can publish websites.
|
|
343
|
+
</div>`;
|
|
344
|
+
}
|
|
345
|
+
return { success: false, message: errorMessage };
|
|
346
|
+
}
|
|
347
|
+
// Now poll the job status until it completes
|
|
348
|
+
let lastTraceLength = 0;
|
|
349
|
+
while ((Date.now() - t0) < jobCompletionTimeOut) {
|
|
350
|
+
try {
|
|
351
|
+
// Get job status
|
|
352
|
+
const gitlabJob = await this.callApi({
|
|
353
|
+
session,
|
|
354
|
+
path: `api/v4/projects/${websiteId}/jobs/${gitlabJobId}`,
|
|
355
|
+
method: 'GET'
|
|
356
|
+
});
|
|
357
|
+
const jobStatus = gitlabJob.status;
|
|
358
|
+
// Try to get job trace (logs) for progress info
|
|
359
|
+
let traceInfo = '';
|
|
360
|
+
try {
|
|
361
|
+
const trace = await this.callApi({
|
|
362
|
+
session,
|
|
363
|
+
path: `api/v4/projects/${websiteId}/jobs/${gitlabJobId}/trace`,
|
|
364
|
+
method: 'GET'
|
|
365
|
+
});
|
|
366
|
+
if (typeof trace === 'string' && trace.length > lastTraceLength) {
|
|
367
|
+
// Parse the new portion of the trace
|
|
368
|
+
const newTrace = trace.substring(lastTraceLength);
|
|
369
|
+
traceInfo = parseJobTrace(newTrace);
|
|
370
|
+
lastTraceLength = trace.length;
|
|
371
|
+
// Add filtered log lines to the job logs for the <details> section
|
|
372
|
+
const filteredLines = filterTraceLines(newTrace);
|
|
373
|
+
if (filteredLines.length > 0) {
|
|
374
|
+
// Limit to last 50 lines to avoid overwhelming the logs
|
|
375
|
+
const linesToAdd = filteredLines.slice(-50);
|
|
376
|
+
job.logs[0].push(...linesToAdd);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
catch (e) {
|
|
381
|
+
// Trace might not be available yet, that's OK
|
|
382
|
+
}
|
|
383
|
+
// Map GitLab status to user-friendly status
|
|
384
|
+
const statusMap = {
|
|
385
|
+
'created': 'Starting',
|
|
386
|
+
'waiting_for_resource': 'Waiting for server',
|
|
387
|
+
'preparing': 'Preparing',
|
|
388
|
+
'pending': 'Queued',
|
|
389
|
+
'running': 'Building',
|
|
390
|
+
'success': 'Complete',
|
|
391
|
+
'failed': 'Failed',
|
|
392
|
+
'canceled': 'Canceled',
|
|
393
|
+
'skipped': 'Skipped',
|
|
394
|
+
};
|
|
395
|
+
const statusDisplay = statusMap[jobStatus] || jobStatus;
|
|
396
|
+
const progressInfo = traceInfo ? ` - ${traceInfo}` : '';
|
|
397
|
+
job.message = `
|
|
398
|
+
<p><strong>${statusDisplay}</strong>${progressInfo}</p>
|
|
399
|
+
<p><a href="${gitlabJobLogsUrl}" target="_blank">View build logs</a></p>
|
|
400
|
+
`;
|
|
401
|
+
// Check if job completed
|
|
402
|
+
if (GITLAB_SUCCESS_STATUSES.includes(jobStatus)) {
|
|
403
|
+
// Fetch final trace to include in logs
|
|
404
|
+
try {
|
|
405
|
+
const finalTrace = await this.callApi({
|
|
406
|
+
session,
|
|
407
|
+
path: `api/v4/projects/${websiteId}/jobs/${gitlabJobId}/trace`,
|
|
408
|
+
method: 'GET'
|
|
409
|
+
});
|
|
410
|
+
if (typeof finalTrace === 'string') {
|
|
411
|
+
const allFilteredLines = filterTraceLines(finalTrace);
|
|
412
|
+
// Add last 30 lines as summary
|
|
413
|
+
job.logs[0].push('--- Build Summary ---');
|
|
414
|
+
job.logs[0].push(...allFilteredLines.slice(-30));
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
catch (e) {
|
|
418
|
+
// Ignore trace fetch errors
|
|
419
|
+
}
|
|
420
|
+
const message = `
|
|
421
|
+
<p><strong>Your website is now live!</strong></p>
|
|
422
|
+
<p><a href="${gitlabUrl}" target="_blank" class="silex-button silex-button--primary">View your website</a></p>
|
|
423
|
+
`;
|
|
424
|
+
job.logs[0].push('Build completed successfully');
|
|
425
|
+
return { success: true, message };
|
|
426
|
+
}
|
|
427
|
+
if (GITLAB_FAILED_STATUSES.includes(jobStatus)) {
|
|
428
|
+
const failureReason = gitlabJob.failure_reason || 'Build error';
|
|
429
|
+
// Fetch final trace to include error details in logs
|
|
430
|
+
try {
|
|
431
|
+
const finalTrace = await this.callApi({
|
|
432
|
+
session,
|
|
433
|
+
path: `api/v4/projects/${websiteId}/jobs/${gitlabJobId}/trace`,
|
|
434
|
+
method: 'GET'
|
|
435
|
+
});
|
|
436
|
+
if (typeof finalTrace === 'string') {
|
|
437
|
+
const allFilteredLines = filterTraceLines(finalTrace);
|
|
438
|
+
// Add last 50 lines to help debug the error
|
|
439
|
+
job.logs[0].push('--- Error Details ---');
|
|
440
|
+
job.logs[0].push(...allFilteredLines.slice(-50));
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
catch (e) {
|
|
444
|
+
// Ignore trace fetch errors
|
|
445
|
+
}
|
|
446
|
+
const message = `
|
|
447
|
+
<p><strong>Build failed:</strong> ${failureReason}</p>
|
|
448
|
+
<p><a href="${gitlabJobLogsUrl}" target="_blank">View build logs for details</a></p>
|
|
449
|
+
<p><a href="${pageUrl}" target="_blank">Settings</a></p>
|
|
450
|
+
`;
|
|
451
|
+
job.logs[0].push(`Build failed: ${failureReason}`);
|
|
452
|
+
return { success: false, message };
|
|
453
|
+
}
|
|
454
|
+
// Job still running, wait before next poll
|
|
455
|
+
await (0, promises_1.setTimeout)(jobPollInterval);
|
|
456
|
+
}
|
|
457
|
+
catch (e) {
|
|
458
|
+
console.error('Error polling GitLab job status:', e.message);
|
|
459
|
+
// Don't fail immediately, just wait and retry
|
|
460
|
+
await (0, promises_1.setTimeout)(jobPollInterval);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
// Timeout reached
|
|
464
|
+
const message = `
|
|
465
|
+
<p><strong>Build is taking longer than expected</strong></p>
|
|
466
|
+
<p>Your website may still be published successfully.</p>
|
|
467
|
+
<p><a href="${gitlabJobLogsUrl}" target="_blank">Check build status</a> | <a href="${gitlabUrl}" target="_blank">Check your website</a></p>
|
|
468
|
+
`;
|
|
469
|
+
job.logs[0].push('Timeout waiting for build completion');
|
|
470
|
+
return { success: false, message };
|
|
241
471
|
}
|
|
242
472
|
async createTag(session, websiteId, job, { startJob, jobSuccess, jobError }) {
|
|
243
473
|
const projectId = websiteId; // Assuming websiteId corresponds to GitLab project ID
|
|
244
474
|
const newTag = '_silex_' + Date.now();
|
|
245
|
-
// Create a new tag
|
|
475
|
+
// Create a new tag to trigger the build
|
|
246
476
|
try {
|
|
247
|
-
job.message =
|
|
477
|
+
job.message = 'Triggering build...';
|
|
248
478
|
job.logs[0].push(job.message);
|
|
249
479
|
await this.callApi({
|
|
250
480
|
session,
|
|
@@ -259,7 +489,7 @@ class GitlabHostingConnector extends GitlabConnector_1.default {
|
|
|
259
489
|
}
|
|
260
490
|
catch (error) {
|
|
261
491
|
console.error('Error during creating new tag:', error.message);
|
|
262
|
-
jobError(job.jobId, `Failed to
|
|
492
|
+
jobError(job.jobId, `Failed to start build: ${error.message}`);
|
|
263
493
|
return null;
|
|
264
494
|
}
|
|
265
495
|
// Return new tag
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitlabHostingConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/GitlabHostingConnector.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;AAEH;;;;;GAKG;AAEH,oDAA2B;AAC3B,wEAAgF;AAEhF,uCAA8F;AAG9F,8CAA4C;AAE5C,MAAM,WAAW,GAAG,IAAI,CAAA,CAAC,wCAAwC;AACjE,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAEvD,MAAqB,sBAAuB,SAAQ,yBAAe;IAEjE,WAAW,GAAG,gBAAgB,CAAA;IAC9B,aAAa,GAAG,qBAAa,CAAC,OAAO,CAAA;IAErC,YAAa,MAAoB,EAAE,IAA4B;QAC7D,KAAK,CAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACpB,6CAA6C;QAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,GAAE,QAAQ,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB,EAAE,SAAoB,EAAE,KAAsB,EAAE,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAa;QAC9H,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAuB,CAAA;QAC/E,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAClD,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,oFAAoF;QACpF,MAAM,OAAO,GAAG,gBAAgB,CAAA;QAChC,MAAM,UAAU,GAAG,IAAA,gBAAM,EAAA;QACrB,sBAAsB;;;;;;;;iBAQb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;;;6CAG3B;YACzC,CAAC,CAAC,EAAE;;;;;;;;KAQH,CAAA;QACD,IAAI,CAAC;YACH,GAAG,CAAC,OAAO,GAAG,eAAe,OAAO,oCAAoC,CAAA;YACxE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YACnE,IAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAC5D,GAAG,CAAC,OAAO,GAAG,YAAY,OAAO,KAAK,CAAA;gBACtC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;YAChE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,+GAA+G;YAC/G,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,IAAI,CAAC,CAAC,cAAc,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE,CAAC;gBACnH,GAAG,CAAC,OAAO,GAAG,YAAY,OAAO,KAAK,CAAA;gBACtC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;YAChE,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,6FAA6F;QAC7F,kHAAkH;QAClH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,EAAE;YACtE,wBAAwB;YACxB,IAAG,MAAM,KAAK,iBAAS,CAAC,OAAO,EAAE,CAAC;gBAChC,gCAAgC;gBAChC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACpG,IAAG,CAAC,UAAU,EAAE,CAAC;oBACf,8CAA8C;oBAC9C,OAAM;gBACR,CAAC;gBACD,IAAI,CAAC;oBACH,GAAG,CAAC,OAAO,GAAG,4BAA4B,CAAA;oBAC1C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;oBACvD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAA;oBAC7C,GAAG,CAAC,OAAO,GAAG,0BAA0B,CAAA;oBACxC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;oBAC3D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAA;oBAC1C,GAAG,CAAC,OAAO,GAAG,yBAAyB,CAAA;oBACvC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;oBACnE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;oBACxC,GAAG,CAAC,OAAO,GAAG,oCAAoC,CAAA;oBAClD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBAC7B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;oBAC1I,mGAAmG;oBACnG,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACtB,IAAI,YAAY,GAAG,6CAA6C,CAAA;wBAEhE,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;4BACnC,MAAM,SAAS,GAAG,4CAA4C,CAAA;4BAC9D,YAAY;gCACV;2FAC2E,SAAS;;wBAE5E,CAAA;wBACZ,CAAC;wBAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;oBAC/B,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,gBAAgB,EAAE,CAAC,CAAA;oBAC5D,MAAM,OAAO,GAAG;0BACA,SAAS;oEACiC,gBAAgB;iCACnD,OAAO;WAC7B,CAAA;oBACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACzB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;oBACtE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBACzE,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,iBAAS,CAAC,KAAK,EAAE,CAAC;gBACtC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC3B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,GAAG,CAAC,MAAM,GAAG,MAAM,CAAA;gBACnB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAA;gBACrB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC,EAAE,IAAI,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,EAAE;YACT,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;YAC5D,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEJ,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,iJAAiJ;IACjJ,uDAAuD;IACvD,kCAAkC;IAClC,uCAAuC;IACvC,+BAA+B;IAE/B,2CAA2C;IAC3C,0CAA0C;IAC1C,eAAe;IACf,iBAAiB;IACjB,wBAAwB;IACxB,uCAAuC;IACvC,OAAO;IAEP,wCAAwC;IACxC,+CAA+C;IAC/C,gCAAgC;IAChC,2DAA2D;IAC3D,+EAA+E;IAC/E,sDAAsD;IACtD,sDAAsD;IACtD,yBAAyB;IACzB,sCAAsC;IACtC,+BAA+B;IAC/B,8BAA8B;IAC9B,iCAAiC;IACjC,qBAAqB;IACrB,gCAAgC;IAChC,aAAa;IACb,uCAAuC;IACvC,eAAe;IACf,6BAA6B;IAC7B,4BAA4B;IAC5B,+BAA+B;IAC/B,mBAAmB;IACnB,8BAA8B;IAC9B,WAAW;IACX,QAAQ;IAER,qCAAqC;IACrC,KAAK,CAAC,MAAM,CAAC,OAAsB,EAAE,SAAoB;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YAClC,OAAO;YACP,IAAI,EAAE,mBAAmB,SAAS,QAAQ;YAC1C,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,GAAG,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAsB,EAAE,SAAoB;QAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;YACrC,OAAO;YACP,IAAI,EAAE,mBAAmB,SAAS,EAAE;YACpC,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QACF,OAAO,WAAW,CAAC,OAAO,CAAA;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB,EAAE,SAAoB,EAAE,UAAkB;QAC/E,OAAO,GAAG,UAAU,QAAQ,CAAA;IAC9B,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,mBAAmB,CAAC,OAAsB,EAAE,SAAoB,EAAE,GAAuB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAc,EAAE,UAAkB,EAAE,GAAG;QACtK,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrB,GAAG,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAC9B,OAAO;gBACP,IAAI,EAAE,mBAAmB,SAAS,OAAO;gBACzC,MAAM,EAAE,KAAK;aACd,CAAC,CAAA;YACF,iEAAiE;YACjE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YACjD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,GAAG,UAAU,WAAW,WAAW,CAAC,EAAE,EAAE,CAAA;YACjD,CAAC;YACD,uCAAuC;YACvC,MAAM,IAAA,qBAAU,EAAC,WAAW,CAAC,CAAA;QAC/B,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAC;QAElD,sDAAsD;QACtD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;QAC3C,GAAG,CAAC,OAAO,GAAG,sBAAsB,CAAA;QACpC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAC7B,OAAO,GAAG,UAAU,UAAU,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAsB,EAAE,SAAoB,EAAE,GAAuB,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAc;QACnI,MAAM,SAAS,GAAG,SAAS,CAAA,CAAC,sDAAsD;QAClF,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrC,mBAAmB;QACnB,IAAI,CAAC;YACH,GAAG,CAAC,OAAO,GAAG,oBAAoB,MAAM,KAAK,CAAA;YAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC7B,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,OAAO;gBACP,IAAI,EAAE,mBAAmB,SAAS,kBAAkB;gBACpD,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,MAAM;oBAChB,GAAG,EAAE,MAAM;oBACX,OAAO,EAAE,wBAAwB;iBAClC;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;YAC9D,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACjE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,iBAAiB;QACjB,OAAO,MAAM,CAAA;IACf,CAAC;CAEF;AAtPD,yCAsPC"}
|
|
1
|
+
{"version":3,"file":"GitlabHostingConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/GitlabHostingConnector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -227,10 +227,10 @@ export class PublicationUi {
|
|
|
227
227
|
` : nothing}
|
|
228
228
|
${this.isPending(status) || this.isLoggedOut(status) ? nothing : html`
|
|
229
229
|
<button
|
|
230
|
-
class="silex-button silex-button--primary"
|
|
230
|
+
class="silex-button ${this.isSuccess(status) ? 'silex-button--secondary' : 'silex-button--primary'}"
|
|
231
231
|
id="publish-button--primary"
|
|
232
232
|
@click=${() => this.editor.Commands.run(cmdPublicationStart)}
|
|
233
|
-
|
|
233
|
+
>${this.isSuccess(status) ? 'Publish again' : 'Publish'}</button>
|
|
234
234
|
`}
|
|
235
235
|
`}
|
|
236
236
|
</main>
|
|
@@ -129,17 +129,25 @@ export const storagePlugin = (editor: PublishableEditor) => {
|
|
|
129
129
|
editor.UndoManager.clear()
|
|
130
130
|
if (err.httpStatusCode === 401) {
|
|
131
131
|
editor.once(eventLoggedIn, async () => {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
132
|
+
// This should work but well it doesn't... window.location.reload()
|
|
133
|
+
// Here comes the workaround:
|
|
134
|
+
/* @lint-ignore */
|
|
135
|
+
window.location.href = window.location.href
|
|
136
|
+
return null
|
|
137
|
+
// try {
|
|
138
|
+
// await this.load(options)
|
|
139
|
+
// } catch (err) {
|
|
140
|
+
// console.error('connectorPlugin load error', err)
|
|
141
|
+
// // Breaks grapesjs: throw err
|
|
142
|
+
// editor.trigger('storage:error:load', err)
|
|
143
|
+
// return null
|
|
144
|
+
// }
|
|
138
145
|
})
|
|
139
146
|
editor.Commands.run(cmdLogin)
|
|
140
147
|
}
|
|
141
148
|
console.error('connectorPlugin load error', err)
|
|
142
|
-
throw err
|
|
149
|
+
// Breaks grapesjs: throw err
|
|
150
|
+
editor.trigger('storage:error:load', err)
|
|
143
151
|
}
|
|
144
152
|
},
|
|
145
153
|
|
|
@@ -171,7 +179,7 @@ export const storagePlugin = (editor: PublishableEditor) => {
|
|
|
171
179
|
try {
|
|
172
180
|
if (isSaving) {
|
|
173
181
|
// Concurrent saving, save is delayed
|
|
174
|
-
editor.once('storage:
|
|
182
|
+
editor.once('storage:end:store', () => {
|
|
175
183
|
this.doStore(data, options)
|
|
176
184
|
})
|
|
177
185
|
} else {
|
|
@@ -186,12 +194,8 @@ export const storagePlugin = (editor: PublishableEditor) => {
|
|
|
186
194
|
await websiteSave({ websiteId: options.id, connectorId: user.storage.connectorId, data })
|
|
187
195
|
isSaving = false
|
|
188
196
|
} else {
|
|
189
|
-
//
|
|
190
|
-
|
|
191
|
-
isSaving = false
|
|
192
|
-
return editor.Storage.store(data, options)
|
|
193
|
-
})
|
|
194
|
-
editor.Commands.run(cmdLogin)
|
|
197
|
+
// This should never happen,
|
|
198
|
+
// because the user canot save when they never logged in before
|
|
195
199
|
}
|
|
196
200
|
} else {
|
|
197
201
|
// Canceled saving
|
|
@@ -200,7 +204,14 @@ export const storagePlugin = (editor: PublishableEditor) => {
|
|
|
200
204
|
} catch (err) {
|
|
201
205
|
console.error('connectorPlugin store error', err)
|
|
202
206
|
isSaving = false
|
|
203
|
-
|
|
207
|
+
if (err.httpStatusCode === 401) {
|
|
208
|
+
editor.once(eventLoggedIn, () => {
|
|
209
|
+
isSaving = false
|
|
210
|
+
return editor.Storage.store(data, options)
|
|
211
|
+
})
|
|
212
|
+
}
|
|
213
|
+
// Breaks grapesjs: throw err
|
|
214
|
+
editor.trigger('storage:error:load', err)
|
|
204
215
|
}
|
|
205
216
|
}
|
|
206
217
|
})
|
|
@@ -226,7 +237,6 @@ export const storagePlugin = (editor: PublishableEditor) => {
|
|
|
226
237
|
case 404:
|
|
227
238
|
return editor.Modal.open({
|
|
228
239
|
title: 'Website not found',
|
|
229
|
-
|
|
230
240
|
content: `This website could not be found.<br><hr>${err.message}`,
|
|
231
241
|
})
|
|
232
242
|
case 403:
|