@carlonicora/nestjs-neo4jsonapi 1.112.3 → 1.114.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.
Files changed (126) hide show
  1. package/dist/agents/operator/services/operator.service.d.ts.map +1 -1
  2. package/dist/agents/operator/services/operator.service.js.map +1 -1
  3. package/dist/common/guards/index.d.ts +1 -0
  4. package/dist/common/guards/index.d.ts.map +1 -1
  5. package/dist/common/guards/index.js +1 -0
  6. package/dist/common/guards/index.js.map +1 -1
  7. package/dist/common/guards/jwt.auth.any-scope.guard.d.ts +20 -0
  8. package/dist/common/guards/jwt.auth.any-scope.guard.d.ts.map +1 -0
  9. package/dist/common/guards/jwt.auth.any-scope.guard.js +61 -0
  10. package/dist/common/guards/jwt.auth.any-scope.guard.js.map +1 -0
  11. package/dist/config/base.config.d.ts.map +1 -1
  12. package/dist/config/base.config.js +1 -0
  13. package/dist/config/base.config.js.map +1 -1
  14. package/dist/config/interfaces/config.ai.interface.d.ts +6 -0
  15. package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
  16. package/dist/core/llm/common/llm-raw-response.d.ts +4 -0
  17. package/dist/core/llm/common/llm-raw-response.d.ts.map +1 -1
  18. package/dist/core/llm/common/llm-raw-response.js.map +1 -1
  19. package/dist/core/llm/enums/reasoning.effort.d.ts +14 -0
  20. package/dist/core/llm/enums/reasoning.effort.d.ts.map +1 -0
  21. package/dist/core/llm/enums/reasoning.effort.js +3 -0
  22. package/dist/core/llm/enums/reasoning.effort.js.map +1 -0
  23. package/dist/core/llm/index.d.ts +1 -0
  24. package/dist/core/llm/index.d.ts.map +1 -1
  25. package/dist/core/llm/index.js +1 -0
  26. package/dist/core/llm/index.js.map +1 -1
  27. package/dist/core/llm/services/llm.service.d.ts +5 -0
  28. package/dist/core/llm/services/llm.service.d.ts.map +1 -1
  29. package/dist/core/llm/services/llm.service.js +147 -14
  30. package/dist/core/llm/services/llm.service.js.map +1 -1
  31. package/dist/core/llm/services/model.service.d.ts +37 -0
  32. package/dist/core/llm/services/model.service.d.ts.map +1 -1
  33. package/dist/core/llm/services/model.service.js +94 -5
  34. package/dist/core/llm/services/model.service.js.map +1 -1
  35. package/dist/core/llm/services/unsupported-param-fetch.d.ts +47 -0
  36. package/dist/core/llm/services/unsupported-param-fetch.d.ts.map +1 -0
  37. package/dist/core/llm/services/unsupported-param-fetch.js +195 -0
  38. package/dist/core/llm/services/unsupported-param-fetch.js.map +1 -0
  39. package/dist/core/llm/utils/schema.utils.d.ts +89 -0
  40. package/dist/core/llm/utils/schema.utils.d.ts.map +1 -1
  41. package/dist/core/llm/utils/schema.utils.js +210 -3
  42. package/dist/core/llm/utils/schema.utils.js.map +1 -1
  43. package/dist/core/security/services/security.service.d.ts +5 -0
  44. package/dist/core/security/services/security.service.d.ts.map +1 -1
  45. package/dist/core/security/services/security.service.js +13 -0
  46. package/dist/core/security/services/security.service.js.map +1 -1
  47. package/dist/foundations/auth/controllers/auth.controller.d.ts +2 -0
  48. package/dist/foundations/auth/controllers/auth.controller.d.ts.map +1 -1
  49. package/dist/foundations/auth/controllers/auth.controller.js +29 -0
  50. package/dist/foundations/auth/controllers/auth.controller.js.map +1 -1
  51. package/dist/foundations/auth/entities/auth.entity.d.ts +10 -0
  52. package/dist/foundations/auth/entities/auth.entity.d.ts.map +1 -1
  53. package/dist/foundations/auth/repositories/auth.repository.d.ts +28 -0
  54. package/dist/foundations/auth/repositories/auth.repository.d.ts.map +1 -1
  55. package/dist/foundations/auth/repositories/auth.repository.js +92 -12
  56. package/dist/foundations/auth/repositories/auth.repository.js.map +1 -1
  57. package/dist/foundations/auth/serialisers/auth.serialiser.d.ts.map +1 -1
  58. package/dist/foundations/auth/serialisers/auth.serialiser.js +4 -0
  59. package/dist/foundations/auth/serialisers/auth.serialiser.js.map +1 -1
  60. package/dist/foundations/auth/services/auth.service.d.ts +12 -0
  61. package/dist/foundations/auth/services/auth.service.d.ts.map +1 -1
  62. package/dist/foundations/auth/services/auth.service.js +55 -0
  63. package/dist/foundations/auth/services/auth.service.js.map +1 -1
  64. package/dist/foundations/chunker/services/types/pdf/interfaces/pdf-element.interface.d.ts.map +1 -1
  65. package/dist/foundations/company/repositories/company.repository.d.ts.map +1 -1
  66. package/dist/foundations/company/repositories/company.repository.js +7 -34
  67. package/dist/foundations/company/repositories/company.repository.js.map +1 -1
  68. package/dist/foundations/discord-user/repositories/discord-user.repository.d.ts.map +1 -1
  69. package/dist/foundations/discord-user/repositories/discord-user.repository.js +6 -1
  70. package/dist/foundations/discord-user/repositories/discord-user.repository.js.map +1 -1
  71. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  72. package/dist/foundations/foundations.modules.js +2 -0
  73. package/dist/foundations/foundations.modules.js.map +1 -1
  74. package/dist/foundations/google-user/repositories/google-user.repository.d.ts.map +1 -1
  75. package/dist/foundations/google-user/repositories/google-user.repository.js +6 -1
  76. package/dist/foundations/google-user/repositories/google-user.repository.js.map +1 -1
  77. package/dist/foundations/index.d.ts +1 -0
  78. package/dist/foundations/index.d.ts.map +1 -1
  79. package/dist/foundations/index.js +1 -0
  80. package/dist/foundations/index.js.map +1 -1
  81. package/dist/foundations/membership/entities/membership.d.ts +34 -0
  82. package/dist/foundations/membership/entities/membership.d.ts.map +1 -0
  83. package/dist/foundations/membership/entities/membership.js +24 -0
  84. package/dist/foundations/membership/entities/membership.js.map +1 -0
  85. package/dist/foundations/membership/entities/membership.meta.d.ts +3 -0
  86. package/dist/foundations/membership/entities/membership.meta.d.ts.map +1 -0
  87. package/dist/foundations/membership/entities/membership.meta.js +10 -0
  88. package/dist/foundations/membership/entities/membership.meta.js.map +1 -0
  89. package/dist/foundations/membership/index.d.ts +6 -0
  90. package/dist/foundations/membership/index.d.ts.map +1 -0
  91. package/dist/foundations/membership/index.js +17 -0
  92. package/dist/foundations/membership/index.js.map +1 -0
  93. package/dist/foundations/membership/membership.module.d.ts +9 -0
  94. package/dist/foundations/membership/membership.module.d.ts.map +1 -0
  95. package/dist/foundations/membership/membership.module.js +32 -0
  96. package/dist/foundations/membership/membership.module.js.map +1 -0
  97. package/dist/foundations/membership/queries/membership.query.d.ts +60 -0
  98. package/dist/foundations/membership/queries/membership.query.d.ts.map +1 -0
  99. package/dist/foundations/membership/queries/membership.query.js +86 -0
  100. package/dist/foundations/membership/queries/membership.query.js.map +1 -0
  101. package/dist/foundations/membership/repositories/membership.repository.d.ts +8 -0
  102. package/dist/foundations/membership/repositories/membership.repository.d.ts.map +1 -0
  103. package/dist/foundations/membership/repositories/membership.repository.js +30 -0
  104. package/dist/foundations/membership/repositories/membership.repository.js.map +1 -0
  105. package/dist/foundations/module/queries/feature.module.query.d.ts +2 -2
  106. package/dist/foundations/module/queries/feature.module.query.d.ts.map +1 -1
  107. package/dist/foundations/module/queries/feature.module.query.js +11 -3
  108. package/dist/foundations/module/queries/feature.module.query.js.map +1 -1
  109. package/dist/foundations/rbac/dsl/types.d.ts.map +1 -1
  110. package/dist/foundations/rbac/dsl/types.js.map +1 -1
  111. package/dist/foundations/role/repositories/role.repository.d.ts.map +1 -1
  112. package/dist/foundations/role/repositories/role.repository.js +15 -4
  113. package/dist/foundations/role/repositories/role.repository.js.map +1 -1
  114. package/dist/foundations/stripe-subscription/entities/stripe-subscription.entity.d.ts.map +1 -1
  115. package/dist/foundations/user/entities/user.d.ts.map +1 -1
  116. package/dist/foundations/user/entities/user.js +6 -1
  117. package/dist/foundations/user/entities/user.js.map +1 -1
  118. package/dist/foundations/user/repositories/user.repository.d.ts +1 -0
  119. package/dist/foundations/user/repositories/user.repository.d.ts.map +1 -1
  120. package/dist/foundations/user/repositories/user.repository.js +105 -58
  121. package/dist/foundations/user/repositories/user.repository.js.map +1 -1
  122. package/dist/foundations/user/services/user.service.d.ts +8 -0
  123. package/dist/foundations/user/services/user.service.d.ts.map +1 -1
  124. package/dist/foundations/user/services/user.service.js +20 -4
  125. package/dist/foundations/user/services/user.service.js.map +1 -1
  126. package/package.json +67 -67
