@carlonicora/nestjs-neo4jsonapi 1.75.0 → 1.77.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.
- package/dist/agents/contextualiser/nodes/atomicfacts.node.service.d.ts.map +1 -1
- package/dist/agents/contextualiser/nodes/atomicfacts.node.service.js +7 -0
- package/dist/agents/contextualiser/nodes/atomicfacts.node.service.js.map +1 -1
- package/dist/agents/contextualiser/nodes/chunk.node.service.d.ts +1 -0
- package/dist/agents/contextualiser/nodes/chunk.node.service.d.ts.map +1 -1
- package/dist/agents/contextualiser/nodes/chunk.node.service.js +10 -2
- package/dist/agents/contextualiser/nodes/chunk.node.service.js.map +1 -1
- package/dist/agents/contextualiser/nodes/keyconcepts.node.service.d.ts +1 -0
- package/dist/agents/contextualiser/nodes/keyconcepts.node.service.d.ts.map +1 -1
- package/dist/agents/contextualiser/nodes/keyconcepts.node.service.js +12 -2
- package/dist/agents/contextualiser/nodes/keyconcepts.node.service.js.map +1 -1
- package/dist/agents/contextualiser/services/contextualiser.service.d.ts +1 -0
- package/dist/agents/contextualiser/services/contextualiser.service.d.ts.map +1 -1
- package/dist/agents/contextualiser/services/contextualiser.service.js +14 -2
- package/dist/agents/contextualiser/services/contextualiser.service.js.map +1 -1
- package/dist/agents/responder/nodes/responder.answer.node.service.d.ts.map +1 -1
- package/dist/agents/responder/nodes/responder.answer.node.service.js +4 -0
- package/dist/agents/responder/nodes/responder.answer.node.service.js.map +1 -1
- package/dist/agents/responder/services/responder.service.d.ts.map +1 -1
- package/dist/agents/responder/services/responder.service.js +68 -48
- package/dist/agents/responder/services/responder.service.js.map +1 -1
- package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
- package/dist/bootstrap/app.module.factory.js +5 -0
- package/dist/bootstrap/app.module.factory.js.map +1 -1
- package/dist/bootstrap/bootstrap.options.d.ts +9 -0
- package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
- package/dist/common/types/data.limits.d.ts +6 -1
- package/dist/common/types/data.limits.d.ts.map +1 -1
- package/dist/core/llm/services/llm.service.d.ts +51 -9
- package/dist/core/llm/services/llm.service.d.ts.map +1 -1
- package/dist/core/llm/services/llm.service.js +161 -54
- package/dist/core/llm/services/llm.service.js.map +1 -1
- package/dist/core/redis/redis.module.d.ts.map +1 -1
- package/dist/core/redis/redis.module.js +3 -2
- package/dist/core/redis/redis.module.js.map +1 -1
- package/dist/core/redis/services/redis.lock.service.d.ts +13 -0
- package/dist/core/redis/services/redis.lock.service.d.ts.map +1 -0
- package/dist/core/redis/services/redis.lock.service.js +57 -0
- package/dist/core/redis/services/redis.lock.service.js.map +1 -0
- package/dist/foundations/assistant/controllers/assistant.controller.d.ts.map +1 -1
- package/dist/foundations/assistant/controllers/assistant.controller.js +11 -6
- package/dist/foundations/assistant/controllers/assistant.controller.js.map +1 -1
- package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts +2 -0
- package/dist/foundations/assistant/dtos/assistant-append.dto.d.ts.map +1 -1
- package/dist/foundations/assistant/dtos/assistant-append.dto.js +10 -0
- package/dist/foundations/assistant/dtos/assistant-append.dto.js.map +1 -1
- package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts +2 -0
- package/dist/foundations/assistant/dtos/assistant-post.dto.d.ts.map +1 -1
- package/dist/foundations/assistant/dtos/assistant-post.dto.js +10 -0
- package/dist/foundations/assistant/dtos/assistant-post.dto.js.map +1 -1
- package/dist/foundations/assistant/services/assistant.service.d.ts +4 -0
- package/dist/foundations/assistant/services/assistant.service.d.ts.map +1 -1
- package/dist/foundations/assistant/services/assistant.service.js +8 -1
- package/dist/foundations/assistant/services/assistant.service.js.map +1 -1
- package/dist/foundations/atomicfact/repositories/atomicfact.repository.d.ts +7 -0
- package/dist/foundations/atomicfact/repositories/atomicfact.repository.d.ts.map +1 -1
- package/dist/foundations/atomicfact/repositories/atomicfact.repository.js +36 -3
- package/dist/foundations/atomicfact/repositories/atomicfact.repository.js.map +1 -1
- package/dist/foundations/chunk/repositories/chunk.repository.d.ts +7 -0
- package/dist/foundations/chunk/repositories/chunk.repository.d.ts.map +1 -1
- package/dist/foundations/chunk/repositories/chunk.repository.js +43 -9
- package/dist/foundations/chunk/repositories/chunk.repository.js.map +1 -1
- package/dist/foundations/chunk/services/chunk.service.js +1 -1
- package/dist/foundations/chunk/services/chunk.service.js.map +1 -1
- package/dist/foundations/help-content-sync/help-content-sync.module.d.ts +6 -0
- package/dist/foundations/help-content-sync/help-content-sync.module.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/help-content-sync.module.js +35 -0
- package/dist/foundations/help-content-sync/help-content-sync.module.js.map +1 -0
- package/dist/foundations/help-content-sync/helpers/create-help-content-reader.d.ts +5 -0
- package/dist/foundations/help-content-sync/helpers/create-help-content-reader.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/helpers/create-help-content-reader.js +9 -0
- package/dist/foundations/help-content-sync/helpers/create-help-content-reader.js.map +1 -0
- package/dist/foundations/help-content-sync/helpers/to-content-id.d.ts +3 -0
- package/dist/foundations/help-content-sync/helpers/to-content-id.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/helpers/to-content-id.js +8 -0
- package/dist/foundations/help-content-sync/helpers/to-content-id.js.map +1 -0
- package/dist/foundations/help-content-sync/index.d.ts +7 -0
- package/dist/foundations/help-content-sync/index.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/index.js +28 -0
- package/dist/foundations/help-content-sync/index.js.map +1 -0
- package/dist/foundations/help-content-sync/interfaces/help-article.interface.d.ts +29 -0
- package/dist/foundations/help-content-sync/interfaces/help-article.interface.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/interfaces/help-article.interface.js +5 -0
- package/dist/foundations/help-content-sync/interfaces/help-article.interface.js.map +1 -0
- package/dist/foundations/help-content-sync/interfaces/help-content-config.interface.d.ts +8 -0
- package/dist/foundations/help-content-sync/interfaces/help-content-config.interface.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/interfaces/help-content-config.interface.js +3 -0
- package/dist/foundations/help-content-sync/interfaces/help-content-config.interface.js.map +1 -0
- package/dist/foundations/help-content-sync/schema/frontmatter.schema.d.ts +19 -0
- package/dist/foundations/help-content-sync/schema/frontmatter.schema.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/schema/frontmatter.schema.js +20 -0
- package/dist/foundations/help-content-sync/schema/frontmatter.schema.js.map +1 -0
- package/dist/foundations/help-content-sync/services/help-content-sync.service.d.ts +21 -0
- package/dist/foundations/help-content-sync/services/help-content-sync.service.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/services/help-content-sync.service.js +111 -0
- package/dist/foundations/help-content-sync/services/help-content-sync.service.js.map +1 -0
- package/dist/foundations/help-content-sync/services/mdx-to-markdown.service.d.ts +13 -0
- package/dist/foundations/help-content-sync/services/mdx-to-markdown.service.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/services/mdx-to-markdown.service.js +104 -0
- package/dist/foundations/help-content-sync/services/mdx-to-markdown.service.js.map +1 -0
- package/dist/foundations/help-content-sync/tokens.d.ts +2 -0
- package/dist/foundations/help-content-sync/tokens.d.ts.map +1 -0
- package/dist/foundations/help-content-sync/tokens.js +5 -0
- package/dist/foundations/help-content-sync/tokens.js.map +1 -0
- package/dist/foundations/how-to/entities/how-to.d.ts +2 -0
- package/dist/foundations/how-to/entities/how-to.d.ts.map +1 -1
- package/dist/foundations/how-to/entities/how-to.js +2 -0
- package/dist/foundations/how-to/entities/how-to.js.map +1 -1
- package/dist/foundations/how-to/repositories/how-to.repository.d.ts +6 -0
- package/dist/foundations/how-to/repositories/how-to.repository.d.ts.map +1 -1
- package/dist/foundations/how-to/repositories/how-to.repository.js +14 -0
- package/dist/foundations/how-to/repositories/how-to.repository.js.map +1 -1
- package/dist/foundations/how-to/services/how-to.service.d.ts +13 -1
- package/dist/foundations/how-to/services/how-to.service.d.ts.map +1 -1
- package/dist/foundations/how-to/services/how-to.service.js +16 -2
- package/dist/foundations/how-to/services/how-to.service.js.map +1 -1
- package/dist/foundations/index.d.ts +1 -0
- package/dist/foundations/index.d.ts.map +1 -1
- package/dist/foundations/index.js +1 -0
- package/dist/foundations/index.js.map +1 -1
- package/dist/foundations/keyconcept/repositories/keyconcept.repository.d.ts +15 -1
- package/dist/foundations/keyconcept/repositories/keyconcept.repository.d.ts.map +1 -1
- package/dist/foundations/keyconcept/repositories/keyconcept.repository.js +121 -23
- package/dist/foundations/keyconcept/repositories/keyconcept.repository.js.map +1 -1
- package/dist/foundations/keyconcept/services/keyconcept.service.d.ts +1 -1
- package/dist/foundations/keyconcept/services/keyconcept.service.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/help-content-build/build-manifest.d.ts +31 -0
- package/dist/tools/help-content-build/build-manifest.d.ts.map +1 -0
- package/dist/tools/help-content-build/build-manifest.js +134 -0
- package/dist/tools/help-content-build/build-manifest.js.map +1 -0
- package/dist/tools/help-content-build/index.d.ts +2 -0
- package/dist/tools/help-content-build/index.d.ts.map +1 -0
- package/dist/tools/help-content-build/index.js +6 -0
- package/dist/tools/help-content-build/index.js.map +1 -0
- package/package.json +17 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyconcept.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/keyconcept/services/keyconcept.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAE3F,qBACa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,oBAAoB;IAEjE,uBAAuB,CAAC,MAAM,EAAE;QAAE,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9E,gBAAgB,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlF,kDAAkD,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9F,0BAA0B,CAAC,MAAM,EAAE;QACvC,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"keyconcept.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/keyconcept/services/keyconcept.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAE3F,qBACa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAApB,oBAAoB,EAAE,oBAAoB;IAEjE,uBAAuB,CAAC,MAAM,EAAE;QAAE,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9E,gBAAgB,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlF,kDAAkD,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9F,0BAA0B,CAAC,MAAM,EAAE;QACvC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;SACtB,EAAE,CAAC;KACL,GAAG,OAAO,CAAC,IAAI,CAAC;IAQX,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrD"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.RedisLockService = void 0;
|
|
22
23
|
// Common exports
|
|
23
24
|
__exportStar(require("./common"), exports);
|
|
24
25
|
// Config exports
|
|
@@ -35,4 +36,7 @@ __exportStar(require("./agents"), exports);
|
|
|
35
36
|
__exportStar(require("./bootstrap"), exports);
|
|
36
37
|
// OpenAPI module exports
|
|
37
38
|
__exportStar(require("./openapi"), exports);
|
|
39
|
+
// RedisLockService is not re-exported by core/redis/index.ts, so export explicitly here.
|
|
40
|
+
var redis_lock_service_1 = require("./core/redis/services/redis.lock.service");
|
|
41
|
+
Object.defineProperty(exports, "RedisLockService", { enumerable: true, get: function () { return redis_lock_service_1.RedisLockService; } });
|
|
38
42
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,2CAAyB;AAEzB,iBAAiB;AACjB,2CAAyB;AAEzB,sBAAsB;AACtB,yCAAuB;AACvB,6CAA2B;AAC3B,kDAAgC;AAEhC,4BAA4B;AAC5B,gDAA8B;AAE9B,uBAAuB;AACvB,2CAAyB;AAEzB,sBAAsB;AACtB,8CAA4B;AAE5B,yBAAyB;AACzB,4CAA0B;AAE1B,yFAAyF;AACzF,+EAA4E;AAAnE,sHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { HelpMode } from "../../foundations/help-content-sync/interfaces/help-article.interface";
|
|
2
|
+
export interface BuildManifestOptions {
|
|
3
|
+
srcDir: string;
|
|
4
|
+
outputPath: string;
|
|
5
|
+
namespaceUuid: string;
|
|
6
|
+
includeDrafts?: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface BuiltEntry {
|
|
9
|
+
id: string;
|
|
10
|
+
slug: string;
|
|
11
|
+
mode: HelpMode;
|
|
12
|
+
title: string;
|
|
13
|
+
summary: string;
|
|
14
|
+
order: number;
|
|
15
|
+
tags: string[];
|
|
16
|
+
contextualKeys: string[];
|
|
17
|
+
aiIndexed: boolean;
|
|
18
|
+
draft: boolean;
|
|
19
|
+
contentHash: string;
|
|
20
|
+
path: string;
|
|
21
|
+
headings: {
|
|
22
|
+
depth: 2 | 3;
|
|
23
|
+
slug: string;
|
|
24
|
+
text: string;
|
|
25
|
+
}[];
|
|
26
|
+
relatedSlugs: string[];
|
|
27
|
+
lastUpdated: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function buildManifest(opts: BuildManifestOptions): Promise<BuiltEntry[]>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=build-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-manifest.d.ts","sourceRoot":"","sources":["../../../src/tools/help-content-build/build-manifest.ts"],"names":[],"mappings":"AAUA,OAAO,EAAc,QAAQ,EAAE,MAAM,uEAAuE,CAAC;AAM7G,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAmDD,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAiErF"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.buildManifest = buildManifest;
|
|
7
|
+
const node_crypto_1 = require("node:crypto");
|
|
8
|
+
const promises_1 = require("node:fs/promises");
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
10
|
+
const node_path_1 = require("node:path");
|
|
11
|
+
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
12
|
+
const unified_1 = require("unified");
|
|
13
|
+
const remark_parse_1 = __importDefault(require("remark-parse"));
|
|
14
|
+
const remark_mdx_1 = __importDefault(require("remark-mdx"));
|
|
15
|
+
const frontmatter_schema_1 = require("../../foundations/help-content-sync/schema/frontmatter.schema");
|
|
16
|
+
const help_article_interface_1 = require("../../foundations/help-content-sync/interfaces/help-article.interface");
|
|
17
|
+
// NOTE: buildManifest produces ids using the consumer-provided namespaceUuid.
|
|
18
|
+
// The build script accepts namespaceUuid as a parameter so the manifest's ids
|
|
19
|
+
// match what the runtime sync will compute via toContentId.
|
|
20
|
+
const to_content_id_1 = require("../../foundations/help-content-sync/helpers/to-content-id");
|
|
21
|
+
function slugifyHeading(text) {
|
|
22
|
+
return text
|
|
23
|
+
.toLowerCase()
|
|
24
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
25
|
+
.replace(/^-|-$/g, "");
|
|
26
|
+
}
|
|
27
|
+
function extractHeadings(tree) {
|
|
28
|
+
const out = [];
|
|
29
|
+
function walk(node) {
|
|
30
|
+
const n = node;
|
|
31
|
+
if (n.type === "heading" && (n.depth === 2 || n.depth === 3)) {
|
|
32
|
+
const heading = node;
|
|
33
|
+
const text = heading.children
|
|
34
|
+
.map((c) => {
|
|
35
|
+
const child = c;
|
|
36
|
+
return typeof child.value === "string" ? child.value : "";
|
|
37
|
+
})
|
|
38
|
+
.join("")
|
|
39
|
+
.trim();
|
|
40
|
+
out.push({ depth: n.depth, slug: slugifyHeading(text), text });
|
|
41
|
+
}
|
|
42
|
+
if (n.children && Array.isArray(n.children))
|
|
43
|
+
n.children.forEach(walk);
|
|
44
|
+
}
|
|
45
|
+
walk(tree);
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
function lastUpdatedFromGit(absPath) {
|
|
49
|
+
try {
|
|
50
|
+
const iso = (0, node_child_process_1.execSync)(`git log -1 --format=%cI -- "${absPath}"`, { encoding: "utf8" }).trim();
|
|
51
|
+
if (iso)
|
|
52
|
+
return iso;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// file not tracked yet
|
|
56
|
+
}
|
|
57
|
+
return new Date().toISOString();
|
|
58
|
+
}
|
|
59
|
+
async function walkMdxFiles(dir) {
|
|
60
|
+
const entries = await (0, promises_1.readdir)(dir, { withFileTypes: true });
|
|
61
|
+
const out = [];
|
|
62
|
+
for (const entry of entries) {
|
|
63
|
+
const full = (0, node_path_1.join)(dir, entry.name);
|
|
64
|
+
if (entry.isDirectory())
|
|
65
|
+
out.push(...(await walkMdxFiles(full)));
|
|
66
|
+
else if (entry.isFile() && entry.name.endsWith(".mdx"))
|
|
67
|
+
out.push(full);
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
async function buildManifest(opts) {
|
|
72
|
+
const { srcDir, outputPath, namespaceUuid, includeDrafts = false } = opts;
|
|
73
|
+
const mdxFiles = await walkMdxFiles(srcDir);
|
|
74
|
+
const entries = [];
|
|
75
|
+
const seenBySlug = new Map();
|
|
76
|
+
for (const abs of mdxFiles) {
|
|
77
|
+
const rel = (0, node_path_1.relative)(srcDir, abs).split(node_path_1.sep).join("/");
|
|
78
|
+
const parts = rel.split("/");
|
|
79
|
+
if (parts.length !== 2)
|
|
80
|
+
continue;
|
|
81
|
+
const [modeFolder, fileName] = parts;
|
|
82
|
+
if (!help_article_interface_1.HELP_MODES.includes(modeFolder))
|
|
83
|
+
continue;
|
|
84
|
+
if (!fileName.endsWith(".mdx"))
|
|
85
|
+
continue;
|
|
86
|
+
const slug = fileName.replace(/\.mdx$/, "");
|
|
87
|
+
const dedupKey = `${modeFolder}/${slug.toLowerCase()}`;
|
|
88
|
+
if (seenBySlug.has(dedupKey)) {
|
|
89
|
+
throw new Error(`Duplicate slug detected: ${rel} conflicts with ${seenBySlug.get(dedupKey)}`);
|
|
90
|
+
}
|
|
91
|
+
seenBySlug.set(dedupKey, rel);
|
|
92
|
+
const raw = await (0, promises_1.readFile)(abs, "utf8");
|
|
93
|
+
const fm = (0, gray_matter_1.default)(raw);
|
|
94
|
+
const parsed = frontmatter_schema_1.helpFrontmatterSchema.parse(fm.data);
|
|
95
|
+
if (!includeDrafts && parsed.draft)
|
|
96
|
+
continue;
|
|
97
|
+
const tree = (0, unified_1.unified)().use(remark_parse_1.default).use(remark_mdx_1.default).parse(fm.content);
|
|
98
|
+
const headings = extractHeadings(tree);
|
|
99
|
+
const contentHash = (0, node_crypto_1.createHash)("sha256").update(raw).digest("hex");
|
|
100
|
+
entries.push({
|
|
101
|
+
id: (0, to_content_id_1.toContentId)(modeFolder, slug, namespaceUuid),
|
|
102
|
+
slug,
|
|
103
|
+
mode: modeFolder,
|
|
104
|
+
title: parsed.title,
|
|
105
|
+
summary: parsed.summary,
|
|
106
|
+
order: parsed.order,
|
|
107
|
+
tags: parsed.tags,
|
|
108
|
+
contextualKeys: parsed.contextual_keys,
|
|
109
|
+
aiIndexed: parsed.ai_indexed,
|
|
110
|
+
draft: parsed.draft,
|
|
111
|
+
contentHash,
|
|
112
|
+
path: rel,
|
|
113
|
+
headings,
|
|
114
|
+
relatedSlugs: parsed.related,
|
|
115
|
+
lastUpdated: lastUpdatedFromGit(abs),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const visibleSet = new Set(entries.map((e) => `${e.mode}/${e.slug}`));
|
|
119
|
+
for (const e of entries) {
|
|
120
|
+
for (const relSlug of e.relatedSlugs) {
|
|
121
|
+
if (!visibleSet.has(relSlug)) {
|
|
122
|
+
throw new Error(`Article ${e.mode}/${e.slug} relates to non-existent ${relSlug}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
entries.sort((a, b) => a.mode.localeCompare(b.mode) || a.order - b.order);
|
|
127
|
+
const file = `// AUTO-GENERATED by @carlonicora/nestjs-neo4jsonapi/help-content-build. Do not edit by hand.
|
|
128
|
+
import type { HelpArticle } from "@carlonicora/nestjs-neo4jsonapi";
|
|
129
|
+
export const helpManifest: readonly HelpArticle[] = ${JSON.stringify(entries, null, 2)} as const;
|
|
130
|
+
`;
|
|
131
|
+
await (0, promises_1.writeFile)(outputPath, file, "utf8");
|
|
132
|
+
return entries;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=build-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-manifest.js","sourceRoot":"","sources":["../../../src/tools/help-content-build/build-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/help-content-build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildManifest = void 0;
|
|
4
|
+
var build_manifest_1 = require("./build-manifest");
|
|
5
|
+
Object.defineProperty(exports, "buildManifest", { enumerable: true, get: function () { return build_manifest_1.buildManifest; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/help-content-build/index.ts"],"names":[],"mappings":";;;AAAA,mDAA4E;AAAnE,+GAAA,aAAa,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carlonicora/nestjs-neo4jsonapi",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.77.0",
|
|
4
4
|
"description": "NestJS foundation package with JSON:API, Neo4j, Redis, LangChain agents, and common utilities",
|
|
5
5
|
"author": "Carlo Nicora",
|
|
6
6
|
"license": "GPL-3.0-or-later",
|
|
@@ -47,6 +47,10 @@
|
|
|
47
47
|
"./bootstrap": {
|
|
48
48
|
"types": "./dist/bootstrap/index.d.ts",
|
|
49
49
|
"default": "./dist/bootstrap/index.js"
|
|
50
|
+
},
|
|
51
|
+
"./help-content-build": {
|
|
52
|
+
"types": "./dist/tools/help-content-build/index.d.ts",
|
|
53
|
+
"default": "./dist/tools/help-content-build/index.js"
|
|
50
54
|
}
|
|
51
55
|
},
|
|
52
56
|
"scripts": {
|
|
@@ -63,6 +67,7 @@
|
|
|
63
67
|
"prepublishOnly": "pnpm build"
|
|
64
68
|
},
|
|
65
69
|
"dependencies": {
|
|
70
|
+
"@ai-sdk/openai-compatible": "^2.0.0",
|
|
66
71
|
"@aws-sdk/client-s3": "^3.1053.0",
|
|
67
72
|
"@aws-sdk/s3-request-presigner": "^3.1053.0",
|
|
68
73
|
"@azure/storage-blob": "^12.31.0",
|
|
@@ -83,6 +88,14 @@
|
|
|
83
88
|
"@sendgrid/mail": "^8.1.6",
|
|
84
89
|
"@simplewebauthn/server": "^13.3.0",
|
|
85
90
|
"adm-zip": "^0.5.17",
|
|
91
|
+
"gray-matter": "^4.0.3",
|
|
92
|
+
"mdast-util-mdx": "^3.0.0",
|
|
93
|
+
"mdast-util-to-markdown": "^2.1.2",
|
|
94
|
+
"remark-mdx": "^3.1.1",
|
|
95
|
+
"remark-parse": "^11.0.0",
|
|
96
|
+
"unified": "^11.0.5",
|
|
97
|
+
"uuid": "^14.0.0",
|
|
98
|
+
"ai": "^6.0.5",
|
|
86
99
|
"axios": "^1.16.1",
|
|
87
100
|
"bcrypt": "^6.0.0",
|
|
88
101
|
"bcryptjs": "^3.0.3",
|
|
@@ -90,7 +103,7 @@
|
|
|
90
103
|
"class-transformer": "^0.5.1",
|
|
91
104
|
"class-validator": "^0.14.3",
|
|
92
105
|
"discord.js": "^14.26.4",
|
|
93
|
-
"docx": "
|
|
106
|
+
"docx": "9.6.1",
|
|
94
107
|
"docx-templates": "^4.15.0",
|
|
95
108
|
"fast-xml-parser": "^5.8.0",
|
|
96
109
|
"fastify": "^5.8.5",
|
|
@@ -142,7 +155,9 @@
|
|
|
142
155
|
"@swc/core": "^1.15.33",
|
|
143
156
|
"@types/bcrypt": "^6.0.0",
|
|
144
157
|
"@types/bcryptjs": "^3.0.0",
|
|
158
|
+
"@types/mdast": "^4.0.4",
|
|
145
159
|
"@types/node": "^25.9.1",
|
|
160
|
+
"@types/uuid": "^10.0.0",
|
|
146
161
|
"@types/nodemailer": "^8.0.0",
|
|
147
162
|
"@types/passport-jwt": "^4.0.1",
|
|
148
163
|
"@types/qrcode": "^1.5.6",
|