@webda/core 4.0.0-beta.3 → 4.0.0-beta.4

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 (135) hide show
  1. package/lib/application/application.d.ts +31 -0
  2. package/lib/application/application.d.ts.map +1 -1
  3. package/lib/application/application.js +55 -2
  4. package/lib/application/application.js.map +1 -1
  5. package/lib/application/deployment.d.ts +93 -0
  6. package/lib/application/deployment.d.ts.map +1 -0
  7. package/lib/application/deployment.js +99 -0
  8. package/lib/application/deployment.js.map +1 -0
  9. package/lib/application/unpackedapplication.d.ts.map +1 -1
  10. package/lib/application/unpackedapplication.js +9 -1
  11. package/lib/application/unpackedapplication.js.map +1 -1
  12. package/lib/bin/cli.d.ts +36 -1
  13. package/lib/bin/cli.d.ts.map +1 -1
  14. package/lib/bin/cli.js +108 -2
  15. package/lib/bin/cli.js.map +1 -1
  16. package/lib/contexts/execution.js +1 -1
  17. package/lib/contexts/execution.js.map +1 -1
  18. package/lib/contexts/operationcontext.d.ts +3 -0
  19. package/lib/contexts/operationcontext.d.ts.map +1 -1
  20. package/lib/contexts/operationcontext.js +6 -3
  21. package/lib/contexts/operationcontext.js.map +1 -1
  22. package/lib/core/core.js +1 -1
  23. package/lib/core/core.js.map +1 -1
  24. package/lib/core/hooks.d.ts +22 -0
  25. package/lib/core/hooks.d.ts.map +1 -1
  26. package/lib/core/hooks.js +24 -0
  27. package/lib/core/hooks.js.map +1 -1
  28. package/lib/deployers/deployer.d.ts +157 -0
  29. package/lib/deployers/deployer.d.ts.map +1 -0
  30. package/lib/deployers/deployer.js +81 -0
  31. package/lib/deployers/deployer.js.map +1 -0
  32. package/lib/deployers/git.d.ts +27 -0
  33. package/lib/deployers/git.d.ts.map +1 -0
  34. package/lib/deployers/git.js +66 -0
  35. package/lib/deployers/git.js.map +1 -0
  36. package/lib/deployers/packager.d.ts +85 -0
  37. package/lib/deployers/packager.d.ts.map +1 -0
  38. package/lib/deployers/packager.js +259 -0
  39. package/lib/deployers/packager.js.map +1 -0
  40. package/lib/index.d.ts +8 -3
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js +8 -3
  43. package/lib/index.js.map +1 -1
  44. package/lib/models/coremodel.model.d.ts.map +1 -1
  45. package/lib/models/coremodel.model.js.map +1 -1
  46. package/lib/models/decorator.d.ts +4 -0
  47. package/lib/models/decorator.d.ts.map +1 -1
  48. package/lib/models/decorator.js +4 -0
  49. package/lib/models/decorator.js.map +1 -1
  50. package/lib/models/deployment.d.ts +2 -21
  51. package/lib/models/deployment.d.ts.map +1 -1
  52. package/lib/models/encrypted.model.d.ts +46 -0
  53. package/lib/models/encrypted.model.d.ts.map +1 -0
  54. package/lib/models/encrypted.model.js +87 -0
  55. package/lib/models/encrypted.model.js.map +1 -0
  56. package/lib/models/ident.model.d.ts +103 -64
  57. package/lib/models/ident.model.d.ts.map +1 -1
  58. package/lib/models/ident.model.js +168 -76
  59. package/lib/models/ident.model.js.map +1 -1
  60. package/lib/models/ownermodel.model.d.ts.map +1 -1
  61. package/lib/models/ownermodel.model.js +2 -1
  62. package/lib/models/ownermodel.model.js.map +1 -1
  63. package/lib/models/password.model.d.ts +78 -0
  64. package/lib/models/password.model.d.ts.map +1 -0
  65. package/lib/models/password.model.js +171 -0
  66. package/lib/models/password.model.js.map +1 -0
  67. package/lib/models/refreshtoken.model.d.ts +30 -0
  68. package/lib/models/refreshtoken.model.d.ts.map +1 -0
  69. package/lib/models/refreshtoken.model.js +29 -0
  70. package/lib/models/refreshtoken.model.js.map +1 -0
  71. package/lib/models/registry.model.d.ts.map +1 -1
  72. package/lib/models/registry.model.js.map +1 -1
  73. package/lib/models/simpleuser.model.d.ts.map +1 -1
  74. package/lib/models/simpleuser.model.js +2 -1
  75. package/lib/models/simpleuser.model.js.map +1 -1
  76. package/lib/models/user.model.d.ts +23 -23
  77. package/lib/models/user.model.d.ts.map +1 -1
  78. package/lib/models/user.model.js +68 -29
  79. package/lib/models/user.model.js.map +1 -1
  80. package/lib/services/audit.model.d.ts.map +1 -1
  81. package/lib/services/audit.model.js +2 -1
  82. package/lib/services/audit.model.js.map +1 -1
  83. package/lib/services/domainservice.service.d.ts +39 -0
  84. package/lib/services/domainservice.service.d.ts.map +1 -1
  85. package/lib/services/domainservice.service.js +78 -2
  86. package/lib/services/domainservice.service.js.map +1 -1
  87. package/lib/services/iauthentication.d.ts +196 -3
  88. package/lib/services/iauthentication.d.ts.map +1 -1
  89. package/lib/services/servicecommands.d.ts.map +1 -1
  90. package/lib/services/servicecommands.js +17 -11
  91. package/lib/services/servicecommands.js.map +1 -1
  92. package/lib/services/token.service.d.ts +95 -0
  93. package/lib/services/token.service.d.ts.map +1 -0
  94. package/lib/services/token.service.js +182 -0
  95. package/lib/services/token.service.js.map +1 -0
  96. package/lib/session/manager.model.d.ts +16 -0
  97. package/lib/session/manager.model.d.ts.map +1 -1
  98. package/lib/session/manager.model.js +58 -1
  99. package/lib/session/manager.model.js.map +1 -1
  100. package/lib/session/session.d.ts +44 -1
  101. package/lib/session/session.d.ts.map +1 -1
  102. package/lib/session/session.js +51 -2
  103. package/lib/session/session.js.map +1 -1
  104. package/lib/stores/memory.service.d.ts.map +1 -1
  105. package/lib/stores/memory.service.js +4 -3
  106. package/lib/stores/memory.service.js.map +1 -1
  107. package/lib/templates/templates.d.ts +8 -0
  108. package/lib/templates/templates.d.ts.map +1 -1
  109. package/lib/templates/templates.js +10 -1
  110. package/lib/templates/templates.js.map +1 -1
  111. package/lib/test/behavior-fixture.model.d.ts +30 -0
  112. package/lib/test/behavior-fixture.model.d.ts.map +1 -0
  113. package/lib/test/behavior-fixture.model.js +63 -0
  114. package/lib/test/behavior-fixture.model.js.map +1 -0
  115. package/lib/test/legacyident.fixture.model.d.ts +98 -0
  116. package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
  117. package/lib/test/legacyident.fixture.model.js +125 -0
  118. package/lib/test/legacyident.fixture.model.js.map +1 -0
  119. package/lib/test/objects.d.ts +2 -2
  120. package/lib/test/objects.d.ts.map +1 -1
  121. package/lib/test/objects.js +2 -2
  122. package/lib/test/objects.js.map +1 -1
  123. package/package.json +25 -8
  124. package/test/config-cached.json +2 -1
  125. package/test/config.json +3 -1
  126. package/test/my-cnf.json +1 -1
  127. package/webda.module.json +653 -375
  128. package/lib/services/authentication.service.d.ts +0 -442
  129. package/lib/services/authentication.service.d.ts.map +0 -1
  130. package/lib/services/authentication.service.js +0 -932
  131. package/lib/services/authentication.service.js.map +0 -1
  132. package/lib/services/oauth.d.ts +0 -250
  133. package/lib/services/oauth.d.ts.map +0 -1
  134. package/lib/services/oauth.js +0 -405
  135. package/lib/services/oauth.js.map +0 -1