@@ -34,9 +34,13 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.convertZodToJsonSchema = convertZodToJsonSchema;
37
+ exports.convertZodToDraftJsonSchema = convertZodToDraftJsonSchema;
37
38
  exports.extractSchemaMetadata = extractSchemaMetadata;
38
39
  exports.formatFieldWithDescription = formatFieldWithDescription;
39
40
  exports.sanitizeSchemaForGemini = sanitizeSchemaForGemini;
41
+ exports.isStrictStructuredOutputCompatible = isStrictStructuredOutputCompatible;
42
+ exports.makeSchemaStrictCompatible = makeSchemaStrictCompatible;
43
+ exports.stripSyntheticNulls = stripSyntheticNulls;
40
44
  const z = __importStar(require("zod"));
41
45
  /**
42
46
  * Converts a Zod schema to JSON Schema format
@@ -47,12 +51,44 @@ const z = __importStar(require("zod"));
47
51
  * @returns JSON Schema object
48
52
  */
49
53
  function convertZodToJsonSchema(zodSchema) {
50
- // Use Zod 4's native JSON Schema conversion
51
- return z.toJSONSchema(zodSchema, {
54
+ // JSON round-trip: strips the hidden `~standard` property Zod attaches to its
55
+ // output, which otherwise makes LangChain re-derive the schema instead of
56
+ // forwarding it — see convertZodToDraftJsonSchema below for the full account.
57
+ return JSON.parse(JSON.stringify(z.toJSONSchema(zodSchema, {
52
58
  target: "openapi-3.0", // Use OpenAPI 3.0 format (compatible with OpenAI/Gemini)
53
59
  cycles: "ref", // Handle cycles with $defs
54
60
  unrepresentable: "any", // Unrepresentable types become {} instead of throwing
55
- });
61
+ })));
62
+ }
63
+ /**
64
+ * Converts a Zod schema to a draft 2020-12 JSON Schema — the dialect OpenAI's
65
+ * structured outputs expect.
66
+ *
67
+ * Distinct from {@link convertZodToJsonSchema}, which targets OpenAPI 3.0 for
68
+ * Gemini. The difference matters for strict mode: OpenAPI 3.0 expresses "may be
69
+ * null" as `nullable: true`, which OpenAI ignores, whereas draft 2020-12 uses a
70
+ * real `{ type: "null" }` branch — the form {@link makeSchemaStrictCompatible}
71
+ * produces.
72
+ *
73
+ * @param zodSchema - The Zod schema to convert
74
+ * @returns JSON Schema in draft 2020-12
75
+ */
76
+ function convertZodToDraftJsonSchema(zodSchema) {
77
+ // The JSON round-trip is NOT cosmetic. Zod's `toJSONSchema` output carries a hidden
78
+ // non-enumerable `~standard` property (the Standard Schema V1 interface). When such
79
+ // an object reaches LangChain's `withStructuredOutput`, its `toJsonSchema` helper
80
+ // detects `~standard` and RE-DERIVES the schema via
81
+ // `schema["~standard"].jsonSchema.input({ target: "draft-07" })` — which demotes
82
+ // defaulted fields out of `required` and drops `additionalProperties: false`, so
83
+ // OpenAI strict mode rejects the request ("'additionalProperties' is required to be
84
+ // supplied and to be false", observed live against Azure gpt-5-nano). Serialising
85
+ // strips every non-JSON property, guaranteeing the schema LangChain forwards is
86
+ // byte-for-byte the schema this function returns.
87
+ return JSON.parse(JSON.stringify(z.toJSONSchema(zodSchema, {
88
+ target: "draft-2020-12",
89
+ cycles: "ref",
90
+ unrepresentable: "any",
91
+ })));
56
92
  }
