@raketa-cloud/admin 1.8.10 → 1.8.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/application.css +109 -0
  2. package/package.json +4 -2
  3. package/src/HonoAdapter.js +22 -13
  4. package/src/Logger.js +7 -8
  5. package/src/RaketaContext.js +1 -0
  6. package/src/cipher.js +2 -2
  7. package/src/cloud/ContentTasks.js +31 -0
  8. package/src/cloud/RaketaClient.js +1 -1
  9. package/src/cloud/Redirects.js +2 -2
  10. package/src/cloud/ResourceChanges.js +1 -1
  11. package/src/cloud/ResourceRevisions.js +2 -2
  12. package/src/cloud/Resources.js +28 -12
  13. package/src/cloud/Tags.js +4 -4
  14. package/src/cloud/documents/common.js +16 -0
  15. package/src/cloud/documents/contentTasksDocuments.js +59 -0
  16. package/src/cloud/documents/resourcesDocuments.js +12 -0
  17. package/src/filters.js +3 -3
  18. package/src/handlers/TagsHandler.js +2 -2
  19. package/src/handlers/_shared/getResourceUpdateDestination.js +1 -1
  20. package/src/handlers/categories/index.js +3 -3
  21. package/src/handlers/content_tasks/ContentTasksHandler.js +32 -0
  22. package/src/handlers/resource_revisions/LocksHandler.js +4 -1
  23. package/src/handlers/resources/ClonesHandler.js +1 -3
  24. package/src/handlers/resources/ExportsHandler.js +1 -5
  25. package/src/handlers/resources/ResourcesHandler.js +1 -1
  26. package/src/handlers/resources/TranslationsHandler.js +28 -19
  27. package/src/handlers/resources/URLsHandler.js +3 -1
  28. package/src/helpers/AuthHelper.js +1 -1
  29. package/src/helpers/FormBuilder.js +14 -14
  30. package/src/helpers/Pagination.js +5 -5
  31. package/src/helpers/historyUtils.js +3 -3
  32. package/src/helpers/utils.js +6 -1
  33. package/src/index.js +1 -0
  34. package/src/routeMember.js +9 -4
  35. package/src/routeNestedCollection.js +14 -29
  36. package/src/routeNestedMember.js +17 -6
  37. package/src/routeStandard.js +5 -1
  38. package/src/setupAuthentication.js +1 -1
  39. package/src/setupCloud.js +5 -0
  40. package/src/tests/Adapter.test.js +2 -2
  41. package/src/tests/HonoAdapter.coverage.test.js +44 -22
  42. package/src/tests/HonoAdapter.filter.test.js +28 -18
  43. package/src/tests/HonoAdapter.test.js +3 -3
  44. package/src/tests/RaketaClient.test.js +427 -413
  45. package/src/tests/RaketaContext.test.js +1 -1
  46. package/src/tests/buildResourcePath.test.js +1 -1
  47. package/src/tests/cipher.test.js +16 -16
  48. package/src/tests/filters.test.js +24 -24
  49. package/src/tests/handlers/RedirectsHandler.test/destroy.test.js +1 -1
  50. package/src/tests/handlers/TagsHandler.test/create.test.js +2 -2
  51. package/src/tests/handlers/TagsHandler.test/destroy.test.js +1 -1
  52. package/src/tests/handlers/TagsHandler.test/update.test.js +2 -2
  53. package/src/tests/handlers/categories/create.test.js +2 -2
  54. package/src/tests/handlers/categories/destroy.test.js +1 -1
  55. package/src/tests/handlers/content_tasks/ContentTasksHandler.test/index.test.js +161 -0
  56. package/src/tests/handlers/resource_revisions/CancelSchedulesHandler.test/create.test.js +2 -2
  57. package/src/tests/handlers/resource_revisions/CodeHandler.test/update.test.js +1 -1
  58. package/src/tests/handlers/resource_revisions/GeneralHandler.test/update.test.js +1 -1
  59. package/src/tests/handlers/resource_revisions/LocksHandler.test/create.test.js +5 -5
  60. package/src/tests/handlers/resource_revisions/LocksHandler.test/create_form.test.js +6 -2
  61. package/src/tests/handlers/resource_revisions/MetaHandler.test/update.test.js +1 -1
  62. package/src/tests/handlers/resource_revisions/PublishesHandler.test/create.test.js +5 -5
  63. package/src/tests/handlers/resource_revisions/ResourceRevisionsHandler.test/create.test.js +2 -2
  64. package/src/tests/handlers/resource_revisions/ResourceRevisionsHandler.test/destroy.test.js +1 -1
  65. package/src/tests/handlers/resource_revisions/RevertsHandler.test/create.test.js +18 -3
  66. package/src/tests/handlers/resource_revisions/TagHandler.test/update.test.js +1 -1
  67. package/src/tests/handlers/resource_revisions/UnlocksHandler.test/create.test.js +2 -2
  68. package/src/tests/handlers/resource_revisions/VisualHandler.test/update.test.js +1 -1
  69. package/src/tests/handlers/resource_revisions/WidgetHandler.test/update.test.js +2 -2
  70. package/src/tests/handlers/resources/ChangeHandler.test/show.test.js +7 -2
  71. package/src/tests/handlers/resources/ClonesHandler.test/create.test.js +1 -3
  72. package/src/tests/handlers/resources/ExportsHandler.test/index.test.js +8 -8
  73. package/src/tests/handlers/resources/HistoryHandler.test/index.test.js +1 -1
  74. package/src/tests/handlers/resources/ResourcesAPIHandler.test/index.test.js +1 -5
  75. package/src/tests/handlers/resources/ResourcesHandler.test/create.test.js +2 -2
  76. package/src/tests/handlers/resources/ResourcesHandler.test/show.test.js +1 -1
  77. package/src/tests/handlers/resources/TranslationsHandler.test/create.test.js +24 -14
  78. package/src/tests/handlers/resources/TranslationsHandler.test/create_form.test.js +1 -1
  79. package/src/tests/handlers/resources/TranslationsHandler.test/index.test.js +3 -3
  80. package/src/tests/handlers/resources/URLsHandler.test/create.test.js +4 -6
  81. package/src/tests/helpers/AuthHelper.test.js +11 -12
  82. package/src/tests/helpers/CSVExportHelper.test.js +3 -3
  83. package/src/tests/helpers/FormBuilder.test.js +21 -21
  84. package/src/tests/helpers/HTMLBuilder.test.js +4 -4
  85. package/src/tests/helpers/Inflector.test.js +1 -1
  86. package/src/tests/helpers/Pagination.test.js +1 -1
  87. package/src/tests/helpers/utils.test.js +46 -0
  88. package/src/tests/routeCategoriesModule.test.js +10 -5
  89. package/src/tests/routeCollection.test.js +1 -1
  90. package/src/tests/routeMember.test.js +2 -2
  91. package/src/tests/routeNestedCollection.test.js +3 -3
  92. package/src/tests/routeNestedMember.test.js +3 -3
  93. package/src/tests/routeResourceModule.test.js +15 -16
  94. package/src/tests/routeSettings.test.js +3 -3
  95. package/src/tests/routeStandard.test.js +27 -9
  96. package/src/tests/setupAuthentication.test.js +9 -6
  97. package/src/tests/support/factory.js +33 -0
  98. package/src/tests/utils.test.js +19 -19
  99. package/src/views/content_tasks/index.ejs +191 -0
  100. package/src/views/layouts/application.ejs +2 -1
  101. package/src/views/resources/_shared/_toolbar.ejs +33 -2
  102. package/src/views/resources/_shared/_translations_strip.ejs +71 -0
  103. package/src/views/resources/index.ejs +5 -0
  104. package/src/views/resources/show.ejs +1 -29
  105. package/src/views/resources/translations/create_form.ejs +13 -0
