@lionden/core 0.1.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 (51) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +23 -0
  3. package/dist/arg-names.d.ts +11 -0
  4. package/dist/arg-names.d.ts.map +1 -0
  5. package/dist/arg-names.js +39 -0
  6. package/dist/arg-names.js.map +1 -0
  7. package/dist/config-resolution.d.ts +20 -0
  8. package/dist/config-resolution.d.ts.map +1 -0
  9. package/dist/config-resolution.js +570 -0
  10. package/dist/config-resolution.js.map +1 -0
  11. package/dist/hook-system.d.ts +51 -0
  12. package/dist/hook-system.d.ts.map +1 -0
  13. package/dist/hook-system.js +144 -0
  14. package/dist/hook-system.js.map +1 -0
  15. package/dist/index.d.ts +17 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +21 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/key-artifacts.d.ts +75 -0
  20. package/dist/key-artifacts.d.ts.map +1 -0
  21. package/dist/key-artifacts.js +258 -0
  22. package/dist/key-artifacts.js.map +1 -0
  23. package/dist/leo-preflight.d.ts +11 -0
  24. package/dist/leo-preflight.d.ts.map +1 -0
  25. package/dist/leo-preflight.js +93 -0
  26. package/dist/leo-preflight.js.map +1 -0
  27. package/dist/log-style.d.ts +22 -0
  28. package/dist/log-style.d.ts.map +1 -0
  29. package/dist/log-style.js +67 -0
  30. package/dist/log-style.js.map +1 -0
  31. package/dist/lre.d.ts +14 -0
  32. package/dist/lre.d.ts.map +1 -0
  33. package/dist/lre.js +113 -0
  34. package/dist/lre.js.map +1 -0
  35. package/dist/plugin-loader.d.ts +20 -0
  36. package/dist/plugin-loader.d.ts.map +1 -0
  37. package/dist/plugin-loader.js +91 -0
  38. package/dist/plugin-loader.js.map +1 -0
  39. package/dist/task-builder.d.ts +49 -0
  40. package/dist/task-builder.d.ts.map +1 -0
  41. package/dist/task-builder.js +123 -0
  42. package/dist/task-builder.js.map +1 -0
  43. package/dist/task-runner.d.ts +78 -0
  44. package/dist/task-runner.d.ts.map +1 -0
  45. package/dist/task-runner.js +247 -0
  46. package/dist/task-runner.js.map +1 -0
  47. package/dist/types.d.ts +186 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +20 -0
  50. package/dist/types.js.map +1 -0
  51. package/package.json +33 -0
