@stackbit/dev 0.0.14 → 0.0.17-alpha.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/dist/assets/loading-page.html +10 -4
- package/dist/command.js +63 -2
- package/dist/command.js.map +1 -1
- package/dist/dev.d.ts +9 -2
- package/dist/dev.js +49 -15
- package/dist/dev.js.map +1 -1
- package/dist/runner/index.d.ts +16 -4
- package/dist/runner/index.js +54 -19
- package/dist/runner/index.js.map +1 -1
- package/dist/server/index.d.ts +9 -2
- package/dist/server/index.js +15 -10
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes.js +4 -0
- package/dist/server/routes.js.map +1 -1
- package/dist/services/user-config.js +2 -2
- package/dist/services/user-config.js.map +1 -1
- package/package.json +6 -5
- package/src/assets/loading-page.html +10 -4
- package/src/command.ts +60 -2
- package/src/dev.ts +55 -21
- package/src/runner/index.ts +65 -19
- package/src/server/index.ts +26 -18
- package/src/server/routes.ts +4 -0
- package/src/services/user-config.ts +2 -2
|
@@ -30,15 +30,21 @@
|
|
|
30
30
|
fill: #f25458;
|
|
31
31
|
}
|
|
32
32
|
#info-text a {
|
|
33
|
-
color: #
|
|
33
|
+
color: #0b69db;
|
|
34
34
|
}
|
|
35
35
|
</style>
|
|
36
36
|
</head>
|
|
37
37
|
<body>
|
|
38
38
|
<div id="main-container">
|
|
39
|
-
<svg
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
<svg width="239" height="81" viewBox="0 0 239 81" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
40
|
+
<path d="M119.641 79.7368C141.383 79.7368 159.009 62.111 159.009 40.3684C159.009 18.6258 141.383 1 119.641 1C97.8983 1 80.2725 18.6258 80.2725 40.3684C80.2725 62.111 97.8983 79.7368 119.641 79.7368Z" stroke="#979797" stroke-miterlimit="10"/>
|
|
41
|
+
<path d="M198.538 79.7368C220.28 79.7368 237.906 62.111 237.906 40.3684C237.906 18.6258 220.28 1 198.538 1C176.795 1 159.169 18.6258 159.169 40.3684C159.169 62.111 176.795 79.7368 198.538 79.7368Z" stroke="#979797" stroke-miterlimit="10"/>
|
|
42
|
+
<path d="M1.37549 79.7369L80.2723 1.00006L159.009 79.7369L237.906 1.00006" stroke="#979797" stroke-miterlimit="10"/>
|
|
43
|
+
<path d="M1.37549 1.00006L80.2723 79.7369L159.009 1.00006L237.906 79.7369" stroke="#979797" stroke-miterlimit="10"/>
|
|
44
|
+
<path d="M40.7439 79.7369C62.4865 79.7369 80.1123 62.111 80.1123 40.3685C80.1123 18.6259 62.4865 1.00006 40.7439 1.00006C19.0013 1.00006 1.37549 18.6259 1.37549 40.3685C1.37549 62.111 19.0013 79.7369 40.7439 79.7369Z" stroke="#979797" stroke-miterlimit="10"/>
|
|
45
|
+
</svg>
|
|
46
|
+
<h1>Failed to connect to your site's local server</h1>
|
|
47
|
+
<div id="info-text">Your local stackbit dev cannot connect to the dev server of your site, which should be running at __URL__.<br/>Please check that it is up and running. <a href="https://docs.stackbit.com/how-to-guides/local-dev/#troubleshooting" target="_blank">Learn more.</a></div>
|
|
42
48
|
</div>
|
|
43
49
|
<script type="application/javascript">
|
|
44
50
|
function poll() {
|
package/dist/command.js
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.handler = exports.builder = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
function possibleArray(val) {
|
|
9
|
+
let result;
|
|
10
|
+
if (!lodash_1.default.isEmpty(val)) {
|
|
11
|
+
if (lodash_1.default.isArray(val)) {
|
|
12
|
+
result = val;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
result = [val];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
4
20
|
function builder(yargs) {
|
|
5
21
|
yargs
|
|
6
22
|
.option('port', {
|
|
@@ -17,6 +33,24 @@ function builder(yargs) {
|
|
|
17
33
|
alias: 'd',
|
|
18
34
|
description: 'root dir',
|
|
19
35
|
default: process.cwd()
|
|
36
|
+
})
|
|
37
|
+
.options('cms', {
|
|
38
|
+
alias: 'c',
|
|
39
|
+
description: 'CMS type',
|
|
40
|
+
default: '',
|
|
41
|
+
choices: ['', 'git', 'contentful']
|
|
42
|
+
})
|
|
43
|
+
.options('contentful-access-token', {
|
|
44
|
+
description: 'Contentful access token',
|
|
45
|
+
default: ''
|
|
46
|
+
})
|
|
47
|
+
.options('contentful-space-id', {
|
|
48
|
+
description: 'Contentful space ID',
|
|
49
|
+
default: ''
|
|
50
|
+
})
|
|
51
|
+
.options('contentful-preview-key', {
|
|
52
|
+
description: 'Contentful preview key',
|
|
53
|
+
default: ''
|
|
20
54
|
})
|
|
21
55
|
.options('runnable-dir', {
|
|
22
56
|
description: 'runnable dir',
|
|
@@ -26,7 +60,29 @@ function builder(yargs) {
|
|
|
26
60
|
description: 'log level',
|
|
27
61
|
default: 'info'
|
|
28
62
|
})
|
|
29
|
-
.options('
|
|
63
|
+
.options('open', {
|
|
64
|
+
description: 'Auto open',
|
|
65
|
+
type: 'boolean'
|
|
66
|
+
})
|
|
67
|
+
.options('help', {})
|
|
68
|
+
.check(argv => {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
if (argv.cms === 'contentful') {
|
|
71
|
+
if (!argv.contentfulAccessToken) {
|
|
72
|
+
throw new Error('Missing Contentful access token: --contentful-access-token <access-token>');
|
|
73
|
+
}
|
|
74
|
+
if (!argv.contentfulPreviewToken) {
|
|
75
|
+
throw new Error('Missing Contentful preview token: --contentful-preview-token <preview-token>');
|
|
76
|
+
}
|
|
77
|
+
if (!argv.contentfulSpaceId) {
|
|
78
|
+
throw new Error('Missing Contentful space ID: --contentful-space-id <space-id>');
|
|
79
|
+
}
|
|
80
|
+
if (((_a = possibleArray(argv.contentfulSpaceId)) === null || _a === void 0 ? void 0 : _a.length) !== ((_b = possibleArray(argv.contentfulPreviewToken)) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
81
|
+
throw new Error('Mismatch between number of space ID\'s and preview tokens provided.');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return true;
|
|
85
|
+
});
|
|
30
86
|
}
|
|
31
87
|
exports.builder = builder;
|
|
32
88
|
async function handler(argv) {
|
|
@@ -37,7 +93,12 @@ async function handler(argv) {
|
|
|
37
93
|
ssgPort: argv.port,
|
|
38
94
|
ssgHost: argv.host,
|
|
39
95
|
rootDir: argv.dir,
|
|
40
|
-
|
|
96
|
+
autoOpen: argv.open,
|
|
97
|
+
cmsType: argv.cms,
|
|
98
|
+
runnableDir: argv['runnable-dir'],
|
|
99
|
+
contentfulAccessToken: argv.contentfulAccessToken,
|
|
100
|
+
contentfulSpaceIds: possibleArray(argv.contentfulSpaceId),
|
|
101
|
+
contentfulPreviewTokens: possibleArray(argv.contentfulPreviewToken)
|
|
41
102
|
});
|
|
42
103
|
}
|
|
43
104
|
exports.handler = handler;
|
package/dist/command.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
|
package/dist/dev.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
interface DevOptions {
|
|
2
2
|
ssgPort: number;
|
|
3
3
|
ssgHost: string;
|
|
4
4
|
rootDir: string;
|
|
5
5
|
runnableDir?: string;
|
|
6
|
-
|
|
6
|
+
autoOpen?: boolean;
|
|
7
|
+
cmsType?: string;
|
|
8
|
+
contentfulAccessToken?: string;
|
|
9
|
+
contentfulSpaceIds?: [string];
|
|
10
|
+
contentfulPreviewTokens?: [string];
|
|
11
|
+
}
|
|
12
|
+
export declare function start(options: DevOptions): Promise<false | undefined>;
|
|
13
|
+
export {};
|
package/dist/dev.js
CHANGED
|
@@ -11,34 +11,68 @@ const logger_1 = __importDefault(require("./services/logger"));
|
|
|
11
11
|
const api_1 = __importDefault(require("./services/api"));
|
|
12
12
|
const config_1 = __importDefault(require("./config"));
|
|
13
13
|
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const open_1 = __importDefault(require("open"));
|
|
15
|
+
async function start(options) {
|
|
16
|
+
logger_1.default.info('Site directory: ' + options.rootDir);
|
|
16
17
|
let serverPort = await (0, detect_port_1.default)(8090);
|
|
17
18
|
const userId = (0, user_config_1.getUserId)();
|
|
18
19
|
logger_1.default.debug('id: ' + userId);
|
|
19
|
-
try {
|
|
20
|
-
await (0, server_1.start)({ serverPort, ssgHost, ssgPort, rootDir, runnableDir, uuid: userId });
|
|
21
|
-
}
|
|
22
|
-
catch (err) {
|
|
23
|
-
logger_1.default.error('Error starting Stackbit dev server');
|
|
24
|
-
logger_1.default.debug('startServer failed', { err });
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
20
|
const localDetails = {
|
|
28
21
|
i: userId,
|
|
29
22
|
p: serverPort,
|
|
30
|
-
v: require('../package.json').version
|
|
23
|
+
v: require('../package.json').version,
|
|
24
|
+
cms: options.cmsType || 'git'
|
|
31
25
|
};
|
|
32
26
|
logger_1.default.debug('Local details', { localDetails });
|
|
33
27
|
const studioUrl = `${config_1.default.appUrl}/local/${Buffer.from(JSON.stringify(localDetails)).toString('base64')}`;
|
|
28
|
+
let updateLocalDevDetails = () => {
|
|
29
|
+
var _a;
|
|
30
|
+
return api_1.default.updateLocalDev(userId, {
|
|
31
|
+
...localDetails,
|
|
32
|
+
...(options.cmsType === 'contentful'
|
|
33
|
+
? {
|
|
34
|
+
contentfulAccessToken: options.contentfulAccessToken,
|
|
35
|
+
contentfulSpaces: (_a = options.contentfulSpaceIds) === null || _a === void 0 ? void 0 : _a.map((spaceId, i) => {
|
|
36
|
+
var _a;
|
|
37
|
+
return ({
|
|
38
|
+
spaceId,
|
|
39
|
+
previewApiKey: (_a = options.contentfulPreviewTokens) === null || _a === void 0 ? void 0 : _a[i]
|
|
40
|
+
});
|
|
41
|
+
})
|
|
42
|
+
}
|
|
43
|
+
: {})
|
|
44
|
+
});
|
|
45
|
+
};
|
|
34
46
|
try {
|
|
35
|
-
await
|
|
47
|
+
await updateLocalDevDetails();
|
|
48
|
+
updateLocalDevDetails = undefined;
|
|
36
49
|
}
|
|
37
50
|
catch (err) {
|
|
38
|
-
|
|
51
|
+
// failure here is expected if user hasn't pressed the link yet.
|
|
52
|
+
// in that case we defer the update to when the server starts getting accessed.
|
|
53
|
+
logger_1.default.debug('updateLocalDev failed', { err: err.message || err });
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
await (0, server_1.start)({
|
|
57
|
+
serverPort,
|
|
58
|
+
uuid: userId,
|
|
59
|
+
updateLocalDevDetails,
|
|
60
|
+
...options
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
logger_1.default.error('Error starting Stackbit dev server');
|
|
65
|
+
logger_1.default.debug('startServer failed', { err });
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
logger_1.default.info(`Server started. Forwarding requests to: ${options.ssgHost}:${options.ssgPort}`);
|
|
69
|
+
logger_1.default.info(`⚡ Open${options.autoOpen ? 'ing' : ''} ${chalk_1.default.bold(studioUrl)} in your browser`);
|
|
70
|
+
if (options.autoOpen) {
|
|
71
|
+
(0, open_1.default)(studioUrl).catch(err => {
|
|
72
|
+
logger_1.default.debug('Auto open error', { err });
|
|
73
|
+
logger_1.default.error('Error auto opening');
|
|
74
|
+
});
|
|
39
75
|
}
|
|
40
|
-
logger_1.default.info(`Server started. Forwarding requests to: ${ssgHost}:${ssgPort}`);
|
|
41
|
-
logger_1.default.info(`Open ${chalk_1.default.bold(studioUrl)} in your browser`);
|
|
42
76
|
}
|
|
43
77
|
exports.start = start;
|
|
44
78
|
//# sourceMappingURL=dev.js.map
|
package/dist/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";;;;;;AACA,8DAAqC;AAErC,qCAAgD;AAChD,wDAAmD;AACnD,+DAAuC;AACvC,yDAAwC;AACxC,sDAA8B;AAC9B,kDAA0B;
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/index.d.ts
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
|
+
import GitCMS from '@stackbit/dev-common/dist/cms/git/git';
|
|
2
|
+
import { Contentful as ContentfulCMS } from '@stackbit/dev-common/dist/cms/contentful/contentful';
|
|
3
|
+
interface RunnerOptions {
|
|
4
|
+
rootDir: string;
|
|
5
|
+
runnableDir?: string;
|
|
6
|
+
cmsType?: string;
|
|
7
|
+
contentfulAccessToken?: string;
|
|
8
|
+
contentfulSpaceIds?: [string];
|
|
9
|
+
contentfulPreviewTokens?: [string];
|
|
10
|
+
}
|
|
1
11
|
export default class Runner {
|
|
2
12
|
private editor;
|
|
13
|
+
private cmsType?;
|
|
3
14
|
private cms;
|
|
4
15
|
private stackbitYaml;
|
|
5
16
|
private workers;
|
|
6
17
|
private watcher;
|
|
18
|
+
private readonly options;
|
|
7
19
|
private rootDir;
|
|
8
20
|
private appDir?;
|
|
9
|
-
constructor(
|
|
10
|
-
rootDir: string;
|
|
11
|
-
runnableDir?: string;
|
|
12
|
-
});
|
|
21
|
+
constructor(options: RunnerOptions);
|
|
13
22
|
install(): Promise<void>;
|
|
23
|
+
createCms(): GitCMS | ContentfulCMS;
|
|
14
24
|
handleFileChanges(filePaths: string[]): Promise<void>;
|
|
15
25
|
getDirectPaths(): string[];
|
|
16
26
|
/**
|
|
@@ -33,4 +43,6 @@ export default class Runner {
|
|
|
33
43
|
listAssets(filterParams: any): Promise<any>;
|
|
34
44
|
uploadAsset(url: string, filename: string, user: any): Promise<any>;
|
|
35
45
|
makeAction(action: string, data: any): Promise<any>;
|
|
46
|
+
keepAlive(): void;
|
|
36
47
|
}
|
|
48
|
+
export {};
|
package/dist/runner/index.js
CHANGED
|
@@ -7,7 +7,8 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const ssg_1 = __importDefault(require("./ssg"));
|
|
9
9
|
const editor_1 = __importDefault(require("@stackbit/dev-common/dist/runner/editor"));
|
|
10
|
-
const git_1 = __importDefault(require("@stackbit/dev-common/dist/cms/git"));
|
|
10
|
+
const git_1 = __importDefault(require("@stackbit/dev-common/dist/cms/git/git"));
|
|
11
|
+
const contentful_1 = require("@stackbit/dev-common/dist/cms/contentful/contentful");
|
|
11
12
|
const worker_1 = __importDefault(require("@stackbit/dev-common/dist/utils/worker"));
|
|
12
13
|
const stackbit_yaml_1 = require("@stackbit/dev-common/dist/services/stackbit-yaml");
|
|
13
14
|
const socket_service_1 = __importDefault(require("@stackbit/dev-common/dist/services/socket-service"));
|
|
@@ -15,9 +16,11 @@ const file_watcher_1 = require("../services/file-watcher");
|
|
|
15
16
|
const logger_1 = __importDefault(require("../services/logger"));
|
|
16
17
|
const consts_1 = __importDefault(require("../consts"));
|
|
17
18
|
class Runner {
|
|
18
|
-
constructor(
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
19
|
+
constructor(options) {
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.rootDir = options.rootDir;
|
|
22
|
+
this.appDir = options.runnableDir ? path_1.default.join(this.rootDir, options.runnableDir) : this.rootDir;
|
|
23
|
+
this.cmsType = options.cmsType;
|
|
21
24
|
this.workers = {
|
|
22
25
|
gitApp: new worker_1.default()
|
|
23
26
|
};
|
|
@@ -33,21 +36,7 @@ class Runner {
|
|
|
33
36
|
envName: 'local' //TODO
|
|
34
37
|
});
|
|
35
38
|
await this.stackbitYaml.load();
|
|
36
|
-
this.cms =
|
|
37
|
-
rootDir: this.rootDir,
|
|
38
|
-
repoDir: this.rootDir,
|
|
39
|
-
appDir: this.appDir,
|
|
40
|
-
stackbitYaml: this.stackbitYaml,
|
|
41
|
-
workers: this.workers,
|
|
42
|
-
assetIdPrefix: consts_1.default.ASSET_ID_PREFIX,
|
|
43
|
-
staticAssetsFilePath: consts_1.default.STATIC_ASSETS_FILE_PATH,
|
|
44
|
-
staticAssetsPublicPath: consts_1.default.STATIC_ASSETS_PUBLIC_PATH,
|
|
45
|
-
staticThemeAssetsFilePath: consts_1.default.STATIC_THEME_ASSETS_FILE_PATH,
|
|
46
|
-
staticThemeAssetsPublicPath: consts_1.default.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
47
|
-
defaultContentTypeExtensions: consts_1.default.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
48
|
-
logger: logger_1.default,
|
|
49
|
-
userLogger: logger_1.default
|
|
50
|
-
});
|
|
39
|
+
this.cms = this.createCms();
|
|
51
40
|
await this.cms.run();
|
|
52
41
|
this.editor = new editor_1.default(null, this.cms, this.stackbitYaml, {
|
|
53
42
|
logger: logger_1.default,
|
|
@@ -56,10 +45,53 @@ class Runner {
|
|
|
56
45
|
this.watcher = (0, file_watcher_1.watchDir)(this.rootDir, (filePaths) => {
|
|
57
46
|
logger_1.default.debug(`File change detected: ${filePaths}`);
|
|
58
47
|
this.handleFileChanges(filePaths).catch((err) => {
|
|
48
|
+
logger_1.default.debug('Handle file change error', { err, filePaths });
|
|
59
49
|
logger_1.default.error('Error handling file changes: ' + filePaths.join(', '));
|
|
60
50
|
});
|
|
61
51
|
});
|
|
62
52
|
}
|
|
53
|
+
createCms() {
|
|
54
|
+
var _a;
|
|
55
|
+
let result;
|
|
56
|
+
if (this.cmsType === 'contentful') {
|
|
57
|
+
result = new contentful_1.Contentful({
|
|
58
|
+
accessToken: (_a = this.options.contentfulAccessToken) !== null && _a !== void 0 ? _a : null,
|
|
59
|
+
spaces: this.options.contentfulSpaceIds.map((spaceId, i) => ({
|
|
60
|
+
spaceId,
|
|
61
|
+
previewToken: this.options.contentfulPreviewTokens[i]
|
|
62
|
+
})),
|
|
63
|
+
stackbitYaml: this.stackbitYaml,
|
|
64
|
+
encodeDelimiter: '',
|
|
65
|
+
rootDir: this.rootDir,
|
|
66
|
+
appDir: this.appDir,
|
|
67
|
+
repoDir: this.rootDir,
|
|
68
|
+
staticThemeAssetsFilePath: consts_1.default.STATIC_THEME_ASSETS_FILE_PATH,
|
|
69
|
+
staticThemeAssetsPublicPath: consts_1.default.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
70
|
+
watchForContentUpdates: true,
|
|
71
|
+
onContentUpdate: () => { },
|
|
72
|
+
logger: logger_1.default,
|
|
73
|
+
userLogger: logger_1.default
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
result = new git_1.default({
|
|
78
|
+
rootDir: this.rootDir,
|
|
79
|
+
repoDir: this.rootDir,
|
|
80
|
+
appDir: this.appDir,
|
|
81
|
+
stackbitYaml: this.stackbitYaml,
|
|
82
|
+
workers: this.workers,
|
|
83
|
+
assetIdPrefix: consts_1.default.ASSET_ID_PREFIX,
|
|
84
|
+
staticAssetsFilePath: consts_1.default.STATIC_ASSETS_FILE_PATH,
|
|
85
|
+
staticAssetsPublicPath: consts_1.default.STATIC_ASSETS_PUBLIC_PATH,
|
|
86
|
+
staticThemeAssetsFilePath: consts_1.default.STATIC_THEME_ASSETS_FILE_PATH,
|
|
87
|
+
staticThemeAssetsPublicPath: consts_1.default.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
88
|
+
defaultContentTypeExtensions: consts_1.default.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
89
|
+
logger: logger_1.default,
|
|
90
|
+
userLogger: logger_1.default
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
63
95
|
async handleFileChanges(filePaths) {
|
|
64
96
|
const pullResult = await this.cms.postPull(filePaths.map((filePath) => path_1.default.join(this.rootDir, filePath))).catch((err) => {
|
|
65
97
|
logger_1.default.debug('Error in postPull', { err });
|
|
@@ -141,6 +173,9 @@ class Runner {
|
|
|
141
173
|
throw new Error('Unsupported Operation');
|
|
142
174
|
}
|
|
143
175
|
}
|
|
176
|
+
keepAlive() {
|
|
177
|
+
lodash_1.default.invoke(this.cms, 'keepAlive');
|
|
178
|
+
}
|
|
144
179
|
}
|
|
145
180
|
exports.default = Runner;
|
|
146
181
|
//# sourceMappingURL=index.js.map
|
package/dist/runner/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":";;;;;AAAA,oDAAuB;AACvB,gDAAwB;AACxB,gDAAwB;AACxB,qFAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
interface ServerOptions {
|
|
2
2
|
serverPort: number;
|
|
3
3
|
ssgPort: number;
|
|
4
4
|
ssgHost: string;
|
|
5
5
|
rootDir: string;
|
|
6
6
|
runnableDir?: string;
|
|
7
7
|
uuid: string;
|
|
8
|
-
|
|
8
|
+
cmsType?: string;
|
|
9
|
+
contentfulAccessToken?: string;
|
|
10
|
+
contentfulSpaceIds?: [string];
|
|
11
|
+
contentfulPreviewTokens?: [string];
|
|
12
|
+
updateLocalDevDetails?: () => Promise<any>;
|
|
13
|
+
}
|
|
14
|
+
export declare function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid, cmsType, ...options }: ServerOptions): Promise<void>;
|
|
15
|
+
export {};
|
package/dist/server/index.js
CHANGED
|
@@ -13,11 +13,13 @@ const proxy_1 = __importDefault(require("./proxy"));
|
|
|
13
13
|
const runner_1 = __importDefault(require("../runner"));
|
|
14
14
|
const consts_1 = __importDefault(require("../consts"));
|
|
15
15
|
const socket_service_1 = __importDefault(require("@stackbit/dev-common/dist/services/socket-service"));
|
|
16
|
-
async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid }) {
|
|
16
|
+
async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid, cmsType, ...options }) {
|
|
17
17
|
logger_1.default.debug('Runner init...');
|
|
18
18
|
const runner = new runner_1.default({
|
|
19
19
|
rootDir,
|
|
20
|
-
runnableDir
|
|
20
|
+
runnableDir,
|
|
21
|
+
cmsType,
|
|
22
|
+
...options
|
|
21
23
|
});
|
|
22
24
|
await runner.install();
|
|
23
25
|
logger_1.default.debug('Done runner init');
|
|
@@ -25,16 +27,19 @@ async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid
|
|
|
25
27
|
const httpServer = http_1.default.createServer(server);
|
|
26
28
|
socket_service_1.default.use(httpServer, logger_1.default);
|
|
27
29
|
server.use(require('cors')());
|
|
28
|
-
|
|
29
|
-
// server.use((req, res, next) => {
|
|
30
|
-
// const hosts = getClientAllowedHosts(req).join(' ');
|
|
31
|
-
// res.set('Content-Security-Policy', `frame-ancestors 'self' ${hosts}`);
|
|
32
|
-
// next();
|
|
33
|
-
// });
|
|
34
|
-
// }
|
|
35
|
-
// log requests
|
|
30
|
+
let updateLocalDevDetails = options.updateLocalDevDetails;
|
|
36
31
|
server.use((req, res, next) => {
|
|
32
|
+
// log requests
|
|
37
33
|
logger_1.default.debug(`got request ${req.method} ${req.path}`, { method: req.method, originalUrl: req.originalUrl, url: req.url, path: req.path });
|
|
34
|
+
// handle details update if not handled yet
|
|
35
|
+
const runUpdateLocalDevDetails = updateLocalDevDetails;
|
|
36
|
+
updateLocalDevDetails = undefined;
|
|
37
|
+
runUpdateLocalDevDetails === null || runUpdateLocalDevDetails === void 0 ? void 0 : runUpdateLocalDevDetails().then(() => {
|
|
38
|
+
logger_1.default.debug('Updated local dev details after startup');
|
|
39
|
+
}).catch(err => {
|
|
40
|
+
logger_1.default.debug('Error updating local details', { err });
|
|
41
|
+
logger_1.default.error('Error configuring Stackbit with local details');
|
|
42
|
+
});
|
|
38
43
|
next();
|
|
39
44
|
});
|
|
40
45
|
server.use('/_static', express_1.default.static('static'));
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;AACA,gDAAwB;AACxB,sDAA8B;AAC9B,gDAAwB;AAExB,gEAAwC;AAExC,sDAA8B;AAC9B,oDAA4B;AAC5B,uDAA+B;AAC/B,uDAA+B;AAC/B,uGAA8E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/routes.js
CHANGED
|
@@ -28,6 +28,10 @@ const authMiddleware = (uuid) => {
|
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
30
|
function routes(router, runner, uuid) {
|
|
31
|
+
router.use((req, res, next) => {
|
|
32
|
+
runner.keepAlive();
|
|
33
|
+
next();
|
|
34
|
+
});
|
|
31
35
|
router.post('/_objects', [body_parser_1.default.json({ limit: '500kb' })], (req, res, next) => {
|
|
32
36
|
const { objectIds } = req.body;
|
|
33
37
|
return runner
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getUserId = void 0;
|
|
7
7
|
const configstore_1 = __importDefault(require("configstore"));
|
|
8
|
-
const uuid_1 =
|
|
8
|
+
const uuid_1 = require("uuid");
|
|
9
9
|
const config = new configstore_1.default('stackbit-dev', {
|
|
10
|
-
userId: uuid_1.
|
|
10
|
+
userId: (0, uuid_1.v4)().toString().replace(/\-/g, '')
|
|
11
11
|
}, { globalConfigPath: true });
|
|
12
12
|
function getUserId() {
|
|
13
13
|
return config.get('userId');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/services/user-config.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AACtC
|
|
1
|
+
{"version":3,"file":"user-config.js","sourceRoot":"","sources":["../../src/services/user-config.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AACtC,+BAAoC;AAEpC,MAAM,MAAM,GAAG,IAAI,qBAAW,CAC1B,cAAc,EACd;IACI,MAAM,EAAE,IAAA,SAAM,GAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;CACjD,EACD,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC7B,CAAC;AAEF,SAAgB,SAAS;IACrB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAFD,8BAEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackbit/dev",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17-alpha.0",
|
|
4
4
|
"description": "stackbit-dev",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"author": "Stackbit Inc.",
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@stackbit/cms-core": "^0.0.
|
|
26
|
-
"@stackbit/dev-common": "^0.0.
|
|
25
|
+
"@stackbit/cms-core": "^0.0.9-alpha.0",
|
|
26
|
+
"@stackbit/dev-common": "^0.0.15-alpha.0",
|
|
27
27
|
"@stackbit/sdk": "^0.2.22",
|
|
28
28
|
"axios": "^0.25.0",
|
|
29
29
|
"chalk": "^4.1.0",
|
|
@@ -35,8 +35,9 @@
|
|
|
35
35
|
"fs-extra": "^10.0.0",
|
|
36
36
|
"http-proxy-middleware": "^0.20.0",
|
|
37
37
|
"lodash": "^4.17.21",
|
|
38
|
+
"open": "^8.4.0",
|
|
38
39
|
"rimraf": "^3.0.2",
|
|
39
|
-
"uuid": "^3.
|
|
40
|
+
"uuid": "^8.3.2",
|
|
40
41
|
"winston": "^3.4.0",
|
|
41
42
|
"yargs": "^17.3.1"
|
|
42
43
|
},
|
|
@@ -54,5 +55,5 @@
|
|
|
54
55
|
"ts-jest": "^27.1.3",
|
|
55
56
|
"typescript": "^4.5.4"
|
|
56
57
|
},
|
|
57
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "3183c88a1c25dcb7349eb7e9f455935ec8c658bb"
|
|
58
59
|
}
|
|
@@ -30,15 +30,21 @@
|
|
|
30
30
|
fill: #f25458;
|
|
31
31
|
}
|
|
32
32
|
#info-text a {
|
|
33
|
-
color: #
|
|
33
|
+
color: #0b69db;
|
|
34
34
|
}
|
|
35
35
|
</style>
|
|
36
36
|
</head>
|
|
37
37
|
<body>
|
|
38
38
|
<div id="main-container">
|
|
39
|
-
<svg
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
<svg width="239" height="81" viewBox="0 0 239 81" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
40
|
+
<path d="M119.641 79.7368C141.383 79.7368 159.009 62.111 159.009 40.3684C159.009 18.6258 141.383 1 119.641 1C97.8983 1 80.2725 18.6258 80.2725 40.3684C80.2725 62.111 97.8983 79.7368 119.641 79.7368Z" stroke="#979797" stroke-miterlimit="10"/>
|
|
41
|
+
<path d="M198.538 79.7368C220.28 79.7368 237.906 62.111 237.906 40.3684C237.906 18.6258 220.28 1 198.538 1C176.795 1 159.169 18.6258 159.169 40.3684C159.169 62.111 176.795 79.7368 198.538 79.7368Z" stroke="#979797" stroke-miterlimit="10"/>
|
|
42
|
+
<path d="M1.37549 79.7369L80.2723 1.00006L159.009 79.7369L237.906 1.00006" stroke="#979797" stroke-miterlimit="10"/>
|
|
43
|
+
<path d="M1.37549 1.00006L80.2723 79.7369L159.009 1.00006L237.906 79.7369" stroke="#979797" stroke-miterlimit="10"/>
|
|
44
|
+
<path d="M40.7439 79.7369C62.4865 79.7369 80.1123 62.111 80.1123 40.3685C80.1123 18.6259 62.4865 1.00006 40.7439 1.00006C19.0013 1.00006 1.37549 18.6259 1.37549 40.3685C1.37549 62.111 19.0013 79.7369 40.7439 79.7369Z" stroke="#979797" stroke-miterlimit="10"/>
|
|
45
|
+
</svg>
|
|
46
|
+
<h1>Failed to connect to your site's local server</h1>
|
|
47
|
+
<div id="info-text">Your local stackbit dev cannot connect to the dev server of your site, which should be running at __URL__.<br/>Please check that it is up and running. <a href="https://docs.stackbit.com/how-to-guides/local-dev/#troubleshooting" target="_blank">Learn more.</a></div>
|
|
42
48
|
</div>
|
|
43
49
|
<script type="application/javascript">
|
|
44
50
|
function poll() {
|
package/src/command.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
1
2
|
import yargs from 'yargs';
|
|
2
3
|
|
|
4
|
+
function possibleArray(val: any) {
|
|
5
|
+
let result;
|
|
6
|
+
if (!_.isEmpty(val)) {
|
|
7
|
+
if (_.isArray(val)) {
|
|
8
|
+
result = val;
|
|
9
|
+
} else {
|
|
10
|
+
result = [val];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
|
|
3
16
|
export function builder(yargs: yargs.Argv) {
|
|
4
17
|
yargs
|
|
5
18
|
.option('port', {
|
|
@@ -17,6 +30,24 @@ export function builder(yargs: yargs.Argv) {
|
|
|
17
30
|
description: 'root dir',
|
|
18
31
|
default: process.cwd()
|
|
19
32
|
})
|
|
33
|
+
.options('cms', {
|
|
34
|
+
alias: 'c',
|
|
35
|
+
description: 'CMS type',
|
|
36
|
+
default: '',
|
|
37
|
+
choices: ['', 'git', 'contentful']
|
|
38
|
+
})
|
|
39
|
+
.options('contentful-access-token', {
|
|
40
|
+
description: 'Contentful access token',
|
|
41
|
+
default: ''
|
|
42
|
+
})
|
|
43
|
+
.options('contentful-space-id', {
|
|
44
|
+
description: 'Contentful space ID',
|
|
45
|
+
default: ''
|
|
46
|
+
})
|
|
47
|
+
.options('contentful-preview-key', {
|
|
48
|
+
description: 'Contentful preview key',
|
|
49
|
+
default: ''
|
|
50
|
+
})
|
|
20
51
|
.options('runnable-dir', {
|
|
21
52
|
description: 'runnable dir',
|
|
22
53
|
default: ''
|
|
@@ -25,17 +56,44 @@ export function builder(yargs: yargs.Argv) {
|
|
|
25
56
|
description: 'log level',
|
|
26
57
|
default: 'info'
|
|
27
58
|
})
|
|
28
|
-
.options('
|
|
59
|
+
.options('open', {
|
|
60
|
+
description: 'Auto open',
|
|
61
|
+
type: 'boolean'
|
|
62
|
+
})
|
|
63
|
+
.options('help', {})
|
|
64
|
+
.check(argv => {
|
|
65
|
+
if (argv.cms === 'contentful') {
|
|
66
|
+
if (!argv.contentfulAccessToken) {
|
|
67
|
+
throw new Error('Missing Contentful access token: --contentful-access-token <access-token>');
|
|
68
|
+
}
|
|
69
|
+
if (!argv.contentfulPreviewToken) {
|
|
70
|
+
throw new Error('Missing Contentful preview token: --contentful-preview-token <preview-token>');
|
|
71
|
+
}
|
|
72
|
+
if (!argv.contentfulSpaceId) {
|
|
73
|
+
throw new Error('Missing Contentful space ID: --contentful-space-id <space-id>');
|
|
74
|
+
}
|
|
75
|
+
if (possibleArray(argv.contentfulSpaceId)?.length !== possibleArray(argv.contentfulPreviewToken)?.length) {
|
|
76
|
+
throw new Error('Mismatch between number of space ID\'s and preview tokens provided.');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return true;
|
|
80
|
+
})
|
|
29
81
|
}
|
|
30
82
|
|
|
31
83
|
export async function handler(argv: any) {
|
|
32
84
|
if (argv['log-level']) {
|
|
33
85
|
process.env.LOG_LEVEL = argv['log-level'];
|
|
34
86
|
}
|
|
87
|
+
|
|
35
88
|
return require('./dev').start({
|
|
36
89
|
ssgPort: argv.port,
|
|
37
90
|
ssgHost: argv.host,
|
|
38
91
|
rootDir: argv.dir,
|
|
39
|
-
|
|
92
|
+
autoOpen: argv.open,
|
|
93
|
+
cmsType: argv.cms,
|
|
94
|
+
runnableDir: argv['runnable-dir'],
|
|
95
|
+
contentfulAccessToken: argv.contentfulAccessToken,
|
|
96
|
+
contentfulSpaceIds: possibleArray(argv.contentfulSpaceId),
|
|
97
|
+
contentfulPreviewTokens: possibleArray(argv.contentfulPreviewToken)
|
|
40
98
|
});
|
|
41
99
|
}
|
package/src/dev.ts
CHANGED
|
@@ -7,47 +7,81 @@ import logger from './services/logger';
|
|
|
7
7
|
import apiService from './services/api';
|
|
8
8
|
import config from './config';
|
|
9
9
|
import chalk from 'chalk';
|
|
10
|
+
import open from 'open';
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
ssgPort = 3000,
|
|
13
|
-
ssgHost = 'localhost',
|
|
14
|
-
rootDir = process.cwd(),
|
|
15
|
-
runnableDir
|
|
16
|
-
}: {
|
|
12
|
+
interface DevOptions {
|
|
17
13
|
ssgPort: number;
|
|
18
14
|
ssgHost: string;
|
|
19
15
|
rootDir: string;
|
|
20
16
|
runnableDir?: string;
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
autoOpen?: boolean;
|
|
18
|
+
cmsType?: string;
|
|
19
|
+
contentfulAccessToken?: string;
|
|
20
|
+
contentfulSpaceIds?: [string];
|
|
21
|
+
contentfulPreviewTokens?: [string];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export async function start(options: DevOptions) {
|
|
25
|
+
logger.info('Site directory: ' + options.rootDir);
|
|
23
26
|
|
|
24
27
|
let serverPort = await detectPort(8090);
|
|
25
28
|
const userId = getUserId();
|
|
26
29
|
logger.debug('id: ' + userId);
|
|
27
30
|
|
|
28
|
-
try {
|
|
29
|
-
await startServer({ serverPort, ssgHost, ssgPort, rootDir, runnableDir, uuid: userId });
|
|
30
|
-
} catch (err) {
|
|
31
|
-
logger.error('Error starting Stackbit dev server');
|
|
32
|
-
logger.debug('startServer failed', { err });
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
31
|
const localDetails = {
|
|
37
32
|
i: userId,
|
|
38
33
|
p: serverPort,
|
|
39
|
-
v: require('../package.json').version
|
|
34
|
+
v: require('../package.json').version,
|
|
35
|
+
cms: options.cmsType || 'git'
|
|
40
36
|
};
|
|
41
37
|
|
|
42
38
|
logger.debug('Local details', { localDetails });
|
|
43
39
|
const studioUrl = `${config.appUrl}/local/${Buffer.from(JSON.stringify(localDetails)).toString('base64')}`;
|
|
44
40
|
|
|
41
|
+
let updateLocalDevDetails: (() => Promise<any>) | undefined = () => {
|
|
42
|
+
return apiService.updateLocalDev(userId, {
|
|
43
|
+
...localDetails,
|
|
44
|
+
...(options.cmsType === 'contentful'
|
|
45
|
+
? {
|
|
46
|
+
contentfulAccessToken: options.contentfulAccessToken,
|
|
47
|
+
contentfulSpaces: options.contentfulSpaceIds?.map((spaceId, i) => ({
|
|
48
|
+
spaceId,
|
|
49
|
+
previewApiKey: options.contentfulPreviewTokens?.[i]
|
|
50
|
+
}))
|
|
51
|
+
}
|
|
52
|
+
: {})
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
45
56
|
try {
|
|
46
|
-
await
|
|
57
|
+
await updateLocalDevDetails();
|
|
58
|
+
updateLocalDevDetails = undefined;
|
|
59
|
+
} catch (err: any) {
|
|
60
|
+
// failure here is expected if user hasn't pressed the link yet.
|
|
61
|
+
// in that case we defer the update to when the server starts getting accessed.
|
|
62
|
+
logger.debug('updateLocalDev failed', { err: err.message || err });
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
try {
|
|
66
|
+
await startServer({
|
|
67
|
+
serverPort,
|
|
68
|
+
uuid: userId,
|
|
69
|
+
updateLocalDevDetails,
|
|
70
|
+
...options
|
|
71
|
+
});
|
|
47
72
|
} catch (err) {
|
|
48
|
-
logger.
|
|
73
|
+
logger.error('Error starting Stackbit dev server');
|
|
74
|
+
logger.debug('startServer failed', { err });
|
|
75
|
+
return false;
|
|
49
76
|
}
|
|
50
77
|
|
|
51
|
-
logger.info(`Server started. Forwarding requests to: ${ssgHost}:${ssgPort}`);
|
|
52
|
-
logger.info(
|
|
78
|
+
logger.info(`Server started. Forwarding requests to: ${options.ssgHost}:${options.ssgPort}`);
|
|
79
|
+
logger.info(`⚡ Open${options.autoOpen ? 'ing' : ''} ${chalk.bold(studioUrl)} in your browser`);
|
|
80
|
+
|
|
81
|
+
if (options.autoOpen) {
|
|
82
|
+
open(studioUrl).catch(err => {
|
|
83
|
+
logger.debug('Auto open error', { err });
|
|
84
|
+
logger.error('Error auto opening');
|
|
85
|
+
})
|
|
86
|
+
}
|
|
53
87
|
}
|
package/src/runner/index.ts
CHANGED
|
@@ -2,7 +2,8 @@ import _ from 'lodash';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import ssg from './ssg';
|
|
4
4
|
import Editor from '@stackbit/dev-common/dist/runner/editor';
|
|
5
|
-
import GitCMS from '@stackbit/dev-common/dist/cms/git';
|
|
5
|
+
import GitCMS from '@stackbit/dev-common/dist/cms/git/git';
|
|
6
|
+
import { Contentful as ContentfulCMS } from '@stackbit/dev-common/dist/cms/contentful/contentful';
|
|
6
7
|
import Worker from '@stackbit/dev-common/dist/utils/worker';
|
|
7
8
|
import { StackbitYaml } from '@stackbit/dev-common/dist/services/stackbit-yaml';
|
|
8
9
|
import socketService from '@stackbit/dev-common/dist/services/socket-service';
|
|
@@ -11,19 +12,32 @@ import { watchDir } from '../services/file-watcher';
|
|
|
11
12
|
import logger from '../services/logger';
|
|
12
13
|
import consts from '../consts';
|
|
13
14
|
|
|
15
|
+
interface RunnerOptions {
|
|
16
|
+
rootDir: string;
|
|
17
|
+
runnableDir?: string;
|
|
18
|
+
cmsType?: string;
|
|
19
|
+
contentfulAccessToken?: string;
|
|
20
|
+
contentfulSpaceIds?: [string];
|
|
21
|
+
contentfulPreviewTokens?: [string];
|
|
22
|
+
}
|
|
14
23
|
export default class Runner {
|
|
15
24
|
private editor: any;
|
|
25
|
+
private cmsType?: string;
|
|
16
26
|
private cms: any;
|
|
17
27
|
private stackbitYaml: any;
|
|
18
28
|
private workers: any;
|
|
19
29
|
private watcher: any;
|
|
20
30
|
|
|
31
|
+
private readonly options: RunnerOptions;
|
|
21
32
|
private rootDir: string;
|
|
22
33
|
private appDir?: string;
|
|
23
34
|
|
|
24
|
-
constructor(
|
|
25
|
-
this.
|
|
26
|
-
this.
|
|
35
|
+
constructor(options: RunnerOptions) {
|
|
36
|
+
this.options = options;
|
|
37
|
+
this.rootDir = options.rootDir;
|
|
38
|
+
this.appDir = options.runnableDir ? path.join(this.rootDir, options.runnableDir) : this.rootDir;
|
|
39
|
+
this.cmsType = options.cmsType;
|
|
40
|
+
|
|
27
41
|
this.workers = {
|
|
28
42
|
gitApp: new Worker()
|
|
29
43
|
};
|
|
@@ -40,21 +54,7 @@ export default class Runner {
|
|
|
40
54
|
envName: 'local' //TODO
|
|
41
55
|
});
|
|
42
56
|
await this.stackbitYaml.load();
|
|
43
|
-
this.cms =
|
|
44
|
-
rootDir: this.rootDir,
|
|
45
|
-
repoDir: this.rootDir,
|
|
46
|
-
appDir: this.appDir,
|
|
47
|
-
stackbitYaml: this.stackbitYaml,
|
|
48
|
-
workers: this.workers,
|
|
49
|
-
assetIdPrefix: consts.ASSET_ID_PREFIX,
|
|
50
|
-
staticAssetsFilePath: consts.STATIC_ASSETS_FILE_PATH,
|
|
51
|
-
staticAssetsPublicPath: consts.STATIC_ASSETS_PUBLIC_PATH,
|
|
52
|
-
staticThemeAssetsFilePath: consts.STATIC_THEME_ASSETS_FILE_PATH,
|
|
53
|
-
staticThemeAssetsPublicPath: consts.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
54
|
-
defaultContentTypeExtensions: consts.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
55
|
-
logger,
|
|
56
|
-
userLogger: logger
|
|
57
|
-
});
|
|
57
|
+
this.cms = this.createCms();
|
|
58
58
|
await this.cms.run();
|
|
59
59
|
this.editor = new Editor(null, this.cms, this.stackbitYaml, {
|
|
60
60
|
logger,
|
|
@@ -63,11 +63,53 @@ export default class Runner {
|
|
|
63
63
|
this.watcher = watchDir(this.rootDir, (filePaths) => {
|
|
64
64
|
logger.debug(`File change detected: ${filePaths}`);
|
|
65
65
|
this.handleFileChanges(filePaths).catch((err) => {
|
|
66
|
+
logger.debug('Handle file change error', { err, filePaths })
|
|
66
67
|
logger.error('Error handling file changes: ' + filePaths.join(', '));
|
|
67
68
|
});
|
|
68
69
|
});
|
|
69
70
|
}
|
|
70
71
|
|
|
72
|
+
createCms() {
|
|
73
|
+
let result;
|
|
74
|
+
if (this.cmsType === 'contentful') {
|
|
75
|
+
result = new ContentfulCMS({
|
|
76
|
+
accessToken: this.options.contentfulAccessToken ?? null,
|
|
77
|
+
spaces: this.options.contentfulSpaceIds!.map((spaceId, i) => ({
|
|
78
|
+
spaceId,
|
|
79
|
+
previewToken: this.options.contentfulPreviewTokens![i]
|
|
80
|
+
})),
|
|
81
|
+
stackbitYaml: this.stackbitYaml,
|
|
82
|
+
encodeDelimiter: '',
|
|
83
|
+
rootDir: this.rootDir,
|
|
84
|
+
appDir: this.appDir!,
|
|
85
|
+
repoDir: this.rootDir,
|
|
86
|
+
staticThemeAssetsFilePath: consts.STATIC_THEME_ASSETS_FILE_PATH,
|
|
87
|
+
staticThemeAssetsPublicPath: consts.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
88
|
+
watchForContentUpdates: true,
|
|
89
|
+
onContentUpdate: () => {},
|
|
90
|
+
logger: logger,
|
|
91
|
+
userLogger: logger
|
|
92
|
+
});
|
|
93
|
+
} else {
|
|
94
|
+
result = new GitCMS({
|
|
95
|
+
rootDir: this.rootDir,
|
|
96
|
+
repoDir: this.rootDir,
|
|
97
|
+
appDir: this.appDir,
|
|
98
|
+
stackbitYaml: this.stackbitYaml,
|
|
99
|
+
workers: this.workers,
|
|
100
|
+
assetIdPrefix: consts.ASSET_ID_PREFIX,
|
|
101
|
+
staticAssetsFilePath: consts.STATIC_ASSETS_FILE_PATH,
|
|
102
|
+
staticAssetsPublicPath: consts.STATIC_ASSETS_PUBLIC_PATH,
|
|
103
|
+
staticThemeAssetsFilePath: consts.STATIC_THEME_ASSETS_FILE_PATH,
|
|
104
|
+
staticThemeAssetsPublicPath: consts.STATIC_THEME_ASSETS_PUBLIC_PATH,
|
|
105
|
+
defaultContentTypeExtensions: consts.DEFAULT_CONTENT_TYPE_EXTENSIONS,
|
|
106
|
+
logger,
|
|
107
|
+
userLogger: logger
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
|
|
71
113
|
async handleFileChanges(filePaths: string[]) {
|
|
72
114
|
const pullResult = await this.cms.postPull(filePaths.map((filePath) => path.join(this.rootDir, filePath))).catch((err: any) => {
|
|
73
115
|
logger.debug('Error in postPull', { err });
|
|
@@ -162,4 +204,8 @@ export default class Runner {
|
|
|
162
204
|
throw new Error('Unsupported Operation');
|
|
163
205
|
}
|
|
164
206
|
}
|
|
207
|
+
|
|
208
|
+
keepAlive() {
|
|
209
|
+
_.invoke(this.cms, 'keepAlive');
|
|
210
|
+
}
|
|
165
211
|
}
|
package/src/server/index.ts
CHANGED
|
@@ -10,27 +10,30 @@ import proxy from './proxy';
|
|
|
10
10
|
import Runner from '../runner';
|
|
11
11
|
import consts from '../consts';
|
|
12
12
|
import socketService from '@stackbit/dev-common/dist/services/socket-service';
|
|
13
|
+
import { options } from 'yargs';
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
serverPort,
|
|
16
|
-
ssgPort,
|
|
17
|
-
ssgHost,
|
|
18
|
-
rootDir,
|
|
19
|
-
runnableDir,
|
|
20
|
-
uuid
|
|
21
|
-
}: {
|
|
15
|
+
interface ServerOptions {
|
|
22
16
|
serverPort: number;
|
|
23
17
|
ssgPort: number;
|
|
24
18
|
ssgHost: string;
|
|
25
19
|
rootDir: string;
|
|
26
20
|
runnableDir?: string;
|
|
27
21
|
uuid: string;
|
|
28
|
-
|
|
22
|
+
cmsType?: string;
|
|
23
|
+
contentfulAccessToken?: string;
|
|
24
|
+
contentfulSpaceIds?: [string];
|
|
25
|
+
contentfulPreviewTokens?: [string];
|
|
26
|
+
updateLocalDevDetails?: () => Promise<any>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export async function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid, cmsType, ...options }: ServerOptions) {
|
|
29
30
|
logger.debug('Runner init...');
|
|
30
31
|
|
|
31
32
|
const runner = new Runner({
|
|
32
33
|
rootDir,
|
|
33
|
-
runnableDir
|
|
34
|
+
runnableDir,
|
|
35
|
+
cmsType,
|
|
36
|
+
...options
|
|
34
37
|
});
|
|
35
38
|
await runner.install();
|
|
36
39
|
|
|
@@ -41,17 +44,22 @@ export async function start({
|
|
|
41
44
|
socketService.use(httpServer, logger);
|
|
42
45
|
|
|
43
46
|
server.use(require('cors')());
|
|
44
|
-
// if (config.setContentSecurityPolicy) {
|
|
45
|
-
// server.use((req, res, next) => {
|
|
46
|
-
// const hosts = getClientAllowedHosts(req).join(' ');
|
|
47
|
-
// res.set('Content-Security-Policy', `frame-ancestors 'self' ${hosts}`);
|
|
48
|
-
// next();
|
|
49
|
-
// });
|
|
50
|
-
// }
|
|
51
47
|
|
|
52
|
-
|
|
48
|
+
let updateLocalDevDetails = options.updateLocalDevDetails;
|
|
53
49
|
server.use((req, res, next) => {
|
|
50
|
+
// log requests
|
|
54
51
|
logger.debug(`got request ${req.method} ${req.path}`, { method: req.method, originalUrl: req.originalUrl, url: req.url, path: req.path });
|
|
52
|
+
|
|
53
|
+
// handle details update if not handled yet
|
|
54
|
+
const runUpdateLocalDevDetails = updateLocalDevDetails;
|
|
55
|
+
updateLocalDevDetails = undefined;
|
|
56
|
+
runUpdateLocalDevDetails?.().then(() => {
|
|
57
|
+
logger.debug('Updated local dev details after startup')
|
|
58
|
+
}).catch(err => {
|
|
59
|
+
logger.debug('Error updating local details', { err });
|
|
60
|
+
logger.error('Error configuring Stackbit with local details');
|
|
61
|
+
});
|
|
62
|
+
|
|
55
63
|
next();
|
|
56
64
|
});
|
|
57
65
|
|
package/src/server/routes.ts
CHANGED
|
@@ -25,6 +25,10 @@ const authMiddleware = (uuid: string) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export default function routes(router: Router, runner: Runner, uuid: string) {
|
|
28
|
+
router.use((req, res, next) => {
|
|
29
|
+
runner.keepAlive();
|
|
30
|
+
next();
|
|
31
|
+
});
|
|
28
32
|
router.post('/_objects', [bodyParser.json({ limit: '500kb' })], (req: Request, res: Response, next: NextFunction) => {
|
|
29
33
|
const { objectIds } = req.body;
|
|
30
34
|
return runner
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import Configstore from 'configstore';
|
|
2
|
-
import
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
3
|
|
|
4
4
|
const config = new Configstore(
|
|
5
5
|
'stackbit-dev',
|
|
6
6
|
{
|
|
7
|
-
userId:
|
|
7
|
+
userId: uuidv4().toString().replace(/\-/g, '')
|
|
8
8
|
},
|
|
9
9
|
{ globalConfigPath: true }
|
|
10
10
|
);
|