@@ -15,7 +15,7 @@ describe("HonoAdapter parseFormBody", () => {
15
15
  "order[items][2][name]": "A t-shirt",
16
16
  "order[items][2][price]": 20,
17
17
  "order[items][2][qty]": 1,
18
- })
18
+ }),
19
19
  ).toEqual({
20
20
  order: {
21
21
  email: "john@example.com",
@@ -36,4 +36,4 @@ describe("HonoAdapter parseFormBody", () => {
36
36
  },
37
37
  });
38
38
  });
39
- });
39
+ });
@@ -60,7 +60,7 @@ describe("HonoAdapter constructor", () => {
60
60
  expect(router.get).toHaveBeenCalledWith("/", expect.any(Function));
61
61
 
62
62
  const redirectHandler = router.get.mock.calls.find(
63
- ([path]) => path === "/"
63
+ ([path]) => path === "/",
64
64
  )[1];
65
65
  const c = { redirect: jest.fn().mockReturnValue("redirected") };
66
66
  expect(redirectHandler(c)).toBe("redirected");
@@ -139,7 +139,7 @@ describe("HonoAdapter.renderPartial", () => {
139
139
  expect(ejs.render).toHaveBeenCalledWith(
140
140
  "<%= foo %>",
141
141
  expect.objectContaining({ foo: "bar", extra: 1 }),
142
- expect.objectContaining({ filename: expect.any(String) })
142
+ expect.objectContaining({ filename: expect.any(String) }),
143
143
  );
144
144
  });
145
145
 
@@ -228,7 +228,7 @@ describe("HonoAdapter.renderLayout", () => {
228
228
  expect(result).toBe("<html>ok</html>");
229
229
  expect(ejs.renderFile).toHaveBeenCalledWith(
230
230
  expect.stringContaining("/views/layouts/application.ejs"),
231
- { foo: "bar", body: "<p>body</p>" }
231
+ { foo: "bar", body: "<p>body</p>" },
232
232
  );
233
233
  });
234
234
  });
