@stackbit/cms-core 0.1.26-gitcms.3 → 0.1.26-gitcms.5

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.
Files changed (96) hide show
  1. package/dist/content-store-utils.d.ts +5 -5
  2. package/dist/content-store-utils.d.ts.map +1 -1
  3. package/dist/content-store-utils.js +8 -6
  4. package/dist/content-store-utils.js.map +1 -1
  5. package/dist/content-store.d.ts +9 -6
  6. package/dist/content-store.d.ts.map +1 -1
  7. package/dist/content-store.js +7 -7
  8. package/dist/content-store.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/services/git.d.ts +6 -6
  14. package/dist/services/git.d.ts.map +1 -1
  15. package/dist/services/git.js +34 -29
  16. package/dist/services/git.js.map +1 -1
  17. package/dist/services/run.d.ts +5 -15
  18. package/dist/services/run.d.ts.map +1 -1
  19. package/dist/services/run.js +12 -13
  20. package/dist/services/run.js.map +1 -1
  21. package/dist/types/content-store-document-fields.d.ts +600 -0
  22. package/dist/types/content-store-document-fields.d.ts.map +1 -0
  23. package/dist/types/content-store-document-fields.js +3 -0
  24. package/dist/types/content-store-document-fields.js.map +1 -0
  25. package/dist/types/content-store-documents.d.ts +99 -0
  26. package/dist/types/content-store-documents.d.ts.map +1 -0
  27. package/dist/types/content-store-documents.js +3 -0
  28. package/dist/types/content-store-documents.js.map +1 -0
  29. package/dist/types/content-store-types.d.ts +75 -0
  30. package/dist/types/content-store-types.d.ts.map +1 -0
  31. package/dist/types/content-store-types.js.map +1 -0
  32. package/dist/types/content-store-update-operation.d.ts +61 -0
  33. package/dist/types/content-store-update-operation.d.ts.map +1 -0
  34. package/dist/types/content-store-update-operation.js +3 -0
  35. package/dist/types/content-store-update-operation.js.map +1 -0
  36. package/dist/types/index.d.ts +6 -0
  37. package/dist/types/index.d.ts.map +1 -0
  38. package/dist/types/index.js +18 -0
  39. package/dist/types/index.js.map +1 -0
  40. package/dist/types/search-filter.d.ts +1 -1
  41. package/dist/types/search-filter.d.ts.map +1 -1
  42. package/dist/utils/create-update-csi-docs.d.ts +1 -1
  43. package/dist/utils/create-update-csi-docs.d.ts.map +1 -1
  44. package/dist/utils/create-update-csi-docs.js +11 -10
  45. package/dist/utils/create-update-csi-docs.js.map +1 -1
  46. package/dist/utils/csi-to-store-docs-converter.d.ts +1 -1
  47. package/dist/utils/csi-to-store-docs-converter.d.ts.map +1 -1
  48. package/dist/utils/csi-to-store-docs-converter.js +20 -4
  49. package/dist/utils/csi-to-store-docs-converter.js.map +1 -1
  50. package/dist/utils/duplicate-document.d.ts +1 -1
  51. package/dist/utils/duplicate-document.d.ts.map +1 -1
  52. package/dist/utils/duplicate-document.js +7 -0
  53. package/dist/utils/duplicate-document.js.map +1 -1
  54. package/dist/utils/search-utils.d.ts +1 -1
  55. package/dist/utils/search-utils.d.ts.map +1 -1
  56. package/dist/utils/search-utils.js +16 -16
  57. package/dist/utils/search-utils.js.map +1 -1
  58. package/dist/utils/site-map.d.ts +1 -1
  59. package/dist/utils/site-map.d.ts.map +1 -1
  60. package/dist/utils/site-map.js +9 -0
  61. package/dist/utils/site-map.js.map +1 -1
  62. package/dist/utils/store-to-api-docs-converter.d.ts +3 -3
  63. package/dist/utils/store-to-api-docs-converter.d.ts.map +1 -1
  64. package/dist/utils/store-to-api-docs-converter.js +60 -32
  65. package/dist/utils/store-to-api-docs-converter.js.map +1 -1
  66. package/dist/utils/store-to-csi-docs-converter.d.ts +1 -1
  67. package/dist/utils/store-to-csi-docs-converter.d.ts.map +1 -1
  68. package/dist/utils/store-to-csi-docs-converter.js +4 -0
  69. package/dist/utils/store-to-csi-docs-converter.js.map +1 -1
  70. package/dist/utils/timer.d.ts +1 -1
  71. package/dist/utils/timer.d.ts.map +1 -1
  72. package/package.json +5 -5
  73. package/src/content-store-utils.ts +12 -11
  74. package/src/content-store.ts +22 -19
  75. package/src/index.ts +1 -1
  76. package/src/services/git.ts +44 -43
  77. package/src/services/run.ts +10 -15
  78. package/src/types/content-store-document-fields.ts +658 -0
  79. package/src/types/content-store-documents.ts +113 -0
  80. package/src/types/content-store-types.ts +96 -0
  81. package/src/types/content-store-update-operation.ts +85 -0
  82. package/src/types/index.ts +5 -0
  83. package/src/types/search-filter.ts +26 -19
  84. package/src/utils/create-update-csi-docs.ts +16 -12
  85. package/src/utils/csi-to-store-docs-converter.ts +33 -14
  86. package/src/utils/duplicate-document.ts +8 -1
  87. package/src/utils/search-utils.ts +18 -19
  88. package/src/utils/site-map.ts +10 -1
  89. package/src/utils/store-to-api-docs-converter.ts +67 -38
  90. package/src/utils/store-to-csi-docs-converter.ts +5 -1
  91. package/src/utils/timer.ts +1 -1
  92. package/dist/content-store-types.d.ts +0 -411
  93. package/dist/content-store-types.d.ts.map +0 -1
  94. package/dist/content-store-types.js.map +0 -1
  95. package/src/content-store-types.ts +0 -527
  96. /package/dist/{content-store-types.js → types/content-store-types.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"store-to-csi-docs-converter.d.ts","sourceRoot":"","sources":["../../src/utils/store-to-csi-docs-converter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAE5D,wBAAgB,yCAAyC,CAAC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAEhI"}
1
+ {"version":3,"file":"store-to-csi-docs-converter.d.ts","sourceRoot":"","sources":["../../src/utils/store-to-csi-docs-converter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;AAE9C,wBAAgB,yCAAyC,CAAC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAEhI"}
@@ -83,6 +83,8 @@ function mapStoreFieldToCSIField(documentField) {
83
83
  return {
84
84
  type: 'image',
85
85
  localized: true,
86
+ source: documentField.source,
87
+ sourceData: documentField.sourceData,
86
88
  locales: lodash_1.default.mapValues(documentField.locales, (locale) => ({
87
89
  locale: locale.locale,
88
90
  fields: mapStoreFieldsToCSIFields(locale.fields)
@@ -94,6 +96,8 @@ function mapStoreFieldToCSIField(documentField) {
94
96
  }
95
97
  return {
96
98
  type: 'image',
99
+ source: documentField.source,
100
+ sourceData: documentField.sourceData,
97
101
  fields: mapStoreFieldsToCSIFields(documentField.fields)
98
102
  };
99
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store-to-csi-docs-converter.js","sourceRoot":"","sources":["../../src/utils/store-to-csi-docs-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-to-csi-docs-converter.js","sourceRoot":"","sources":["../../src/utils/store-to-csi-docs-converter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Logger } from '../content-store-types';
1
+ import { Logger } from '@stackbit/types';
2
2
  export declare class Timer {
3
3
  private readonly timerCallback;
4
4
  private readonly timerMs;
@@ -1 +1 @@
1
- {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/utils/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,qBAAa,KAAK;IACd,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,OAAO,CAAwB;gBAE3B,EAAE,aAAa,EAAE,OAAwB,EAAE,MAAM,EAAE,EAAE;QAAE,aAAa,EAAE,MAAM,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAQjI,SAAS;IAIT,UAAU;IAIV,UAAU;IAKV,SAAS;IAOT,aAAa;CAKhB"}
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/utils/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,qBAAa,KAAK;IACd,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAa;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,OAAO,CAAwB;gBAE3B,EAAE,aAAa,EAAE,OAAwB,EAAE,MAAM,EAAE,EAAE;QAAE,aAAa,EAAE,MAAM,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAQjI,SAAS;IAIT,UAAU;IAIV,UAAU;IAKV,SAAS;IAOT,aAAa;CAKhB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbit/cms-core",
3
- "version": "0.1.26-gitcms.3",
3
+ "version": "0.1.26-gitcms.5",
4
4
  "description": "stackbit-dev",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,9 +31,9 @@
31
31
  "@babel/parser": "^7.11.5",
32
32
  "@babel/traverse": "^7.11.5",
33
33
  "@iarna/toml": "^2.2.3",
34
- "@stackbit/sdk": "^0.3.19-gitcms.0",
35
- "@stackbit/types": "^0.1.11-gitcms.0",
36
- "@stackbit/utils": "^0.2.18-gitcms.0",
34
+ "@stackbit/sdk": "^0.3.19-gitcms.2",
35
+ "@stackbit/types": "0.1.11-gitcms.1",
36
+ "@stackbit/utils": "0.2.18-gitcms.1",
37
37
  "chalk": "^4.0.1",
38
38
  "esm": "^3.2.25",
39
39
  "fs-extra": "^8.1.0",
@@ -48,5 +48,5 @@
48
48
  "slugify": "^1.6.5",
49
49
  "uuid": "^9.0.0"
50
50
  },
51
- "gitHead": "a69fb6a5977ddbdf25933de935055bd808e8eb1d"
51
+ "gitHead": "d9661d9b1f0c111d80e97b8871b7823117549bdf"
52
52
  }
@@ -3,8 +3,7 @@ import { Model } from '@stackbit/sdk';
3
3
  import { append } from '@stackbit/utils';
4
4
  import { Field, FieldList, FieldListItems, FieldListProps, FieldObjectProps, FieldSpecificProps, FieldType, UpdateOperationValueField } from '@stackbit/types';
5
5
  import * as CSITypes from '@stackbit/types';
6
- import * as ContentStoreTypes from './content-store-types';
7
- import { CrossReferenceData } from './content-store-types';
6
+ import * as ContentStoreTypes from './types';
8
7
 
9
8
  export function getContentSourceIdForContentSource(contentSource: CSITypes.ContentSourceInterface): string {
10
9
  return getContentSourceId(contentSource.getContentSourceType(), contentSource.getProjectId());
@@ -19,16 +18,18 @@ export function getUserContextForSrcType(srcType: string, user?: ContentStoreTyp
19
18
  return user;
20
19
  }
21
20
  const connection = user?.connections?.find((connection) => connection.type === srcType);
22
- if (connection) {
23
- return connection;
24
- }
25
21
  return {
26
22
  email: user.email,
27
- name: user.name
23
+ name: user.name,
24
+ ...connection
28
25
  };
29
26
  }
30
27
 
31
- export function getDocumentFieldForLocale<Type extends ContentStoreTypes.FieldType>(
28
+ export function isDocumentFieldOneOfFieldTypes<T extends FieldType>(documentField: ContentStoreTypes.DocumentField, fieldTypes: ReadonlyArray<T>): documentField is ContentStoreTypes.DocumentFieldForType<T> {
29
+ return fieldTypes.includes(documentField.type as T);
30
+ }
31
+
32
+ export function getDocumentFieldForLocale<Type extends FieldType>(
32
33
  docField: ContentStoreTypes.DocumentFieldForType<Type>,
33
34
  locale?: string
34
35
  ): ContentStoreTypes.DocumentFieldNonLocalizedForType<Type> | null {
@@ -41,10 +42,10 @@ export function getDocumentFieldForLocale<Type extends ContentStoreTypes.FieldTy
41
42
  if (!localizedField) {
42
43
  return null;
43
44
  }
44
- return ({
45
+ return {
45
46
  ...base,
46
47
  ...localizedField
47
- } as unknown) as ContentStoreTypes.DocumentFieldNonLocalizedForType<Type>;
48
+ } as unknown as ContentStoreTypes.DocumentFieldNonLocalizedForType<Type>;
48
49
  } else {
49
50
  return docField;
50
51
  }
@@ -204,9 +205,9 @@ export function getCSIDocumentsAndAssetsFromContentSourceDataByIds(
204
205
  };
205
206
  }
206
207
 
207
- export function updateOperationValueFieldWithCrossReference(type: 'string' | 'text' | 'json', refObject: CrossReferenceData): UpdateOperationValueField {
208
+ export function updateOperationValueFieldWithCrossReference(type: 'string' | 'text' | 'json' | 'cross-reference', refObject: ContentStoreTypes.CrossReferenceData): UpdateOperationValueField {
208
209
  return {
209
210
  type,
210
- value: type === 'json' ? refObject : JSON.stringify(refObject)
211
+ value: (type === 'json' || type === 'cross-reference') ? refObject : JSON.stringify(refObject)
211
212
  };
212
213
  }
@@ -3,7 +3,7 @@ import path from 'path';
3
3
  import sanitizeFilename from 'sanitize-filename';
4
4
 
5
5
  import * as CSITypes from '@stackbit/types';
6
- import { getLocalizedFieldForLocale, ModelExtension, UserCommandSpawner } from '@stackbit/types';
6
+ import { getLocalizedFieldForLocale, isOneOfFieldTypes, ModelExtension, UserCommandSpawner } from '@stackbit/types';
7
7
  import {
8
8
  Config,
9
9
  extendModelsWithPresetsIds,
@@ -20,7 +20,7 @@ import {
20
20
  } from '@stackbit/sdk';
21
21
  import { append, deferWhileRunning, mapPromise, reducePromise } from '@stackbit/utils';
22
22
 
23
- import * as ContentStoreTypes from './content-store-types';
23
+ import * as ContentStoreTypes from './types';
24
24
  import { Timer } from './utils/timer';
25
25
  import { SearchFilter } from './types/search-filter';
26
26
  import { searchDocuments } from './utils/search-utils';
@@ -48,17 +48,19 @@ import { mergeObjectWithDocument } from './utils/duplicate-document';
48
48
  import { normalizeModels, validateModels } from './utils/model-utils';
49
49
  import { IMAGE_MODEL } from './common/common-schema';
50
50
  import { getDocumentObjectFromPreset, getPresetFromDocument } from './utils/preset-utils';
51
- import { ContentSourceServices } from '@stackbit/types';
51
+ import { GitService } from './services';
52
+ import { CommandRunner } from '@stackbit/types';
52
53
 
53
54
  export type HandleConfigAssets = <T extends Model>({ models, presets }: { models?: T[]; presets?: PresetMap }) => Promise<{ models: T[]; presets: PresetMap }>;
54
55
 
55
56
  export interface ContentSourceOptions {
56
- logger: ContentStoreTypes.Logger;
57
- userLogger: ContentStoreTypes.Logger;
57
+ logger: CSITypes.Logger;
58
+ userLogger: CSITypes.Logger;
58
59
  localDev: boolean;
59
60
  staticAssetsPublicPath: string;
60
61
  webhookUrl?: string;
61
- contentSourceServices: ContentSourceServices;
62
+ runCommand: CommandRunner;
63
+ git: GitService;
62
64
  userCommandSpawner?: UserCommandSpawner; //TODO remove
63
65
  onSchemaChangeCallback: () => void;
64
66
  onContentChangeCallback: (contentChanges: ContentStoreTypes.ContentChangeResult) => void;
@@ -72,13 +74,14 @@ type ContentSourceRawData = Omit<ContentSourceData, 'models' | 'modelMap' | 'doc
72
74
  export const StackbitPresetModelName = 'stackbitPreset';
73
75
 
74
76
  export class ContentStore {
75
- private readonly logger: ContentStoreTypes.Logger;
76
- private readonly userLogger: ContentStoreTypes.Logger;
77
+ private readonly logger: CSITypes.Logger;
78
+ private readonly userLogger: CSITypes.Logger;
77
79
  private readonly userCommandSpawner?: UserCommandSpawner;
78
80
  private readonly localDev: boolean;
79
81
  private readonly staticAssetsPublicPath: string;
80
82
  private readonly webhookUrl?: string;
81
- private readonly contentSourceServices: ContentSourceServices;
83
+ private readonly runCommand: CommandRunner;
84
+ private readonly git: GitService;
82
85
  private readonly onSchemaChangeCallback: () => void;
83
86
  private readonly onContentChangeCallback: (contentChanges: ContentStoreTypes.ContentChangeResult) => void;
84
87
  private readonly handleConfigAssets: HandleConfigAssets;
@@ -100,7 +103,8 @@ export class ContentStore {
100
103
  this.localDev = options.localDev;
101
104
  this.staticAssetsPublicPath = options.staticAssetsPublicPath;
102
105
  this.webhookUrl = options.webhookUrl;
103
- this.contentSourceServices = options.contentSourceServices;
106
+ this.runCommand = options.runCommand;
107
+ this.git = options.git;
104
108
  this.userCommandSpawner = options.userCommandSpawner;
105
109
  this.onSchemaChangeCallback = options.onSchemaChangeCallback;
106
110
  this.onContentChangeCallback = options.onContentChangeCallback;
@@ -438,9 +442,8 @@ export class ContentStore {
438
442
  localDev: this.localDev,
439
443
  webhookUrl: this.getWebhookUrl(contentSourceInstance.getContentSourceType(), contentSourceInstance.getProjectId()),
440
444
  devAppRestartNeeded: this.devAppRestartNeeded,
441
- delegate: {
442
- services: this.contentSourceServices
443
- }
445
+ runCommand: this.runCommand,
446
+ git: this.git
444
447
  });
445
448
  } else {
446
449
  contentSourceInstance.stopWatchingContentUpdates();
@@ -491,7 +494,7 @@ export class ContentStore {
491
494
  }
492
495
  this.logger.debug('content source called onContentChange.', { contentSourceId });
493
496
  const result = this.onContentChange(contentSourceId, contentChangeEvent);
494
-
497
+
495
498
  this.siteMapEntryGroups = await updateSiteMapEntriesWithContentChanges({
496
499
  siteMapEntryGroups: this.siteMapEntryGroups,
497
500
  contentChanges: result,
@@ -1126,7 +1129,7 @@ export class ContentStore {
1126
1129
  return _.reduce(
1127
1130
  this.contentSourceDataById,
1128
1131
  (objects: ContentStoreTypes.APIObject[], contentSourceData) => {
1129
- let documents = objectIds
1132
+ let documents = objectIds
1130
1133
  ? contentSourceData.documents.filter((document) => objectIds.includes(document.srcObjectId))
1131
1134
  : contentSourceData.documents;
1132
1135
  documents = hasExplicitLocale
@@ -1140,8 +1143,8 @@ export class ContentStore {
1140
1143
  : assets;
1141
1144
  const currentLocale = locale ?? contentSourceData.defaultLocaleCode;
1142
1145
  const filteredDocuments = documents.filter((document) => document.srcModelName !== StackbitPresetModelName);
1143
- const documentObjects = mapDocumentsToLocalizedApiObjects(filteredDocuments, this.staticAssetsPublicPath, currentLocale);
1144
- const imageObjects = mapAssetsToLocalizedApiImages(assets, this.staticAssetsPublicPath, currentLocale);
1146
+ const documentObjects = mapDocumentsToLocalizedApiObjects(filteredDocuments, currentLocale);
1147
+ const imageObjects = mapAssetsToLocalizedApiImages(assets, currentLocale);
1145
1148
  return objects.concat(documentObjects, imageObjects);
1146
1149
  },
1147
1150
  []
@@ -1293,10 +1296,10 @@ export class ContentStore {
1293
1296
  refId: result.srcDocumentId
1294
1297
  } as CSITypes.UpdateOperationReferenceField;
1295
1298
  } else {
1296
- if (!['string', 'text', 'json'].includes(csiFieldProps.type)) {
1299
+ if (!isOneOfFieldTypes(csiFieldProps.type, ['string', 'text', 'json', 'cross-reference'])) {
1297
1300
  throw new Error(`The 'cross-reference' field can be only applied on string, text and json fields: ${fieldPath.join('.')}`);
1298
1301
  }
1299
- field = updateOperationValueFieldWithCrossReference(csiFieldProps.type as 'string' | 'text' | 'json', {
1302
+ field = updateOperationValueFieldWithCrossReference(csiFieldProps.type, {
1300
1303
  refId: result.srcDocumentId,
1301
1304
  refSrcType: refSrcType,
1302
1305
  refProjectId: refProjectId
package/src/index.ts CHANGED
@@ -6,7 +6,7 @@ export * as consts from './consts';
6
6
  export * from './common/common-schema';
7
7
  export * from './common/common-types';
8
8
  export * from './content-store';
9
- export * as ContentStoreTypes from './content-store-types';
9
+ export * as ContentStoreTypes from './types';
10
10
  export { default as encodeData } from './encoder';
11
11
  export * from './encoder';
12
12
  export * from './types/search-filter';
@@ -4,11 +4,11 @@ import path from 'path';
4
4
  import { v4 as uuid } from 'uuid';
5
5
  import fse from 'fs-extra';
6
6
 
7
- import { GitServiceInterface, GitFileObject, GitAuthor, GitCommitLogEntry, Logger } from '@stackbit/types';
7
+ import { GitServiceInterface, GitFileCommitDescriptor, GitAuthor, GitCommitLogEntry, Logger } from '@stackbit/types';
8
8
  import { Worker } from '@stackbit/utils';
9
9
 
10
- import { RunService } from './run';
11
10
  import { DocumentStatus } from '@stackbit/types';
11
+ import { CommandRunner } from '@stackbit/types';
12
12
 
13
13
  const GIT_LOG_CHANGE_TYPES: Record<string, DocumentStatus> = {
14
14
  M: 'modified',
@@ -22,7 +22,7 @@ export class GitService implements GitServiceInterface {
22
22
  private readonly repoBranch: string;
23
23
  private readonly repoPublishBranch: string;
24
24
  private readonly worker: Worker;
25
- private readonly run: RunService;
25
+ private readonly runCommand: CommandRunner;
26
26
  private readonly logger: Logger;
27
27
  private readonly userLogger: Logger;
28
28
 
@@ -34,7 +34,7 @@ export class GitService implements GitServiceInterface {
34
34
  repoBranch: string;
35
35
  repoPublishBranch: string;
36
36
  worker: Worker;
37
- runService: RunService;
37
+ runCommand: CommandRunner;
38
38
  logger: Logger;
39
39
  userLogger: Logger;
40
40
  }) {
@@ -43,12 +43,12 @@ export class GitService implements GitServiceInterface {
43
43
  this.repoBranch = options.repoBranch;
44
44
  this.repoPublishBranch = options.repoPublishBranch;
45
45
  this.worker = options.worker;
46
- this.run = options.runService;
46
+ this.runCommand = options.runCommand;
47
47
  this.logger = options.logger;
48
48
  this.userLogger = options.userLogger;
49
49
  }
50
50
 
51
- private async commit(author: GitAuthor, files: GitFileObject[]) {
51
+ private async commit(author: GitAuthor, files: GitFileCommitDescriptor[]) {
52
52
  const filePaths = _.map(files, 'filePath');
53
53
  this.logger.debug('[git] Commit scheduled', filePaths);
54
54
  return this.worker.schedule(async () => {
@@ -59,12 +59,10 @@ export class GitService implements GitServiceInterface {
59
59
  return messages;
60
60
  }, [])
61
61
  .join('.\n');
62
- await this.run.command('git', ['add', ...filePaths], this.repoDir);
63
- await this.run.command(
64
- 'git',
65
- ['commit', '--no-verify', '--author', `${author.name || author.email} <${author.email}>`, '-m', message],
66
- this.repoDir
67
- );
62
+ await this.runCommand('git', ['add', ...filePaths], { cwd: this.repoDir });
63
+ await this.runCommand('git', ['commit', '--no-verify', '--author', `${author.name || author.email} <${author.email}>`, '-m', message], {
64
+ cwd: this.repoDir
65
+ });
68
66
  this.logger.debug('[git] Commit done', filePaths);
69
67
  });
70
68
  }
@@ -73,23 +71,23 @@ export class GitService implements GitServiceInterface {
73
71
  this.logger.debug('[git] Push scheduled');
74
72
  return this.worker.schedule(async () => {
75
73
  this.logger.debug('[git] Push running');
76
- await this.run.command('rm', ['-rf', '.git/rebase-merge'], this.repoDir).catch((err) => {}); // fixes leftover rebase directory with autostash
77
- await this.run.command('git', ['pull', 'origin', this.repoBranch, '--rebase', '--autostash', '-Xtheirs'], this.repoDir);
78
- await this.run.command('git', ['push', 'origin', this.repoBranch], this.repoDir);
74
+ await this.runCommand('rm', ['-rf', '.git/rebase-merge'], { cwd: this.repoDir }).catch((err) => {}); // fixes leftover rebase directory with autostash
75
+ await this.runCommand('git', ['pull', 'origin', this.repoBranch, '--rebase', '--autostash', '-Xtheirs'], { cwd: this.repoDir });
76
+ await this.runCommand('git', ['push', 'origin', this.repoBranch], { cwd: this.repoDir });
79
77
  this.logger.debug('[git] Push done');
80
78
  });
81
79
  }
82
80
 
83
- async commitAndPush(author: GitAuthor, files: GitFileObject[]) {
81
+ async commitAndPush(author: GitAuthor, files: GitFileCommitDescriptor[]): Promise<void> {
84
82
  await this.commit(author, files);
85
83
  return this.push();
86
84
  }
87
85
 
88
- pull() {
86
+ pull(): Promise<void> {
89
87
  this.logger.debug('[git] Pull scheduled');
90
88
  return this.worker.schedule(async () => {
91
89
  this.logger.debug('[git] Pull running');
92
- await this.run.command('git', ['pull', 'origin', '--rebase', '--autostash', '-Xtheirs'], this.repoDir);
90
+ await this.runCommand('git', ['pull', 'origin', '--rebase', '--autostash', '-Xtheirs'], { cwd: this.repoDir });
93
91
  this.logger.debug('[git] Pull done');
94
92
  });
95
93
  }
@@ -97,13 +95,13 @@ export class GitService implements GitServiceInterface {
97
95
  private async publishAll(author: GitAuthor) {
98
96
  this.logger.debug('[git] Publish all started');
99
97
  const publishDir = path.join(os.tmpdir(), uuid());
100
- await this.run.command('git', ['clone', this.repoUrl, '--branch', this.repoPublishBranch, publishDir]);
98
+ await this.runCommand('git', ['clone', this.repoUrl, '--branch', this.repoPublishBranch, publishDir]);
101
99
  try {
102
- await this.run.command('git', ['merge', `origin/${this.repoBranch}`, this.repoPublishBranch, '-Xtheirs'], publishDir);
103
- await this.run
104
- .command('git', ['commit', '--author', `${author.name || author.email} <${author.email}>`, `-m`, 'Publish'], publishDir)
105
- .catch(() => {});
106
- await this.run.command('git', ['push', 'origin'], publishDir);
100
+ await this.runCommand('git', ['merge', `origin/${this.repoBranch}`, this.repoPublishBranch, '-Xtheirs'], { cwd: publishDir });
101
+ await this.runCommand('git', ['commit', '--author', `${author.name || author.email} <${author.email}>`, `-m`, 'Publish'], {
102
+ cwd: publishDir
103
+ }).catch(() => {});
104
+ await this.runCommand('git', ['push', 'origin'], { cwd: publishDir });
107
105
  } finally {
108
106
  await fse.remove(publishDir);
109
107
  }
@@ -113,7 +111,7 @@ export class GitService implements GitServiceInterface {
113
111
  private async publishFiles(author: GitAuthor, filePaths: string[]) {
114
112
  this.logger.debug('[git] Publish files started', filePaths);
115
113
  const publishDir = path.join(os.tmpdir(), uuid());
116
- await this.run.command('git', ['clone', this.repoUrl, '--branch', this.repoPublishBranch, publishDir]);
114
+ await this.runCommand('git', ['clone', this.repoUrl, '--branch', this.repoPublishBranch, publishDir]);
117
115
  try {
118
116
  await Promise.all(
119
117
  filePaths.map(async (filePath) => {
@@ -123,21 +121,21 @@ export class GitService implements GitServiceInterface {
123
121
  })
124
122
  );
125
123
 
126
- await this.run.command('git', ['checkout', '-b', 'stackbit-publish-branch'], publishDir);
127
- await this.run.command('git', ['add', ...filePaths], publishDir);
128
- await this.run
129
- .command('git', ['commit', '--author', `${author.name || author.email} <${author.email}>`, `-m`, 'Publish'], publishDir)
130
- .catch((err) => {
131
- return;
132
- });
124
+ await this.runCommand('git', ['checkout', '-b', 'stackbit-publish-branch'], { cwd: publishDir });
125
+ await this.runCommand('git', ['add', ...filePaths], { cwd: publishDir });
126
+ await this.runCommand('git', ['commit', '--author', `${author.name || author.email} <${author.email}>`, `-m`, 'Publish'], {
127
+ cwd: publishDir
128
+ }).catch((err) => {
129
+ return;
130
+ });
133
131
 
134
- await this.run.command('git', ['checkout', this.repoBranch], publishDir);
135
- await this.run.command('git', ['merge', 'stackbit-publish-branch', this.repoBranch, '-Xtheirs'], publishDir);
132
+ await this.runCommand('git', ['checkout', this.repoBranch], { cwd: publishDir });
133
+ await this.runCommand('git', ['merge', 'stackbit-publish-branch', this.repoBranch, '-Xtheirs'], { cwd: publishDir });
136
134
 
137
- await this.run.command('git', ['checkout', this.repoPublishBranch], publishDir);
138
- await this.run.command('git', ['merge', 'stackbit-publish-branch', this.repoPublishBranch, '-Xtheirs'], publishDir);
135
+ await this.runCommand('git', ['checkout', this.repoPublishBranch], { cwd: publishDir });
136
+ await this.runCommand('git', ['merge', 'stackbit-publish-branch', this.repoPublishBranch, '-Xtheirs'], { cwd: publishDir });
139
137
 
140
- await this.run.command('git', ['push', 'origin', this.repoPublishBranch, this.repoBranch], publishDir);
138
+ await this.runCommand('git', ['push', 'origin', this.repoPublishBranch, this.repoBranch], { cwd: publishDir });
141
139
  } finally {
142
140
  await fse.remove(publishDir);
143
141
  }
@@ -180,7 +178,7 @@ export class GitService implements GitServiceInterface {
180
178
  this.logger.debug('[git] Diff check scheduled');
181
179
  return this.worker.schedule(async () => {
182
180
  this.logger.debug('[git] Diff check running');
183
- const result = await this.run.command(
181
+ const result = await this.runCommand(
184
182
  'git',
185
183
  [
186
184
  'diff',
@@ -188,7 +186,7 @@ export class GitService implements GitServiceInterface {
188
186
  '--no-renames', // this flag makes sure we get both old and new name of renamed file
189
187
  `origin/${this.repoPublishBranch}..${this.repoBranch}`
190
188
  ],
191
- this.repoDir
189
+ { cwd: this.repoDir }
192
190
  );
193
191
  this.logger.debug('[git] Diff check done');
194
192
  return result.stdout.split('\n').filter(Boolean);
@@ -200,13 +198,13 @@ export class GitService implements GitServiceInterface {
200
198
  return this.worker.schedule(async () => {
201
199
  this.logger.debug('[git] Changes check running');
202
200
  if (!this.branchFetched) {
203
- await this.run.command('git', ['fetch', 'origin', `${this.repoPublishBranch}:${this.repoPublishBranch}`], this.repoDir);
201
+ await this.runCommand('git', ['fetch', 'origin', `${this.repoPublishBranch}:${this.repoPublishBranch}`], { cwd: this.repoDir });
204
202
  this.branchFetched = true;
205
203
  }
206
- const logResult = await this.run.command(
204
+ const logResult = await this.runCommand(
207
205
  'git',
208
206
  ['log', '--pretty=format:commit:%H%n%at%n%ae%x28%an%x29', '--name-status', `${this.repoPublishBranch}..${this.repoBranch}`],
209
- this.repoDir
207
+ { cwd: this.repoDir }
210
208
  );
211
209
  this.logger.debug('[git] Changes check done');
212
210
  return logResult.stdout
@@ -223,7 +221,10 @@ export class GitService implements GitServiceInterface {
223
221
  .map((line) => line.trim().split(/\t/))
224
222
  .filter(Boolean)
225
223
  .filter(([status, filename]) => status && filename)
226
- .map(([status, filename]) => [GIT_LOG_CHANGE_TYPES[status!] || 'modified', filename])
224
+ .map(([status, filename]) => ({
225
+ status: GIT_LOG_CHANGE_TYPES[status!] || 'modified',
226
+ filePath: filename
227
+ }))
227
228
  };
228
229
  })
229
230
  .reverse();
@@ -1,22 +1,17 @@
1
1
  import childProcess, { ChildProcessWithoutNullStreams } from 'child_process';
2
- import { RunServiceInterface } from '@stackbit/types';
2
+ import { CommandRunner, RunResult } from '@stackbit/types';
3
3
 
4
- export class RunService implements RunServiceInterface {
5
- private readonly env: NodeJS.ProcessEnv;
6
- private readonly uid?: number;
7
-
8
- constructor(options: { env: NodeJS.ProcessEnv; uid?: number }) {
9
- this.env = options.env;
10
- this.uid = options.uid;
11
- }
12
-
13
- command(command: string, args: string[], cwd?: string, shell?: boolean) {
4
+ export function getCommandRunner(commandRunnerOptions: { env: NodeJS.ProcessEnv; uid?: number }): CommandRunner {
5
+ return (command: string, args?: string[], options?: { cwd?: string; shell?: boolean; env?: NodeJS.ProcessEnv }): Promise<RunResult> => {
14
6
  return getProcessPromise(
15
7
  childProcess.spawn(command, args, {
16
- cwd: cwd,
17
- shell: shell,
18
- env: this.env,
19
- ...(this.uid ? { uid: this.uid } : {})
8
+ cwd: options?.cwd,
9
+ shell: options?.shell,
10
+ env: {
11
+ ...commandRunnerOptions.env,
12
+ ...options?.env
13
+ },
14
+ ...(commandRunnerOptions.uid ? { uid: commandRunnerOptions.uid } : {})
20
15
  })
21
16
  );
22
17
  }