57
93
  /**
58
94
  * Extracts field metadata from JSON Schema
@@ -274,4 +310,175 @@ function sanitizeSchemaForGemini(schema) {
274
310
  }
275
311
  return sanitized;
276
312
  }
313
+ /**
314
+ * Reports whether a schema can be sent through OpenAI's STRICT structured-output
315
+ * mode (`response_format: { type: "json_schema", strict: true }`).
316
+ *
317
+ * Strict mode has two rules that ordinary Zod schemas routinely break:
318
+ * 1. every key in `properties` must also appear in `required` — strict mode
319
+ * cannot express an absent field, only a null one, so `.optional()` and
320
+ * `.default()` both violate it;
321
+ * 2. `additionalProperties` must be `false` — so open records cannot qualify.
322
+ *
323
+ * This matters because LangChain hands any Zod schema to `interopZodResponseFormat`,
324
+ * which hardcodes `strict: true`; passing `strict: false` does nothing. A schema
325
+ * that fails these rules must therefore go through tool/function calling instead,
326
+ * which imposes neither rule AND keeps LangChain's Zod validation of the result.
327
+ *
328
+ * Deciding from the schema — rather than from a model or provider name — means no
329
+ * model taxonomy lives in this codebase, and any schema authored strict-clean later
330
+ * automatically earns the stronger guaranteed-conformance path.
331
+ *
332
+ * @param schema - JSON Schema object (typically from {@link convertZodToJsonSchema})
333
+ * @returns true when strict mode would accept the schema
334
+ */
335
+ function isStrictStructuredOutputCompatible(schema) {
336
+ if (!schema || typeof schema !== "object")
337
+ return true;
338
+ if (Array.isArray(schema))
339
+ return schema.every((entry) => isStrictStructuredOutputCompatible(entry));
340
+ // A `$ref` cannot be verified from here (nothing in this walk resolves it), and the
341
+ // rewrite in {@link makeSchemaStrictCompatible} does not follow refs either — so a
342
+ // ref-bearing schema must take the tool-calling path, not strict mode. This also
343
+ // matters because OpenAI strict mode rejects a `$ref` carrying ANY sibling keyword
344
+ // ("$ref cannot have keywords {...}", observed live against Azure gpt-5-nano), the
345
+ // exact shape `convertZodToDraftJsonSchema` emits for recursive schemas
346
+ // (`cycles: "ref"`).
347
+ if (typeof schema.$ref === "string")
348
+ return false;
349
+ if (schema.type === "object") {
350
+ // Checked before `properties`, because an open record (`z.record`) produces an
351
+ // object node with NO `properties` at all — only `additionalProperties` — and
352
+ // strict mode still rejects it.
353
+ if (schema.additionalProperties !== false)
354
+ return false;
355
+ const required = new Set(Array.isArray(schema.required) ? schema.required : []);
356
+ for (const key of Object.keys(schema.properties ?? {})) {
357
+ if (!required.has(key))
358
+ return false;
359
+ }
360
+ }
361
+ for (const key of ["properties", "$defs", "definitions"]) {
362
+ const node = schema[key];
363
+ if (node && typeof node === "object") {
364
+ if (!Object.values(node).every((value) => isStrictStructuredOutputCompatible(value)))
365
+ return false;
366
+ }
367
+ }
368
+ for (const key of ["items", "additionalProperties", "not"]) {
369
+ if (schema[key] && typeof schema[key] === "object") {
370
+ if (!isStrictStructuredOutputCompatible(schema[key]))
371
+ return false;
372
+ }
373
+ }
374
+ for (const key of ["anyOf", "oneOf", "allOf"]) {
375
+ if (Array.isArray(schema[key])) {
376
+ if (!schema[key].every((entry) => isStrictStructuredOutputCompatible(entry)))
377
+ return false;
378
+ }
379
+ }
380
+ return true;
381
+ }
382
+ /**
383
+ * Rewrites a JSON Schema so OpenAI's STRICT structured-output mode accepts it.
384
+ *
385
+ * Strict mode cannot express "this key may be absent" — only "this key may be
386
+ * null". So every property becomes required, and any property that was NOT
387
+ * originally required is widened to `anyOf: [<original>, { type: "null" }]`.
388
+ * `additionalProperties` is closed on every object.
389
+ *
390
+ * This is the request half of a pair: {@link stripSyntheticNulls} undoes it on the
391
+ * response, so the caller's original Zod schema still validates the result.
392
+ *
393
+ * Why bother, rather than routing non-strict schemas to tool calling: strict mode
394
+ * is the only path that GUARANTEES the payload matches the schema. Measured against
395
+ * a live gpt-5-nano deployment, tool calling returned a string where the schema
396
+ * declared `assumptions: string[]` in roughly half of all runs; strict mode cannot
397
+ * do that by construction.
398
+ *
399
+ * @param schema - JSON Schema object (draft 2020-12 shape)
400
+ * @returns A structurally equivalent schema that satisfies strict mode
401
+ */
402
+ function makeSchemaStrictCompatible(schema) {
403
+ if (!schema || typeof schema !== "object")
404
+ return schema;
405
+ if (Array.isArray(schema))
406
+ return schema.map((entry) => makeSchemaStrictCompatible(entry));
407
+ const strict = { ...schema };
408
+ for (const key of ["$defs", "definitions"]) {
409
+ if (strict[key] && typeof strict[key] === "object") {
410
+ strict[key] = Object.fromEntries(Object.entries(strict[key]).map(([name, value]) => [name, makeSchemaStrictCompatible(value)]));
411
+ }
412
+ }
413
+ if (strict.items && typeof strict.items === "object")
414
+ strict.items = makeSchemaStrictCompatible(strict.items);
415
+ for (const key of ["anyOf", "oneOf", "allOf"]) {
416
+ if (Array.isArray(strict[key]))
417
+ strict[key] = strict[key].map((entry) => makeSchemaStrictCompatible(entry));
418
+ }
419
+ if (strict.properties && typeof strict.properties === "object") {
420
+ const wasRequired = new Set(Array.isArray(strict.required) ? strict.required : []);
421
+ strict.properties = Object.fromEntries(Object.entries(strict.properties).map(([name, value]) => {
422
+ const child = makeSchemaStrictCompatible(value);
423
+ // Only widen what was optional — a field the author already declared
424
+ // nullable keeps its own shape.
425
+ return [name, wasRequired.has(name) ? child : { anyOf: [child, { type: "null" }] }];
426
+ }));
427
+ strict.required = Object.keys(strict.properties);
428
+ strict.additionalProperties = false;
429
+ }
430
+ return strict;
431
+ }
432
+ /**
433
+ * Removes the nulls that {@link makeSchemaStrictCompatible} forced the model to emit,
434
+ * so a value produced under strict mode validates against the ORIGINAL schema again.
435
+ *
436
+ * Only keys the transform actually widened are stripped: a key the author declared
437
+ * `.nullable()` was already required, so its null is meaningful and is preserved.
438
+ * Stripping restores absence, which is what `.optional()` expects and what `.default()`
439
+ * needs in order to apply its default.
440
+ *
441
+ * NOT HANDLED — four node kinds this walk never reaches, where an author-intended
442
+ * null could be dropped (or a synthetic one kept). None occur in this repo today, and
443
+ * each would need BOTH this function and {@link isStrictStructuredOutputCompatible}'s
444
+ * traversal extended before it could be trusted:
445
+ *
446
+ * 1. `.nullable().optional()` — the key is absent from `required`, so its null is
447
+ * read as synthetic and stripped, even though the author declared null to be a
448
+ * legitimate value. (`.nullable()` alone is safe: it stays required.)
449
+ * 2. Nulls inside `anyOf` / `oneOf` branches — the walk descends only through
450
+ * `properties` and `items`, so a null-bearing union branch is never visited and
451
+ * its object properties are compared against no schema at all.
452
+ * 3. Nulls behind `$ref` / `$defs` — there is no ref resolution here, so a
453
+ * referenced subschema contributes no `required` set and every null under it
454
+ * survives, synthetic or not.
455
+ * 4. Tuples / `prefixItems` — only the single `items` schema is followed, so a
456
+ * positional tuple's element schemas are never applied.
457
+ *
458
+ * @param value - The parsed model output
459
+ * @param originalSchema - The schema BEFORE strictification (the source of truth for
460
+ * which keys were genuinely required)
461
+ */
462
+ function stripSyntheticNulls(value, originalSchema) {
463
+ if (!originalSchema || typeof originalSchema !== "object" || value === null || value === undefined)
464
+ return value;
465
+ if (Array.isArray(value)) {
466
+ const items = originalSchema.items;
467
+ return items ? value.map((entry) => stripSyntheticNulls(entry, items)) : value;
468
+ }
469
+ if (typeof value !== "object")
470
+ return value;
471
+ const properties = originalSchema.properties;
472
+ if (!properties || typeof properties !== "object")
473
+ return value;
474
+ const wasRequired = new Set(Array.isArray(originalSchema.required) ? originalSchema.required : []);
475
+ const cleaned = {};
476
+ for (const [key, entry] of Object.entries(value)) {
477
+ // Synthetically nullable AND null → the model is saying "absent".
478
+ if (entry === null && !wasRequired.has(key) && key in properties)
479
+ continue;
480
+ cleaned[key] = key in properties ? stripSyntheticNulls(entry, properties[key]) : entry;
481
+ }
482
+ return cleaned;
483
+ }
277
484
  //# sourceMappingURL=schema.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.utils.js","sourceRoot":"","sources":["../../../../src/core/llm/utils/schema.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,wDAOC;AAqFD,sDAOC;AA6BD,gEAsBC;AAuBD,0DA0EC;AApRD,uCAAyB;AAqBzB;;;;;;;GAOG;AACH,SAAgB,sBAAsB,CAAC,SAAc;IACnD,4CAA4C;IAC5C,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE;QAC/B,MAAM,EAAE,aAAa,EAAE,yDAAyD;QAChF,MAAM,EAAE,KAAK,EAAE,2BAA2B;QAC1C,eAAe,EAAE,KAAK,EAAE,sDAAsD;KAC/E,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,kCAAkC,CAAC,UAAe;IACzD,MAAM,MAAM,GAAkC,EAAE,CAAC;IAEjD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClF,MAAM,QAAQ,GAAkB;YAC9B,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,SAAS;SACpC,CAAC;QAEF,wBAAwB;QACxB,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC5D,QAAQ,CAAC,UAAU,GAAG,kCAAkC,CAAC,WAAW,CAAC,CAAC;QACxE,CAAC;QAED,gBAAgB;QAChB,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtD,QAAQ,CAAC,KAAK,GAAG;gBACf,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;gBAC1C,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS;aAC1C,CAAC;YAEF,2BAA2B;YAC3B,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBACxE,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,kCAAkC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAgB,qBAAqB,CAAC,SAAc;IAClD,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAErD,OAAO;QACL,MAAM,EAAE,kCAAkC,CAAC,UAAU,CAAC;QACtD,WAAW,EAAE,UAAU,CAAC,WAAW;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,0BAA0B,CAAC,SAAiB,EAAE,UAAe,EAAE,WAAoB;IACjG,qCAAqC;IACrC,IAAI,cAAsB,CAAC;IAC3B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpD,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC1C,yDAAyD;QACzD,uDAAuD;QACvD,yDAAyD;QACzD,wDAAwD;QACxD,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;SAAM,CAAC;QACN,qCAAqC;QACrC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,mCAAmC;IACnC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,GAAG,SAAS,KAAK,WAAW,MAAM,cAAc,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,SAAS,KAAK,cAAc,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,uBAAuB,CAAC,MAAW;IACjD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAEzD,gBAAgB;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAEhC,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,oDAAoD;IACpD,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CACvC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAClG,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,SAAS,CAAC,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,4CAA4C;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACnD,mBAAmB;YACnB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,SAAS,CAAC,UAAU,GAAG,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5E,CAAC;YACD,sCAAsC;YACtC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpE,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,uBAAuB;YACvB,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAChC,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,8DAA8D;IAC9D,KAAK,MAAM,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,WAAW,GAAG,uBAAuB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,wCAAwC;YACxC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC3B,SAAS,CAAC,UAAU,GAAG,EAAE,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;YAChF,CAAC;YACD,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACxE,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACxC,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YACpC,CAAC;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,SAAS,CAAC,oBAAoB,IAAI,OAAO,SAAS,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;QACzF,SAAS,CAAC,oBAAoB,GAAG,uBAAuB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"schema.utils.js","sourceRoot":"","sources":["../../../../src/core/llm/utils/schema.utils.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,11 @@ export declare class SecurityService {