@@ -291,7 +291,13 @@ describe("HonoAdapter.createContext", () => {
291
291
  const adapter = new HonoAdapter(makeRouter(), makeConfig());
292
292
  const routerCtx = makeRouterCtx();
293
293
 
294
- const ctx = await adapter.createContext(routerCtx, () => {}, "GET", "pages", "index");
294
+ const ctx = await adapter.createContext(
295
+ routerCtx,
296
+ () => {},
297
+ "GET",
298
+ "pages",
299
+ "index",
300
+ );
295
301
 
296
302
  expect(ctx).toBeInstanceOf(RaketaContext);
297
303
  expect(ctx.body).toEqual({ foo: "bar" });
@@ -307,7 +313,13 @@ describe("HonoAdapter.createContext", () => {
307
313
  },
308
314
  });
309
315
 
310
- const ctx = await adapter.createContext(routerCtx, () => {}, "GET", "pages", "index");
316
+ const ctx = await adapter.createContext(
317
+ routerCtx,
318
+ () => {},
319
+ "GET",
320
+ "pages",
321
+ "index",
322
+ );
311
323
 
312
324
  expect(ctx.body).toBe("plain text");
313
325
  });
@@ -317,14 +329,18 @@ describe("HonoAdapter.createContext", () => {
317
329
  const formBody = { "user[name]": "Jane" };
318
330
  const routerCtx = makeRouterCtx({
319
331
  req: {
320
- header: jest
321
- .fn()
322
- .mockReturnValue("application/x-www-form-urlencoded"),
332
+ header: jest.fn().mockReturnValue("application/x-www-form-urlencoded"),
323
333
  parseBody: jest.fn().mockResolvedValue(formBody),
324
334
  },
325
335
  });
326
336
 
327
- const ctx = await adapter.createContext(routerCtx, () => {}, "POST", "pages", "create");
337
+ const ctx = await adapter.createContext(
338
+ routerCtx,
339
+ () => {},
340
+ "POST",
341
+ "pages",
342
+ "create",
343
+ );
328
344
 
329
345
  expect(ctx.resourceParams).toEqual({ user: { name: "Jane" } });
330
346
  });
