@jskit-ai/console-core 0.1.21 → 0.1.22

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.
@@ -1,7 +1,7 @@
1
1
  export default Object.freeze({
2
2
  packageVersion: 1,
3
3
  packageId: "@jskit-ai/console-core",
4
- version: "0.1.21",
4
+ version: "0.1.22",
5
5
  kind: "runtime",
6
6
  description: "Console runtime: console settings schema, bootstrap flags, actions, and HTTP routes.",
7
7
  dependsOn: [
@@ -74,12 +74,12 @@ export default Object.freeze({
74
74
  mutations: {
75
75
  dependencies: {
76
76
  runtime: {
77
- "@jskit-ai/auth-core": "0.1.57",
78
- "@jskit-ai/database-runtime": "0.1.58",
79
- "@jskit-ai/http-runtime": "0.1.57",
80
- "@jskit-ai/kernel": "0.1.58",
81
- "@jskit-ai/resource-crud-core": "0.1.3",
82
- "@jskit-ai/users-core": "0.1.68"
77
+ "@jskit-ai/auth-core": "0.1.58",
78
+ "@jskit-ai/database-runtime": "0.1.59",
79
+ "@jskit-ai/http-runtime": "0.1.58",
80
+ "@jskit-ai/kernel": "0.1.59",
81
+ "@jskit-ai/resource-crud-core": "0.1.4",
82
+ "@jskit-ai/users-core": "0.1.69"
83
83
  },
84
84
  dev: {}
85
85
  },
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@jskit-ai/console-core",
3
- "version": "0.1.21",
3
+ "version": "0.1.22",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "test": "node --test"
7
7
  },
8
8
  "dependencies": {
9
- "@jskit-ai/auth-core": "0.1.57",
10
- "@jskit-ai/database-runtime": "0.1.58",
11
- "@jskit-ai/http-runtime": "0.1.57",
12
- "@jskit-ai/kernel": "0.1.58",
13
- "@jskit-ai/resource-crud-core": "0.1.3",
14
- "@jskit-ai/users-core": "0.1.68",
9
+ "@jskit-ai/auth-core": "0.1.58",
10
+ "@jskit-ai/database-runtime": "0.1.59",
11
+ "@jskit-ai/http-runtime": "0.1.58",
12
+ "@jskit-ai/kernel": "0.1.59",
13
+ "@jskit-ai/resource-crud-core": "0.1.4",
14
+ "@jskit-ai/users-core": "0.1.69",
15
15
  "json-rest-schema": "1.x.x"
16
16
  }
17
17
  }
@@ -1,6 +1,10 @@
1
- import { withStandardErrorResponses } from "@jskit-ai/http-runtime/shared/validators/errorResponses";
1
+ import { createJsonApiResourceRouteContract } from "@jskit-ai/http-runtime/shared/validators/jsonApiRouteTransport";
2
2
  import { consoleSettingsResource } from "../../shared/resources/consoleSettingsResource.js";
3
3
 
4
+ function resolveConsoleSettingsRecordId() {
5
+ return "console-settings";
6
+ }
7
+
4
8
  function bootConsoleSettingsRoutes(app) {
5
9
  if (!app || typeof app.make !== "function") {
6
10
  throw new Error("bootConsoleSettingsRoutes requires application make().");
@@ -18,8 +22,12 @@ function bootConsoleSettingsRoutes(app) {
18
22
  tags: ["console", "settings"],
19
23
  summary: "Get console settings"
20
24
  },
21
- responses: withStandardErrorResponses({
22
- 200: consoleSettingsResource.operations.view.output
25
+ ...createJsonApiResourceRouteContract({
26
+ requestType: "console-settings",
27
+ responseType: "console-settings",
28
+ output: consoleSettingsResource.operations.view.output,
29
+ outputKind: "record",
30
+ getRecordId: resolveConsoleSettingsRecordId
23
31
  })
24
32
  },
25
33
  async function (request, reply) {
@@ -40,13 +48,15 @@ function bootConsoleSettingsRoutes(app) {
40
48
  tags: ["console", "settings"],
41
49
  summary: "Update console settings"
42
50
  },
43
- body: consoleSettingsResource.operations.replace.body,
44
- responses: withStandardErrorResponses(
45
- {
46
- 200: consoleSettingsResource.operations.view.output
47
- },
48
- { includeValidation400: true }
49
- )
51
+ ...createJsonApiResourceRouteContract({
52
+ requestType: "console-settings",
53
+ responseType: "console-settings",
54
+ body: consoleSettingsResource.operations.replace.body,
55
+ output: consoleSettingsResource.operations.view.output,
56
+ outputKind: "record",
57
+ getRecordId: resolveConsoleSettingsRecordId,
58
+ includeValidation400: true
59
+ })
50
60
  },
51
61
  async function (request, reply) {
52
62
  const response = await request.executeAction({
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  emptyInputValidator
3
3
  } from "@jskit-ai/kernel/shared/actions/actionContributorHelpers";
4
+ import { returnJsonApiData } from "@jskit-ai/http-runtime/shared";
4
5
  import { consoleSettingsResource } from "../../shared/resources/consoleSettingsResource.js";
5
6
 
6
7
  const consoleSettingsActions = Object.freeze([
@@ -14,16 +15,16 @@ const consoleSettingsActions = Object.freeze([
14
15
  require: "authenticated"
15
16
  },
16
17
  input: emptyInputValidator,
17
- output: consoleSettingsResource.operations.view.output,
18
+ output: null,
18
19
  idempotency: "none",
19
20
  audit: {
20
21
  actionName: "console.settings.read"
21
22
  },
22
23
  observability: {},
23
24
  async execute(_input, context, deps) {
24
- return deps.consoleSettingsService.getSettings({
25
+ return returnJsonApiData(await deps.consoleSettingsService.getSettings({
25
26
  context
26
- });
27
+ }));
27
28
  }
28
29
  },
29
30
  {
@@ -36,16 +37,16 @@ const consoleSettingsActions = Object.freeze([
36
37
  require: "authenticated"
37
38
  },
38
39
  input: consoleSettingsResource.operations.replace.body,
39
- output: consoleSettingsResource.operations.replace.output,
40
+ output: null,
40
41
  idempotency: "optional",
41
42
  audit: {
42
43
  actionName: "console.settings.update"
43
44
  },
44
45
  observability: {},
45
46
  async execute(input, context, deps) {
46
- return deps.consoleSettingsService.updateSettings(input, {
47
+ return returnJsonApiData(await deps.consoleSettingsService.updateSettings(input, {
47
48
  context
48
- });
49
+ }));
49
50
  }
50
51
  }
51
52
  ]);
@@ -79,9 +79,16 @@ function createActionRequest({ input = {}, executeAction, file = null }) {
79
79
 
80
80
  test("console-core boot mounts console routes", async () => {
81
81
  const routes = await registerRoutes();
82
+ const getRoute = findRoute(routes, { method: "GET", path: "/api/console/settings" });
83
+ const patchRoute = findRoute(routes, { method: "PATCH", path: "/api/console/settings" });
82
84
 
83
- assert.equal(findRoute(routes, { method: "GET", path: "/api/console/settings" })?.path, "/api/console/settings");
84
- assert.equal(findRoute(routes, { method: "PATCH", path: "/api/console/settings" })?.path, "/api/console/settings");
85
+ assert.equal(getRoute?.path, "/api/console/settings");
86
+ assert.equal(patchRoute?.path, "/api/console/settings");
87
+ assert.equal(getRoute?.transport?.kind, "jsonapi-resource");
88
+ assert.equal(patchRoute?.transport?.kind, "jsonapi-resource");
89
+ assert.equal(getRoute?.responses?.[200]?.transportSchema?.required?.[0], "data");
90
+ assert.equal(patchRoute?.advanced?.fastifySchema?.body?.required?.[0], "data");
91
+ assert.equal(patchRoute?.responses?.[200]?.transportSchema?.required?.[0], "data");
85
92
  });
86
93
 
87
94
  test("console settings route handlers use request.input payloads", async () => {