decap-server 1.4.0-beta.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/.env.example +6 -0
- package/CHANGELOG.md +455 -0
- package/LICENSE +22 -0
- package/README.md +30 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/middlewares.js +3 -0
- package/dist/middlewares.js.map +1 -0
- package/jest.config.js +7 -0
- package/package.json +59 -0
- package/src/global.d.ts +4 -0
- package/src/index.ts +39 -0
- package/src/logger.ts +15 -0
- package/src/middlewares/common/index.ts +21 -0
- package/src/middlewares/joi/customValidators.ts +18 -0
- package/src/middlewares/joi/index.spec.ts +617 -0
- package/src/middlewares/joi/index.ts +246 -0
- package/src/middlewares/localFs/index.spec.ts +92 -0
- package/src/middlewares/localFs/index.ts +163 -0
- package/src/middlewares/localGit/index.spec.ts +154 -0
- package/src/middlewares/localGit/index.ts +463 -0
- package/src/middlewares/types.ts +101 -0
- package/src/middlewares/utils/entries.ts +48 -0
- package/src/middlewares/utils/fs.ts +65 -0
- package/src/middlewares.ts +28 -0
- package/src/what-the-diff.d.ts +5 -0
- package/tsconfig.json +19 -0
- package/webpack.config.js +39 -0
package/.env.example
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
# 1.4.0-beta.0 (2023-08-18)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* rename packages ([#6863](https://github.com/decaporg/decap-cms/issues/6863)) ([d515e7b](https://github.com/decaporg/decap-cms/commit/d515e7bd33216a775d96887b08c4f7b1962941bb))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [1.3.25-beta.0](https://github.com/decaporg/decap-cms/compare/decap-server@1.3.24...decap-server@1.3.25-beta.0) (2023-07-27)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package decap-server
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [1.3.24](https://github.com/decaporg/decap-cms/compare/decap-server@1.3.23...decap-server@1.3.24) (2022-04-13)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* **deps:** update dependency simple-git to v3 [security] ([#6305](https://github.com/decaporg/decap-cms/issues/6305)) ([e997101](https://github.com/decaporg/decap-cms/commit/e99710116d015ca47b5cbe114710fdf93fabfe61))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## [1.3.23](https://github.com/decaporg/decap-cms/compare/decap-server@1.3.22...decap-server@1.3.23) (2021-12-28)
|
|
37
|
+
|
|
38
|
+
**Note:** Version bump only for package decap-server
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## [1.3.22](https://github.com/decaporg/decap-cms/compare/decap-server@1.3.21...decap-server@1.3.22) (2021-11-01)
|
|
45
|
+
|
|
46
|
+
**Note:** Version bump only for package decap-server
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## [1.3.21](https://github.com/decaporg/decap-cms/compare/decap-server@1.3.20...decap-server@1.3.21) (2021-10-18)
|
|
53
|
+
|
|
54
|
+
**Note:** Version bump only for package decap-server
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## [1.3.20](https://github.com/decaporg/decap-cms/compare/decap-server@1.3.19...decap-server@1.3.20) (2021-08-17)
|
|
61
|
+
|
|
62
|
+
**Note:** Version bump only for package decap-server
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## [1.3.19](https://github.com/decaporg/decap-cms/compare/decap-server@1.3.18...decap-server@1.3.19) (2021-07-14)
|
|
69
|
+
|
|
70
|
+
**Note:** Version bump only for package decap-server
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## [1.3.18](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.17...decap-server@1.3.18) (2021-06-01)
|
|
77
|
+
|
|
78
|
+
**Note:** Version bump only for package decap-server
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
## [1.3.17](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.16...decap-server@1.3.17) (2021-05-31)
|
|
85
|
+
|
|
86
|
+
**Note:** Version bump only for package decap-server
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## [1.3.16](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.15...decap-server@1.3.16) (2021-05-24)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
### Bug Fixes
|
|
96
|
+
|
|
97
|
+
* **deps:** update dependency dotenv to v10 ([#5433](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/5433)) ([1d44a5c](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/1d44a5c0b94ab8512278ffc877f2daeeb8159593))
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
## [1.3.15](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.14...decap-server@1.3.15) (2021-05-19)
|
|
104
|
+
|
|
105
|
+
**Note:** Version bump only for package decap-server
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## [1.3.14](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.13...decap-server@1.3.14) (2021-05-10)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
### Bug Fixes
|
|
115
|
+
|
|
116
|
+
* **deps:** update dependency dotenv to v9 ([#5361](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/5361)) ([3e65080](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/3e6508046f15672ca97cfe223ac9ea76b43121c9))
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
## [1.3.13](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.12...decap-server@1.3.13) (2021-04-29)
|
|
123
|
+
|
|
124
|
+
**Note:** Version bump only for package decap-server
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## [1.3.12](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.11...decap-server@1.3.12) (2021-04-04)
|
|
131
|
+
|
|
132
|
+
**Note:** Version bump only for package decap-server
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
## [1.3.11](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.10...decap-server@1.3.11) (2021-02-15)
|
|
139
|
+
|
|
140
|
+
**Note:** Version bump only for package decap-server
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
## [1.3.10](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.9...decap-server@1.3.10) (2021-02-10)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
### Bug Fixes
|
|
150
|
+
|
|
151
|
+
* **deps:** update dependency async-mutex to ^0.3.0 ([#4932](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/4932)) ([f608a81](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/f608a81f19681a4265ea8875ad50c585926c9113))
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
## [1.3.9](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.8...decap-server@1.3.9) (2021-02-01)
|
|
158
|
+
|
|
159
|
+
**Note:** Version bump only for package decap-server
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
## [1.3.8](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.7...decap-server@1.3.8) (2020-12-13)
|
|
166
|
+
|
|
167
|
+
**Note:** Version bump only for package decap-server
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
## [1.3.7](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.6...decap-server@1.3.7) (2020-11-26)
|
|
174
|
+
|
|
175
|
+
**Note:** Version bump only for package decap-server
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
## [1.3.6](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.5...decap-server@1.3.6) (2020-09-28)
|
|
182
|
+
|
|
183
|
+
**Note:** Version bump only for package decap-server
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
## [1.3.5](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.4...decap-server@1.3.5) (2020-09-20)
|
|
190
|
+
|
|
191
|
+
**Note:** Version bump only for package decap-server
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
## [1.3.4](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.3.3...decap-server@1.3.4) (2020-09-15)
|
|
198
|
+
|
|
199
|
+
**Note:** Version bump only for package decap-server
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## 1.3.3 (2020-09-08)
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
### Reverts
|
|
209
|
+
|
|
210
|
+
* Revert "chore(release): publish" ([828bb16](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/828bb16415b8c22a34caa19c50c38b24ffe9ceae))
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
## 1.3.2 (2020-08-20)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
### Reverts
|
|
220
|
+
|
|
221
|
+
* Revert "chore(release): publish" ([8262487](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/82624879ccbcb16610090041db28f00714d924c8))
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
## 1.3.1 (2020-07-27)
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
### Reverts
|
|
231
|
+
|
|
232
|
+
* Revert "chore(release): publish" ([118d50a](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/118d50a7a70295f25073e564b5161aa2b9883056))
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
# [1.3.0](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.9...decap-server@1.3.0) (2020-07-14)
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
### Bug Fixes
|
|
242
|
+
|
|
243
|
+
* **proxy-server:** change request logging level to debug ([#3993](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3993)) ([784c1fe](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/784c1fe4801c89f1908d1b5e96cd7e847ec10fa0))
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
### Features
|
|
247
|
+
|
|
248
|
+
* **proxy-server:** allow setting proxy log level ([#3989](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3989)) ([3e0d088](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/3e0d0886d930a17c7b77d995cc0fa628ef3ecdc2))
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
## [1.2.9](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.8...decap-server@1.2.9) (2020-06-18)
|
|
255
|
+
|
|
256
|
+
**Note:** Version bump only for package decap-server
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
## [1.2.8](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.7...decap-server@1.2.8) (2020-06-01)
|
|
263
|
+
|
|
264
|
+
**Note:** Version bump only for package decap-server
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
## [1.2.7](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.6...decap-server@1.2.7) (2020-05-19)
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
### Bug Fixes
|
|
274
|
+
|
|
275
|
+
* **deps:** update dependency simple-git to v2 ([#3730](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3730)) ([1c7ef1c](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/1c7ef1c457612242257d96af53a57c1460e45b31))
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
## [1.2.6](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.5...decap-server@1.2.6) (2020-04-21)
|
|
282
|
+
|
|
283
|
+
**Note:** Version bump only for package decap-server
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
## [1.2.5](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.4...decap-server@1.2.5) (2020-04-14)
|
|
290
|
+
|
|
291
|
+
**Note:** Version bump only for package decap-server
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
## [1.2.4](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.3...decap-server@1.2.4) (2020-04-01)
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
### Bug Fixes
|
|
301
|
+
|
|
302
|
+
* move common api functions to a separate file ([#3511](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3511)) ([49098de](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/49098de27f053e51aa3d936d09adae3a7186c6ae))
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
## [1.2.3](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.2...decap-server@1.2.3) (2020-04-01)
|
|
309
|
+
|
|
310
|
+
**Note:** Version bump only for package decap-server
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
## [1.2.2](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.1...decap-server@1.2.2) (2020-03-19)
|
|
317
|
+
|
|
318
|
+
**Note:** Version bump only for package decap-server
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
## [1.2.1](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.2.0...decap-server@1.2.1) (2020-03-12)
|
|
325
|
+
|
|
326
|
+
**Note:** Version bump only for package decap-server
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
# [1.2.0](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.1.5...decap-server@1.2.0) (2020-03-03)
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
### Features
|
|
336
|
+
|
|
337
|
+
* **proxy-server:** export proxy middlewares ([#3361](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3361)) ([4e1e5a9](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/4e1e5a9bd54f9fcfcfd7e971729c8d2d796f9a1b))
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
## [1.1.5](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.1.4...decap-server@1.1.5) (2020-02-25)
|
|
344
|
+
|
|
345
|
+
**Note:** Version bump only for package decap-server
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
## [1.1.4](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.1.3...decap-server@1.1.4) (2020-02-17)
|
|
352
|
+
|
|
353
|
+
**Note:** Version bump only for package decap-server
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
## [1.1.3](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.1.2...decap-server@1.1.3) (2020-02-14)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
### Bug Fixes
|
|
363
|
+
|
|
364
|
+
* **proxy-server:** add missing labels to file collections ([#3250](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3250)) ([8d67de0](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/8d67de0e681e02ddbf811eecc5e4744b324b7e61))
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
## [1.1.2](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.1.1...decap-server@1.1.2) (2020-02-12)
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
### Bug Fixes
|
|
374
|
+
|
|
375
|
+
* **proxy-server:** better handle files based collections ([#3237](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3237)) ([3678053](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/3678053f0c419718000a21768790618749df762c))
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
## [1.1.1](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.1.0...decap-server@1.1.1) (2020-02-11)
|
|
382
|
+
|
|
383
|
+
**Note:** Version bump only for package decap-server
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
# [1.1.0](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.0.7...decap-server@1.1.0) (2020-02-10)
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
### Bug Fixes
|
|
393
|
+
|
|
394
|
+
* fs proxy info action ([#3225](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3225)) ([4522739](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/45227392315f4b8b7566ffe65756ca13dc55b9f8))
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
### Features
|
|
398
|
+
|
|
399
|
+
* **proxy-server:** add local fs middleware and make it the default ([#3217](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3217)) ([31dbd72](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/31dbd72273b723bb6bbb551641a6e4bcc1f0314b))
|
|
400
|
+
|
|
401
|
+
|
|
402
|
+
### Reverts
|
|
403
|
+
|
|
404
|
+
* Revert "chore(release): publish" ([a015d1d](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/a015d1d92a4b1c0130c44fcef1c9ecdb157a0f07))
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
## [1.0.7](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.0.6...decap-server@1.0.7) (2020-02-06)
|
|
411
|
+
|
|
412
|
+
**Note:** Version bump only for package decap-server
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
## [1.0.6](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.0.5...decap-server@1.0.6) (2020-01-30)
|
|
419
|
+
|
|
420
|
+
**Note:** Version bump only for package decap-server
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
## [1.0.5](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.0.4...decap-server@1.0.5) (2020-01-29)
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
### Bug Fixes
|
|
430
|
+
|
|
431
|
+
* **proxy-server:** fix entriesByFiles implementation ([#3161](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/issues/3161)) ([22df7f7](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/commit/22df7f7ae1c63d5275156c13202ee2cba8edfe30))
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
## [1.0.4](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.0.3...decap-server@1.0.4) (2020-01-26)
|
|
438
|
+
|
|
439
|
+
**Note:** Version bump only for package decap-server
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
## [1.0.3](https://github.com/decaporg/decap-cms/tree/master/packages/decap-server/compare/decap-server@1.0.2...decap-server@1.0.3) (2020-01-24)
|
|
446
|
+
|
|
447
|
+
**Note:** Version bump only for package decap-server
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
## 1.0.2 (2020-01-22)
|
|
454
|
+
|
|
455
|
+
**Note:** Version bump only for package decap-server
|
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Copyright (c) 2016 Netlify <decap@p-m.si>
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Decap CMS Proxy Server
|
|
2
|
+
|
|
3
|
+
Decap CMS Proxy Server is an express server created to facilitate local development.
|
|
4
|
+
|
|
5
|
+
## How It Works
|
|
6
|
+
|
|
7
|
+
1. Navigate to a local Git repository configured with the CMS.
|
|
8
|
+
2. Run `npx decap-server` from the root directory of the above repository.
|
|
9
|
+
3. Update your `config.yml` to connect to the server:
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
backend:
|
|
13
|
+
name: proxy
|
|
14
|
+
proxy_url: http://localhost:8081/api/v1
|
|
15
|
+
branch: master # optional, defaults to master
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
4. Start you local development server (e.g. run `gatsby develop`).
|
|
19
|
+
|
|
20
|
+
## Custom Configuration
|
|
21
|
+
|
|
22
|
+
1. Create a `.env` file in the root directory of your local Git repository.
|
|
23
|
+
2. Update the file as follows:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# optional, defaults to current directory
|
|
27
|
+
GIT_REPO_DIRECTORY=FULL_PATH_TO_LOCAL_GIT_REPO
|
|
28
|
+
# optional, defaults to 8081
|
|
29
|
+
PORT=CUSTOM_PORT
|
|
30
|
+
```
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
(()=>{"use strict";var e={322:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.branchFromContentKey=t.contentKeyFromBranch=t.parseContentKey=t.generateContentKey=t.statusToLabel=t.labelToStatus=t.isCMSLabel=t.MERGE_COMMIT_MESSAGE=t.DEFAULT_PR_BODY=t.CMS_BRANCH_PREFIX=void 0,t.CMS_BRANCH_PREFIX="cms",t.DEFAULT_PR_BODY="Automatically generated by Decap CMS",t.MERGE_COMMIT_MESSAGE="Automatically generated. Merged on Decap CMS.";function a(e){return e||"decap-cms/"}t.isCMSLabel=function(e,t){return e.startsWith(a(t))},t.labelToStatus=function(e,t){return e.slice(a(t).length)},t.statusToLabel=function(e,t){return`${a(t)}${e}`},t.generateContentKey=function(e,t){return`${e}/${t}`},t.parseContentKey=function(e){const t=e.indexOf("/");return{collection:e.slice(0,t),slug:e.slice(t+1)}},t.contentKeyFromBranch=function(e){return e.slice(`${t.CMS_BRANCH_PREFIX}/`.length)},t.branchFromContentKey=function(e){return`${t.CMS_BRANCH_PREFIX}/${e}`}},920:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),a(142).config();const i=r(a(860)),n=a(394),s=a(377),o=a(102),l=a(135),c=(0,i.default)(),u=process.env.PORT||8081,d=process.env.LOG_LEVEL||"info";(async()=>{const e=(0,l.createLogger)({level:d}),t={logger:e};(0,n.registerCommonMiddlewares)(c,t);try{const e=process.env.MODE||"fs";if("fs"===e)(0,o.registerMiddleware)(c,t);else{if("git"!==e)throw new Error(`Unknown proxy mode '${e}'`);(0,s.registerMiddleware)(c,t)}}catch(t){e.error(t instanceof Error?t.message:"Unknown error"),process.exit(1)}c.listen(u,(()=>{e.info(`Decap CMS Proxy Server listening on port ${u}`)}))})()},135:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createLogger=void 0;const i=r(a(773)),{combine:n,colorize:s,simple:o}=i.default.format;t.createLogger=function({level:e}){return i.default.createLogger({level:e,format:n(s(),o()),transports:[new i.default.transports.Console]})}},394:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.registerCommonMiddlewares=void 0;const i=r(a(860)),n=r(a(470)),s=r(a(582));t.registerCommonMiddlewares=function(e,t){const{logger:a}=t,r={write:e=>{a.debug(String(e).trim())}};e.use((0,n.default)("combined",{stream:r})),e.use((0,s.default)()),e.use(i.default.json({limit:"50mb"}))}},598:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.pathTraversal=void 0;const i=r(a(414)),n=r(a(17));t.pathTraversal=function(e){return i.default.extend({type:"path",base:i.default.string().required(),messages:{"path.invalid":"{{#label}} must resolve to a path under the configured repository"},validate(t,a){if(!n.default.join(e,t).startsWith(e))return{value:t,errors:a.error("path.invalid")}}}).path()}},761:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.joi=t.defaultSchema=void 0;const i=r(a(414)),n=["info","entriesByFolder","entriesByFiles","getEntry","unpublishedEntries","unpublishedEntry","unpublishedEntryDataFile","unpublishedEntryMediaFile","deleteUnpublishedEntry","persistEntry","updateUnpublishedEntryStatus","publishUnpublishedEntry","getMedia","getMediaFile","persistMedia","deleteFile","deleteFiles","getDeployPreview"],s=i.default.string().required(),o=i.default.number().required(),l=i.default.bool().required(),c=s,u=s;t.defaultSchema=function({path:e=s}={}){const t=i.default.object({branch:s}),a=i.default.object({path:e,content:s,encoding:s.valid("base64")}),r=i.default.object({slug:s,path:e,raw:s,newPath:e.optional()}),d=i.default.when("action",{switch:[{is:"info",then:i.default.allow()},{is:"entriesByFolder",then:t.keys({folder:e,extension:s,depth:o}).required()},{is:"entriesByFiles",then:t.keys({files:i.default.array().items(i.default.object({path:e,label:i.default.string()})).required()})},{is:"getEntry",then:t.keys({path:e}).required()},{is:"unpublishedEntries",then:t.keys({branch:s}).required()},{is:"unpublishedEntry",then:t.keys({id:i.default.string().optional(),collection:i.default.string().optional(),slug:i.default.string().optional(),cmsLabelPrefix:i.default.string().optional()}).required()},{is:"unpublishedEntryDataFile",then:t.keys({collection:c,slug:u,id:s,path:s}).required()},{is:"unpublishedEntryMediaFile",then:t.keys({collection:c,slug:u,id:s,path:s}).required()},{is:"deleteUnpublishedEntry",then:t.keys({collection:c,slug:u}).required()},{is:"persistEntry",then:t.keys({cmsLabelPrefix:i.default.string().optional(),entry:r,dataFiles:i.default.array().items(r),assets:i.default.array().items(a).required(),options:i.default.object({collectionName:i.default.string(),commitMessage:s,useWorkflow:l,status:s}).required()}).xor("entry","dataFiles").required()},{is:"updateUnpublishedEntryStatus",then:t.keys({collection:c,slug:u,newStatus:s,cmsLabelPrefix:i.default.string().optional()}).required()},{is:"publishUnpublishedEntry",then:t.keys({collection:c,slug:u}).required()},{is:"getMedia",then:t.keys({mediaFolder:e}).required()},{is:"getMediaFile",then:t.keys({path:e}).required()},{is:"persistMedia",then:t.keys({asset:a.required(),options:i.default.object({commitMessage:s}).required()}).required()},{is:"deleteFile",then:t.keys({path:e,options:i.default.object({commitMessage:s}).required()}).required()},{is:"deleteFiles",then:t.keys({paths:i.default.array().items(e).min(1).required(),options:i.default.object({commitMessage:s}).required()}).required()},{is:"getDeployPreview",then:t.keys({collection:c,slug:u}).required()}],otherwise:i.default.forbidden()});return i.default.object({action:i.default.valid(...n).required(),params:d})},t.joi=function(e){return(t,a,r)=>{const{error:i}=e.validate(t.body,{allowUnknown:!0});if(i){const{details:e}=i,t=e.map((e=>e.message)).join(",");a.status(422).json({error:t})}else r()}}},102:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.registerMiddleware=t.getSchema=t.localFsMiddleware=void 0;const i=r(a(17)),n=a(761),s=a(598),o=a(802),l=a(848);function c({repoPath:e,logger:t}){return async function(a,r){try{const{body:t}=a;switch(t.action){case"info":r.json({repo:i.default.basename(e),publish_modes:["simple"],type:"local_fs"});break;case"entriesByFolder":{const a=t.params,{folder:i,extension:n,depth:s}=a,c=await(0,o.listRepoFiles)(e,i,n,s).then((t=>(0,l.entriesFromFiles)(e,t.map((e=>({path:e}))))));r.json(c);break}case"entriesByFiles":{const a=t.params,i=await(0,l.entriesFromFiles)(e,a.files);r.json(i);break}case"getEntry":{const a=t.params,[i]=await(0,l.entriesFromFiles)(e,[{path:a.path}]);r.json(i);break}case"persistEntry":{const{entry:a,dataFiles:n=[a],assets:s}=t.params;await Promise.all(n.map((t=>(0,o.writeFile)(i.default.join(e,t.path),t.raw)))),await Promise.all(s.map((t=>(0,o.writeFile)(i.default.join(e,t.path),Buffer.from(t.content,t.encoding))))),n.every((e=>e.newPath))&&n.forEach((async t=>{await(0,o.move)(i.default.join(e,t.path),i.default.join(e,t.newPath))})),r.json({message:"entry persisted"});break}case"getMedia":{const{mediaFolder:a}=t.params,i=await(0,o.listRepoFiles)(e,a,"",1),n=await Promise.all(i.map((t=>(0,l.readMediaFile)(e,t))));r.json(n);break}case"getMediaFile":{const{path:a}=t.params,i=await(0,l.readMediaFile)(e,a);r.json(i);break}case"persistMedia":{const{asset:a}=t.params;await(0,o.writeFile)(i.default.join(e,a.path),Buffer.from(a.content,a.encoding));const n=await(0,l.readMediaFile)(e,a.path);r.json(n);break}case"deleteFile":{const{path:a}=t.params;await(0,o.deleteFile)(e,a),r.json({message:`deleted file ${a}`});break}case"deleteFiles":{const{paths:a}=t.params;await Promise.all(a.map((t=>(0,o.deleteFile)(e,t)))),r.json({message:`deleted files ${a.join(", ")}`});break}case"getDeployPreview":r.json(null);break;default:{const e=`Unknown action ${t.action}`;r.status(422).json({error:e});break}}}catch(e){t.error(`Error handling ${JSON.stringify(a.body)}: ${e instanceof Error?e.message:"Unknown error"}`),r.status(500).json({error:"Unknown error"})}}}function u({repoPath:e}){return(0,n.defaultSchema)({path:(0,s.pathTraversal)(e)})}t.localFsMiddleware=c,t.getSchema=u,t.registerMiddleware=async function(e,t){const{logger:a}=t,r=i.default.resolve(process.env.GIT_REPO_DIRECTORY||process.cwd());e.post("/api/v1",(0,n.joi)(u({repoPath:r}))),e.post("/api/v1",c({repoPath:r,logger:a})),a.info(`Decap CMS File System Proxy Server configured with ${r}`)}},377:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.registerMiddleware=t.localGitMiddleware=t.getSchema=t.validateRepo=void 0;const i=r(a(17)),n=a(147),s=a(322),o=a(419),l=r(a(546)),c=a(757),u=a(761),d=a(598),p=a(802),f=a(848);async function m(e,t){await e.add("."),await e.commit(t,void 0,{"--no-verify":null,"--no-gpg-sign":null})}async function h(e){return await e.branchLocal().then((e=>e.current))}async function g(e,t,a){const r=await h(e);try{return r!==t&&await e.checkout(t),await a()}finally{await e.checkout(r)}}function y(e){return`branch.${e}.description`}async function w(e,t,a,r,n){await Promise.all(a.map((e=>(0,p.writeFile)(i.default.join(t,e.path),e.raw)))),await Promise.all(r.map((e=>(0,p.writeFile)(i.default.join(t,e.path),Buffer.from(e.content,e.encoding))))),a.every((e=>e.newPath))&&a.forEach((async e=>{await(0,p.move)(i.default.join(t,e.path),i.default.join(t,e.newPath))})),await m(e,n)}async function b(e,t){return await e.branchLocal().then((({all:e})=>e.includes(t)))}async function F(e,t,a){const r=await e.diff([t,a]);return(0,o.parse)(r).map((e=>{var t,a;const r=(null===(t=e.oldPath)||void 0===t?void 0:t.replace(/b\//,""))||"",i=(null===(a=e.newPath)||void 0===a?void 0:a.replace(/b\//,""))||"",n=i||r;return{oldPath:r,newPath:i,status:e.status,newFile:"added"===e.status,path:n,id:n,binary:e.binary||/.svg$/.test(n)}}))}async function v({repoPath:e}){const t=(0,l.default)(e);if(!await t.checkIsRepo())throw Error(`${e} is not a valid git repository`)}function M({repoPath:e}){return(0,u.defaultSchema)({path:(0,d.pathTraversal)(e)})}function _({repoPath:e,logger:t}){const a=(0,l.default)(e),r=(0,c.withTimeout)(new c.Mutex,3e3,new Error("Request timed out"));return async function(o,l){let c;try{c=await r.acquire();const{body:t}=o;if("info"===t.action)return void l.json({repo:i.default.basename(e),publish_modes:["simple","editorial_workflow"],type:"local_git"});const{branch:u}=t.params;if(!await b(a,u)){const e=`Default branch '${u}' doesn't exist`;return void l.status(422).json({error:e})}switch(t.action){case"entriesByFolder":{const r=t.params,{folder:i,extension:n,depth:s}=r,o=await g(a,u,(()=>(0,p.listRepoFiles)(e,i,n,s).then((t=>(0,f.entriesFromFiles)(e,t.map((e=>({path:e}))))))));l.json(o);break}case"entriesByFiles":{const r=t.params,i=await g(a,u,(()=>(0,f.entriesFromFiles)(e,r.files)));l.json(i);break}case"getEntry":{const r=t.params,[i]=await g(a,u,(()=>(0,f.entriesFromFiles)(e,[{path:r.path}])));l.json(i);break}case"unpublishedEntries":{const e=await a.branchLocal().then((e=>e.all.filter((e=>e.startsWith(`${s.CMS_BRANCH_PREFIX}/`)))));l.json(e.map(s.contentKeyFromBranch));break}case"unpublishedEntry":{let{id:r,collection:i,slug:n,cmsLabelPrefix:o}=t.params;r&&({collection:i,slug:n}=(0,s.parseContentKey)(r));const c=(0,s.generateContentKey)(i,n),d=(0,s.branchFromContentKey)(c);if(!await b(a,d))return l.status(404).json({message:"Not Found"});{const t=await F(a,u,d),r=await a.raw(["config",y(d)]),c=r&&(0,s.labelToStatus)(r.trim(),o||""),f=t.length>=0?await g(a,d,(async()=>(await Promise.all(t.map((({newPath:t})=>(0,p.getUpdateDate)(e,t))))).reduce(((e,t)=>e>t?e:t)))):new Date,m={collection:i,slug:n,status:c,diffs:t,updatedAt:f};l.json(m)}break}case"unpublishedEntryDataFile":{const{path:r,collection:i,slug:n}=t.params,o=(0,s.generateContentKey)(i,n),c=(0,s.branchFromContentKey)(o),[u]=await g(a,c,(()=>(0,f.entriesFromFiles)(e,[{path:r}])));l.json({data:u.data});break}case"unpublishedEntryMediaFile":{const{path:r,collection:i,slug:n}=t.params,o=(0,s.generateContentKey)(i,n),c=(0,s.branchFromContentKey)(o),u=await g(a,c,(()=>(0,f.readMediaFile)(e,r)));l.json(u);break}case"deleteUnpublishedEntry":{const{collection:e,slug:r}=t.params,i=(0,s.generateContentKey)(e,r),n=(0,s.branchFromContentKey)(i);await h(a)===n&&await a.checkoutLocalBranch(u),await a.branch(["-D",n]),l.json({message:`deleted branch: ${n}`});break}case"persistEntry":{const{cmsLabelPrefix:r,entry:o,dataFiles:c=[o],assets:d,options:p}=t.params;if(p.useWorkflow){const t=c[0].slug,o=p.collectionName,l=(0,s.generateContentKey)(o,t),f=(0,s.branchFromContentKey)(l);await g(a,u,(async()=>{const t=await b(a,f);t?await a.checkout(f):await a.checkoutLocalBranch(f),await async function(e,t){const a=await e.raw(["config","commit.gpgsign"]);try{"true"===a&&await e.addConfig("commit.gpgsign","false"),await e.rebase([t,"--no-verify"])}finally{"true"===a&&await e.addConfig("commit.gpgsign",a)}}(a,u);const o=(await F(a,u,f)).filter((e=>e.binary&&!d.map((e=>e.path)).includes(e.path)));if(await Promise.all(o.map((t=>n.promises.unlink(i.default.join(e,t.path))))),await w(a,e,c,d,p.commitMessage),!t){const e=(0,s.statusToLabel)(p.status,r||"");await a.addConfig(y(f),e)}}))}else await g(a,u,(async()=>{await w(a,e,c,d,p.commitMessage)}));l.json({message:"entry persisted"});break}case"updateUnpublishedEntryStatus":{const{collection:e,slug:r,newStatus:i,cmsLabelPrefix:n}=t.params,o=(0,s.generateContentKey)(e,r),c=(0,s.branchFromContentKey)(o),d=(0,s.statusToLabel)(i,n||"");await a.addConfig(y(c),d),l.json({message:`${u} description was updated to ${d}`});break}case"publishUnpublishedEntry":{const{collection:e,slug:r}=t.params,i=(0,s.generateContentKey)(e,r),n=(0,s.branchFromContentKey)(i);await async function(e,t,a){const r=await e.raw(["config","commit.gpgsign"]);try{"true"===r&&await e.addConfig("commit.gpgsign","false"),await e.mergeFromTo(t,a)}finally{"true"===r&&await e.addConfig("commit.gpgsign",r)}}(a,n,u),await a.deleteLocalBranch(n),l.json({message:`branch ${n} merged to ${u}`});break}case"getMedia":{const{mediaFolder:r}=t.params,i=await g(a,u,(async()=>{const t=await(0,p.listRepoFiles)(e,r,"",1);return await Promise.all(t.map((t=>(0,f.readMediaFile)(e,t))))}));l.json(i);break}case"getMediaFile":{const{path:r}=t.params,i=await g(a,u,(()=>(0,f.readMediaFile)(e,r)));l.json(i);break}case"persistMedia":{const{asset:r,options:{commitMessage:n}}=t.params,s=await g(a,u,(async()=>(await(0,p.writeFile)(i.default.join(e,r.path),Buffer.from(r.content,r.encoding)),await m(a,n),(0,f.readMediaFile)(e,r.path))));l.json(s);break}case"deleteFile":{const{path:r,options:{commitMessage:i}}=t.params;await g(a,u,(async()=>{await(0,p.deleteFile)(e,r),await m(a,i)})),l.json({message:`deleted file ${r}`});break}case"deleteFiles":{const{paths:r,options:{commitMessage:i}}=t.params;await g(a,u,(async()=>{await Promise.all(r.map((t=>(0,p.deleteFile)(e,t)))),await m(a,i)})),l.json({message:`deleted files ${r.join(", ")}`});break}case"getDeployPreview":l.json(null);break;default:{const e=`Unknown action ${t.action}`;l.status(422).json({error:e});break}}}catch(e){t.error(`Error handling ${JSON.stringify(o.body)}: ${e instanceof Error?e.message:"Unknown error"}`),l.status(500).json({error:"Unknown error"})}finally{c&&c()}}}t.validateRepo=v,t.getSchema=M,t.localGitMiddleware=_,t.registerMiddleware=async function(e,t){const{logger:a}=t,r=i.default.resolve(process.env.GIT_REPO_DIRECTORY||process.cwd());await v({repoPath:r}),e.post("/api/v1",(0,u.joi)(M({repoPath:r}))),e.post("/api/v1",_({repoPath:r,logger:a})),a.info(`Decap CMS Git Proxy Server configured with ${r}`)}},848:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.readMediaFile=t.entriesFromFiles=void 0;const i=r(a(113)),n=r(a(17)),s=a(147);function o(e){return i.default.createHash("sha256").update(e).digest("hex")}function l(e){return e.replace(/\\/g,"/")}t.entriesFromFiles=async function(e,t){return Promise.all(t.map((async t=>{try{const a=await s.promises.readFile(n.default.join(e,t.path));return{data:a.toString(),file:{path:l(t.path),label:t.label,id:o(a)}}}catch(e){return{data:null,file:{path:l(t.path),label:t.label,id:null}}}})))},t.readMediaFile=async function(e,t){const a="base64",r=await s.promises.readFile(n.default.join(e,t));return{id:o(r),content:r.toString(a),encoding:a,path:l(t),name:n.default.basename(t)}}},802:function(e,t,a){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getUpdateDate=t.move=t.deleteFile=t.writeFile=t.listRepoFiles=void 0;const i=r(a(17)),n=a(147);async function s(e,t,a){if(a<=0)return[];try{const r=await n.promises.readdir(e,{withFileTypes:!0}),o=await Promise.all(r.map((r=>{const n=i.default.join(e,r.name);return r.isDirectory()?s(n,t,a-1):[n].filter((e=>e.endsWith(t)))})));return[].concat(...o)}catch(e){return[]}}async function o(e,t){await n.promises.mkdir(i.default.dirname(t),{recursive:!0}),await n.promises.rename(e,t)}t.listRepoFiles=async function(e,t,a,r){return(await s(i.default.join(e,t),a,r)).map((t=>t.slice(e.length+1)))},t.writeFile=async function(e,t){await n.promises.mkdir(i.default.dirname(e),{recursive:!0}),await n.promises.writeFile(e,t)},t.deleteFile=async function(e,t){await n.promises.unlink(i.default.join(e,t)).catch((()=>{}))},t.move=async function(e,t){await o(e,t);const a=i.default.dirname(e),r=i.default.dirname(t),n=await s(a,"",100);await Promise.all(n.map((e=>o(e,e.replace(a,r)))))},t.getUpdateDate=async function(e,t){return n.promises.stat(i.default.join(e,t)).then((e=>e.mtime)).catch((()=>new Date))}},414:e=>{e.exports=require("@hapi/joi")},757:e=>{e.exports=require("async-mutex")},582:e=>{e.exports=require("cors")},142:e=>{e.exports=require("dotenv")},860:e=>{e.exports=require("express")},470:e=>{e.exports=require("morgan")},546:e=>{e.exports=require("simple-git")},419:e=>{e.exports=require("what-the-diff")},773:e=>{e.exports=require("winston")},113:e=>{e.exports=require("crypto")},147:e=>{e.exports=require("fs")},17:e=>{e.exports=require("path")}},t={},a=function a(r){var i=t[r];if(void 0!==i)return i.exports;var n=t[r]={exports:{}};return e[r].call(n.exports,n,n.exports,a),n.exports}(920);module.exports=a})();
|
|
3
|
+
//# sourceMappingURL=index.js.map
|