@@ -338,7 +354,13 @@ describe("HonoAdapter.createContext", () => {
338
354
  },
339
355
  });
340
356
 
341
- const ctx = await adapter.createContext(routerCtx, () => {}, "POST", "pages", "create");
357
+ const ctx = await adapter.createContext(
358
+ routerCtx,
359
+ () => {},
360
+ "POST",
361
+ "pages",
362
+ "create",
363
+ );
342
364
 
343
365
  expect(ctx.body).toEqual({ raw: "data" });
344
366
  });
@@ -386,7 +408,7 @@ describe("HonoAdapter.createAction", () => {
386
408
 
387
409
  await adapter.createAction(
388
410
  ["GET", "/pages", "pages", "resources", "index", handler],
389
- {}
411
+ {},
390
412
  );
391
413
 
392
414
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -407,7 +429,7 @@ describe("HonoAdapter.createAction", () => {
407
429
 
408
430
  await adapter.createAction(
409
431
  ["POST", "/pages", "pages", "pages", "create_form", handler],
410
- {}
432
+ {},
411
433
  );
412
434
 
413
435
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -425,7 +447,7 @@ describe("HonoAdapter.createAction", () => {
425
447
 
426
448
  await adapter.createAction(
427
449
  ["GET", "/api/pages", "pages", "pages", "index", handler],
428
- {}
450
+ {},
429
451
  );
430
452
 
431
453
  const registered = getRegisteredHandler(adapter, "/en/api/pages");
@@ -443,7 +465,7 @@ describe("HonoAdapter.createAction", () => {
443
465
 
444
466
  await adapter.createAction(
445
467
  ["GET", "/exports", "pages", "pages", "index", handler],
446
- {}
468
+ {},
447
469
  );
448
470
 
449
471
  const registered = getRegisteredHandler(adapter, "/en/exports");
@@ -463,7 +485,7 @@ describe("HonoAdapter.createAction", () => {
463
485
 
464
486
  await adapter.createAction(
465
487
  ["GET", "/pages", "pages", "pages", "index", handler],
466
- {}
488
+ {},
467
489
  );
468
490
 
469
491
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -482,7 +504,7 @@ describe("HonoAdapter.createAction", () => {
482
504
 
483
505
  await adapter.createAction(
484
506
  ["GET", "/pages", "pages", "pages", "index", handler],
485
- {}
507
+ {},
486
508
  );
487
509
 
488
510
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -502,7 +524,7 @@ describe("HonoAdapter.createAction", () => {
502
524
 
503
525
  await adapter.createAction(
504
526
  ["GET", "/pages", "pages", "pages", "index", handler],
505
- {}
527
+ {},
506
528
  );
507
529
 
508
530
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -522,7 +544,7 @@ describe("HonoAdapter.createAction", () => {
522
544
 
523
545
  await adapter.createAction(
524
546
  ["GET", "/pages", "pages", "pages", "index", handler],
525
- {}
547
+ {},
526
548
  );
527
549
 
528
550
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -542,7 +564,7 @@ describe("HonoAdapter.createAction", () => {
542
564
 
543
565
  await adapter.createAction(
544
566
  ["GET", "/pages", "pages", "pages", "index", handler],
545
- {}
567
+ {},
546
568
  );
547
569
 
548
570
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -561,7 +583,7 @@ describe("HonoAdapter.createAction", () => {
561
583
 
562
584
  await adapter.createAction(
563
585
  ["GET", "/pages", "pages", "pages", "index", handler],
564
- {}
586
+ {},
565
587
  );
566
588
 
567
589
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -580,7 +602,7 @@ describe("HonoAdapter.createAction", () => {
580
602
 
581
603
  await adapter.createAction(
582
604
  ["GET", "/pages", "pages", "pages", "index", handler],
583
- {}
605
+ {},
584
606
  );
585
607
 
586
608
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -598,7 +620,7 @@ describe("HonoAdapter.createAction", () => {
598
620
 
599
621
  await adapter.createAction(
600
622
  ["GET", "/pages", "pages", "pages", "index", handler],
601
- {}
623
+ {},
602
624
  );
603
625
 
604
626
  const registered = getRegisteredHandler(adapter, "/en/pages");
@@ -4,37 +4,47 @@ jest.mock("../setupAuthentication", () => jest.fn());
4
4
 
5
5
  describe("HonoAdapter Global Filters", () => {
6
6
  let adapter;
7
-
7
+
8
8
  beforeEach(() => {
9
- adapter = new HonoAdapter({
10
- get: jest.fn(), post: jest.fn(), put: jest.fn(), delete: jest.fn(),
11
- router: { routes: [] }
12
- }, {
13
- i18n: { locales: { en: "English" }, defaultLocale: "en", timezones: {} },
14
- remoteConfig: {},
15
- layout: {}
16
- });
9
+ adapter = new HonoAdapter(
10
+ {
11
+ get: jest.fn(),
12
+ post: jest.fn(),
13
+ put: jest.fn(),
14
+ delete: jest.fn(),
15
+ router: { routes: [] },
16
+ },
17
+ {
18
+ i18n: {
19
+ locales: { en: "English" },
20
+ defaultLocale: "en",
21
+ timezones: {},
22
+ },
23
+ remoteConfig: {},
24
+ layout: {},
25
+ },
26
+ );
17
27
  });
18
-
28
+
19
29
  test("setBeforeFilter adds filters to the globalBeforeFilters array", () => {
20
30
  expect(adapter.globalBeforeFilters).toEqual([]);
21
-
31
+
22
32
  const pattern = /\/settings\/content/;
23
33
  const filter = () => ({ assigns: { foo: "bar" } });
24
-
34
+
25
35
  adapter.setBeforeFilter(pattern, filter);
26
-
36
+
27
37
  expect(adapter.globalBeforeFilters).toEqual([{ pattern, filter }]);
28
38
  });
29
-
39
+
30
40
  test("setAfterFilter adds filters to the globalAfterFilters array", () => {
31
41
  expect(adapter.globalAfterFilters).toEqual([]);
32
-
42
+
33
43
  const pattern = /\/settings\/content/;
34
44
  const filter = () => ({ assigns: { foo: "bar" } });
35
-
45
+
36
46
  adapter.setAfterFilter(pattern, filter);
37
-
47
+
38
48
  expect(adapter.globalAfterFilters).toEqual([{ pattern, filter }]);
39
49
  });
40
- });
50
+ });
@@ -58,7 +58,7 @@ describe("HonoAdapter", () => {
58
58
  "order[items][2][name]": "A t-shirt",
59
59
  "order[items][2][price]": 20,
60
60
  "order[items][2][qty]": 1,
61
- })
61
+ }),
62
62
  ).toEqual({
63
63
  order: {
64
64
  email: "john@example.com",
@@ -122,7 +122,7 @@ describe("HonoAdapter", () => {
122
122
  expect(
123
123
  adapter.parseFormBody({
124
124
  "tags[]": ["javascript", "react", "node"],
125
- })
125
+ }),
126
126
  ).toEqual({
127
127
  tags: ["javascript", "react", "node"],
128
128
  });
@@ -157,7 +157,7 @@ describe("HonoAdapter", () => {
157
157
  },
158
158
  },
159
159
  },
160
- "<h1>Hi</h1>"
160
+ "<h1>Hi</h1>",
161
161
  );
162
162
 
163
163
  expect(typeof result).toBe("string");