@@ -4,6 +4,31 @@ import { Application } from "../application/application.js";
4
4
  import { OperationContext } from "../contexts/operationcontext.js";
5
5
  import type { Model, ModelClass } from "@webda/models";
6
6
  import { ServiceParameters } from "../services/serviceparameters.js";
7
+ /**
8
+ * Remove Behavior-typed attributes (Metadata.Relations.behaviors) and private fields from client input.
9
+ * Behavior state can only be changed through the behavior's own actions.
10
+ * @param model - the model class
11
+ * @param input - the client input
12
+ * @returns the sanitized input
13
+ */
14
+ export declare function sanitizeModelInput<T = any>(model: ModelClass<any>, input: T): T;
15
+ /**
16
+ * Remove `__`-prefixed keys at any depth from client-supplied input, so private fields
17
+ * (such as a password hash) can never be set through the REST/operations surface
18
+ * @param input - the client input
19
+ * @returns a sanitized deep copy (non plain-object/array values are returned as is)
20
+ */
21
+ export declare function stripPrivateFields<T = any>(input: T): T;
22
+ /**
23
+ * Models that hold authentication state: never exposed by a DomainService (REST, GraphQL, operations), nor any of
24
+ * their subclasses, unless explicitly listed in its `models` parameter
25
+ */
26
+ export declare const INTERNAL_MODELS: readonly string[];
27
+ /**
28
+ * @param model - a model class
29
+ * @returns true when the model is, or descends from, one of {@link INTERNAL_MODELS}
30
+ */
31
+ export declare function isInternalModel(model: any): boolean;
7
32
  /** Parameters for DomainService, controlling model exposure, URL naming, and query methods */
