@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.
- package/dist/content-store-utils.d.ts +5 -5
- package/dist/content-store-utils.d.ts.map +1 -1
- package/dist/content-store-utils.js +8 -6
- package/dist/content-store-utils.js.map +1 -1
- package/dist/content-store.d.ts +9 -6
- package/dist/content-store.d.ts.map +1 -1
- package/dist/content-store.js +7 -7
- package/dist/content-store.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/git.d.ts +6 -6
- package/dist/services/git.d.ts.map +1 -1
- package/dist/services/git.js +34 -29
- package/dist/services/git.js.map +1 -1
- package/dist/services/run.d.ts +5 -15
- package/dist/services/run.d.ts.map +1 -1
- package/dist/services/run.js +12 -13
- package/dist/services/run.js.map +1 -1
- package/dist/types/content-store-document-fields.d.ts +600 -0
- package/dist/types/content-store-document-fields.d.ts.map +1 -0
- package/dist/types/content-store-document-fields.js +3 -0
- package/dist/types/content-store-document-fields.js.map +1 -0
- package/dist/types/content-store-documents.d.ts +99 -0
- package/dist/types/content-store-documents.d.ts.map +1 -0
- package/dist/types/content-store-documents.js +3 -0
- package/dist/types/content-store-documents.js.map +1 -0
- package/dist/types/content-store-types.d.ts +75 -0
- package/dist/types/content-store-types.d.ts.map +1 -0
- package/dist/types/content-store-types.js.map +1 -0
- package/dist/types/content-store-update-operation.d.ts +61 -0
- package/dist/types/content-store-update-operation.d.ts.map +1 -0
- package/dist/types/content-store-update-operation.js +3 -0
- package/dist/types/content-store-update-operation.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/search-filter.d.ts +1 -1
- package/dist/types/search-filter.d.ts.map +1 -1
- package/dist/utils/create-update-csi-docs.d.ts +1 -1
- package/dist/utils/create-update-csi-docs.d.ts.map +1 -1
- package/dist/utils/create-update-csi-docs.js +11 -10
- package/dist/utils/create-update-csi-docs.js.map +1 -1
- package/dist/utils/csi-to-store-docs-converter.d.ts +1 -1
- package/dist/utils/csi-to-store-docs-converter.d.ts.map +1 -1
- package/dist/utils/csi-to-store-docs-converter.js +20 -4
- package/dist/utils/csi-to-store-docs-converter.js.map +1 -1
- package/dist/utils/duplicate-document.d.ts +1 -1
- package/dist/utils/duplicate-document.d.ts.map +1 -1
- package/dist/utils/duplicate-document.js +7 -0
- package/dist/utils/duplicate-document.js.map +1 -1
- package/dist/utils/search-utils.d.ts +1 -1
- package/dist/utils/search-utils.d.ts.map +1 -1
- package/dist/utils/search-utils.js +16 -16
- package/dist/utils/search-utils.js.map +1 -1
- package/dist/utils/site-map.d.ts +1 -1
- package/dist/utils/site-map.d.ts.map +1 -1
- package/dist/utils/site-map.js +9 -0
- package/dist/utils/site-map.js.map +1 -1
- package/dist/utils/store-to-api-docs-converter.d.ts +3 -3
- package/dist/utils/store-to-api-docs-converter.d.ts.map +1 -1
- package/dist/utils/store-to-api-docs-converter.js +60 -32
- package/dist/utils/store-to-api-docs-converter.js.map +1 -1
- package/dist/utils/store-to-csi-docs-converter.d.ts +1 -1
- package/dist/utils/store-to-csi-docs-converter.d.ts.map +1 -1
- package/dist/utils/store-to-csi-docs-converter.js +4 -0
- package/dist/utils/store-to-csi-docs-converter.js.map +1 -1
- package/dist/utils/timer.d.ts +1 -1
- package/dist/utils/timer.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/content-store-utils.ts +12 -11
- package/src/content-store.ts +22 -19
- package/src/index.ts +1 -1
- package/src/services/git.ts +44 -43
- package/src/services/run.ts +10 -15
- package/src/types/content-store-document-fields.ts +658 -0
- package/src/types/content-store-documents.ts +113 -0
- package/src/types/content-store-types.ts +96 -0
- package/src/types/content-store-update-operation.ts +85 -0
- package/src/types/index.ts +5 -0
- package/src/types/search-filter.ts +26 -19
- package/src/utils/create-update-csi-docs.ts +16 -12
- package/src/utils/csi-to-store-docs-converter.ts +33 -14
- package/src/utils/duplicate-document.ts +8 -1
- package/src/utils/search-utils.ts +18 -19
- package/src/utils/site-map.ts +10 -1
- package/src/utils/store-to-api-docs-converter.ts +67 -38
- package/src/utils/store-to-csi-docs-converter.ts +5 -1
- package/src/utils/timer.ts +1 -1
- package/dist/content-store-types.d.ts +0 -411
- package/dist/content-store-types.d.ts.map +0 -1
- package/dist/content-store-types.js.map +0 -1
- package/src/content-store-types.ts +0 -527
- /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,
|
|
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":";;;;;;AAAA,oDAAuB;AAIvB,SAAgB,yCAAyC,CAAC,SAAuC;IAC7F,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,uCAAuC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1F,CAAC;AAFD,8FAEC;AAED,SAAS,uCAAuC,CAAC,QAAoC;IACjF,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,EAAE,EAAE,QAAQ,CAAC,WAAW;QACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,SAAS,EAAE,QAAQ,CAAC,YAAY;QAChC,SAAS,EAAE,QAAQ,CAAC,YAAY;QAChC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,yBAAyB,CAAC,QAAQ,CAAC,MAAM,CAAC;KACrD,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAAC,cAA+D;IAC9F,OAAO,gBAAC,CAAC,MAAM,CACX,cAAc,EACd,CAAC,KAA6C,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE;QACxE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE;YACV,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,EACD,EAAE,CACL,CAAC;AACN,CAAC;AAWD,SAAS,uBAAuB,CAAC,aAA8C;IAC3E,QAAQ,aAAa,CAAC,IAAI,EAAE;QACxB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC,CAAC;YACb,IAAI,aAAa,CAAC,SAAS,EAAE;gBACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,OAAO;oBACH,IAAI,EAAE,aAAa,CAAC,IAAI;oBACxB,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,gBAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACtB,CAAC,CAAC;iBACN,CAAC;aACL;YACD,IAAI,OAAO,aAAa,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,SAAS,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;gBACrG,OAAO;aACV;YACD,OAAO;gBACH,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,KAAK,EAAE,aAAa,CAAC,KAAK;aACH,CAAC;SAC/B;QACD,KAAK,OAAO,CAAC,CAAC;YACV,IAAI,aAAa,CAAC,SAAS,EAAE;gBACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,OAAO;oBACH,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,IAAI;oBACf,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,UAAU,EAAE,aAAa,CAAC,UAAU;oBACpC,OAAO,EAAE,gBAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC;qBACnD,CAAC,CAAC;iBACkC,CAAC;aAC7C;YACD,IAAI,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO;aACV;YACD,OAAO;gBACH,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,aAAa,CAAC,MAAM;gBAC5B,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,MAAM,EAAE,yBAAyB,CAAC,aAAa,CAAC,MAAM,CAAC;aACf,CAAC;SAChD;QACD,KAAK,QAAQ,CAAC,CAAC;YACX,IAAI,aAAa,CAAC,SAAS,EAAE;gBACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,OAAO;oBACH,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,gBAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC;qBACnD,CAAC,CAAC;iBACN,CAAC;aACL;YACD,IAAI,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO;aACV;YACD,OAAO;gBACH,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,yBAAyB,CAAC,aAAa,CAAC,MAAM,CAAC;aAC1D,CAAC;SACL;QACD,KAAK,OAAO,CAAC,CAAC;YACV,IAAI,aAAa,CAAC,SAAS,EAAE;gBACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,OAAO;oBACH,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,gBAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,SAAS,EAAE,MAAM,CAAC,YAAY;wBAC9B,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC;qBACnD,CAAC,CAAC;iBACN,CAAC;aACL;YACD,IAAI,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO;aACV;YACD,OAAO;gBACH,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,aAAa,CAAC,YAAY;gBACrC,MAAM,EAAE,yBAAyB,CAAC,aAAa,CAAC,MAAM,CAAC;aAC1D,CAAC;SACL;QACD,KAAK,WAAW,CAAC,CAAC;YACd,IAAI,aAAa,CAAC,SAAS,EAAE;gBACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,OAAO;oBACH,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,OAAO,EAAE,gBAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACtB,CAAC,CAAC;iBACN,CAAC;aACL;YACD,IAAI,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO;aACV;YACD,OAAO;gBACH,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,KAAK,EAAE,aAAa,CAAC,KAAK;aAC7B,CAAC;SACL;QACD,KAAK,iBAAiB,CAAC,CAAC;YACpB,IAAI,aAAa,CAAC,SAAS,EAAE;gBACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,OAAO;oBACH,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,gBAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE;4BACH,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;yBACpC;qBACJ,CAAC,CAAC;iBACN,CAAC;aACL;YACD,IAAI,aAAa,CAAC,OAAO,EAAE;gBACvB,OAAO;aACV;YACD,OAAO;gBACH,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE;oBACH,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,UAAU,EAAE,aAAa,CAAC,UAAU;oBACpC,YAAY,EAAE,aAAa,CAAC,YAAY;iBAC3C;aACJ,CAAC;SACL;QACD,KAAK,MAAM,CAAC,CAAC;YACT,IAAI,aAAa,CAAC,SAAS,EAAE;gBACzB,IAAI,gBAAC,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;oBAClC,OAAO;iBACV;gBACD,OAAO;oBACH,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,gBAAC,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAwC,EAAE,IAAI,EAAE,EAAE;4BAC1E,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;4BAC9C,iFAAiF;4BACjF,kDAAkD;4BAClD,IAAI,CAAC,OAAO,EAAE;gCACV,OAAO,KAAK,CAAC;6BAChB;4BACD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACjC,CAAC,EAAE,EAAE,CAAC;qBACT,CAAC,CAAC;iBACN,CAAC;aACL;YACD,OAAO;gBACH,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAwC,EAAE,IAAI,EAAE,EAAE;oBACjF,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9C,iFAAiF;oBACjF,kDAAkD;oBAClD,IAAI,CAAC,OAAO,EAAE;wBACV,OAAO,KAAK,CAAC;qBAChB;oBACD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC,EAAE,EAAE,CAAC;aACT,CAAC;SACL;QACD,OAAO,CAAC,CAAC;YACL,MAAM,gBAAgB,GAAU,aAAa,CAAC;YAC9C,OAAO,gBAAgB,CAAC;SAC3B;KACJ;AACL,CAAC"}
|
package/dist/utils/timer.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/utils/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
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
|
+
"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.
|
|
35
|
-
"@stackbit/types": "
|
|
36
|
-
"@stackbit/utils": "
|
|
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": "
|
|
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 './
|
|
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
|
|
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
|
|
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
|
}
|
package/src/content-store.ts
CHANGED
|
@@ -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 './
|
|
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 {
|
|
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:
|
|
57
|
-
userLogger:
|
|
57
|
+
logger: CSITypes.Logger;
|
|
58
|
+
userLogger: CSITypes.Logger;
|
|
58
59
|
localDev: boolean;
|
|
59
60
|
staticAssetsPublicPath: string;
|
|
60
61
|
webhookUrl?: string;
|
|
61
|
-
|
|
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:
|
|
76
|
-
private readonly userLogger:
|
|
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
|
|
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.
|
|
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
|
-
|
|
442
|
-
|
|
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,
|
|
1144
|
-
const imageObjects = mapAssetsToLocalizedApiImages(assets,
|
|
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']
|
|
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
|
|
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 './
|
|
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';
|
package/src/services/git.ts
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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.
|
|
63
|
-
await this.
|
|
64
|
-
|
|
65
|
-
|
|
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.
|
|
77
|
-
await this.
|
|
78
|
-
await this.
|
|
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:
|
|
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.
|
|
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.
|
|
98
|
+
await this.runCommand('git', ['clone', this.repoUrl, '--branch', this.repoPublishBranch, publishDir]);
|
|
101
99
|
try {
|
|
102
|
-
await this.
|
|
103
|
-
await this.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
await this.
|
|
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.
|
|
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.
|
|
127
|
-
await this.
|
|
128
|
-
await this.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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.
|
|
135
|
-
await this.
|
|
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.
|
|
138
|
-
await this.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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]) =>
|
|
224
|
+
.map(([status, filename]) => ({
|
|
225
|
+
status: GIT_LOG_CHANGE_TYPES[status!] || 'modified',
|
|
226
|
+
filePath: filename
|
|
227
|
+
}))
|
|
227
228
|
};
|
|
228
229
|
})
|
|
229
230
|
.reverse();
|
package/src/services/run.ts
CHANGED
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
import childProcess, { ChildProcessWithoutNullStreams } from 'child_process';
|
|
2
|
-
import {
|
|
2
|
+
import { CommandRunner, RunResult } from '@stackbit/types';
|
|
3
3
|
|
|
4
|
-
export
|
|
5
|
-
|
|
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:
|
|
19
|
-
|
|
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
|
}
|