19
19
  signInvitationSelectionJwt(params: {
20
20
  userId: string;
21
21
  }): string;
22
+ get companySelectionTokenExpiration(): Date;
23
+ signCompanySelectionJwt(params: {
24
+ userId: string;
25
+ }): string;
26
+ decodeJwt(token: string): any;
22
27
  isCurrentUserCompanyAdmin(): boolean;
23
28
  validateAdmin(params: {
24
29
  user: any;
@@ -1 +1 @@
1
- {"version":3,"file":"security.service.d.ts","sourceRoot":"","sources":["../../../../src/core/security/services/security.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAInE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,UAAU,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAEnF,CAAC;AAEF,qBACa,eAAe;IAExB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;gBADtB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU;IAG3C,IAAI,sBAAsB,IAAI,IAAI,CAEjC;IAED,IAAI,eAAe,IAAI,IAAI,CAE1B;IAED,OAAO,CAAC,MAAM,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM;IAWV,IAAI,kCAAkC,IAAI,IAAI,CAE7C;IAED,0BAA0B,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAQ9D,yBAAyB,IAAI,OAAO;IAKpC,aAAa,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI;IAU1C,aAAa,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO;IAK9D,aAAa,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,CAAA;KAAE,GAAG,MAAM;IAMtE;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAYrE;;;;;;;OAOG;IACH,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAIrC;;OAEG;IACH,IAAI,sBAAsB,IAAI,IAAI,CAEjC;CACF"}
1
+ {"version":3,"file":"security.service.d.ts","sourceRoot":"","sources":["../../../../src/core/security/services/security.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAInE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAU,UAAU,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAEnF,CAAC;AAEF,qBACa,eAAe;IAExB,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;IACzC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;gBADtB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU;IAG3C,IAAI,sBAAsB,IAAI,IAAI,CAEjC;IAED,IAAI,eAAe,IAAI,IAAI,CAE1B;IAED,OAAO,CAAC,MAAM,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM;IAWV,IAAI,kCAAkC,IAAI,IAAI,CAE7C;IAED,0BAA0B,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAQ9D,IAAI,+BAA+B,IAAI,IAAI,CAE1C;IAED,uBAAuB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAQ3D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;IAI7B,yBAAyB,IAAI,OAAO;IAKpC,aAAa,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,IAAI;IAU1C,aAAa,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO;IAK9D,aAAa,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,CAAA;KAAE,GAAG,MAAM;IAMtE;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAYrE;;;;;;;OAOG;IACH,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAIrC;;OAEG;IACH,IAAI,sBAAsB,IAAI,IAAI,CAEjC;CACF"}
@@ -89,6 +89,19 @@ let SecurityService = class SecurityService {
89
89
  expiration: this.invitationSelectionTokenExpiration,
90
90
  });
91
91
  }
92
+ get companySelectionTokenExpiration() {
93
+ return new Date(new Date().getTime() + 10 * 60 * 1000);
94
+ }
95
+ signCompanySelectionJwt(params) {
96
+ return this.jwtService.sign({
97
+ userId: params.userId,
98
+ scope: "company-selection",
99
+ expiration: this.companySelectionTokenExpiration,
100
+ });
101
+ }
102
+ decodeJwt(token) {
103
+ return this.jwtService.decode(token);
104
+ }
92
105
  isCurrentUserCompanyAdmin() {
93
106
  const configurations = this.clsService.get("companyConfigurations");
94
107
  return configurations?.hasRole(system_roles_1.SystemRoles.CompanyAdministrator) ?? false;
@@ -1 +1 @@
1
- {"version":3,"file":"security.service.js","sourceRoot":"","sources":["../../../../src/core/security/services/security.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.service.js","sourceRoot":"","sources":["../../../../src/core/security/services/security.service.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export declare class AuthController {
8
8
  constructor(service: AuthService);
9
9
  findAuth(code: string): Promise<import("../../..").JsonApiDataInterface>;
10
10
  refreshToken(refreshToken: string): Promise<any>;
11
+ findCompanies(): Promise<import("../../..").JsonApiDataInterface>;
12
+ selectCompany(companyId: string): Promise<import("../../..").JsonApiDataInterface>;
11
13
  deleteSinglAuth(request: any): Promise<void>;
12
14
  login(body: AuthPostLoginDTO): Promise<any>;
13
15
  register(body: AuthPostRegisterDTO): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,qBACa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAG3C,QAAQ,CAAgB,IAAI,EAAE,MAAM;IAKpC,YAAY,CAAwB,YAAY,EAAE,MAAM;IASxD,eAAe,CAAQ,OAAO,EAAE,GAAG;IAMnC,KAAK,CAAS,IAAI,EAAE,gBAAgB;IAMpC,QAAQ,CAAS,IAAI,EAAE,mBAAmB;IAM1C,cAAc,CAAS,IAAI,EAAE,iBAAiB,EAAgB,GAAG,CAAC,EAAE,MAAM;IAM1E,iBAAiB,CAAgB,IAAI,EAAE,MAAM;IAM7C,aAAa,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IAMjF,gBAAgB,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IAMpF,eAAe,CAAgB,IAAI,EAAE,MAAM;IAK3C,yBAAyB,CAE7B,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,GACA,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAG7B"}
1
+ {"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,qBACa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAG3C,QAAQ,CAAgB,IAAI,EAAE,MAAM;IAKpC,YAAY,CAAwB,YAAY,EAAE,MAAM;IAWxD,aAAa;IASb,aAAa,CAAqB,SAAS,EAAE,MAAM;IAOnD,eAAe,CAAQ,OAAO,EAAE,GAAG;IAMnC,KAAK,CAAS,IAAI,EAAE,gBAAgB;IAMpC,QAAQ,CAAS,IAAI,EAAE,mBAAmB;IAM1C,cAAc,CAAS,IAAI,EAAE,iBAAiB,EAAgB,GAAG,CAAC,EAAE,MAAM;IAM1E,iBAAiB,CAAgB,IAAI,EAAE,MAAM;IAM7C,aAAa,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IAMjF,gBAAgB,CAAS,IAAI,EAAE,wBAAwB,EAAiB,IAAI,EAAE,MAAM;IAMpF,eAAe,CAAgB,IAAI,EAAE,MAAM;IAK3C,yBAAyB,CAE7B,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,GACA,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAG7B"}
@@ -14,7 +14,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.AuthController = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const jwt_auth_any_scope_guard_1 = require("../../../common/guards/jwt.auth.any-scope.guard");
17
18
  const jwt_auth_guard_1 = require("../../../common/guards/jwt.auth.guard");
19
+ const company_1 = require("../../company");
18
20
  const auth_post_forgot_dto_1 = require("../../auth/dtos/auth.post.forgot.dto");
19
21
  const auth_post_login_dto_1 = require("../../auth/dtos/auth.post.login.dto");
20
22
  const auth_post_register_dto_1 = require("../../auth/dtos/auth.post.register.dto");
@@ -33,6 +35,18 @@ let AuthController = class AuthController {
33
35
  refreshToken: refreshToken,
34
36
  });
35
37
  }
38
+ // GET /auth/companies — the companies the caller may act for.
39
+ // AnyScopeAuthGuard because the caller may hold either a full session token
40
+ // (company switcher) or a short-lived company-selection token (login screen).
41
+ async findCompanies() {
42
+ return await this.service.findCompanies();
43
+ }
44
+ // POST /auth/company-selection/:companyId — non-resource operation: exchanges the
45
+ // caller's token for one scoped to the chosen company. Path-param style mirrors
46
+ // POST auth/refreshtoken/:refreshToken above, so no DTO is needed.
47
+ async selectCompany(companyId) {
48
+ return await this.service.selectCompany({ companyId: companyId });
49
+ }
36
50
  async deleteSinglAuth(request) {
37
51
  const token = request.headers.authorization.split("Bearer ")[1];
38
52
  return await this.service.deleteByToken({ token: token });
@@ -77,6 +91,21 @@ __decorate([
77
91
  __metadata("design:paramtypes", [String]),
78
92
  __metadata("design:returntype", Promise)
79
93
  ], AuthController.prototype, "refreshToken", null);
94
+ __decorate([
95
+ (0, common_1.UseGuards)(jwt_auth_any_scope_guard_1.AnyScopeAuthGuard),
96
+ (0, common_1.Get)(company_1.companyMeta.endpoint),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", []),
99
+ __metadata("design:returntype", Promise)
100
+ ], AuthController.prototype, "findCompanies", null);
101
+ __decorate([
102
+ (0, common_1.UseGuards)(jwt_auth_any_scope_guard_1.AnyScopeAuthGuard),
103
+ (0, common_1.Post)("company-selection/:companyId"),
104
+ __param(0, (0, common_1.Param)("companyId")),
105
+ __metadata("design:type", Function),
106
+ __metadata("design:paramtypes", [String]),
107
+ __metadata("design:returntype", Promise)
108
+ ], AuthController.prototype, "selectCompany", null);
80
109
  __decorate([
81
110
  (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
82
111
  (0, common_1.Delete)(),
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../src/foundations/auth/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,15 @@ export type Auth = Entity & {
4
4
  token: string;
5
5
  expiration: Date;
6
6
  user?: User;
7
+ /**
8
+ * Transient, output-only login-flow fields — never stored on the Auth node.
9
+ *
10
+ * When a user belongs to more than one company the credentials check succeeds but
11
+ * no session is created yet: the response carries `requiresCompanySelection: true`
12
+ * plus a short-lived `selectionToken` scoped to company selection, and the client
13
+ * exchanges it for a full company-scoped token once a company has been chosen.
14
+ */
15
+ requiresCompanySelection?: boolean;
16
+ selectionToken?: string;
7
17
  };
8
18
  //# sourceMappingURL=auth.entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.entity.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/entities/auth.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC"}
1
+ {"version":3,"file":"auth.entity.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/entities/auth.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC"}
@@ -3,6 +3,7 @@ import { Neo4jService } from "../../../core/neo4j/services/neo4j.service";
3
3
  import { SecurityService } from "../../../core/security/services/security.service";
4
4
  import { AuthCode } from "../../auth/entities/auth.code.entity";
5
5
  import { Auth } from "../../auth/entities/auth.entity";
6
+ import { Company } from "../../company";
6
7
  import { User } from "../../user/entities/user";
7
8
  export declare class AuthRepository implements OnModuleInit {
8
9
  private readonly neo4j;
@@ -39,14 +40,41 @@ export declare class AuthRepository implements OnModuleInit {
39
40
  findValidToken(params: {
40
41
  userId: string;
41
42
  }): Promise<Auth>;
43
+ /**
44
+ * Reads the user together with the roles effective in a single company.
45
+ *
46
+ * `companyId` scopes BOTH the company hydration and the membership role read to
47
+ * one explicit company (login/company-switch/refresh); platform memberships (no
48
+ * IN_COMPANY edge) always resolve regardless. When omitted, `$companyId` keeps
49
+ * the CLS value injected by `initQuery()` — identical to the previous behaviour.
50
+ */
42
51
  findUserById(params: {
43
52
  userId: string;
53
+ companyId?: string;
44
54
  }): Promise<User>;
55
+ countUserCompanies(params: {
56
+ userId: string;
57
+ }): Promise<number>;
58
+ /**
59
+ * The companies the user belongs to — the list rendered by the company-selection
60
+ * screen and the company switcher.
61
+ */
62
+ findUserCompanies(params: {
63
+ userId: string;
64
+ }): Promise<Company[]>;
65
+ /**
66
+ * `companyId` pins the session being created to one company: the roles baked
67
+ * into the JWT (signed by AuthService from the same user object) and the roles
68
+ * hydrated onto the returned Auth payload must describe the SAME company, or a
69
+ * user who belongs to more than one company would get a session whose company
70
+ * and roles disagree.
71
+ */
45
72
  create(params: {
46
73
  authId: string;
47
74
  userId: string;
48
75
  token: string;
49
76
  expiration: Date;
77
+ companyId?: string;
50
78
  }): Promise<Auth>;
51
79
  findByToken(params: {
52
80
  token: string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/repositories/auth.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/auth/repositories/auth.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhE,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAkC,MAAM,eAAe,CAAC;AAOxE,OAAO,EAAE,IAAI,EAAkB,MAAM,0BAA0B,CAAC;AAEhE,qBACa,cAAe,YAAW,YAAY;IAE/C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,eAAe;IAGtC,YAAY;IAUZ,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD,UAAU,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAevD,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDnD,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAerD,aAAa,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD,UAAU,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3F,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtE,kBAAkB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D,cAAc,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/D;;;;;;;OAOG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3E,kBAAkB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBrE;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiBvE;;;;;;OAMG;IACG,MAAM,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,IAAI,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0IX,WAAW,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCrD,UAAU,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAerD,kBAAkB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7D,aAAa,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1E,gBAAgB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7E,eAAe,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1D,kBAAkB,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgBpE"}