@n8n/instance-ai 1.9.0 → 1.10.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 (36) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +2 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/skills/materialize-runtime-skills.d.ts +7 -1
  6. package/dist/skills/materialize-runtime-skills.js +174 -94
  7. package/dist/skills/materialize-runtime-skills.js.map +1 -1
  8. package/dist/tools/orchestration/build-workflow-agent.tool.js +1 -1
  9. package/dist/tools/orchestration/build-workflow-agent.tool.js.map +1 -1
  10. package/dist/workspace/sandbox-fs.d.ts +15 -17
  11. package/dist/workspace/sandbox-fs.js.map +1 -1
  12. package/dist/workspace/sandbox-setup.d.ts +1 -1
  13. package/dist/workspace/sandbox-setup.js +0 -8
  14. package/dist/workspace/sandbox-setup.js.map +1 -1
  15. package/dist/workspace/snapshot-manager.d.ts +0 -2
  16. package/dist/workspace/snapshot-manager.js +9 -29
  17. package/dist/workspace/snapshot-manager.js.map +1 -1
  18. package/package.json +6 -6
  19. package/dist/knowledge-base/materialize-knowledge-base.d.ts +0 -39
  20. package/dist/knowledge-base/materialize-knowledge-base.js +0 -98
  21. package/dist/knowledge-base/materialize-knowledge-base.js.map +0 -1
  22. package/dist/workspace/compute-workspace-content-hash.d.ts +0 -1
  23. package/dist/workspace/compute-workspace-content-hash.js +0 -15
  24. package/dist/workspace/compute-workspace-content-hash.js.map +0 -1
  25. package/dist/workspace/prebaked-workspace-bundle.d.ts +0 -39
  26. package/dist/workspace/prebaked-workspace-bundle.js +0 -75
  27. package/dist/workspace/prebaked-workspace-bundle.js.map +0 -1
  28. package/dist/workspace/workspace-file-content.d.ts +0 -2
  29. package/dist/workspace/workspace-file-content.js +0 -11
  30. package/dist/workspace/workspace-file-content.js.map +0 -1
  31. package/dist/workspace/workspace-files.d.ts +0 -20
  32. package/dist/workspace/workspace-files.js +0 -74
  33. package/dist/workspace/workspace-files.js.map +0 -1
  34. package/dist/workspace/workspace-manifest.d.ts +0 -12
  35. package/dist/workspace/workspace-manifest.js +0 -28
  36. package/dist/workspace/workspace-manifest.js.map +0 -1
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KNOWLEDGE_BASE_MANIFEST_SCHEMA_VERSION = exports.KNOWLEDGE_BASE_MANIFEST_FILE = exports.KNOWLEDGE_BASE_BEST_PRACTICES_DIR = exports.SANDBOX_KNOWLEDGE_BASE_DIR = void 0;
4
- exports.buildKnowledgeBaseWorkspaceBundle = buildKnowledgeBaseWorkspaceBundle;
5
- exports.loadPrebakedKnowledgeBaseBundle = loadPrebakedKnowledgeBaseBundle;
6
- exports.materializeKnowledgeBaseIntoWorkspace = materializeKnowledgeBaseIntoWorkspace;
7
- const best_practices_1 = require("@n8n/workflow-sdk/prompts/best-practices");
8
- const posix_1 = require("node:path/posix");
9
- const compute_workspace_content_hash_1 = require("../workspace/compute-workspace-content-hash");
10
- const prebaked_workspace_bundle_1 = require("../workspace/prebaked-workspace-bundle");
11
- const workspace_file_content_1 = require("../workspace/workspace-file-content");
12
- const workspace_manifest_1 = require("../workspace/workspace-manifest");
13
- exports.SANDBOX_KNOWLEDGE_BASE_DIR = 'knowledge-base';
14
- exports.KNOWLEDGE_BASE_BEST_PRACTICES_DIR = 'best-practices';
15
- exports.KNOWLEDGE_BASE_MANIFEST_FILE = workspace_manifest_1.WORKSPACE_MANIFEST_FILE;
16
- exports.KNOWLEDGE_BASE_MANIFEST_SCHEMA_VERSION = 1;
17
- function buildKnowledgeBaseWorkspaceBundle({ root, }) {
18
- const rootDir = (0, posix_1.join)(root, exports.SANDBOX_KNOWLEDGE_BASE_DIR);
19
- const files = new Map();
20
- const entries = [];
21
- for (const guideId of Object.values(best_practices_1.WorkflowTechnique)) {
22
- const doc = best_practices_1.bestPracticesRegistry[guideId];
23
- const description = best_practices_1.TechniqueDescription[guideId];
24
- const entry = {
25
- id: guideId,
26
- description,
27
- hasDocumentation: Boolean(doc),
28
- };
29
- if (doc) {
30
- const relativeFilePath = (0, posix_1.join)(exports.KNOWLEDGE_BASE_BEST_PRACTICES_DIR, `${guideId}.md`);
31
- files.set((0, posix_1.join)(rootDir, relativeFilePath), (0, workspace_file_content_1.withTrailingNewline)(doc.getDocumentation()));
32
- entry.file = relativeFilePath;
33
- entry.version = doc.version;
34
- }
35
- entries.push(entry);
36
- }
37
- const indexPath = (0, posix_1.join)(rootDir, exports.KNOWLEDGE_BASE_BEST_PRACTICES_DIR, 'index.json');
38
- const index = { entries };
39
- files.set(indexPath, (0, workspace_file_content_1.stringifyWorkspaceJson)(index));
40
- const manifestPath = (0, posix_1.join)(rootDir, exports.KNOWLEDGE_BASE_MANIFEST_FILE);
41
- const contentHash = (0, compute_workspace_content_hash_1.computeWorkspaceContentHash)(files);
42
- const manifest = {
43
- schemaVersion: exports.KNOWLEDGE_BASE_MANIFEST_SCHEMA_VERSION,
44
- contentHash,
45
- };
46
- files.set(manifestPath, (0, workspace_file_content_1.stringifyWorkspaceJson)(manifest));
47
- return {
48
- rootDir,
49
- manifestPath,
50
- indexPath,
51
- files,
52
- contentHash,
53
- };
54
- }
55
- const KNOWLEDGE_BASE_FILE_LABEL = 'Knowledge base file';
56
- async function loadPrebakedKnowledgeBaseBundle({ workspace, root, logger, }) {
57
- const bundle = buildKnowledgeBaseWorkspaceBundle({ root });
58
- return await (0, prebaked_workspace_bundle_1.loadPrebakedWorkspaceBundle)({
59
- workspace,
60
- manifestPath: bundle.manifestPath,
61
- expectedHash: bundle.contentHash,
62
- hashField: 'contentHash',
63
- schemaVersion: exports.KNOWLEDGE_BASE_MANIFEST_SCHEMA_VERSION,
64
- resourceLabel: KNOWLEDGE_BASE_FILE_LABEL,
65
- logger,
66
- invalidManifestLogMessage: 'Ignoring invalid prebaked knowledge base manifest',
67
- staleManifestLogMessage: 'Ignoring stale prebaked knowledge base manifest',
68
- staleManifestLogKeys: {
69
- expected: 'expectedContentHash',
70
- actual: 'actualContentHash',
71
- },
72
- successLogMessage: 'Using prebaked knowledge base from workspace',
73
- successLogContext: (loadedBundle) => ({
74
- root,
75
- knowledgeBaseRoot: loadedBundle.rootDir,
76
- contentHash: loadedBundle.contentHash,
77
- fileCount: loadedBundle.files.size,
78
- }),
79
- buildBundle: () => bundle,
80
- });
81
- }
82
- async function materializeKnowledgeBaseIntoWorkspace(options) {
83
- return await (0, prebaked_workspace_bundle_1.materializeWorkspaceBundle)({
84
- workspace: options.workspace,
85
- resourceLabel: KNOWLEDGE_BASE_FILE_LABEL,
86
- logger: options.logger,
87
- loadPrebaked: async () => await loadPrebakedKnowledgeBaseBundle(options),
88
- buildBundle: () => buildKnowledgeBaseWorkspaceBundle({ root: options.root }),
89
- materializedLogMessage: 'Materialized knowledge base into workspace',
90
- materializedLogContext: (bundle) => ({
91
- root: options.root,
92
- knowledgeBaseRoot: bundle.rootDir,
93
- contentHash: bundle.contentHash,
94
- fileCount: bundle.files.size,
95
- }),
96
- });
97
- }
98
- //# sourceMappingURL=materialize-knowledge-base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"materialize-knowledge-base.js","sourceRoot":"","sources":["../../src/knowledge-base/materialize-knowledge-base.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function computeWorkspaceContentHash(files: Map<string, string>): string;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.computeWorkspaceContentHash = computeWorkspaceContentHash;
4
- const node_crypto_1 = require("node:crypto");
5
- function computeWorkspaceContentHash(files) {
6
- const hash = (0, node_crypto_1.createHash)('sha256');
7
- for (const [path, content] of Array.from(files.entries()).sort(([a], [b]) => a.localeCompare(b))) {
8
- hash.update(path);
9
- hash.update('\0');
10
- hash.update(content);
11
- hash.update('\0');
12
- }
13
- return hash.digest('hex').slice(0, 12);
14
- }
15
- //# sourceMappingURL=compute-workspace-content-hash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute-workspace-content-hash.js","sourceRoot":"","sources":["../../src/workspace/compute-workspace-content-hash.ts"],"names":[],"mappings":";;AAGA,kEAWC;AAdD,6CAAyC;AAGzC,SAAgB,2BAA2B,CAAC,KAA0B;IACrE,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3E,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAClB,EAAE,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -1,39 +0,0 @@
1
- import type { Logger } from '../logger';
2
- import { type WorkspaceFileTarget } from './workspace-files';
3
- export interface LoadPrebakedWorkspaceBundleOptions<TBundle> {
4
- workspace: WorkspaceFileTarget;
5
- manifestPath: string;
6
- expectedHash: string;
7
- hashField: string;
8
- schemaVersion: number;
9
- resourceLabel: string;
10
- logger?: Logger;
11
- invalidManifestLogMessage: string;
12
- staleManifestLogMessage: string;
13
- staleManifestLogKeys: {
14
- expected: string;
15
- actual: string;
16
- };
17
- successLogMessage: string;
18
- successLogContext: (bundle: TBundle) => Record<string, unknown>;
19
- buildBundle: () => Promise<TBundle | undefined> | TBundle | undefined;
20
- }
21
- export declare function loadPrebakedWorkspaceBundle<TBundle extends {
22
- files: Map<string, string>;
23
- }>(options: LoadPrebakedWorkspaceBundleOptions<TBundle>): Promise<TBundle | undefined>;
24
- export interface MaterializeWorkspaceBundleOptions<TBundle extends {
25
- files: Map<string, string>;
26
- manifestPath: string;
27
- }> {
28
- workspace: WorkspaceFileTarget;
29
- resourceLabel: string;
30
- logger?: Logger;
31
- loadPrebaked: () => Promise<TBundle | undefined>;
32
- buildBundle: () => Promise<TBundle> | TBundle;
33
- materializedLogMessage: string;
34
- materializedLogContext: (bundle: TBundle) => Record<string, unknown>;
35
- }
36
- export declare function materializeWorkspaceBundle<TBundle extends {
37
- files: Map<string, string>;
38
- manifestPath: string;
39
- }>(options: MaterializeWorkspaceBundleOptions<TBundle>): Promise<TBundle>;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadPrebakedWorkspaceBundle = loadPrebakedWorkspaceBundle;
4
- exports.materializeWorkspaceBundle = materializeWorkspaceBundle;
5
- const workspace_files_1 = require("./workspace-files");
6
- const workspace_manifest_1 = require("./workspace-manifest");
7
- async function loadPrebakedWorkspaceBundle(options) {
8
- const manifestRaw = await (0, workspace_files_1.readWorkspaceFile)(options.workspace, options.manifestPath, {
9
- logger: options.logger,
10
- resourceLabel: options.resourceLabel,
11
- });
12
- if (!manifestRaw)
13
- return undefined;
14
- const manifest = (0, workspace_manifest_1.parseVersionedWorkspaceManifest)(manifestRaw, {
15
- schemaVersion: options.schemaVersion,
16
- hashField: options.hashField,
17
- });
18
- if (!manifest) {
19
- options.logger?.debug(options.invalidManifestLogMessage, {
20
- manifestPath: options.manifestPath,
21
- });
22
- return undefined;
23
- }
24
- if (manifest.hash !== options.expectedHash) {
25
- options.logger?.debug(options.staleManifestLogMessage, {
26
- manifestPath: options.manifestPath,
27
- [options.staleManifestLogKeys.expected]: options.expectedHash,
28
- [options.staleManifestLogKeys.actual]: manifest.hash,
29
- });
30
- return undefined;
31
- }
32
- const bundle = await options.buildBundle();
33
- if (!bundle)
34
- return undefined;
35
- const payloadPaths = Array.from(bundle.files.keys()).filter((path) => path !== options.manifestPath);
36
- const existenceChecks = await Promise.all(payloadPaths.map(async (path) => ({
37
- path,
38
- exists: (await (0, workspace_files_1.readWorkspaceFile)(options.workspace, path, {
39
- logger: options.logger,
40
- resourceLabel: options.resourceLabel,
41
- })) !== null,
42
- })));
43
- const missingPath = existenceChecks.find((check) => !check.exists)?.path;
44
- if (missingPath) {
45
- options.logger?.debug('Ignoring incomplete prebaked workspace bundle', {
46
- manifestPath: options.manifestPath,
47
- missingPath,
48
- });
49
- return undefined;
50
- }
51
- options.logger?.debug(options.successLogMessage, options.successLogContext(bundle));
52
- return bundle;
53
- }
54
- async function materializeWorkspaceBundle(options) {
55
- const prebaked = await options.loadPrebaked();
56
- if (prebaked)
57
- return prebaked;
58
- const bundle = await options.buildBundle();
59
- const payloadFiles = new Map(bundle.files);
60
- payloadFiles.delete(bundle.manifestPath);
61
- await (0, workspace_files_1.writeWorkspaceFileMap)(options.workspace, payloadFiles, {
62
- logger: options.logger,
63
- resourceLabel: options.resourceLabel,
64
- });
65
- const manifestContent = bundle.files.get(bundle.manifestPath);
66
- if (manifestContent !== undefined) {
67
- await (0, workspace_files_1.writeWorkspaceFile)(options.workspace, bundle.manifestPath, manifestContent, {
68
- logger: options.logger,
69
- resourceLabel: options.resourceLabel,
70
- });
71
- }
72
- options.logger?.debug(options.materializedLogMessage, options.materializedLogContext(bundle));
73
- return bundle;
74
- }
75
- //# sourceMappingURL=prebaked-workspace-bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prebaked-workspace-bundle.js","sourceRoot":"","sources":["../../src/workspace/prebaked-workspace-bundle.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function withTrailingNewline(content: string): string;
2
- export declare function stringifyWorkspaceJson(value: unknown): string;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withTrailingNewline = withTrailingNewline;
4
- exports.stringifyWorkspaceJson = stringifyWorkspaceJson;
5
- function withTrailingNewline(content) {
6
- return content.endsWith('\n') ? content : `${content}\n`;
7
- }
8
- function stringifyWorkspaceJson(value) {
9
- return `${JSON.stringify(value, null, 2)}\n`;
10
- }
11
- //# sourceMappingURL=workspace-file-content.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-file-content.js","sourceRoot":"","sources":["../../src/workspace/workspace-file-content.ts"],"names":[],"mappings":";;AACA,kDAEC;AAGD,wDAEC;AAPD,SAAgB,mBAAmB,CAAC,OAAe;IAClD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;AAC1D,CAAC;AAGD,SAAgB,sBAAsB,CAAC,KAAc;IACpD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC"}
@@ -1,20 +0,0 @@
1
- import type { Logger } from '../logger';
2
- import { type SandboxWorkspace } from './sandbox-fs';
3
- export interface WorkspaceFileTarget {
4
- filesystem?: {
5
- readFile?: (path: string, options?: {
6
- encoding?: 'utf-8';
7
- }) => Promise<string | Buffer>;
8
- writeFile: (path: string, content: string | Buffer, options?: {
9
- recursive?: boolean;
10
- }) => Promise<void>;
11
- };
12
- sandbox?: SandboxWorkspace['sandbox'];
13
- }
14
- export interface WorkspaceFileOptions {
15
- logger?: Logger;
16
- resourceLabel?: string;
17
- }
18
- export declare function readWorkspaceFile(workspace: WorkspaceFileTarget, filePath: string, options?: WorkspaceFileOptions): Promise<string | null>;
19
- export declare function writeWorkspaceFile(workspace: WorkspaceFileTarget, filePath: string, content: string, options?: WorkspaceFileOptions): Promise<void>;
20
- export declare function writeWorkspaceFileMap(workspace: WorkspaceFileTarget, files: Map<string, string>, options?: WorkspaceFileOptions): Promise<void>;
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readWorkspaceFile = readWorkspaceFile;
4
- exports.writeWorkspaceFile = writeWorkspaceFile;
5
- exports.writeWorkspaceFileMap = writeWorkspaceFileMap;
6
- const error_formatting_1 = require("../error-formatting");
7
- const sandbox_fs_1 = require("./sandbox-fs");
8
- function resourceLabel(options) {
9
- return options?.resourceLabel ?? 'Workspace file';
10
- }
11
- function decodeWorkspaceFileContent(content) {
12
- return Buffer.isBuffer(content) ? content.toString('utf-8') : content;
13
- }
14
- async function readWorkspaceFile(workspace, filePath, options) {
15
- const readFile = workspace.filesystem?.readFile;
16
- if (readFile) {
17
- try {
18
- return decodeWorkspaceFileContent(await readFile(filePath, { encoding: 'utf-8' }));
19
- }
20
- catch (error) {
21
- options?.logger?.debug(`${resourceLabel(options)} filesystem read missed`, {
22
- path: filePath,
23
- error: (0, error_formatting_1.formatErrorForLog)(error),
24
- });
25
- return null;
26
- }
27
- }
28
- if (!workspace.sandbox)
29
- return null;
30
- try {
31
- return await (0, sandbox_fs_1.readFileViaSandbox)(workspace, filePath);
32
- }
33
- catch (error) {
34
- options?.logger?.debug(`${resourceLabel(options)} command read missed`, {
35
- path: filePath,
36
- error: (0, error_formatting_1.formatErrorForLog)(error),
37
- });
38
- return null;
39
- }
40
- }
41
- async function writeWorkspaceFile(workspace, filePath, content, options) {
42
- const label = resourceLabel(options);
43
- if (workspace.filesystem) {
44
- try {
45
- await workspace.filesystem.writeFile(filePath, content, { recursive: true });
46
- return;
47
- }
48
- catch (error) {
49
- try {
50
- await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content);
51
- options?.logger?.warn(`${label} filesystem write failed; used command fallback`, {
52
- path: filePath,
53
- error: (0, error_formatting_1.formatErrorForLog)(error),
54
- });
55
- return;
56
- }
57
- catch (fallbackError) {
58
- throw new Error(`Failed to write ${label.toLowerCase()} "${filePath}": ${(0, error_formatting_1.formatErrorForLog)(error)}; command fallback failed: ${(0, error_formatting_1.formatErrorForLog)(fallbackError)}`);
59
- }
60
- }
61
- }
62
- try {
63
- await (0, sandbox_fs_1.writeFileViaSandbox)(workspace, filePath, content);
64
- }
65
- catch (error) {
66
- throw new Error(`Failed to write ${label.toLowerCase()} "${filePath}": ${(0, error_formatting_1.formatErrorForLog)(error)}`);
67
- }
68
- }
69
- async function writeWorkspaceFileMap(workspace, files, options) {
70
- await Promise.all(Array.from(files, async ([filePath, content]) => {
71
- await writeWorkspaceFile(workspace, filePath, content, options);
72
- }));
73
- }
74
- //# sourceMappingURL=workspace-files.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-files.js","sourceRoot":"","sources":["../../src/workspace/workspace-files.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export declare const WORKSPACE_MANIFEST_FILE = ".manifest.json";
2
- export interface VersionedWorkspaceManifest<THashField extends string = string> {
3
- schemaVersion: number;
4
- hashField: THashField;
5
- hash: string;
6
- }
7
- interface ParseVersionedWorkspaceManifestOptions<THashField extends string> {
8
- schemaVersion: number;
9
- hashField: THashField;
10
- }
11
- export declare function parseVersionedWorkspaceManifest<const THashField extends string>(raw: string, options: ParseVersionedWorkspaceManifestOptions<THashField>): VersionedWorkspaceManifest<THashField> | null;
12
- export {};
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WORKSPACE_MANIFEST_FILE = void 0;
4
- exports.parseVersionedWorkspaceManifest = parseVersionedWorkspaceManifest;
5
- const stream_helpers_1 = require("../utils/stream-helpers");
6
- exports.WORKSPACE_MANIFEST_FILE = '.manifest.json';
7
- function parseVersionedWorkspaceManifest(raw, options) {
8
- let parsed;
9
- try {
10
- parsed = JSON.parse(raw);
11
- }
12
- catch {
13
- return null;
14
- }
15
- if (!(0, stream_helpers_1.isRecord)(parsed))
16
- return null;
17
- if (parsed.schemaVersion !== options.schemaVersion)
18
- return null;
19
- const hash = parsed[options.hashField];
20
- if (typeof hash !== 'string' || hash.length === 0)
21
- return null;
22
- return {
23
- schemaVersion: options.schemaVersion,
24
- hashField: options.hashField,
25
- hash,
26
- };
27
- }
28
- //# sourceMappingURL=workspace-manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-manifest.js","sourceRoot":"","sources":["../../src/workspace/workspace-manifest.ts"],"names":[],"mappings":";;;AAgBA,0EAsBC;AAtCD,4DAAmD;AAEtC,QAAA,uBAAuB,GAAG,gBAAgB,CAAC;AAcxD,SAAgB,+BAA+B,CAC9C,GAAW,EACX,OAA2D;IAE3D,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC,IAAA,yBAAQ,EAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,MAAM,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/D,OAAO;QACN,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI;KACJ,CAAC;AACH,CAAC"}