footprintjs 7.1.0 → 8.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.
@@ -7,7 +7,7 @@
7
7
  * providers, protection, and Zod-based scope definitions.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.createScopeProxyFromZod = exports.isScopeSchema = exports.defineScopeSchema = exports.ZodScopeResolver = exports.defineScopeFromZod = exports.toScopeFactory = exports.resolveScopeProvider = exports.registerScopeResolver = exports.makeFactoryProvider = exports.makeClassProvider = exports.looksLikeFactory = exports.looksLikeClassCtor = exports.isSubclassOfScopeFacade = exports.attachScopeMethods = exports.__clearScopeResolversForTests = exports.createProtectedScope = exports.createErrorMessage = exports.MetricRecorder = exports.DebugRecorder = exports.ScopeFacade = void 0;
10
+ exports.toScopeFactory = exports.resolveScopeProvider = exports.registerScopeResolver = exports.makeFactoryProvider = exports.makeClassProvider = exports.looksLikeFactory = exports.looksLikeClassCtor = exports.isSubclassOfScopeFacade = exports.attachScopeMethods = exports.__clearScopeResolversForTests = exports.createProtectedScope = exports.createErrorMessage = exports.MetricRecorder = exports.DebugRecorder = exports.ScopeFacade = void 0;
11
11
  // Core
12
12
  var ScopeFacade_js_1 = require("./ScopeFacade.js");
13
13
  Object.defineProperty(exports, "ScopeFacade", { enumerable: true, get: function () { return ScopeFacade_js_1.ScopeFacade; } });
