@lenne.tech/nest-server 11.31.0 → 11.31.2

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 (31) hide show
  1. package/CLAUDE.md +2 -0
  2. package/FRAMEWORK-API.md +1 -1
  3. package/dist/core/modules/ai/core-ai.controller.d.ts +1 -1
  4. package/dist/core/modules/ai/core-ai.controller.js +4 -5
  5. package/dist/core/modules/ai/core-ai.controller.js.map +1 -1
  6. package/dist/core/modules/ai/core-ai.resolver.d.ts +1 -1
  7. package/dist/core/modules/ai/core-ai.resolver.js +7 -6
  8. package/dist/core/modules/ai/core-ai.resolver.js.map +1 -1
  9. package/dist/core/modules/ai/models/core-ai-conversation.model.d.ts +6 -0
  10. package/dist/core/modules/ai/models/core-ai-conversation.model.js +13 -1
  11. package/dist/core/modules/ai/models/core-ai-conversation.model.js.map +1 -1
  12. package/dist/core/modules/ai/services/core-ai-conversation.service.d.ts +8 -2
  13. package/dist/core/modules/ai/services/core-ai-conversation.service.js +53 -2
  14. package/dist/core/modules/ai/services/core-ai-conversation.service.js.map +1 -1
  15. package/dist/core/modules/migrate/cli/migrate-cli.d.ts +13 -1
  16. package/dist/core/modules/migrate/cli/migrate-cli.js +16 -1
  17. package/dist/core/modules/migrate/cli/migrate-cli.js.map +1 -1
  18. package/dist/core/modules/migrate/migration-runner.d.ts +4 -0
  19. package/dist/core/modules/migrate/migration-runner.js +46 -6
  20. package/dist/core/modules/migrate/migration-runner.js.map +1 -1
  21. package/dist/tsconfig.build.tsbuildinfo +1 -1
  22. package/migration-guides/11.31.0-to-11.31.1.md +89 -0
  23. package/migration-guides/11.31.1-to-11.31.2.md +127 -0
  24. package/package.json +1 -1
  25. package/src/core/modules/ai/core-ai.controller.ts +12 -9
  26. package/src/core/modules/ai/core-ai.resolver.ts +14 -9
  27. package/src/core/modules/ai/models/core-ai-conversation.model.ts +18 -1
  28. package/src/core/modules/ai/services/core-ai-conversation.service.ts +110 -4
  29. package/src/core/modules/migrate/README.md +56 -0
  30. package/src/core/modules/migrate/cli/migrate-cli.ts +27 -3
  31. package/src/core/modules/migrate/migration-runner.ts +123 -6
@@ -1,14 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MigrationRunner = exports.DEFAULT_MIGRATION_FILE_PATTERN = void 0;
4
+ exports.migrationId = migrationId;
5
+ exports.parseStrictEnv = parseStrictEnv;
4
6
  const fs = require("fs");
5
7
  const path = require("path");
6
8
  exports.DEFAULT_MIGRATION_FILE_PATTERN = /(?:(?<!\.d)\.ts|\.js)$/;