8
33
  export declare class DomainServiceParameters extends ServiceParameters {
9
34
  /**
@@ -50,6 +75,12 @@ export declare class DomainServiceParameters extends ServiceParameters {
50
75
  * @returns the result
51
76
  */
52
77
  isIncluded(model: string): boolean;
78
+ /**
79
+ * Is a model explicitly listed (not through the wildcard) in `models`
80
+ * @param model - the model identifier
81
+ * @returns the result
82
+ */
83
+ isExplicitlyIncluded(model: string): boolean;
53
84
  /**
54
85
  * Is a model excluded from the service
55
86
  * @param model - the model to use
@@ -154,6 +185,14 @@ export declare class DomainService<T extends DomainServiceParameters = DomainSer
154
185
  * @returns the action result
155
186
  */
156
187
  modelAction(...args: any[]): Promise<any>;
188
+ /**
189
+ * Whether a model may be exposed: models of {@link INTERNAL_MODELS} and their subclasses need an explicit listing
190
+ * in the `models` parameter
191
+ * @param model - model class
192
+ * @param identifier - model identifier
193
+ * @returns true when the model may be exposed
194
+ */
195
+ isExposable(model: any, identifier: string): boolean;
157
196
  /**
158
197
  * Add operations for all exposed models
159
198
  * @returns the result
@@ -1 +1 @@
1
- {"version":3,"file":"domainservice.service.d.ts","sourceRoot":"","sources":["../../src/services/domainservice.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domainservice.service.d.ts","sourceRoot":"","sources":["../../src/services/domainservice.service.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,57 @@ import { useModelMetadata } from "../core/hooks.js";
9
9
  import { useInstanceStorage } from "../core/instancestorage.js";
10
10
  import { registerOperation } from "../core/operations.js";
11
11
  import { hasSchema, registerSchema } from "../schemas/hooks.js";
12
+ /**
13
+ * Remove Behavior-typed attributes (Metadata.Relations.behaviors) and private fields from client input.
14
+ * Behavior state can only be changed through the behavior's own actions.
15
+ * @param model - the model class
16
+ * @param input - the client input
17
+ * @returns the sanitized input
18
+ */
19
+ export function sanitizeModelInput(model, input) {
20
+ const out = stripPrivateFields(input);
21
+ if (out && typeof out === "object" && !Array.isArray(out)) {
22
+ for (const rel of useModelMetadata(model)?.Relations?.behaviors ?? []) {
23
+ delete out[rel.attribute];
24
+ }
25
+ }
26
+ return out;
27
+ }
28
+ /**
29
+ * Remove `__`-prefixed keys at any depth from client-supplied input, so private fields
30
+ * (such as a password hash) can never be set through the REST/operations surface
31
+ * @param input - the client input
32
+ * @returns a sanitized deep copy (non plain-object/array values are returned as is)
33
+ */
34
+ export function stripPrivateFields(input) {
35
+ if (Array.isArray(input)) {
36
+ return input.map(i => stripPrivateFields(i));
37
+ }
38
+ if (input && typeof input === "object" && Object.getPrototypeOf(input) === Object.prototype) {
39
+ // Object.fromEntries defines own properties: no dynamic assignment can reach a prototype
40
+ return Object.fromEntries(Object.entries(input)
41
+ .filter(([k]) => !k.startsWith("__") && k !== "constructor" && k !== "prototype")
42
+ .map(([k, v]) => [k, stripPrivateFields(v)]));
43
+ }
44
+ return input;
45
+ }
46
+ /**
47
+ * Models that hold authentication state: never exposed by a DomainService (REST, GraphQL, operations), nor any of
48
+ * their subclasses, unless explicitly listed in its `models` parameter
49
+ */
50
+ export const INTERNAL_MODELS = ["Webda/Ident", "Webda/RefreshToken"];
51
+ /**
52
+ * @param model - a model class
53
+ * @returns true when the model is, or descends from, one of {@link INTERNAL_MODELS}
54
+ */
55
+ export function isInternalModel(model) {
56
+ for (let clazz = model; clazz && clazz !== Function.prototype; clazz = Object.getPrototypeOf(clazz)) {
57
+ if (INTERNAL_MODELS.includes(clazz.Metadata?.Identifier)) {
58
+ return true;
59
+ }
60
+ }
61
+ return false;
62
+ }
12
63
  /** Parameters for DomainService, controlling model exposure, URL naming, and query methods */
13
64
  export class DomainServiceParameters extends ServiceParameters {
14
65
  /**
@@ -70,6 +121,14 @@ export class DomainServiceParameters extends ServiceParameters {
70
121
  isIncluded(model) {
71
122
  return !this.isExcluded(model) && (this.models.includes("*") || this.models.includes(model));
72
123
  }
124
+ /**
125
+ * Is a model explicitly listed (not through the wildcard) in `models`
126
+ * @param model - the model identifier
127
+ * @returns the result
128
+ */
129
+ isExplicitlyIncluded(model) {
130
+ return !this.isExcluded(model) && this.models.includes(model);
131
+ }
73
132
  /**
74
133
  * Is a model excluded from the service
75
134
  * @param model - the model to use
@@ -161,6 +220,7 @@ export class DomainService extends Service {
161
220
  if (typeof input !== "object" || input === null || input instanceof OperationContext) {
162
221
  input = await context.getInput();
163
222
  }
223
+ input = sanitizeModelInput(model, input);
164
224
  return runWithContext(context, async () => {
165
225
  // Instantiate the model from raw input, load data, then save
166
226
  const object = new model();
@@ -184,12 +244,13 @@ export class DomainService extends Service {
184
244
  if (typeof input !== "object" || input === null) {
185
245
  input = await context.getInput();
186
246
  }
247
+ input = sanitizeModelInput(model, input);
187
248
  // Resolve the PK from body or URL params using the model's actual PK fields;
188
249
  // fall back to "uuid" for legacy operations without pkFields in the context.
189
250
  const params = context.getParameters() ?? {};
190
251
  const fields = pkFields?.length ? pkFields : ["uuid"];
191
252
  const pk = fields.length === 1
192
- ? input?.[fields[0]] ?? params[fields[0]]
253
+ ? (input?.[fields[0]] ?? params[fields[0]])
193
254
  : fields.reduce((acc, f) => {
194
255
  acc[f] = input?.[f] ?? params[f];
195
256
  return acc;
@@ -255,11 +316,12 @@ export class DomainService extends Service {
255
316
  if (typeof input !== "object" || input === null) {
256
317
  input = await context.getInput();
257
318
  }
319
+ input = sanitizeModelInput(model, input);
258
320
  // Build the PK from the model's real primary-key fields (same logic as modelUpdate).
259
321
  const params = context.getParameters() ?? {};
260
322
  const fields = pkFields?.length ? pkFields : ["uuid"];
261
323
  const pk = fields.length === 1
262
- ? input?.[fields[0]] ?? params[fields[0]]
324
+ ? (input?.[fields[0]] ?? params[fields[0]])
263
325
  : fields.reduce((acc, f) => {
264
326
  acc[f] = input?.[f] ?? params[f];
265
327
  return acc;
@@ -292,6 +354,16 @@ export class DomainService extends Service {
292
354
  return model[handler](context);
293
355
  }
294
356
  }
357
+ /**
358
+ * Whether a model may be exposed: models of {@link INTERNAL_MODELS} and their subclasses need an explicit listing
359
+ * in the `models` parameter
360
+ * @param model - model class
361
+ * @param identifier - model identifier
362
+ * @returns true when the model may be exposed
363
+ */
364
+ isExposable(model, identifier) {
365
+ return !isInternalModel(model) || this.parameters.isExplicitlyIncluded(identifier);
366
+ }
295
367
  /**
296
368
  * Add operations for all exposed models
297
369
  * @returns the result
@@ -333,6 +405,10 @@ export class DomainService extends Service {
333
405
  if (!this.app.isFinalModel(Metadata.Identifier)) {
334
406
  continue;
335
407
  }
408
+ // Authentication state models (and subclasses) are internal unless explicitly listed
409
+ if (!this.isExposable(model, Metadata.Identifier)) {
410
+ continue;
411
+ }
336
412
  const shortId = Metadata.Identifier.split("/").pop();
337
413
  const plural = Metadata.Plural;
338
414
  const modelSchema = modelKey;
@@ -1 +1 @@
1
- {"version":3,"file":"domainservice.service.js","sourceRoot":"","sources":["../../src/services/domainservice.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domainservice.service.js","sourceRoot":"","sources":["../../src/services/domainservice.service.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,202 @@
1
- import { Context } from "../contexts/icontext.js";
2
- import { Service } from "./service.js";
1
+ import type { EventWithContext } from "../events/events.js";
2
+ import type { Ident } from "../models/ident.model.js";
3
+ import type { User } from "../models/user.model.js";
4
+ import type { Service } from "./service.js";
5
+ import type { IssuedTokens } from "./token.service.js";
6
+ /**
7
+ * Describe an authentication provider exposed by an authentication service
8
+ */
9
+ export interface ProviderInfo {
10
+ /**
11
+ * Provider name
12
+ */
13
+ name: string;
14
+ /**
15
+ * Provider type
16
+ */
17
+ type: "password" | "oauth" | "passwordless";
18
+ /**
19
+ * URL to start the authentication flow (oauth, passwordless)
20
+ */
21
+ startUrl?: string;
22
+ }
23
+ /**
24
+ * Identity resolved by a provider, before being linked to a user
25
+ */
26
+ export interface ResolvedIdentity {
27
+ /**
28
+ * Provider name
29
+ */
30
+ provider: string;
31
+ /**
32
+ * Unique identifier of the identity within the provider
33
+ */
34
+ providerUid: string;
35
+ /**
36
+ * Email if known
37
+ */
38
+ email?: string;
39
+ /**
40
+ * Whether the provider verified the email
41
+ */
42
+ emailVerified: boolean;
43
+ /**
44
+ * Provider profile
45
+ */
46
+ profile?: any;
47
+ /**
48
+ * Provider tokens
49
+ */
50
+ tokens?: any;
51
+ /**
52
+ * Authentication methods references
53
+ */
54
+ amr: string[];
55
+ /**
56
+ * User already resolved if any
57
+ */
58
+ user?: User;
59
+ }
60
+ /**
61
+ * Result of an authentication completion
62
+ */
63
+ export type AuthResult = ({
64
+ status: "ok";
65
+ user: any;
66
+ } & IssuedTokens) | {
67
+ status: "mfa_required";
68
+ methods: string[];
69
+ };
3
70
  /**
4
71
  * Authentication service interface
5
72
  */
6
73
  export interface IAuthenticationService extends Service {
7
- onIdentLogin(ctx: Context, provider: string, identId: string, profile: any, tokens?: any): Promise<void>;
74
+ /**
75
+ * Complete the authentication of a resolved identity within the current context
76
+ * @param identity resolved by a provider
77
+ */
78
+ complete(identity: ResolvedIdentity): Promise<AuthResult>;
79
+ /**
80
+ * Logout the current session
81
+ */
82
+ logout(): Promise<void>;
83
+ /**
84
+ * List the providers available
85
+ */
86
+ getProviders(): ProviderInfo[];
87
+ }
88
+ /**
89
+ * Emitted when the /me route is called
90
+ */
91
+ export interface EventAuthenticationGetMe<T extends User = User> extends EventWithContext {
92
+ /**
93
+ * Current user
94
+ */
95
+ user: T;
96
+ }
97
+ /**
98
+ * Emitted when new user registered
99
+ */
100
+ export interface EventAuthenticationRegister<T extends User = User> extends EventAuthenticationGetMe<T> {
101
+ /**
102
+ * Registration data
103
+ */
104
+ data: any;
105
+ /**
106
+ * Ident identifier
107
+ */
108
+ identId: string;
109
+ /**
110
+ * Identity used to register
111
+ */
112
+ identity?: ResolvedIdentity;
113
+ }
114
+ /**
115
+ * Emitted when user logout
116
+ */
117
+ export interface EventAuthenticationLogout extends EventWithContext {
8
118
  }
119
+ /**
120
+ * Sent when a user update his password
121
+ */
122
+ export interface EventAuthenticationPasswordUpdate<T extends User = User> extends EventAuthenticationGetMe<T> {
123
+ /**
124
+ * New password
125
+ */
126
+ password: string;
127
+ }
128
+ /**
129
+ * Emitted when user login
130
+ */
131
+ export interface EventAuthenticationLogin<T extends User = User> extends EventWithContext {
132
+ /**
133
+ * User identifier
134
+ */
135
+ userId: string;
136
+ /**
137
+ * User if loaded
138
+ */
139
+ user?: T;
140
+ /**
141
+ * Ident identifier
142
+ */
143
+ identId: string;
144
+ /**
145
+ * Ident used
146
+ */
147
+ ident: any;
148
+ /**
149
+ * Provider used
150
+ */
151
+ provider: string;
152
+ /**
153
+ * Identity used to login
154
+ */
155
+ identity?: ResolvedIdentity;
156
+ }
157
+ /**
158
+ * Emitted when a user failed to authenticate
159
+ */
160
+ export interface EventAuthenticationLoginFailed<T extends User = User> extends EventAuthenticationGetMe<T> {
161
+ }
162
+ /**
163
+ * Emitted when an ident is linked to a user
164
+ */
165
+ export interface EventAuthenticationLinked<T extends User = User> extends EventWithContext {
166
+ /**
167
+ * User
168
+ */
169
+ user: T;
170
+ /**
171
+ * Ident linked
172
+ */
173
+ ident: Ident;
174
+ }
175
+ /**
176
+ * Emitted when an ident is unlinked from a user
177
+ */
178
+ export interface EventAuthenticationUnlinked<T extends User = User> extends EventWithContext {
179
+ /**
180
+ * User
181
+ */
182
+ user: T;
183
+ /**
184
+ * Ident unlinked
185
+ */
186
+ ident: Ident;
187
+ }
188
+ /**
189
+ * Authentication events map
190
+ */
191
+ export type AuthenticationEvents = {
192
+ "Authentication.GetMe": EventAuthenticationGetMe;
193
+ "Authentication.Register": EventAuthenticationRegister;
194
+ "Authentication.PasswordUpdate": EventAuthenticationPasswordUpdate;
195
+ "Authentication.PasswordCreate": EventAuthenticationPasswordUpdate;
196
+ "Authentication.Logout": EventAuthenticationLogout;
197
+ "Authentication.Login": EventAuthenticationLogin;
198
+ "Authentication.LoginFailed": EventAuthenticationLoginFailed;
199
+ "Authentication.Linked": EventAuthenticationLinked;
200
+ "Authentication.Unlinked": EventAuthenticationUnlinked;
201
+ };
9
202
  //# sourceMappingURL=iauthentication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iauthentication.d.ts","sourceRoot":"","sources":["../../src/services/iauthentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,OAAO;IACrD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1G"}
1
+ {"version":3,"file":"iauthentication.d.ts","sourceRoot":"","sources":["../../src/services/iauthentication.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"servicecommands.d.ts","sourceRoot":"","sources":["../../src/services/servicecommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAqB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,oDAAoD;IACpD,IAAI,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;IAC/C,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;;OASG;IACH,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAoC/F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5B,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,EAC5C,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC,CA0EjB"}
1
+ {"version":3,"file":"servicecommands.d.ts","sourceRoot":"","sources":["../../src/services/servicecommands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAqB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,oDAAoD;IACpD,IAAI,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAC;IAC/C,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;;OASG;IACH,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAAE,CAoC/F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5B,QAAQ,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,EAC5C,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC,CA8EjB"}
@@ -86,15 +86,10 @@ export function collectServiceCommands(app) {
86
86
  * ```
87
87
  */
88
88
  export async function executeServiceCommand(cmdName, cmdInfo, args, services, serviceFilter) {
89
- // Filter services if requested
90
- let targetServices = cmdInfo.services;
91
- if (serviceFilter && serviceFilter.length > 0) {
92
- targetServices = targetServices.filter(s => serviceFilter.some(f => s.name.endsWith(f) || s.name === f));
93
- if (targetServices.length === 0) {
94
- useLog("ERROR", `No services match filter '${serviceFilter.join(",")}' for command '${cmdName}'`);
95
- return 1;
96
- }
97
- }
89
+ // Filter services if requested, by type (e.g. "HttpServer") or by instance name (e.g. a deployment unit)
90
+ const filtered = serviceFilter && serviceFilter.length > 0;
91
+ const typeMatches = (svc) => !filtered || serviceFilter.some(f => svc.name.endsWith(f) || svc.name === f);
92
+ const instanceMatches = (service) => filtered && typeof service.getName === "function" && serviceFilter.includes(service.getName());
98
93
  // Build positional args from command arg definitions; an omitted argument keeps
99
94
  // its slot as undefined so the following ones stay in position
100
95
  const commandArgs = Object.keys(cmdInfo.args).map(argName => args[argName] !== undefined ? args[argName] : cmdInfo.args[argName].default);
@@ -106,8 +101,9 @@ export async function executeServiceCommand(cmdName, cmdInfo, args, services, se
106
101
  // Execute each matching service handler. A single target type can map to
107
102
  // multiple configured instances (e.g. two HttpServer services on different
108
103
  // ports); dispatch to every instance whose constructor matches the type.
109
- for (const svc of targetServices) {
110
- const matches = [];
104
+ let filterMatched = !filtered;
105
+ for (const svc of cmdInfo.services) {
106
+ let matches = [];
111
107
  // Direct lookup — works when the modda name is used verbatim as service key
112
108
  if (services[svc.name])
113
109
  matches.push(services[svc.name]);
@@ -120,6 +116,12 @@ export async function executeServiceCommand(cmdName, cmdInfo, args, services, se
120
116
  matches.push(instanceService);
121
117
  }
122
118
  }
119
+ if (!typeMatches(svc)) {
120
+ matches = matches.filter(instanceMatches);
121
+ if (matches.length === 0)
122
+ continue;
123
+ }
124
+ filterMatched = true;
123
125
  if (matches.length === 0) {
124
126
  useLog("WARN", `Service '${svc.name}' not found, skipping`);
125
127
  continue;
@@ -140,6 +142,10 @@ export async function executeServiceCommand(cmdName, cmdInfo, args, services, se
140
142
  executed++;
141
143
  }
142
144
  }
145
+ if (!filterMatched) {
146
+ useLog("ERROR", `No services match filter '${serviceFilter.join(",")}' for command '${cmdName}'`);
147
+ return 1;
148
+ }
143
149
  if (executed === 0) {
144
150
  useLog("ERROR", `No service instance found to run command '${cmdName}'`);
145
151
  return 1;
@@ -1 +1 @@
1
- {"version":3,"file":"servicecommands.js","sourceRoot":"","sources":["../../src/services/servicecommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"servicecommands.js","sourceRoot":"","sources":["../../src/services/servicecommands.ts"],"names":[],"mappings":"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"}