@@ -0,0 +1,144 @@
1
+ /**
2
+ * The hook dispatcher manages all hook registrations and executions.
3
+ * Hook handlers are lazy-loaded by category on first invocation.
4
+ */
5
+ export class HookDispatcherImpl {
6
+ /**
7
+ * category -> plugin ID -> resolved handlers (or a factory for lazy loading)
8
+ */
9
+ registry = new Map();
10
+ /** Track which categories have been fully resolved */
11
+ resolved = new Set();
12
+ /**
13
+ * Track in-flight category resolution so concurrent dispatches share work.
14
+ * A factory must not dispatch its own category while resolving — that would
15
+ * await the very promise it is inside and deadlock.
16
+ */
17
+ resolving = new Map();
18
+ /**
19
+ * Register all hook handlers from a list of plugins (already in load order).
20
+ */
21
+ registerPlugins(plugins) {
22
+ for (const plugin of plugins) {
23
+ if (!plugin.hookHandlers)
24
+ continue;
25
+ for (const [category, handlerOrFactory] of Object.entries(plugin.hookHandlers)) {
26
+ if (!handlerOrFactory)
27
+ continue;
28
+ let entries = this.registry.get(category);
29
+ if (!entries) {
30
+ entries = [];
31
+ this.registry.set(category, entries);
32
+ }
33
+ if (typeof handlerOrFactory === "function") {
34
+ // Lazy-loaded — factory function
35
+ entries.push({
36
+ pluginId: plugin.id,
37
+ handlers: null,
38
+ factory: handlerOrFactory,
39
+ });
40
+ }
41
+ else {
42
+ // Eager — direct handler object
43
+ entries.push({
44
+ pluginId: plugin.id,
45
+ handlers: handlerOrFactory,
46
+ factory: null,
47
+ });
48
+ }
49
+ }
50
+ }
51
+ }
52
+ /**
53
+ * Ensure all handlers for a category are resolved (lazy factories called).
54
+ */
55
+ async resolveCategory(category) {
56
+ if (this.resolved.has(category))
57
+ return;
58
+ const existing = this.resolving.get(category);
59
+ if (existing) {
60
+ await existing;
61
+ return;
62
+ }
63
+ const resolution = (async () => {
64
+ const entries = this.registry.get(category);
65
+ if (!entries) {
66
+ this.resolved.add(category);
67
+ return;
68
+ }
69
+ for (const entry of entries) {
70
+ if (entry.handlers === null && entry.factory !== null) {
71
+ entry.handlers = await entry.factory();
72
+ entry.factory = null;
73
+ }
74
+ }
75
+ this.resolved.add(category);
76
+ })();
77
+ this.resolving.set(category, resolution);
78
+ try {
79
+ await resolution;
80
+ }
81
+ finally {
82
+ this.resolving.delete(category);
83
+ }
84
+ }
85
+ /**
86
+ * Get all resolved handler functions for a specific hook point,
87
+ * in plugin dependency order.
88
+ */
89
+ async getHandlers(category, hookName) {
90
+ await this.resolveCategory(category);
91
+ const entries = this.registry.get(category) ?? [];
92
+ const handlers = [];
93
+ for (const entry of entries) {
94
+ if (entry.handlers) {
95
+ const fn = entry.handlers[hookName];
96
+ if (typeof fn === "function") {
97
+ handlers.push(fn);
98
+ }
99
+ }
100
+ }
101
+ return handlers;
102
+ }
103
+ /**
104
+ * Serial dispatch: handlers execute sequentially in plugin order.
105
+ * Each receives the context; return values are ignored.
106
+ */
107
+ async serial(category, hookName, context) {
108
+ const handlers = await this.getHandlers(category, hookName);
109
+ for (const handler of handlers) {
110
+ await handler(context);
111
+ }
112
+ }
113
+ /**
114
+ * Waterfall dispatch: each handler receives the previous handler's return
115
+ * value. The final value is returned.
116
+ */
117
+ async waterfall(category, hookName, initialValue, ...extraArgs) {
118
+ const handlers = await this.getHandlers(category, hookName);
119
+ let value = initialValue;
120
+ for (const handler of handlers) {
121
+ const result = await handler(value, ...extraArgs);
122
+ if (result !== undefined) {
123
+ value = result;
124
+ }
125
+ }
126
+ return value;
127
+ }
128
+ /**
129
+ * Collect dispatch: handlers execute sequentially in plugin order and each
130
+ * handler's return value is gathered into the result array (in the same
131
+ * order). Extra args are forwarded to every handler after the context.
132
+ * Used by the config lifecycle to aggregate validation errors and partial
133
+ * config resolutions.
134
+ */
135
+ async collect(category, hookName, context, ...extraArgs) {
136
+ const handlers = await this.getHandlers(category, hookName);
137
+ const results = [];
138
+ for (const handler of handlers) {
139
+ results.push((await handler(context, ...extraArgs)));
140
+ }
141
+ return results;
142
+ }
143
+ }
144
+ //# sourceMappingURL=hook-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-system.js","sourceRoot":"","sources":["../src/hook-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export { argumentFlagName, BUILT_IN_GLOBAL_ARGUMENT_NAMES, camelToKebab, getPublicArgumentNames, getReservedBuiltInGlobalArgumentNames, } from "./arg-names.js";
2
+ export type { ResolveConfigResult } from "./config-resolution.js";
3
+ export { ConfigResolutionError, resolveConfig } from "./config-resolution.js";
4
+ export { HookDispatcherImpl } from "./hook-system.js";
5
+ export type { CreditsKeyCacheMetadata, KeyArtifactFunctionRef, KeyArtifactsMetadata, KeyFileRef, KeyFingerprint, ProgramArtifactProvenance, RuntimeKeyCacheDiagnostics, RuntimeKeyCacheMetadata, RuntimeKeyIdentity, } from "./key-artifacts.js";
6
+ export { CREDITS_KEY_CACHE_FORMAT, fingerprintBytes, fingerprintFile, fingerprintsEqual, KEY_ARTIFACTS_FORMAT, KeyArtifactsMetadataError, keyArtifactsMetadataPath, RUNTIME_KEY_CACHE_FORMAT, readCreditsKeyCacheMetadata, readKeyArtifactsMetadata, readProgramArtifactProvenance, readRuntimeKeyCacheMetadata, resolveKeyFileRef, sha256Json, sha256Text, verifyKeyFileRef, writeCreditsKeyCacheMetadata, writeKeyArtifactsMetadata, writeRuntimeKeyCacheMetadata, } from "./key-artifacts.js";
7
+ export { preflightLeo } from "./leo-preflight.js";
8
+ export type { LogStyleRole } from "./log-style.js";
9
+ export { colorLogText, logAction, logDivider, logError, logMetadata, logSuccess, logWarning, pluralize, shouldColorLogs, shouldRenderDivider, styleLogRole, } from "./log-style.js";
10
+ export type { CreateLreOptions } from "./lre.js";
11
+ export { createLre } from "./lre.js";
12
+ export { collectGlobalOptions, PluginLoadError, resolvePluginOrder, } from "./plugin-loader.js";
13
+ export { OverrideTaskBuilder, overrideTask, TaskBuilder, task } from "./task-builder.js";
14
+ export { TaskNotFoundError, TaskRunnerImpl } from "./task-runner.js";
15
+ export type { ArtifactStore, ConfigHookHandlers, ConfigValidationError, DeploymentHookHandlers, GlobalOptionDefinition, HookCategory, HookDispatcher, HookDispatchMode, HookHandlerMap, LionDenPlugin, LionDenRuntimeEnvironment, ProgramDeployedContext, ProgramDeploymentTarget, ProgramUpgradedContext, TaskAction, TaskActionWithSuper, TaskDefinition, TaskFlag, TaskOption, TaskPositionalArgument, TaskRunner, TestingHookHandlers, } from "./types.js";
16
+ export { ArgumentType, programNameFromTarget, sourceProgramNameFromTarget } from "./types.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,sBAAsB,EACtB,qCAAqC,GACtC,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ // Types
2
+ export { argumentFlagName, BUILT_IN_GLOBAL_ARGUMENT_NAMES, camelToKebab, getPublicArgumentNames, getReservedBuiltInGlobalArgumentNames, } from "./arg-names.js";
3
+ // Config resolution
4
+ export { ConfigResolutionError, resolveConfig } from "./config-resolution.js";
5
+ // Hook system
6
+ export { HookDispatcherImpl } from "./hook-system.js";
7
+ // Key artifact metadata
8
+ export { CREDITS_KEY_CACHE_FORMAT, fingerprintBytes, fingerprintFile, fingerprintsEqual, KEY_ARTIFACTS_FORMAT, KeyArtifactsMetadataError, keyArtifactsMetadataPath, RUNTIME_KEY_CACHE_FORMAT, readCreditsKeyCacheMetadata, readKeyArtifactsMetadata, readProgramArtifactProvenance, readRuntimeKeyCacheMetadata, resolveKeyFileRef, sha256Json, sha256Text, verifyKeyFileRef, writeCreditsKeyCacheMetadata, writeKeyArtifactsMetadata, writeRuntimeKeyCacheMetadata, } from "./key-artifacts.js";
9
+ // Leo CLI preflight
10
+ export { preflightLeo } from "./leo-preflight.js";
11
+ export { colorLogText, logAction, logDivider, logError, logMetadata, logSuccess, logWarning, pluralize, shouldColorLogs, shouldRenderDivider, styleLogRole, } from "./log-style.js";
12
+ // LRE
13
+ export { createLre } from "./lre.js";
14
+ // Plugin loader
15
+ export { collectGlobalOptions, PluginLoadError, resolvePluginOrder, } from "./plugin-loader.js";
16
+ // Task builder
17
+ export { OverrideTaskBuilder, overrideTask, TaskBuilder, task } from "./task-builder.js";
18
+ // Task runner
19
+ export { TaskNotFoundError, TaskRunnerImpl } from "./task-runner.js";
20
+ export { ArgumentType, programNameFromTarget, sourceProgramNameFromTarget } from "./types.js";
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AAER,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,YAAY,EACZ,sBAAsB,EACtB,qCAAqC,GACtC,MAAM,gBAAgB,CAAC;AAExB,oBAAoB;AACpB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC9E,cAAc;AACd,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAYtD,wBAAwB;AACxB,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,4BAA4B,EAC5B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,MAAM;AACN,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,gBAAgB;AAChB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzF,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAyBrE,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,75 @@
1
+ export declare const KEY_ARTIFACTS_FORMAT = "lionden.keyArtifacts.v1";
2
+ export declare const RUNTIME_KEY_CACHE_FORMAT = "lionden.runtimeKeyCache.v1";
3
+ export declare const CREDITS_KEY_CACHE_FORMAT = "lionden.creditsKeyCache.v1";
4
+ export interface KeyFingerprint {
5
+ readonly sha256: string;
6
+ readonly size: number;
7
+ }
8
+ export interface KeyFileRef {
9
+ readonly path: string;
10
+ readonly fingerprint: KeyFingerprint;
11
+ }
12
+ export interface KeyArtifactFunctionRef {
13
+ readonly transition: string;
14
+ readonly prover?: KeyFileRef;
15
+ readonly verifier?: KeyFileRef;
16
+ }
17
+ export interface KeyArtifactsMetadata {
18
+ readonly format: typeof KEY_ARTIFACTS_FORMAT;
19
+ readonly programId: string;
20
+ readonly sourceProgramId: string;
21
+ readonly sourceHash: string;
22
+ readonly importsHash: string;
23
+ readonly functions?: readonly KeyArtifactFunctionRef[];
24
+ }
25
+ export interface ProgramArtifactProvenance {
26
+ readonly programId: string;
27
+ readonly sourceProgramId: string;
28
+ readonly format: KeyArtifactsMetadata["format"];
29
+ }
30
+ export interface RuntimeKeyIdentity {
31
+ readonly network: string;
32
+ readonly programId: string;
33
+ readonly transition: string;
34
+ readonly edition?: number;
35
+ readonly sourceHash: string;
36
+ readonly importsHash: string;
37
+ readonly wasmHash: string;
38
+ }
39
+ export interface RuntimeKeyCacheDiagnostics {
40
+ readonly sdkVersion?: string;
41
+ readonly wasmVersion?: string;
42
+ }
43
+ export interface RuntimeKeyCacheMetadata {
44
+ readonly format: typeof RUNTIME_KEY_CACHE_FORMAT;
45
+ readonly identity: RuntimeKeyIdentity;
46
+ readonly prover: KeyFingerprint;
47
+ readonly verifier: KeyFingerprint;
48
+ readonly diagnostics?: RuntimeKeyCacheDiagnostics;
49
+ }
50
+ export interface CreditsKeyCacheMetadata {
51
+ readonly format: typeof CREDITS_KEY_CACHE_FORMAT;
52
+ readonly locator: string;
53
+ readonly network: string;
54
+ readonly wasmHash: string;
55
+ readonly prover: KeyFingerprint;
56
+ }
57
+ export declare class KeyArtifactsMetadataError extends Error {
58
+ constructor(message: string);
59
+ }
60
+ export declare function keyArtifactsMetadataPath(artifactsDir: string, programId: string): string;
61
+ export declare function readKeyArtifactsMetadata(filePath: string): KeyArtifactsMetadata | undefined;
62
+ export declare function writeKeyArtifactsMetadata(filePath: string, metadata: KeyArtifactsMetadata): void;
63
+ export declare function readProgramArtifactProvenance(artifactsDir: string, programId: string): ProgramArtifactProvenance | undefined;
64
+ export declare function readRuntimeKeyCacheMetadata(filePath: string): RuntimeKeyCacheMetadata | undefined;
65
+ export declare function writeRuntimeKeyCacheMetadata(filePath: string, metadata: RuntimeKeyCacheMetadata): void;
66
+ export declare function readCreditsKeyCacheMetadata(filePath: string): CreditsKeyCacheMetadata | undefined;
67
+ export declare function writeCreditsKeyCacheMetadata(filePath: string, metadata: CreditsKeyCacheMetadata): void;
68
+ export declare function fingerprintBytes(bytes: Uint8Array): KeyFingerprint;
69
+ export declare function fingerprintFile(filePath: string): KeyFingerprint;
70
+ export declare function sha256Text(value: string): string;
71
+ export declare function sha256Json(value: unknown): string;
72
+ export declare function verifyKeyFileRef(baseDir: string, ref: KeyFileRef): boolean;
73
+ export declare function resolveKeyFileRef(baseDir: string, ref: KeyFileRef): string;
74
+ export declare function fingerprintsEqual(a: KeyFingerprint, b: KeyFingerprint): boolean;
75
+ //# sourceMappingURL=key-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-artifacts.d.ts","sourceRoot":"","sources":["../src/key-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,258 @@
1
+ import * as crypto from "node:crypto";
2
+ import * as fs from "node:fs";
3
+ import * as path from "node:path";
4
+ export const KEY_ARTIFACTS_FORMAT = "lionden.keyArtifacts.v1";
5
+ export const RUNTIME_KEY_CACHE_FORMAT = "lionden.runtimeKeyCache.v1";
6
+ export const CREDITS_KEY_CACHE_FORMAT = "lionden.creditsKeyCache.v1";
7
+ export class KeyArtifactsMetadataError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = "KeyArtifactsMetadataError";
11
+ }
12
+ }
13
+ export function keyArtifactsMetadataPath(artifactsDir, programId) {
14
+ return path.join(artifactsDir, programId, "lionden-key-artifacts.json");
15
+ }
16
+ export function readKeyArtifactsMetadata(filePath) {
17
+ if (!fs.existsSync(filePath))
18
+ return undefined;
19
+ return parseKeyArtifactsMetadata(readJson(filePath), filePath);
20
+ }
21
+ export function writeKeyArtifactsMetadata(filePath, metadata) {
22
+ parseKeyArtifactsMetadata(metadata, filePath);
23
+ writeJsonAtomic(filePath, metadata);
24
+ }
25
+ export function readProgramArtifactProvenance(artifactsDir, programId) {
26
+ const metadata = readKeyArtifactsMetadata(keyArtifactsMetadataPath(artifactsDir, programId));
27
+ if (!metadata)
28
+ return undefined;
29
+ return {
30
+ programId: metadata.programId,
31
+ sourceProgramId: metadata.sourceProgramId,
32
+ format: metadata.format,
33
+ };
34
+ }
35
+ export function readRuntimeKeyCacheMetadata(filePath) {
36
+ if (!fs.existsSync(filePath))
37
+ return undefined;
38
+ return parseRuntimeKeyCacheMetadata(readJson(filePath), filePath);
39
+ }
40
+ export function writeRuntimeKeyCacheMetadata(filePath, metadata) {
41
+ parseRuntimeKeyCacheMetadata(metadata, filePath);
42
+ writeJsonAtomic(filePath, metadata);
43
+ }
44
+ export function readCreditsKeyCacheMetadata(filePath) {
45
+ if (!fs.existsSync(filePath))
46
+ return undefined;
47
+ return parseCreditsKeyCacheMetadata(readJson(filePath), filePath);
48
+ }
49
+ export function writeCreditsKeyCacheMetadata(filePath, metadata) {
50
+ parseCreditsKeyCacheMetadata(metadata, filePath);
51
+ writeJsonAtomic(filePath, metadata);
52
+ }
53
+ export function fingerprintBytes(bytes) {
54
+ return {
55
+ sha256: crypto.createHash("sha256").update(bytes).digest("hex"),
56
+ size: bytes.byteLength,
57
+ };
58
+ }
59
+ export function fingerprintFile(filePath) {
60
+ return fingerprintBytes(fs.readFileSync(filePath));
61
+ }
62
+ export function sha256Text(value) {
63
+ return crypto.createHash("sha256").update(value).digest("hex");
64
+ }
65
+ export function sha256Json(value) {
66
+ return sha256Text(JSON.stringify(value));
67
+ }
68
+ export function verifyKeyFileRef(baseDir, ref) {
69
+ const filePath = resolveKeyFileRef(baseDir, ref);
70
+ if (!fs.existsSync(filePath))
71
+ return false;
72
+ return fingerprintsEqual(fingerprintFile(filePath), ref.fingerprint);
73
+ }
74
+ export function resolveKeyFileRef(baseDir, ref) {
75
+ if (path.isAbsolute(ref.path)) {
76
+ throw new KeyArtifactsMetadataError("Key file references must be relative paths.");
77
+ }
78
+ const resolved = path.resolve(baseDir, ref.path);
79
+ const root = path.resolve(baseDir);
80
+ if (resolved !== root && !resolved.startsWith(root + path.sep)) {
81
+ throw new KeyArtifactsMetadataError(`Key file reference escapes artifact directory: ${ref.path}`);
82
+ }
83
+ return resolved;
84
+ }
85
+ export function fingerprintsEqual(a, b) {
86
+ return a.sha256 === b.sha256 && a.size === b.size;
87
+ }
88
+ function readJson(filePath) {
89
+ try {
90
+ return JSON.parse(fs.readFileSync(filePath, "utf-8"));
91
+ }
92
+ catch (cause) {
93
+ throw new KeyArtifactsMetadataError(`Failed to read key metadata at ${filePath}: ${cause instanceof Error ? cause.message : String(cause)}`);
94
+ }
95
+ }
96
+ function writeJsonAtomic(filePath, value) {
97
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
98
+ const tmpPath = path.join(path.dirname(filePath), `.${path.basename(filePath)}.${process.pid}.${Date.now()}.${Math.random().toString(16).slice(2)}.tmp`);
99
+ fs.writeFileSync(tmpPath, JSON.stringify(value, null, 2) + "\n");
100
+ fs.renameSync(tmpPath, filePath);
101
+ }
102
+ function parseKeyArtifactsMetadata(value, filePath) {
103
+ if (!isRecord(value)) {
104
+ throw invalidMetadata(filePath, "expected an object");
105
+ }
106
+ if (value["format"] !== KEY_ARTIFACTS_FORMAT) {
107
+ throw invalidMetadata(filePath, `unsupported format ${JSON.stringify(value["format"])}`);
108
+ }
109
+ const programId = expectString(value, "programId", filePath);
110
+ const sourceProgramId = expectString(value, "sourceProgramId", filePath);
111
+ const sourceHash = expectString(value, "sourceHash", filePath);
112
+ const importsHash = expectString(value, "importsHash", filePath);
113
+ const functionsRaw = value["functions"];
114
+ const functions = functionsRaw === undefined ? undefined : expectFunctionRefs(functionsRaw, filePath);
115
+ return {
116
+ format: KEY_ARTIFACTS_FORMAT,
117
+ programId,
118
+ sourceProgramId,
119
+ sourceHash,
120
+ importsHash,
121
+ ...(functions === undefined ? {} : { functions }),
122
+ };
123
+ }
124
+ function parseRuntimeKeyCacheMetadata(value, filePath) {
125
+ if (!isRecord(value)) {
126
+ throw invalidMetadata(filePath, "expected an object");
127
+ }
128
+ if (value["format"] !== RUNTIME_KEY_CACHE_FORMAT) {
129
+ throw invalidMetadata(filePath, `unsupported format ${JSON.stringify(value["format"])}`);
130
+ }
131
+ const identity = expectIdentity(value["identity"], filePath);
132
+ const prover = expectFingerprint(value["prover"], "prover", filePath);
133
+ const verifier = expectFingerprint(value["verifier"], "verifier", filePath);
134
+ const diagnostics = value["diagnostics"] === undefined
135
+ ? undefined
136
+ : expectDiagnostics(value["diagnostics"], filePath);
137
+ return {
138
+ format: RUNTIME_KEY_CACHE_FORMAT,
139
+ identity,
140
+ prover,
141
+ verifier,
142
+ ...(diagnostics === undefined ? {} : { diagnostics }),
143
+ };
144
+ }
145
+ function parseCreditsKeyCacheMetadata(value, filePath) {
146
+ if (!isRecord(value)) {
147
+ throw invalidMetadata(filePath, "expected an object");
148
+ }
149
+ if (value["format"] !== CREDITS_KEY_CACHE_FORMAT) {
150
+ throw invalidMetadata(filePath, `unsupported format ${JSON.stringify(value["format"])}`);
151
+ }
152
+ return {
153
+ format: CREDITS_KEY_CACHE_FORMAT,
154
+ locator: expectString(value, "locator", filePath),
155
+ network: expectString(value, "network", filePath),
156
+ wasmHash: expectString(value, "wasmHash", filePath),
157
+ prover: expectFingerprint(value["prover"], "prover", filePath),
158
+ };
159
+ }
160
+ function expectFunctionRefs(value, filePath) {
161
+ if (!Array.isArray(value)) {
162
+ throw invalidMetadata(filePath, "functions must be an array");
163
+ }
164
+ return value.map((entry, index) => {
165
+ if (!isRecord(entry)) {
166
+ throw invalidMetadata(filePath, `functions[${index}] must be an object`);
167
+ }
168
+ const transition = expectString(entry, "transition", filePath);
169
+ const prover = entry["prover"] === undefined
170
+ ? undefined
171
+ : expectKeyFileRef(entry["prover"], `functions[${index}].prover`, filePath);
172
+ const verifier = entry["verifier"] === undefined
173
+ ? undefined
174
+ : expectKeyFileRef(entry["verifier"], `functions[${index}].verifier`, filePath);
175
+ return {
176
+ transition,
177
+ ...(prover === undefined ? {} : { prover }),
178
+ ...(verifier === undefined ? {} : { verifier }),
179
+ };
180
+ });
181
+ }
182
+ function expectKeyFileRef(value, label, filePath) {
183
+ if (!isRecord(value)) {
184
+ throw invalidMetadata(filePath, `${label} must be an object`);
185
+ }
186
+ return {
187
+ path: expectString(value, "path", filePath),
188
+ fingerprint: expectFingerprint(value["fingerprint"], `${label}.fingerprint`, filePath),
189
+ };
190
+ }
191
+ function expectIdentity(value, filePath) {
192
+ if (!isRecord(value)) {
193
+ throw invalidMetadata(filePath, "identity must be an object");
194
+ }
195
+ const edition = value["edition"];
196
+ if (edition !== undefined &&
197
+ (typeof edition !== "number" || !Number.isInteger(edition) || edition < 0)) {
198
+ throw invalidMetadata(filePath, "identity.edition must be a non-negative integer");
199
+ }
200
+ return {
201
+ network: expectString(value, "network", filePath),
202
+ programId: expectString(value, "programId", filePath),
203
+ transition: expectString(value, "transition", filePath),
204
+ ...(edition === undefined ? {} : { edition: edition }),
205
+ sourceHash: expectString(value, "sourceHash", filePath),
206
+ importsHash: expectString(value, "importsHash", filePath),
207
+ wasmHash: expectString(value, "wasmHash", filePath),
208
+ };
209
+ }
210
+ function expectDiagnostics(value, filePath) {
211
+ if (!isRecord(value)) {
212
+ throw invalidMetadata(filePath, "diagnostics must be an object");
213
+ }
214
+ const diagnostics = {};
215
+ const sdkVersion = value["sdkVersion"];
216
+ const wasmVersion = value["wasmVersion"];
217
+ if (sdkVersion !== undefined) {
218
+ if (typeof sdkVersion !== "string") {
219
+ throw invalidMetadata(filePath, "diagnostics.sdkVersion must be a string");
220
+ }
221
+ diagnostics.sdkVersion = sdkVersion;
222
+ }
223
+ if (wasmVersion !== undefined) {
224
+ if (typeof wasmVersion !== "string") {
225
+ throw invalidMetadata(filePath, "diagnostics.wasmVersion must be a string");
226
+ }
227
+ diagnostics.wasmVersion = wasmVersion;
228
+ }
229
+ return diagnostics;
230
+ }
231
+ function expectFingerprint(value, label, filePath) {
232
+ if (!isRecord(value)) {
233
+ throw invalidMetadata(filePath, `${label} must be an object`);
234
+ }
235
+ const sha256 = value["sha256"];
236
+ const size = value["size"];
237
+ if (typeof sha256 !== "string" || !/^[0-9a-f]{64}$/u.test(sha256)) {
238
+ throw invalidMetadata(filePath, `${label}.sha256 must be a SHA-256 hex string`);
239
+ }
240
+ if (typeof size !== "number" || !Number.isInteger(size) || size < 0) {
241
+ throw invalidMetadata(filePath, `${label}.size must be a non-negative integer`);
242
+ }
243
+ return { sha256, size };
244
+ }
245
+ function expectString(value, key, filePath) {
246
+ const raw = value[key];
247
+ if (typeof raw !== "string" || raw.length === 0) {
248
+ throw invalidMetadata(filePath, `${key} must be a non-empty string`);
249
+ }
250
+ return raw;
251
+ }
252
+ function invalidMetadata(filePath, reason) {
253
+ return new KeyArtifactsMetadataError(`Invalid key metadata at ${filePath}: ${reason}.`);
254
+ }
255
+ function isRecord(value) {
256
+ return value !== null && typeof value === "object" && !Array.isArray(value);
257
+ }
258
+ //# sourceMappingURL=key-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-artifacts.js","sourceRoot":"","sources":["../src/key-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { LionDenResolvedConfig } from "@lionden/config";
2
+ export interface ParsedLeoVersion {
3
+ readonly major: number;
4
+ readonly minor: number;
5
+ readonly patch: number;
6
+ readonly text: string;
7
+ }
8
+ export declare function parseLeoVersionOutput(output: string): ParsedLeoVersion | null;
9
+ export declare function preflightLeo(config: LionDenResolvedConfig): Promise<void>;
10
+ export declare function clearLeoPreflightMemoForTests(): void;
11
+ //# sourceMappingURL=leo-preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leo-preflight.d.ts","sourceRoot":"","sources":["../src/leo-preflight.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAO7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAU7E;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/E;AAED,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}