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 ADDED
@@ -0,0 +1,6 @@
1
+ # optional, defaults to current directory
2
+ GIT_REPO_DIRECTORY=FULL_PATH_TO_LOCAL_GIT_REPO
3
+ # optional, defaults to 8081
4
+ PORT=CUSTOM_PORT
5
+ # optional, defaults to false
6
+ LOG_LEVEL=info
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