@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.
- package/CLAUDE.md +2 -0
- package/FRAMEWORK-API.md +1 -1
- package/dist/core/modules/ai/core-ai.controller.d.ts +1 -1
- package/dist/core/modules/ai/core-ai.controller.js +4 -5
- package/dist/core/modules/ai/core-ai.controller.js.map +1 -1
- package/dist/core/modules/ai/core-ai.resolver.d.ts +1 -1
- package/dist/core/modules/ai/core-ai.resolver.js +7 -6
- package/dist/core/modules/ai/core-ai.resolver.js.map +1 -1
- package/dist/core/modules/ai/models/core-ai-conversation.model.d.ts +6 -0
- package/dist/core/modules/ai/models/core-ai-conversation.model.js +13 -1
- package/dist/core/modules/ai/models/core-ai-conversation.model.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai-conversation.service.d.ts +8 -2
- package/dist/core/modules/ai/services/core-ai-conversation.service.js +53 -2
- package/dist/core/modules/ai/services/core-ai-conversation.service.js.map +1 -1
- package/dist/core/modules/migrate/cli/migrate-cli.d.ts +13 -1
- package/dist/core/modules/migrate/cli/migrate-cli.js +16 -1
- package/dist/core/modules/migrate/cli/migrate-cli.js.map +1 -1
- package/dist/core/modules/migrate/migration-runner.d.ts +4 -0
- package/dist/core/modules/migrate/migration-runner.js +46 -6
- package/dist/core/modules/migrate/migration-runner.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/migration-guides/11.31.0-to-11.31.1.md +89 -0
- package/migration-guides/11.31.1-to-11.31.2.md +127 -0
- package/package.json +1 -1
- package/src/core/modules/ai/core-ai.controller.ts +12 -9
- package/src/core/modules/ai/core-ai.resolver.ts +14 -9
- package/src/core/modules/ai/models/core-ai-conversation.model.ts +18 -1
- package/src/core/modules/ai/services/core-ai-conversation.service.ts +110 -4
- package/src/core/modules/migrate/README.md +56 -0
- package/src/core/modules/migrate/cli/migrate-cli.ts +27 -3
- 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
|
|
44
|
-
const
|
|
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
|
|
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
|
-
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../../../src/core/modules/migrate/migration-runner.ts"],"names":[],"mappings":"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"}
|