9
+ const MIGRATION_EXTENSION_PATTERN = /\.(ts|js)$/;
10
+ function migrationId(title) {
11
+ return title.replace(MIGRATION_EXTENSION_PATTERN, '');
12
+ }
13
+ function parseStrictEnv(value = process.env.NSC__MIGRATE__STRICT) {
14
+ if (value === undefined) {
15
+ return false;
16
+ }
17
+ const normalized = value.trim().toLowerCase();
18
+ if (['1', 'true', 'yes'].includes(normalized)) {
19
+ return true;
20
+ }
21
+ if (normalized !== '' && !['0', 'false', 'no'].includes(normalized)) {
22
+ console.warn(`[migrate] Unrecognized NSC__MIGRATE__STRICT value "${value}" — treating as false (tolerate).`);
23
+ }
24
+ return false;
25
+ }
7
26
  class MigrationRunner {
8
27
  options;
9
28
  pattern;
10
29
  constructor(options) {
11
- this.options = options;
30
+ this.options = { ...options, strict: options.strict ?? parseStrictEnv() };
12
31
  this.pattern = options.pattern || exports.DEFAULT_MIGRATION_FILE_PATTERN;
13
32
  }
14
33
  async loadMigrationFiles() {
@@ -17,7 +36,13 @@ class MigrationRunner {
17
36
  .filter((file) => this.pattern.test(file))
18
37
  .sort();
19
38
  const migrations = [];
39
+ const seenIds = new Set();
20
40
  for (const file of files) {
41
+ const id = migrationId(file);
42
+ if (seenIds.has(id)) {
43
+ console.warn(`[migrate] duplicate files for migration "${id}" — skipping ${file} (a same-named file was already loaded)`);
44
+ continue;
45
+ }
21
46
  const filePath = path.join(this.options.migrationsDirectory, file);
22
47
  const module = require(filePath);
23
48
  if (!module.up) {
@@ -26,6 +51,7 @@ class MigrationRunner {
26
51
  }
27
52
  const timestampMatch = file.match(/^(\d+)-/);
28
53
  const timestamp = timestampMatch ? parseInt(timestampMatch[1], 10) : Date.now();
54
+ seenIds.add(id);
29
55
  migrations.push({
30
56
  down: module.down,
31
57
  filePath,
@@ -40,8 +66,18 @@ class MigrationRunner {
40
66
  const { _endMigration, _startMigration } = await Promise.resolve().then(() => require('./helpers/migration.helper'));
41
67
  const allMigrations = await this.loadMigrationFiles();
42
68
  const state = await this.options.stateStore.loadAsync();
43
- const completedMigrations = (state.migrations || []).map((m) => m.title);
44
- const pendingMigrations = allMigrations.filter((m) => !completedMigrations.includes(m.title));
69
+ const recorded = state.migrations || [];
70
+ const presentIds = new Set(allMigrations.map((m) => migrationId(m.title)));
71
+ const missing = recorded.filter((m) => !presentIds.has(migrationId(m.title)));
72
+ if (missing.length > 0) {
73
+ const list = missing.map((m) => m.title).join(', ');
74
+ if (this.options.strict) {
75
+ throw new Error(`Strict mode: ${missing.length} recorded migration file(s) missing: ${list}`);
76
+ }
77
+ console.warn(`[migrate] ${missing.length} recorded migration file(s) missing — tolerated (strict=false): ${list}`);
78
+ }
79
+ const completedIds = new Set(recorded.map((m) => migrationId(m.title)));
80
+ const pendingMigrations = allMigrations.filter((m) => !completedIds.has(migrationId(m.title)));
45
81
  if (pendingMigrations.length === 0) {
46
82
  console.log('No pending migrations');
47
83
  return;
@@ -81,9 +117,10 @@ class MigrationRunner {
81
117
  }
82
118
  const lastMigration = completedMigrations[completedMigrations.length - 1];
83
119
  const allMigrations = await this.loadMigrationFiles();
84
- const migrationToRollback = allMigrations.find((m) => m.title === lastMigration.title);
120
+ const rollbackId = migrationId(lastMigration.title);
121
+ const migrationToRollback = allMigrations.find((m) => migrationId(m.title) === rollbackId);
85
122
  if (!migrationToRollback) {
86
- throw new Error(`Migration file not found: ${lastMigration.title}`);
123
+ throw new Error(`Migration file not found: ${lastMigration.title} — restore the file from git to roll back.`);
87
124
  }
88
125
  if (!migrationToRollback.down) {
89
126
  throw new Error(`Migration ${lastMigration.title} has no 'down' function`);
@@ -108,9 +145,12 @@ class MigrationRunner {
108
145
  const allMigrations = await this.loadMigrationFiles();
109
146
  const state = await this.options.stateStore.loadAsync();
110
147
  const completedMigrations = (state.migrations || []).map((m) => m.title);
148
+ const completedIds = new Set(completedMigrations.map(migrationId));
149
+ const presentIds = new Set(allMigrations.map((m) => migrationId(m.title)));
111
150
  return {
112
151
  completed: completedMigrations,
113
- pending: allMigrations.filter((m) => !completedMigrations.includes(m.title)).map((m) => m.title),
152
+ missing: completedMigrations.filter((title) => !presentIds.has(migrationId(title))),
153
+ pending: allMigrations.filter((m) => !completedIds.has(migrationId(m.title))).map((m) => m.title),
114
154
  };
115
155
  }
116
156
  static async create(migrationsDirectory, name) {
@@ -1 +1 @@
1
- {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../../../src/core/modules/migrate/migration-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../../../src/core/modules/migrate/migration-runner.ts"],"names":[],"mappings":"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"}