@stackbit/dev 0.0.16 → 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/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('help', {});
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
- runnableDir: argv['runnable-dir']
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;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CAAC,KAAiB;IACrC,KAAK;SACA,MAAM,CAAC,MAAM,EAAE;QACZ,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,IAAI;KAChB,CAAC;SACD,OAAO,CAAC,MAAM,EAAE;QACb,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,WAAW;KACvB,CAAC;SACD,OAAO,CAAC,KAAK,EAAE;QACZ,KAAK,EAAE,GAAG;QACV,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;KACzB,CAAC;SACD,OAAO,CAAC,cAAc,EAAE;QACrB,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,EAAE;KACd,CAAC;SACD,OAAO,CAAC,WAAW,EAAE;QAClB,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,MAAM;KAClB,CAAC;SACD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AA1BD,0BA0BC;AAEM,KAAK,UAAU,OAAO,CAAC,IAAS;IACnC,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;QACnB,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;KAC7C;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QAC1B,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,OAAO,EAAE,IAAI,CAAC,GAAG;QACjB,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC;KACpC,CAAC,CAAC;AACP,CAAC;AAVD,0BAUC"}
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
- export declare function start({ ssgPort, ssgHost, rootDir, runnableDir }: {
1
+ interface DevOptions {
2
2
  ssgPort: number;
3
3
  ssgHost: string;
4
4
  rootDir: string;
5
5
  runnableDir?: string;
6
- }): Promise<false | undefined>;
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
- async function start({ ssgPort = 3000, ssgHost = 'localhost', rootDir = process.cwd(), runnableDir }) {
15
- logger_1.default.info('Site directory: ' + rootDir);
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 api_1.default.updateLocalDev(userId, localDetails);
47
+ await updateLocalDevDetails();
48
+ updateLocalDevDetails = undefined;
36
49
  }
37
50
  catch (err) {
38
- logger_1.default.debug('updateLocalDev failed', { err });
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;AAEnB,KAAK,UAAU,KAAK,CAAC,EACxB,OAAO,GAAG,IAAI,EACd,OAAO,GAAG,WAAW,EACrB,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EACvB,WAAW,EAMd;IACG,gBAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAC;IAE1C,IAAI,UAAU,GAAG,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAA,uBAAS,GAAE,CAAC;IAC3B,gBAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAE9B,IAAI;QACA,MAAM,IAAA,cAAW,EAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;KAC3F;IAAC,OAAO,GAAG,EAAE;QACV,gBAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,gBAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;KAChB;IAED,MAAM,YAAY,GAAG;QACjB,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,UAAU;QACb,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;KACxC,CAAC;IAEF,gBAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,GAAG,gBAAM,CAAC,MAAM,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE3G,IAAI;QACA,MAAM,aAAU,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KACzD;IAAC,OAAO,GAAG,EAAE;QACV,gBAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;KAClD;IAED,gBAAM,CAAC,IAAI,CAAC,2CAA2C,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;IAC7E,gBAAM,CAAC,IAAI,CAAC,QAAQ,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;AACjE,CAAC;AA1CD,sBA0CC"}
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;AAC1B,gDAAwB;AAcjB,KAAK,UAAU,KAAK,CAAC,OAAmB;IAC3C,gBAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,UAAU,GAAG,MAAM,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAA,uBAAS,GAAE,CAAC;IAC3B,gBAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAE9B,MAAM,YAAY,GAAG;QACjB,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,UAAU;QACb,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;QACrC,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;KAChC,CAAC;IAEF,gBAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,GAAG,gBAAM,CAAC,MAAM,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE3G,IAAI,qBAAqB,GAAqC,GAAG,EAAE;;QAC/D,OAAO,aAAU,CAAC,cAAc,CAAC,MAAM,EAAE;YACrC,GAAG,YAAY;YACf,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,YAAY;gBAChC,CAAC,CAAC;oBACI,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;oBACpD,gBAAgB,EAAE,MAAA,OAAO,CAAC,kBAAkB,0CAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;;wBAAC,OAAA,CAAC;4BAC/D,OAAO;4BACP,aAAa,EAAE,MAAA,OAAO,CAAC,uBAAuB,0CAAG,CAAC,CAAC;yBACtD,CAAC,CAAA;qBAAA,CAAC;iBACN;gBACH,CAAC,CAAC,EAAE,CAAC;SACZ,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,IAAI;QACA,MAAM,qBAAqB,EAAE,CAAC;QAC9B,qBAAqB,GAAG,SAAS,CAAC;KACrC;IAAC,OAAO,GAAQ,EAAE;QACf,gEAAgE;QAChE,+EAA+E;QAC/E,gBAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;KACtE;IAED,IAAI;QACA,MAAM,IAAA,cAAW,EAAC;YACd,UAAU;YACV,IAAI,EAAE,MAAM;YACZ,qBAAqB;YACrB,GAAG,OAAO;SACb,CAAC,CAAC;KACN;IAAC,OAAO,GAAG,EAAE;QACV,gBAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,gBAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;KAChB;IAED,gBAAM,CAAC,IAAI,CAAC,2CAA2C,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,gBAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAE/F,IAAI,OAAO,CAAC,QAAQ,EAAE;QAClB,IAAA,cAAI,EAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACxB,gBAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,gBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC,CAAC,CAAA;KACL;AACL,CAAC;AA/DD,sBA+DC"}
@@ -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({ rootDir, runnableDir }: {
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 {};
@@ -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({ rootDir, runnableDir }) {
19
- this.rootDir = rootDir;
20
- this.appDir = runnableDir ? path_1.default.join(this.rootDir, runnableDir) : this.rootDir;
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 = new git_1.default({
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runner/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
- export declare function start({ serverPort, ssgPort, ssgHost, rootDir, runnableDir, uuid }: {
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
- }): Promise<void>;
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 {};
@@ -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
- // if (config.setContentSecurityPolicy) {
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'));
@@ -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;AAEvE,KAAK,UAAU,KAAK,CAAC,EACxB,UAAU,EACV,OAAO,EACP,OAAO,EACP,OAAO,EACP,WAAW,EACX,IAAI,EAQP;IACG,gBAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE/B,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC;QACtB,OAAO;QACP,WAAW;KACd,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvB,gBAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAG,IAAA,iBAAO,GAAE,CAAC;IACzB,MAAM,UAAU,GAAG,cAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,wBAAa,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAM,CAAC,CAAC;IAEtC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,yCAAyC;IACzC,uCAAuC;IACvC,8DAA8D;IAC9D,iFAAiF;IACjF,kBAAkB;IAClB,UAAU;IACV,IAAI;IAEJ,eAAe;IACf,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,gBAAM,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1I,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,CAAC,gBAAM,CAAC,yBAAyB,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,GAAG,CAAC,gBAAM,CAAC,+BAA+B,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAE7H,IAAA,gBAAM,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,IAAA,eAAK,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;YAC/B,gBAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,UAAU,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAzDD,sBAyDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/dev",
3
- "version": "0.0.16",
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.8",
26
- "@stackbit/dev-common": "^0.0.14",
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,6 +35,7 @@
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
40
  "uuid": "^8.3.2",
40
41
  "winston": "^3.4.0",
@@ -54,5 +55,5 @@
54
55
  "ts-jest": "^27.1.3",
55
56
  "typescript": "^4.5.4"
56
57
  },
57
- "gitHead": "b7dd37ca92546855157a302d3cad80babf423493"
58
+ "gitHead": "3183c88a1c25dcb7349eb7e9f455935ec8c658bb"
58
59
  }
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('help', {});
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
- runnableDir: argv['runnable-dir']
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
- export async function start({
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
- logger.info('Site directory: ' + rootDir);
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 apiService.updateLocalDev(userId, localDetails);
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.debug('updateLocalDev failed', { err });
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(`Open ${chalk.bold(studioUrl)} in your browser`);
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
  }
@@ -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({ rootDir, runnableDir }: { rootDir: string; runnableDir?: string }) {
25
- this.rootDir = rootDir;
26
- this.appDir = runnableDir ? path.join(this.rootDir, runnableDir) : this.rootDir;
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 = new GitCMS({
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
  }
@@ -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
- export async function start({
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
- // log requests
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
 
@@ -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