@@ -29,13 +29,9 @@ Object.defineProperty(exports, "makeFactoryProvider", { enumerable: true, get: f
29
29
  Object.defineProperty(exports, "registerScopeResolver", { enumerable: true, get: function () { return index_js_2.registerScopeResolver; } });
30
30
  Object.defineProperty(exports, "resolveScopeProvider", { enumerable: true, get: function () { return index_js_2.resolveScopeProvider; } });
31
31
  Object.defineProperty(exports, "toScopeFactory", { enumerable: true, get: function () { return index_js_2.toScopeFactory; } });
32
- var defineScopeFromZod_js_1 = require("./state/zod/defineScopeFromZod.js");
33
- Object.defineProperty(exports, "defineScopeFromZod", { enumerable: true, get: function () { return defineScopeFromZod_js_1.defineScopeFromZod; } });
34
- var resolver_js_1 = require("./state/zod/resolver.js");
35
- Object.defineProperty(exports, "ZodScopeResolver", { enumerable: true, get: function () { return resolver_js_1.ZodScopeResolver; } });
36
- var builder_js_1 = require("./state/zod/schema/builder.js");
37
- Object.defineProperty(exports, "defineScopeSchema", { enumerable: true, get: function () { return builder_js_1.defineScopeSchema; } });
38
- Object.defineProperty(exports, "isScopeSchema", { enumerable: true, get: function () { return builder_js_1.isScopeSchema; } });
39
- var scopeFactory_js_1 = require("./state/zod/scopeFactory.js");
40
- Object.defineProperty(exports, "createScopeProxyFromZod", { enumerable: true, get: function () { return scopeFactory_js_1.createScopeProxyFromZod; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Njb3BlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7OztBQUVILE9BQU87QUFDUCxtREFBK0M7QUFBdEMsNkdBQUEsV0FBVyxPQUFBO0FBaUJwQixpRUFBNkQ7QUFBcEQsaUhBQUEsYUFBYSxPQUFBO0FBRXRCLG1FQUErRDtBQUF0RCxtSEFBQSxjQUFjLE9BQUE7QUFJdkIsa0RBQWlGO0FBQXhFLDhHQUFBLGtCQUFrQixPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFXakQsaURBVzhCO0FBVjVCLHlIQUFBLDZCQUE2QixPQUFBO0FBQzdCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLG1IQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDRHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLCtHQUFBLG1CQUFtQixPQUFBO0FBQ25CLGlIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGdIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBHQUFBLGNBQWMsT0FBQTtBQUtoQiwyRUFBdUU7QUFBOUQsMkhBQUEsa0JBQWtCLE9BQUE7QUFDM0IsdURBQTJEO0FBQWxELCtHQUFBLGdCQUFnQixPQUFBO0FBQ3pCLDREQUFpRjtBQUF4RSwrR0FBQSxpQkFBaUIsT0FBQTtBQUFFLDJHQUFBLGFBQWEsT0FBQTtBQUN6QywrREFBc0U7QUFBN0QsMEhBQUEsdUJBQXVCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBpc3RhbmJ1bCBpZ25vcmUgZmlsZSAqL1xuLyoqXG4gKiBzY29wZS8g4oCUIFNjb3BlIG1hbmFnZW1lbnQgbGlicmFyeVxuICpcbiAqIERlcGVuZHMgb24gbWVtb3J5LyAoUGhhc2UgMSkuIFByb3ZpZGVzIFNjb3BlRmFjYWRlLCByZWNvcmRlcnMsXG4gKiBwcm92aWRlcnMsIHByb3RlY3Rpb24sIGFuZCBab2QtYmFzZWQgc2NvcGUgZGVmaW5pdGlvbnMuXG4gKi9cblxuLy8gQ29yZVxuZXhwb3J0IHsgU2NvcGVGYWNhZGUgfSBmcm9tICcuL1Njb3BlRmFjYWRlLmpzJztcblxuLy8gVHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQ29tbWl0RXZlbnQsXG4gIEVycm9yRXZlbnQsXG4gIFJlYWRFdmVudCxcbiAgUmVjb3JkZXJDb250ZXh0LFxuICBSZWRhY3Rpb25Qb2xpY3ksXG4gIFJlZGFjdGlvblJlcG9ydCxcbiAgU2NvcGVSZWNvcmRlcixcbiAgU3RhZ2VFdmVudCxcbiAgV3JpdGVFdmVudCxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIFJlY29yZGVyc1xuZXhwb3J0IHR5cGUgeyBEZWJ1Z0VudHJ5LCBEZWJ1Z1JlY29yZGVyT3B0aW9ucywgRGVidWdWZXJib3NpdHkgfSBmcm9tICcuL3JlY29yZGVycy9EZWJ1Z1JlY29yZGVyLmpzJztcbmV4cG9ydCB7IERlYnVnUmVjb3JkZXIgfSBmcm9tICcuL3JlY29yZGVycy9EZWJ1Z1JlY29yZGVyLmpzJztcbmV4cG9ydCB0eXBlIHsgQWdncmVnYXRlZE1ldHJpY3MsIFN0YWdlTWV0cmljcyB9IGZyb20gJy4vcmVjb3JkZXJzL01ldHJpY1JlY29yZGVyLmpzJztcbmV4cG9ydCB7IE1ldHJpY1JlY29yZGVyIH0gZnJvbSAnLi9yZWNvcmRlcnMvTWV0cmljUmVjb3JkZXIuanMnO1xuXG4vLyBQcm90ZWN0aW9uXG5leHBvcnQgdHlwZSB7IFNjb3BlUHJvdGVjdGlvbk1vZGUsIFNjb3BlUHJvdGVjdGlvbk9wdGlvbnMgfSBmcm9tICcuL3Byb3RlY3Rpb24vaW5kZXguanMnO1xuZXhwb3J0IHsgY3JlYXRlRXJyb3JNZXNzYWdlLCBjcmVhdGVQcm90ZWN0ZWRTY29wZSB9IGZyb20gJy4vcHJvdGVjdGlvbi9pbmRleC5qcyc7XG5cbi8vIFByb3ZpZGVyc1xuZXhwb3J0IHR5cGUge1xuICBQcm92aWRlclJlc29sdmVyLFxuICBSZXNvbHZlT3B0aW9ucyxcbiAgU2NvcGVGYWN0b3J5LFxuICBTY29wZVByb3ZpZGVyLFxuICBTdGFnZUNvbnRleHRMaWtlLFxuICBTdHJpY3RNb2RlLFxufSBmcm9tICcuL3Byb3ZpZGVycy9pbmRleC5qcyc7XG5leHBvcnQge1xuICBfX2NsZWFyU2NvcGVSZXNvbHZlcnNGb3JUZXN0cyxcbiAgYXR0YWNoU2NvcGVNZXRob2RzLFxuICBpc1N1YmNsYXNzT2ZTY29wZUZhY2FkZSxcbiAgbG9va3NMaWtlQ2xhc3NDdG9yLFxuICBsb29rc0xpa2VGYWN0b3J5LFxuICBtYWtlQ2xhc3NQcm92aWRlcixcbiAgbWFrZUZhY3RvcnlQcm92aWRlcixcbiAgcmVnaXN0ZXJTY29wZVJlc29sdmVyLFxuICByZXNvbHZlU2NvcGVQcm92aWRlcixcbiAgdG9TY29wZUZhY3RvcnksXG59IGZyb20gJy4vcHJvdmlkZXJzL2luZGV4LmpzJztcblxuLy8gU3RhdGUgLyBab2RcbmV4cG9ydCB0eXBlIHsgRGVmaW5lU2NvcGVPcHRpb25zIH0gZnJvbSAnLi9zdGF0ZS96b2QvZGVmaW5lU2NvcGVGcm9tWm9kLmpzJztcbmV4cG9ydCB7IGRlZmluZVNjb3BlRnJvbVpvZCB9IGZyb20gJy4vc3RhdGUvem9kL2RlZmluZVNjb3BlRnJvbVpvZC5qcyc7XG5leHBvcnQgeyBab2RTY29wZVJlc29sdmVyIH0gZnJvbSAnLi9zdGF0ZS96b2QvcmVzb2x2ZXIuanMnO1xuZXhwb3J0IHsgZGVmaW5lU2NvcGVTY2hlbWEsIGlzU2NvcGVTY2hlbWEgfSBmcm9tICcuL3N0YXRlL3pvZC9zY2hlbWEvYnVpbGRlci5qcyc7XG5leHBvcnQgeyBjcmVhdGVTY29wZVByb3h5RnJvbVpvZCB9IGZyb20gJy4vc3RhdGUvem9kL3Njb3BlRmFjdG9yeS5qcyc7XG4iXX0=
32
+ // State / Zod — INTENTIONALLY NOT re-exported here.
33
+ // Zod is an OPTIONAL peer; re-exporting it from this barrel would force every
34
+ // `footprintjs` consumer to load zod eagerly (and crash if it isn't installed).
35
+ // The zod-based scope helpers live behind the opt-in `footprintjs/zod` entry
36
+ // (src/zod.ts). Import them from there and add zod to your own dependencies.
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Njb3BlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwQkFBMEI7QUFDMUI7Ozs7O0dBS0c7OztBQUVILE9BQU87QUFDUCxtREFBK0M7QUFBdEMsNkdBQUEsV0FBVyxPQUFBO0FBaUJwQixpRUFBNkQ7QUFBcEQsaUhBQUEsYUFBYSxPQUFBO0FBRXRCLG1FQUErRDtBQUF0RCxtSEFBQSxjQUFjLE9BQUE7QUFJdkIsa0RBQWlGO0FBQXhFLDhHQUFBLGtCQUFrQixPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFXakQsaURBVzhCO0FBVjVCLHlIQUFBLDZCQUE2QixPQUFBO0FBQzdCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLG1IQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLDhHQUFBLGtCQUFrQixPQUFBO0FBQ2xCLDRHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLDZHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLCtHQUFBLG1CQUFtQixPQUFBO0FBQ25CLGlIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLGdIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBHQUFBLGNBQWMsT0FBQTtBQUdoQixvREFBb0Q7QUFDcEQsOEVBQThFO0FBQzlFLGdGQUFnRjtBQUNoRiw2RUFBNkU7QUFDN0UsNkVBQTZFIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbi8qKlxuICogc2NvcGUvIOKAlCBTY29wZSBtYW5hZ2VtZW50IGxpYnJhcnlcbiAqXG4gKiBEZXBlbmRzIG9uIG1lbW9yeS8gKFBoYXNlIDEpLiBQcm92aWRlcyBTY29wZUZhY2FkZSwgcmVjb3JkZXJzLFxuICogcHJvdmlkZXJzLCBwcm90ZWN0aW9uLCBhbmQgWm9kLWJhc2VkIHNjb3BlIGRlZmluaXRpb25zLlxuICovXG5cbi8vIENvcmVcbmV4cG9ydCB7IFNjb3BlRmFjYWRlIH0gZnJvbSAnLi9TY29wZUZhY2FkZS5qcyc7XG5cbi8vIFR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIENvbW1pdEV2ZW50LFxuICBFcnJvckV2ZW50LFxuICBSZWFkRXZlbnQsXG4gIFJlY29yZGVyQ29udGV4dCxcbiAgUmVkYWN0aW9uUG9saWN5LFxuICBSZWRhY3Rpb25SZXBvcnQsXG4gIFNjb3BlUmVjb3JkZXIsXG4gIFN0YWdlRXZlbnQsXG4gIFdyaXRlRXZlbnQsXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBSZWNvcmRlcnNcbmV4cG9ydCB0eXBlIHsgRGVidWdFbnRyeSwgRGVidWdSZWNvcmRlck9wdGlvbnMsIERlYnVnVmVyYm9zaXR5IH0gZnJvbSAnLi9yZWNvcmRlcnMvRGVidWdSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBEZWJ1Z1JlY29yZGVyIH0gZnJvbSAnLi9yZWNvcmRlcnMvRGVidWdSZWNvcmRlci5qcyc7XG5leHBvcnQgdHlwZSB7IEFnZ3JlZ2F0ZWRNZXRyaWNzLCBTdGFnZU1ldHJpY3MgfSBmcm9tICcuL3JlY29yZGVycy9NZXRyaWNSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBNZXRyaWNSZWNvcmRlciB9IGZyb20gJy4vcmVjb3JkZXJzL01ldHJpY1JlY29yZGVyLmpzJztcblxuLy8gUHJvdGVjdGlvblxuZXhwb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlLCBTY29wZVByb3RlY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9wcm90ZWN0aW9uL2luZGV4LmpzJztcbmV4cG9ydCB7IGNyZWF0ZUVycm9yTWVzc2FnZSwgY3JlYXRlUHJvdGVjdGVkU2NvcGUgfSBmcm9tICcuL3Byb3RlY3Rpb24vaW5kZXguanMnO1xuXG4vLyBQcm92aWRlcnNcbmV4cG9ydCB0eXBlIHtcbiAgUHJvdmlkZXJSZXNvbHZlcixcbiAgUmVzb2x2ZU9wdGlvbnMsXG4gIFNjb3BlRmFjdG9yeSxcbiAgU2NvcGVQcm92aWRlcixcbiAgU3RhZ2VDb250ZXh0TGlrZSxcbiAgU3RyaWN0TW9kZSxcbn0gZnJvbSAnLi9wcm92aWRlcnMvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgX19jbGVhclNjb3BlUmVzb2x2ZXJzRm9yVGVzdHMsXG4gIGF0dGFjaFNjb3BlTWV0aG9kcyxcbiAgaXNTdWJjbGFzc09mU2NvcGVGYWNhZGUsXG4gIGxvb2tzTGlrZUNsYXNzQ3RvcixcbiAgbG9va3NMaWtlRmFjdG9yeSxcbiAgbWFrZUNsYXNzUHJvdmlkZXIsXG4gIG1ha2VGYWN0b3J5UHJvdmlkZXIsXG4gIHJlZ2lzdGVyU2NvcGVSZXNvbHZlcixcbiAgcmVzb2x2ZVNjb3BlUHJvdmlkZXIsXG4gIHRvU2NvcGVGYWN0b3J5LFxufSBmcm9tICcuL3Byb3ZpZGVycy9pbmRleC5qcyc7XG5cbi8vIFN0YXRlIC8gWm9kIOKAlCBJTlRFTlRJT05BTExZIE5PVCByZS1leHBvcnRlZCBoZXJlLlxuLy8gWm9kIGlzIGFuIE9QVElPTkFMIHBlZXI7IHJlLWV4cG9ydGluZyBpdCBmcm9tIHRoaXMgYmFycmVsIHdvdWxkIGZvcmNlIGV2ZXJ5XG4vLyBgZm9vdHByaW50anNgIGNvbnN1bWVyIHRvIGxvYWQgem9kIGVhZ2VybHkgKGFuZCBjcmFzaCBpZiBpdCBpc24ndCBpbnN0YWxsZWQpLlxuLy8gVGhlIHpvZC1iYXNlZCBzY29wZSBoZWxwZXJzIGxpdmUgYmVoaW5kIHRoZSBvcHQtaW4gYGZvb3RwcmludGpzL3pvZGAgZW50cnlcbi8vIChzcmMvem9kLnRzKS4gSW1wb3J0IHRoZW0gZnJvbSB0aGVyZSBhbmQgYWRkIHpvZCB0byB5b3VyIG93biBkZXBlbmRlbmNpZXMuXG4iXX0=
@@ -32,8 +32,7 @@ export { createTypedScopeFactory } from './lib/builder/typedFlowChart.js';
32
32
  export type { ProviderResolver, ResolveOptions, ScopeProvider, StageContextLike, StrictMode, } from './lib/scope/index.js';
33
33
  export { createErrorMessage, createProtectedScope, ScopeFacade } from './lib/scope/index.js';
34
34
  export { attachScopeMethods, isSubclassOfScopeFacade, looksLikeClassCtor, looksLikeFactory, makeClassProvider, makeFactoryProvider, registerScopeResolver, resolveScopeProvider, toScopeFactory, } from './lib/scope/index.js';
35
- export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, DefineScopeOptions, RecorderContext, StageEvent, StageMetrics, } from './lib/scope/index.js';
36
- export { createScopeProxyFromZod, defineScopeSchema, isScopeSchema, ZodScopeResolver } from './lib/scope/index.js';
35
+ export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, RecorderContext, StageEvent, StageMetrics, } from './lib/scope/index.js';
37
36
  export type { RuntimeSnapshot } from './lib/runner/index.js';
38
37
  export { ExecutionRuntime } from './lib/runner/index.js';
39
38
  export type { ReactiveOptions, ReactiveTarget } from './lib/reactive/index.js';
@@ -136,5 +136,3 @@ export { extractErrorInfo, formatErrorInfo } from './lib/engine/index.js';
136
136
  * `enableDevMode` for the full list and usage example.
137
137
  */
138
138
  export { disableDevMode, enableDevMode, isDevMode } from './lib/scope/detectCircular.js';
139
- /** @category Dev Tools */
140
- export { defineScopeFromZod } from './lib/scope/index.js';
@@ -66,7 +66,9 @@ export declare class StageContext {
66
66
  useRedactedMirror(mirror: SharedMemory): void;
67
67
  /** Returns the redacted mirror if installed, else undefined. */
68
68
  getRedactedSharedMemory(): SharedMemory | undefined;
69
- /** Lazily creates the transaction buffer (pay clone cost only if stage writes). */
69
+ /** Lazily creates the transaction buffer on the stage's FIRST state access
70
+ * reads included, so read-only stages currently pay the clone cost too.
71
+ * (Truly lazy-on-write is backlog Phase-3 #13.) */
70
72
  getTransactionBuffer(): TransactionBuffer;
71
73
  /** Builds an absolute path inside the shared memory (run namespace). */
72
74
  private withNamespace;
@@ -107,6 +107,16 @@ export declare class FlowChartExecutor<TOut = any, TScope = any> {
107
107
  * scope. See `test/lib/pause/cross-executor-resume.test.ts`.
108
108
  */
109
109
  private _hasRunBefore;
110
+ /**
111
+ * Re-entrancy guard. `run()` and `resume()` mutate per-run instance state
112
+ * (traverser, runId, execution counter, checkpoint) and clear attached
113
+ * recorders — a second concurrent entry on the SAME executor would
114
+ * interleave runIds and cross-contaminate recorder/narrative state, and
115
+ * `getCheckpoint()` would return whichever run paused last. One executor =
116
+ * one in-flight execution; create an executor per concurrent run.
117
+ * See docs/guides/execution-model.md.
118
+ */
119
+ private _isExecuting;
110
120
  private readonly flowChartArgs;
111
121
  /**
112
122
  * Create a FlowChartExecutor.
@@ -14,8 +14,3 @@ export type { ScopeProtectionMode, ScopeProtectionOptions } from './protection/i
14
14
  export { createErrorMessage, createProtectedScope } from './protection/index.js';
15
15
  export type { ProviderResolver, ResolveOptions, ScopeFactory, ScopeProvider, StageContextLike, StrictMode, } from './providers/index.js';
16
16
  export { __clearScopeResolversForTests, attachScopeMethods, isSubclassOfScopeFacade, looksLikeClassCtor, looksLikeFactory, makeClassProvider, makeFactoryProvider, registerScopeResolver, resolveScopeProvider, toScopeFactory, } from './providers/index.js';
17
- export type { DefineScopeOptions } from './state/zod/defineScopeFromZod.js';
18
- export { defineScopeFromZod } from './state/zod/defineScopeFromZod.js';
19
- export { ZodScopeResolver } from './state/zod/resolver.js';
20
- export { defineScopeSchema, isScopeSchema } from './state/zod/schema/builder.js';
21
- export { createScopeProxyFromZod } from './state/zod/scopeFactory.js';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `footprintjs/zod` — opt-in Zod integration.
3
+ *
4
+ * Zod is an OPTIONAL peer dependency. The core (`footprintjs`, `footprintjs/advanced`)
5
+ * never imports it, so a plain install needs no zod and never crashes. The
6
+ * zod-based scope helpers live HERE — import them from `'footprintjs/zod'` and
7
+ * add `zod` to your own dependencies:
8
+ *
9
+ * import { defineScopeFromZod, defineScopeSchema } from 'footprintjs/zod';
10
+ *
11
+ * (`ZodScopeResolver` is exported here too if you register it yourself via
12
+ * `registerScopeResolver` from `footprintjs/advanced`.)
13
+ */
14
+ export type { DefineScopeOptions } from './lib/scope/state/zod/defineScopeFromZod.js';
15
+ export { defineScopeFromZod } from './lib/scope/state/zod/defineScopeFromZod.js';
16
+ export { ZodScopeResolver } from './lib/scope/state/zod/resolver.js';
17
+ export { defineScopeSchema, isScopeSchema } from './lib/scope/state/zod/schema/builder.js';
18
+ export { createScopeProxyFromZod } from './lib/scope/state/zod/scopeFactory.js';
package/dist/zod.js ADDED
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * `footprintjs/zod` — opt-in Zod integration.
4
+ *
5
+ * Zod is an OPTIONAL peer dependency. The core (`footprintjs`, `footprintjs/advanced`)
6
+ * never imports it, so a plain install needs no zod and never crashes. The
7
+ * zod-based scope helpers live HERE — import them from `'footprintjs/zod'` and
8
+ * add `zod` to your own dependencies:
9
+ *
10
+ * import { defineScopeFromZod, defineScopeSchema } from 'footprintjs/zod';
11
+ *
12
+ * (`ZodScopeResolver` is exported here too if you register it yourself via
13
+ * `registerScopeResolver` from `footprintjs/advanced`.)
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.createScopeProxyFromZod = exports.isScopeSchema = exports.defineScopeSchema = exports.ZodScopeResolver = exports.defineScopeFromZod = void 0;
17
+ var defineScopeFromZod_js_1 = require("./lib/scope/state/zod/defineScopeFromZod.js");
18
+ Object.defineProperty(exports, "defineScopeFromZod", { enumerable: true, get: function () { return defineScopeFromZod_js_1.defineScopeFromZod; } });
19
+ var resolver_js_1 = require("./lib/scope/state/zod/resolver.js");
20
+ Object.defineProperty(exports, "ZodScopeResolver", { enumerable: true, get: function () { return resolver_js_1.ZodScopeResolver; } });
21
+ var builder_js_1 = require("./lib/scope/state/zod/schema/builder.js");
22
+ Object.defineProperty(exports, "defineScopeSchema", { enumerable: true, get: function () { return builder_js_1.defineScopeSchema; } });
23
+ Object.defineProperty(exports, "isScopeSchema", { enumerable: true, get: function () { return builder_js_1.isScopeSchema; } });
24
+ var scopeFactory_js_1 = require("./lib/scope/state/zod/scopeFactory.js");
25
+ Object.defineProperty(exports, "createScopeProxyFromZod", { enumerable: true, get: function () { return scopeFactory_js_1.createScopeProxyFromZod; } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3pvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztHQVlHOzs7QUFHSCxxRkFBaUY7QUFBeEUsMkhBQUEsa0JBQWtCLE9BQUE7QUFDM0IsaUVBQXFFO0FBQTVELCtHQUFBLGdCQUFnQixPQUFBO0FBQ3pCLHNFQUEyRjtBQUFsRiwrR0FBQSxpQkFBaUIsT0FBQTtBQUFFLDJHQUFBLGFBQWEsT0FBQTtBQUN6Qyx5RUFBZ0Y7QUFBdkUsMEhBQUEsdUJBQXVCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGBmb290cHJpbnRqcy96b2RgIOKAlCBvcHQtaW4gWm9kIGludGVncmF0aW9uLlxuICpcbiAqIFpvZCBpcyBhbiBPUFRJT05BTCBwZWVyIGRlcGVuZGVuY3kuIFRoZSBjb3JlIChgZm9vdHByaW50anNgLCBgZm9vdHByaW50anMvYWR2YW5jZWRgKVxuICogbmV2ZXIgaW1wb3J0cyBpdCwgc28gYSBwbGFpbiBpbnN0YWxsIG5lZWRzIG5vIHpvZCBhbmQgbmV2ZXIgY3Jhc2hlcy4gVGhlXG4gKiB6b2QtYmFzZWQgc2NvcGUgaGVscGVycyBsaXZlIEhFUkUg4oCUIGltcG9ydCB0aGVtIGZyb20gYCdmb290cHJpbnRqcy96b2QnYCBhbmRcbiAqIGFkZCBgem9kYCB0byB5b3VyIG93biBkZXBlbmRlbmNpZXM6XG4gKlxuICogICBpbXBvcnQgeyBkZWZpbmVTY29wZUZyb21ab2QsIGRlZmluZVNjb3BlU2NoZW1hIH0gZnJvbSAnZm9vdHByaW50anMvem9kJztcbiAqXG4gKiAoYFpvZFNjb3BlUmVzb2x2ZXJgIGlzIGV4cG9ydGVkIGhlcmUgdG9vIGlmIHlvdSByZWdpc3RlciBpdCB5b3Vyc2VsZiB2aWFcbiAqIGByZWdpc3RlclNjb3BlUmVzb2x2ZXJgIGZyb20gYGZvb3RwcmludGpzL2FkdmFuY2VkYC4pXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBEZWZpbmVTY29wZU9wdGlvbnMgfSBmcm9tICcuL2xpYi9zY29wZS9zdGF0ZS96b2QvZGVmaW5lU2NvcGVGcm9tWm9kLmpzJztcbmV4cG9ydCB7IGRlZmluZVNjb3BlRnJvbVpvZCB9IGZyb20gJy4vbGliL3Njb3BlL3N0YXRlL3pvZC9kZWZpbmVTY29wZUZyb21ab2QuanMnO1xuZXhwb3J0IHsgWm9kU2NvcGVSZXNvbHZlciB9IGZyb20gJy4vbGliL3Njb3BlL3N0YXRlL3pvZC9yZXNvbHZlci5qcyc7XG5leHBvcnQgeyBkZWZpbmVTY29wZVNjaGVtYSwgaXNTY29wZVNjaGVtYSB9IGZyb20gJy4vbGliL3Njb3BlL3N0YXRlL3pvZC9zY2hlbWEvYnVpbGRlci5qcyc7XG5leHBvcnQgeyBjcmVhdGVTY29wZVByb3h5RnJvbVpvZCB9IGZyb20gJy4vbGliL3Njb3BlL3N0YXRlL3pvZC9zY29wZUZhY3RvcnkuanMnO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "footprintjs",
3
- "version": "7.1.0",
3
+ "version": "8.1.0",
4
4
  "description": "Explainable backend flows — automatic causal traces, decision evidence, and MCP tool generation for AI agents",
5
5
  "license": "MIT",
6
6
  "author": "Sanjay Krishna Anbalagan",
@@ -95,6 +95,11 @@
95
95
  "types": "./dist/types/detach.d.ts",
96
96
  "import": "./dist/esm/detach.js",
97
97
  "require": "./dist/detach.js"
98
+ },
99
+ "./zod": {
100
+ "types": "./dist/types/zod.d.ts",
101
+ "import": "./dist/esm/zod.js",
102
+ "require": "./dist/zod.js"
98
103
  }
99
104
  },
100
105
  "lint-staged": {