@jskit-ai/users-core 0.1.110 → 0.1.111

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/users-core",
4
- version: "0.1.110",
4
+ version: "0.1.111",
5
5
  kind: "runtime",
6
6
  description: "Users/account runtime plus HTTP routes for account features.",
7
7
  dependsOn: [
@@ -71,7 +71,10 @@ export default Object.freeze({
71
71
  }
72
72
  ],
73
73
  containerTokens: {
74
- server: [],
74
+ server: [
75
+ "users.profile.sync.service",
76
+ "auth.profile.projector"
77
+ ],
75
78
  client: []
76
79
  }
77
80
  },
@@ -143,16 +146,16 @@ export default Object.freeze({
143
146
  mutations: {
144
147
  dependencies: {
145
148
  runtime: {
146
- "@jskit-ai/auth-core": "0.1.99",
147
- "@jskit-ai/crud-core": "0.1.108",
148
- "@jskit-ai/database-runtime": "0.1.100",
149
- "@jskit-ai/http-runtime": "0.1.99",
150
- "@jskit-ai/json-rest-api-core": "0.1.45",
151
- "@jskit-ai/kernel": "0.1.101",
152
- "@jskit-ai/resource-core": "0.1.45",
153
- "@jskit-ai/resource-crud-core": "0.1.45",
149
+ "@jskit-ai/auth-core": "0.1.100",
150
+ "@jskit-ai/crud-core": "0.1.109",
151
+ "@jskit-ai/database-runtime": "0.1.101",
152
+ "@jskit-ai/http-runtime": "0.1.100",
153
+ "@jskit-ai/json-rest-api-core": "0.1.46",
154
+ "@jskit-ai/kernel": "0.1.102",
155
+ "@jskit-ai/resource-core": "0.1.46",
156
+ "@jskit-ai/resource-crud-core": "0.1.46",
154
157
  "@local/users": "file:packages/users",
155
- "@jskit-ai/uploads-runtime": "0.1.78"
158
+ "@jskit-ai/uploads-runtime": "0.1.79"
156
159
  },
157
160
  dev: {}
158
161
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/users-core",
3
- "version": "0.1.110",
3
+ "version": "0.1.111",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "test": "node --test"
@@ -12,14 +12,14 @@
12
12
  "./shared/resources/userSettingsResource": "./src/shared/resources/userSettingsResource.js"
13
13
  },
14
14
  "dependencies": {
15
- "@jskit-ai/auth-core": "0.1.99",
16
- "@jskit-ai/database-runtime": "0.1.100",
17
- "@jskit-ai/http-runtime": "0.1.99",
18
- "@jskit-ai/json-rest-api-core": "0.1.45",
19
- "@jskit-ai/kernel": "0.1.101",
20
- "@jskit-ai/resource-crud-core": "0.1.45",
21
- "@jskit-ai/resource-core": "0.1.45",
22
- "@jskit-ai/uploads-runtime": "0.1.78",
15
+ "@jskit-ai/auth-core": "0.1.100",
16
+ "@jskit-ai/database-runtime": "0.1.101",
17
+ "@jskit-ai/http-runtime": "0.1.100",
18
+ "@jskit-ai/json-rest-api-core": "0.1.46",
19
+ "@jskit-ai/kernel": "0.1.102",
20
+ "@jskit-ai/resource-crud-core": "0.1.46",
21
+ "@jskit-ai/resource-core": "0.1.46",
22
+ "@jskit-ai/uploads-runtime": "0.1.79",
23
23
  "json-rest-schema": "1.x.x"
24
24
  }
25
25
  }
@@ -2,8 +2,8 @@ import { createService as createAuthProfileSyncService } from "./common/services
2
2
  import { resolveProfileSyncLifecycleContributors } from "./profileSyncLifecycleContributorRegistry.js";
3
3
 
4
4
  function registerUsersCore(app) {
5
- if (!app || typeof app.singleton !== "function") {
6
- throw new Error("registerUsersCore requires application singleton().");
5
+ if (!app || typeof app.singleton !== "function" || typeof app.has !== "function") {
6
+ throw new Error("registerUsersCore requires application singleton()/has().");
7
7
  }
8
8
 
9
9
  app.singleton("users.profile.sync.service", (scope) => {
@@ -13,6 +13,10 @@ function registerUsersCore(app) {
13
13
  lifecycleContributors: resolveProfileSyncLifecycleContributors(scope)
14
14
  });
15
15
  });
16
+
17
+ if (!app.has("auth.profile.projector")) {
18
+ app.singleton("auth.profile.projector", (scope) => scope.make("users.profile.sync.service"));
19
+ }
16
20
  }
17
21
 
18
22
  export { registerUsersCore };
@@ -5,6 +5,9 @@ import { registerUsersCore } from "../src/server/registerUsersCore.js";
5
5
  test("registerUsersCore only binds users-core singletons", () => {
6
6
  const singletonTokens = [];
7
7
  const app = {
8
+ has() {
9
+ return false;
10
+ },
8
11
  singleton(token) {
9
12
  singletonTokens.push(String(token || ""));
10
13
  return this;
@@ -14,12 +17,16 @@ test("registerUsersCore only binds users-core singletons", () => {
14
17
  registerUsersCore(app);
15
18
 
16
19
  assert.deepEqual(singletonTokens.sort(), [
20
+ "auth.profile.projector",
17
21
  "users.profile.sync.service"
18
22
  ]);
19
23
  });
20
24
 
21
25
  test("registerUsersCore still works when action runtime has not installed actionSurfaceSource yet", () => {
22
26
  const app = {
27
+ has() {
28
+ return false;
29
+ },
23
30
  singleton() {
24
31
  return this;
25
32
  }
@@ -27,3 +34,20 @@ test("registerUsersCore still works when action runtime has not installed action
27
34
 
28
35
  assert.doesNotThrow(() => registerUsersCore(app));
29
36
  });
37
+
38
+ test("registerUsersCore preserves an existing auth profile projector", () => {
39
+ const singletonTokens = [];
40
+ const app = {
41
+ has(token) {
42
+ return token === "auth.profile.projector";
43
+ },
44
+ singleton(token) {
45
+ singletonTokens.push(String(token || ""));
46
+ return this;
47
+ }
48
+ };
49
+
50
+ registerUsersCore(app);
51
+
52
+ assert.deepEqual(singletonTokens, ["users.profile.sync.service"]);
53
+ });