qnce-engine 1.3.1 → 1.4.1
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/README.md +136 -2
- package/dist/adapters/contracts.d.ts +1 -1
- package/dist/adapters/contracts.d.ts.map +1 -1
- package/dist/adapters/storage/MockAdapters.d.ts +89 -0
- package/dist/adapters/storage/MockAdapters.d.ts.map +1 -0
- package/dist/adapters/storage/MockAdapters.js +109 -0
- package/dist/adapters/storage/MockAdapters.js.map +1 -0
- package/dist/adapters/story/CustomJSONAdapter.d.ts +1 -1
- package/dist/adapters/story/CustomJSONAdapter.d.ts.map +1 -1
- package/dist/adapters/story/CustomJSONAdapter.js +20 -14
- package/dist/adapters/story/CustomJSONAdapter.js.map +1 -1
- package/dist/adapters/story/InkAdapter.d.ts +1 -1
- package/dist/adapters/story/InkAdapter.d.ts.map +1 -1
- package/dist/adapters/story/InkAdapter.js +7 -10
- package/dist/adapters/story/InkAdapter.js.map +1 -1
- package/dist/adapters/story/TwisonAdapter.d.ts +1 -1
- package/dist/adapters/story/TwisonAdapter.d.ts.map +1 -1
- package/dist/adapters/story/TwisonAdapter.js +2 -2
- package/dist/adapters/story/TwisonAdapter.js.map +1 -1
- package/dist/cli/audit.js +1 -0
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +56 -20
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/init.js +1 -0
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/perf.d.ts.map +1 -1
- package/dist/cli/perf.js +30 -0
- package/dist/cli/perf.js.map +1 -1
- package/dist/cli/play.d.ts.map +1 -1
- package/dist/cli/play.js +135 -60
- package/dist/cli/play.js.map +1 -1
- package/dist/engine/condition.d.ts +25 -3
- package/dist/engine/condition.d.ts.map +1 -1
- package/dist/engine/condition.js +358 -64
- package/dist/engine/condition.js.map +1 -1
- package/dist/engine/core.d.ts +109 -3
- package/dist/engine/core.d.ts.map +1 -1
- package/dist/engine/core.js +486 -36
- package/dist/engine/core.js.map +1 -1
- package/dist/engine/demo-story.d.ts +1 -0
- package/dist/engine/demo-story.d.ts.map +1 -1
- package/dist/engine/demo-story.js +1 -0
- package/dist/engine/demo-story.js.map +1 -1
- package/dist/engine/error-factory.d.ts +86 -0
- package/dist/engine/error-factory.d.ts.map +1 -0
- package/dist/engine/error-factory.js +87 -0
- package/dist/engine/error-factory.js.map +1 -0
- package/dist/engine/errors.d.ts +3 -0
- package/dist/engine/errors.d.ts.map +1 -1
- package/dist/engine/errors.js +3 -0
- package/dist/engine/errors.js.map +1 -1
- package/dist/engine/validation.js +1 -1
- package/dist/engine/validation.js.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/react.d.ts +20 -3
- package/dist/integrations/react.d.ts.map +1 -1
- package/dist/integrations/react.js +15 -2
- package/dist/integrations/react.js.map +1 -1
- package/dist/narrative/branching/models.d.ts +1 -0
- package/dist/narrative/branching/models.d.ts.map +1 -1
- package/dist/narrative/branching/models.js.map +1 -1
- package/dist/performance/AdaptiveControllers.d.ts +51 -0
- package/dist/performance/AdaptiveControllers.d.ts.map +1 -0
- package/dist/performance/AdaptiveControllers.js +87 -0
- package/dist/performance/AdaptiveControllers.js.map +1 -0
- package/dist/performance/ContextPool.d.ts +1 -0
- package/dist/performance/ContextPool.d.ts.map +1 -0
- package/dist/performance/ContextPool.js +2 -0
- package/dist/performance/ContextPool.js.map +1 -0
- package/dist/performance/HotReloadDelta.d.ts +5 -0
- package/dist/performance/HotReloadDelta.d.ts.map +1 -1
- package/dist/performance/HotReloadDelta.js +18 -4
- package/dist/performance/HotReloadDelta.js.map +1 -1
- package/dist/performance/ObjectPool.d.ts.map +1 -1
- package/dist/performance/ObjectPool.js +4 -1
- package/dist/performance/ObjectPool.js.map +1 -1
- package/dist/performance/PerfReporter.d.ts +69 -0
- package/dist/performance/PerfReporter.d.ts.map +1 -1
- package/dist/performance/PerfReporter.js +314 -28
- package/dist/performance/PerfReporter.js.map +1 -1
- package/dist/performance/ThreadPool.d.ts +5 -0
- package/dist/performance/ThreadPool.d.ts.map +1 -1
- package/dist/performance/ThreadPool.js +33 -5
- package/dist/performance/ThreadPool.js.map +1 -1
- package/dist/persistence/StorageAdapters.d.ts.map +1 -1
- package/dist/persistence/StorageAdapters.js +13 -19
- package/dist/persistence/StorageAdapters.js.map +1 -1
- package/dist/qnce-engine.d.ts +2258 -0
- package/dist/quantum/entangler.d.ts +13 -0
- package/dist/quantum/entangler.d.ts.map +1 -0
- package/dist/quantum/entangler.js +24 -0
- package/dist/quantum/entangler.js.map +1 -0
- package/dist/quantum/flags.d.ts +24 -0
- package/dist/quantum/flags.d.ts.map +1 -0
- package/dist/quantum/flags.js +29 -0
- package/dist/quantum/flags.js.map +1 -0
- package/dist/quantum/integration.d.ts +26 -0
- package/dist/quantum/integration.d.ts.map +1 -0
- package/dist/quantum/integration.js +38 -0
- package/dist/quantum/integration.js.map +1 -0
- package/dist/quantum/measurement.d.ts +22 -0
- package/dist/quantum/measurement.d.ts.map +1 -0
- package/dist/quantum/measurement.js +44 -0
- package/dist/quantum/measurement.js.map +1 -0
- package/dist/quantum/phase.d.ts +20 -0
- package/dist/quantum/phase.d.ts.map +1 -0
- package/dist/quantum/phase.js +22 -0
- package/dist/quantum/phase.js.map +1 -0
- package/dist/quantum/types.d.ts +12 -0
- package/dist/quantum/types.d.ts.map +1 -0
- package/dist/quantum/types.js +5 -0
- package/dist/quantum/types.js.map +1 -0
- package/dist/schemas/validateStoryData.d.ts.map +1 -1
- package/dist/schemas/validateStoryData.js +8 -2
- package/dist/schemas/validateStoryData.js.map +1 -1
- package/dist/telemetry/core.d.ts +88 -0
- package/dist/telemetry/core.d.ts.map +1 -0
- package/dist/telemetry/core.js +303 -0
- package/dist/telemetry/core.js.map +1 -0
- package/dist/telemetry/types.d.ts +76 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +4 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/ui/__tests__/AutosaveIndicator.test.js +10 -13
- package/dist/ui/__tests__/AutosaveIndicator.test.js.map +1 -1
- package/dist/ui/__tests__/UndoRedoControls.test.js +7 -9
- package/dist/ui/__tests__/UndoRedoControls.test.js.map +1 -1
- package/dist/ui/components/AutosaveIndicator.d.ts +1 -0
- package/dist/ui/components/AutosaveIndicator.d.ts.map +1 -1
- package/dist/ui/components/AutosaveIndicator.js +2 -1
- package/dist/ui/components/AutosaveIndicator.js.map +1 -1
- package/dist/ui/components/UndoRedoControls.d.ts +1 -0
- package/dist/ui/components/UndoRedoControls.d.ts.map +1 -1
- package/dist/ui/components/UndoRedoControls.js +1 -0
- package/dist/ui/components/UndoRedoControls.js.map +1 -1
- package/dist/ui/hooks/useKeyboardShortcuts.d.ts +1 -0
- package/dist/ui/hooks/useKeyboardShortcuts.d.ts.map +1 -1
- package/dist/ui/hooks/useKeyboardShortcuts.js +17 -5
- package/dist/ui/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist/ui/types.d.ts +6 -0
- package/dist/ui/types.d.ts.map +1 -1
- package/dist/ui/types.js +1 -0
- package/dist/ui/types.js.map +1 -1
- package/dist/utils/debug-logger.d.ts +20 -0
- package/dist/utils/debug-logger.d.ts.map +1 -0
- package/dist/utils/debug-logger.js +24 -0
- package/dist/utils/debug-logger.js.map +1 -0
- package/dist/utils/hot-profiler.d.ts +21 -0
- package/dist/utils/hot-profiler.d.ts.map +1 -0
- package/dist/utils/hot-profiler.js +36 -0
- package/dist/utils/hot-profiler.js.map +1 -0
- package/dist/utils/intern.d.ts +11 -0
- package/dist/utils/intern.d.ts.map +1 -0
- package/dist/utils/intern.js +45 -0
- package/dist/utils/intern.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +115 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/PERFORMANCE.md +330 -0
- package/examples/fluent-builder-prototype.ts +71 -0
- package/examples/quantum-integration-demo.ts +51 -0
- package/package.json +25 -9
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entangler primitive for declarative variable binding
|
|
3
|
+
* @beta
|
|
4
|
+
* @experimental
|
|
5
|
+
*/
|
|
6
|
+
export type TransformFn = (value: unknown) => unknown;
|
|
7
|
+
/** @beta @experimental */
|
|
8
|
+
export declare class Entangler<TKey extends string = string> {
|
|
9
|
+
private bindings;
|
|
10
|
+
bind(from: TKey, to: TKey, transform?: TransformFn): this;
|
|
11
|
+
apply(flags: Record<string, unknown>): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=entangler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entangler.d.ts","sourceRoot":"","sources":["../../src/quantum/entangler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAEtD,0BAA0B;AAC1B,qBAAa,SAAS,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACjD,OAAO,CAAC,QAAQ,CAAgE;IAEhF,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,WAAW;IAKlD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMrC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Entangler primitive for declarative variable binding
|
|
4
|
+
* @beta
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Entangler = void 0;
|
|
9
|
+
/** @beta @experimental */
|
|
10
|
+
class Entangler {
|
|
11
|
+
bindings = [];
|
|
12
|
+
bind(from, to, transform) {
|
|
13
|
+
this.bindings.push({ from, to, transform });
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
apply(flags) {
|
|
17
|
+
for (const b of this.bindings) {
|
|
18
|
+
const v = flags[b.from];
|
|
19
|
+
flags[b.to] = b.transform ? b.transform(v) : v;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.Entangler = Entangler;
|
|
24
|
+
//# sourceMappingURL=entangler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entangler.js","sourceRoot":"","sources":["../../src/quantum/entangler.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,0BAA0B;AAC1B,MAAa,SAAS;IACZ,QAAQ,GAA6D,EAAE,CAAC;IAEhF,IAAI,CAAC,IAAU,EAAE,EAAQ,EAAE,SAAuB;QAChD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAA8B;QAClC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;YAClC,KAAK,CAAC,CAAC,CAAC,EAAY,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AAdD,8BAcC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature flags utility to gate experimental behavior
|
|
3
|
+
* @beta
|
|
4
|
+
* @experimental
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @beta
|
|
8
|
+
* @experimental
|
|
9
|
+
*/
|
|
10
|
+
export type FeatureFlagsConfig = {
|
|
11
|
+
[flag: string]: boolean;
|
|
12
|
+
};
|
|
13
|
+
/** @beta @experimental */
|
|
14
|
+
export declare class FeatureFlags {
|
|
15
|
+
private flags;
|
|
16
|
+
constructor(initial?: FeatureFlagsConfig);
|
|
17
|
+
enable(flag: string): void;
|
|
18
|
+
disable(flag: string): void;
|
|
19
|
+
isEnabled(flag: string): boolean;
|
|
20
|
+
getAll(): {
|
|
21
|
+
[x: string]: boolean;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=flags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/quantum/flags.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB,CAAC;AAEF,0BAA0B;AAC1B,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAqB;gBAEtB,OAAO,CAAC,EAAE,kBAAkB;IAIxC,MAAM,CAAC,IAAI,EAAE,MAAM;IAInB,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,MAAM;;;CAGP"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Feature flags utility to gate experimental behavior
|
|
4
|
+
* @beta
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.FeatureFlags = void 0;
|
|
9
|
+
/** @beta @experimental */
|
|
10
|
+
class FeatureFlags {
|
|
11
|
+
flags;
|
|
12
|
+
constructor(initial) {
|
|
13
|
+
this.flags = { ...(initial || {}) };
|
|
14
|
+
}
|
|
15
|
+
enable(flag) {
|
|
16
|
+
this.flags[flag] = true;
|
|
17
|
+
}
|
|
18
|
+
disable(flag) {
|
|
19
|
+
this.flags[flag] = false;
|
|
20
|
+
}
|
|
21
|
+
isEnabled(flag) {
|
|
22
|
+
return !!this.flags[flag];
|
|
23
|
+
}
|
|
24
|
+
getAll() {
|
|
25
|
+
return { ...this.flags };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.FeatureFlags = FeatureFlags;
|
|
29
|
+
//# sourceMappingURL=flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/quantum/flags.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAUH,0BAA0B;AAC1B,MAAa,YAAY;IACf,KAAK,CAAqB;IAElC,YAAY,OAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAtBD,oCAsBC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional integration helpers for quantum primitives behind feature flags
|
|
3
|
+
* @beta
|
|
4
|
+
* @experimental
|
|
5
|
+
*/
|
|
6
|
+
import type { QNCEEngine } from '../engine/core.js';
|
|
7
|
+
import { Phase } from './phase.js';
|
|
8
|
+
import { Entangler } from './entangler.js';
|
|
9
|
+
import { FeatureFlags, type FeatureFlagsConfig } from './flags.js';
|
|
10
|
+
/** @beta @experimental */
|
|
11
|
+
export type QuantumIntegration = {
|
|
12
|
+
isPhaseActive: (phase: Phase, ctx?: {
|
|
13
|
+
nodeId?: string;
|
|
14
|
+
}) => boolean;
|
|
15
|
+
entangle: (configure: (e: Entangler) => Entangler) => void;
|
|
16
|
+
detach: () => void;
|
|
17
|
+
flags: FeatureFlags;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Attach optional quantum helpers to an engine instance. No-ops unless the corresponding
|
|
21
|
+
* feature flags are enabled. This does not mutate engine behavior; it only provides
|
|
22
|
+
* opt-in utilities that operate against engine.flags.
|
|
23
|
+
*/
|
|
24
|
+
/** @beta @experimental */
|
|
25
|
+
export declare function attachQuantumFeatures(engine: Pick<QNCEEngine, 'flags'>, flagsConfig?: FeatureFlags | FeatureFlagsConfig): QuantumIntegration;
|
|
26
|
+
//# sourceMappingURL=integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/quantum/integration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEnE,0BAA0B;AAC1B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,SAAS,KAAK,IAAI,CAAC;IAC3D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,0BAA0B;AAC1B,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EACjC,WAAW,CAAC,EAAE,YAAY,GAAG,kBAAkB,GAC9C,kBAAkB,CAoBpB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Optional integration helpers for quantum primitives behind feature flags
|
|
4
|
+
* @beta
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.attachQuantumFeatures = attachQuantumFeatures;
|
|
9
|
+
const entangler_js_1 = require("./entangler.js");
|
|
10
|
+
const flags_js_1 = require("./flags.js");
|
|
11
|
+
/**
|
|
12
|
+
* Attach optional quantum helpers to an engine instance. No-ops unless the corresponding
|
|
13
|
+
* feature flags are enabled. This does not mutate engine behavior; it only provides
|
|
14
|
+
* opt-in utilities that operate against engine.flags.
|
|
15
|
+
*/
|
|
16
|
+
/** @beta @experimental */
|
|
17
|
+
function attachQuantumFeatures(engine, flagsConfig) {
|
|
18
|
+
const flags = flagsConfig instanceof flags_js_1.FeatureFlags ? flagsConfig : new flags_js_1.FeatureFlags(flagsConfig);
|
|
19
|
+
const isOn = (key) => flags.isEnabled(key);
|
|
20
|
+
return {
|
|
21
|
+
flags,
|
|
22
|
+
isPhaseActive: (phase, ctx) => {
|
|
23
|
+
if (!isOn('quantum.phases'))
|
|
24
|
+
return false;
|
|
25
|
+
return phase.isActive({ flags: engine.flags, nodeId: ctx?.nodeId });
|
|
26
|
+
},
|
|
27
|
+
entangle: (configure) => {
|
|
28
|
+
if (!isOn('quantum.entanglement'))
|
|
29
|
+
return; // no-op when disabled
|
|
30
|
+
const e = new entangler_js_1.Entangler();
|
|
31
|
+
configure(e).apply(engine.flags);
|
|
32
|
+
},
|
|
33
|
+
detach: () => {
|
|
34
|
+
// currently stateless; reserved for future wiring
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/quantum/integration.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAqBH,sDAuBC;AAxCD,iDAA2C;AAC3C,yCAAmE;AAUnE;;;;GAIG;AACH,0BAA0B;AAC1B,SAAgB,qBAAqB,CACnC,MAAiC,EACjC,WAA+C;IAE/C,MAAM,KAAK,GAAG,WAAW,YAAY,uBAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,uBAAY,CAAC,WAAW,CAAC,CAAC;IAEhG,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEnD,OAAO;QACL,KAAK;QACL,aAAa,EAAE,CAAC,KAAY,EAAE,GAAyB,EAAE,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,CAAC,SAAsC,EAAE,EAAE;YACnD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBAAE,OAAO,CAAC,sBAAsB;YACjE,MAAM,CAAC,GAAG,IAAI,wBAAS,EAAE,CAAC;YAC1B,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,kDAAkD;QACpD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** @beta @experimental */
|
|
2
|
+
export type MeasurementContext = {
|
|
3
|
+
flags: Record<string, unknown>;
|
|
4
|
+
nodeId?: string;
|
|
5
|
+
};
|
|
6
|
+
/** @beta @experimental */
|
|
7
|
+
export type Sampler = (ctx: MeasurementContext) => boolean | number;
|
|
8
|
+
/** @beta @experimental */
|
|
9
|
+
export declare class Measurement {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
private sampler?;
|
|
12
|
+
private trials;
|
|
13
|
+
private successes;
|
|
14
|
+
constructor(name: string, sampler?: Sampler);
|
|
15
|
+
sample(ctx?: MeasurementContext): boolean;
|
|
16
|
+
getStats(): {
|
|
17
|
+
trials: number;
|
|
18
|
+
successes: number;
|
|
19
|
+
rate: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=measurement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../../src/quantum/measurement.ts"],"names":[],"mappings":"AAGA,0BAA0B;AAC1B,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,0BAA0B;AAC1B,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,GAAG,MAAM,CAAC;AAEpE,0BAA0B;AAC1B,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAK;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAK3C,MAAM,CAAC,GAAG,GAAE,kBAAkC,GAAG,OAAO;IAmBxD,QAAQ;;;;;CAKT"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Experimental Measurement primitive
|
|
3
|
+
// Allows sampling outcomes (boolean or probabilistic) and tracking rates.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.Measurement = void 0;
|
|
6
|
+
/** @beta @experimental */
|
|
7
|
+
class Measurement {
|
|
8
|
+
name;
|
|
9
|
+
sampler;
|
|
10
|
+
trials = 0;
|
|
11
|
+
successes = 0;
|
|
12
|
+
constructor(name, sampler) {
|
|
13
|
+
this.name = name;
|
|
14
|
+
this.sampler = sampler;
|
|
15
|
+
}
|
|
16
|
+
sample(ctx = { flags: {} }) {
|
|
17
|
+
let result;
|
|
18
|
+
if (this.sampler) {
|
|
19
|
+
const out = this.sampler(ctx);
|
|
20
|
+
if (typeof out === 'number') {
|
|
21
|
+
const p = Math.max(0, Math.min(1, out));
|
|
22
|
+
result = Math.random() < p;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
result = !!out;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// default fair coin
|
|
30
|
+
result = Math.random() < 0.5;
|
|
31
|
+
}
|
|
32
|
+
this.trials++;
|
|
33
|
+
if (result)
|
|
34
|
+
this.successes++;
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
getStats() {
|
|
38
|
+
const { trials, successes } = this;
|
|
39
|
+
const rate = trials > 0 ? successes / trials : 0;
|
|
40
|
+
return { trials, successes, rate };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.Measurement = Measurement;
|
|
44
|
+
//# sourceMappingURL=measurement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurement.js","sourceRoot":"","sources":["../../src/quantum/measurement.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,0EAA0E;;;AAQ1E,0BAA0B;AAC1B,MAAa,WAAW;IACb,IAAI,CAAS;IACd,OAAO,CAAW;IAClB,MAAM,GAAG,CAAC,CAAC;IACX,SAAS,GAAG,CAAC,CAAC;IAEtB,YAAY,IAAY,EAAE,OAAiB;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,MAA0B,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5C,IAAI,MAAe,CAAC;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,MAAM;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ;QACN,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;CACF;AAnCD,kCAmCC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase primitive representing a labeled coexistence region
|
|
3
|
+
* @beta
|
|
4
|
+
* @experimental
|
|
5
|
+
*/
|
|
6
|
+
/** @beta @experimental */
|
|
7
|
+
export interface PhaseContext {
|
|
8
|
+
flags: Record<string, unknown>;
|
|
9
|
+
nodeId?: string;
|
|
10
|
+
}
|
|
11
|
+
/** @beta @experimental */
|
|
12
|
+
export type PhasePredicate = (ctx: PhaseContext) => boolean;
|
|
13
|
+
/** @beta @experimental */
|
|
14
|
+
export declare class Phase {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
when?: PhasePredicate | undefined;
|
|
17
|
+
constructor(name: string, when?: PhasePredicate | undefined);
|
|
18
|
+
isActive(ctx: PhaseContext): boolean;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=phase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase.d.ts","sourceRoot":"","sources":["../../src/quantum/phase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,0BAA0B;AAC1B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;AAE5D,0BAA0B;AAC1B,qBAAa,KAAK;aACY,IAAI,EAAE,MAAM;IAAS,IAAI,CAAC,EAAE,cAAc;gBAA1C,IAAI,EAAE,MAAM,EAAS,IAAI,CAAC,EAAE,cAAc,YAAA;IACtE,QAAQ,CAAC,GAAG,EAAE,YAAY;CAG3B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Phase primitive representing a labeled coexistence region
|
|
4
|
+
* @beta
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Phase = void 0;
|
|
9
|
+
/** @beta @experimental */
|
|
10
|
+
class Phase {
|
|
11
|
+
name;
|
|
12
|
+
when;
|
|
13
|
+
constructor(name, when) {
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.when = when;
|
|
16
|
+
}
|
|
17
|
+
isActive(ctx) {
|
|
18
|
+
return !this.when || this.when(ctx);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.Phase = Phase;
|
|
22
|
+
//# sourceMappingURL=phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase.js","sourceRoot":"","sources":["../../src/quantum/phase.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAWH,0BAA0B;AAC1B,MAAa,KAAK;IACY;IAAqB;IAAjD,YAA4B,IAAY,EAAS,IAAqB;QAA1C,SAAI,GAAJ,IAAI,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAiB;IAAG,CAAC;IAC1E,QAAQ,CAAC,GAAiB;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;CACF;AALD,sBAKC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @beta @experimental */
|
|
2
|
+
export type FeatureFlagKey = string;
|
|
3
|
+
/** @beta @experimental */
|
|
4
|
+
export type EntangleTransform = (value: unknown) => unknown;
|
|
5
|
+
/** @beta @experimental */
|
|
6
|
+
export interface PhasePredicateContext {
|
|
7
|
+
flags: Record<string, unknown>;
|
|
8
|
+
nodeId?: string;
|
|
9
|
+
}
|
|
10
|
+
/** @beta @experimental */
|
|
11
|
+
export type PhasePredicate = (ctx: PhasePredicateContext) => boolean;
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/quantum/types.ts"],"names":[],"mappings":"AAGA,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,0BAA0B;AAC1B,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAE5D,0BAA0B;AAC1B,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/quantum/types.ts"],"names":[],"mappings":";AAAA,mDAAmD;AACnD,mCAAmC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateStoryData.d.ts","sourceRoot":"","sources":["../../src/schemas/validateStoryData.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"validateStoryData.d.ts","sourceRoot":"","sources":["../../src/schemas/validateStoryData.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,WAAW,EAAyC,MAAM,KAAK,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAUhD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAInE"}
|
|
@@ -8,9 +8,15 @@ exports.validateStoryData = validateStoryData;
|
|
|
8
8
|
const ajv_1 = __importDefault(require("ajv"));
|
|
9
9
|
const story_data_schema_json_1 = __importDefault(require("./story-data.schema.json"));
|
|
10
10
|
const ajv = new ajv_1.default({ allErrors: true });
|
|
11
|
-
const
|
|
11
|
+
const _validateFn = ajv.compile(story_data_schema_json_1.default);
|
|
12
|
+
const validateFn = ((data) => _validateFn(data));
|
|
13
|
+
// Attach errors getter compatibility
|
|
14
|
+
Object.defineProperty(validateFn, 'errors', {
|
|
15
|
+
get: () => _validateFn.errors,
|
|
16
|
+
});
|
|
12
17
|
function validateStoryData(data) {
|
|
13
18
|
const valid = validateFn(data);
|
|
14
|
-
|
|
19
|
+
const errs = validateFn.errors;
|
|
20
|
+
return { valid, errors: valid ? undefined : (errs || undefined) };
|
|
15
21
|
}
|
|
16
22
|
//# sourceMappingURL=validateStoryData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateStoryData.js","sourceRoot":"","sources":["../../src/schemas/validateStoryData.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"validateStoryData.js","sourceRoot":"","sources":["../../src/schemas/validateStoryData.ts"],"names":[],"mappings":";;;;;AAkBA,8CAIC;AAtBD,sDAAsD;AACtD,8CAA8E;AAC9E,sFAA8C;AAG9C,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,gCAA8B,CAAgC,CAAC;AAC/F,MAAM,UAAU,GAAG,CAAC,CAAC,IAAe,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAY,CAA8D,CAAC;AACpI,qCAAqC;AACrC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE;IAC1C,GAAG,EAAE,GAAG,EAAE,CAAE,WAAW,CAAC,MAA+C;CACxE,CAAC,CAAC;AAOH,SAAgB,iBAAiB,CAAC,IAAe;IAC/C,MAAM,KAAK,GAAY,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAI,UAAoD,CAAC,MAAM,CAAC;IAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { QEvent, Telemetry, TelemetryAdapter, TelemetryOptions } from './types.js';
|
|
2
|
+
/** Simple fixed-size ring buffer used by telemetry queue */
|
|
3
|
+
/** @beta @experimental */
|
|
4
|
+
export declare class RingBuffer<T> {
|
|
5
|
+
private capacity;
|
|
6
|
+
private buf;
|
|
7
|
+
private head;
|
|
8
|
+
private tail;
|
|
9
|
+
private _size;
|
|
10
|
+
constructor(capacity: number);
|
|
11
|
+
get size(): number;
|
|
12
|
+
get isFull(): boolean;
|
|
13
|
+
get isEmpty(): boolean;
|
|
14
|
+
push(item: T): boolean;
|
|
15
|
+
pop(): T | undefined;
|
|
16
|
+
drain(max: number): T[];
|
|
17
|
+
}
|
|
18
|
+
/** Internal telemetry implementation */
|
|
19
|
+
/** @beta @experimental */
|
|
20
|
+
export declare class TelemetryImpl implements Telemetry {
|
|
21
|
+
private opts;
|
|
22
|
+
private adapter;
|
|
23
|
+
private queue;
|
|
24
|
+
private dropped;
|
|
25
|
+
private sent;
|
|
26
|
+
private lastFlushTs;
|
|
27
|
+
private timer;
|
|
28
|
+
private prng;
|
|
29
|
+
private seq;
|
|
30
|
+
private latencies;
|
|
31
|
+
constructor(options: TelemetryOptions);
|
|
32
|
+
configure(opts: Partial<TelemetryOptions>): void;
|
|
33
|
+
emit<T extends string, P>(event: QEvent<T, P>): void;
|
|
34
|
+
flush(): Promise<void>;
|
|
35
|
+
private percentile;
|
|
36
|
+
stats(): {
|
|
37
|
+
queued: number;
|
|
38
|
+
dropped: number;
|
|
39
|
+
sent: number;
|
|
40
|
+
lastFlushTs: number | null;
|
|
41
|
+
p50: number | undefined;
|
|
42
|
+
p95: number | undefined;
|
|
43
|
+
};
|
|
44
|
+
private startTimer;
|
|
45
|
+
private restartTimer;
|
|
46
|
+
dispose(): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Built-in console adapter (dev-friendly pretty print)
|
|
50
|
+
* @beta
|
|
51
|
+
* @experimental
|
|
52
|
+
*/
|
|
53
|
+
export declare class ConsoleAdapter implements TelemetryAdapter {
|
|
54
|
+
configure(): void;
|
|
55
|
+
send(batch: QEvent[]): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
export interface FileAdapterOptions {
|
|
58
|
+
path: string;
|
|
59
|
+
rotateBytes?: number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* File adapter writing newline-delimited JSON events
|
|
63
|
+
* @beta
|
|
64
|
+
* @experimental
|
|
65
|
+
*/
|
|
66
|
+
export declare class FileAdapter implements TelemetryAdapter {
|
|
67
|
+
private opts;
|
|
68
|
+
private stream;
|
|
69
|
+
constructor(opts: FileAdapterOptions);
|
|
70
|
+
send(batch: QEvent[]): Promise<void>;
|
|
71
|
+
flush(): Promise<void>;
|
|
72
|
+
dispose(): Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Factory for built-in telemetry adapters
|
|
76
|
+
* @beta
|
|
77
|
+
* @experimental
|
|
78
|
+
*/
|
|
79
|
+
export declare function createTelemetryAdapter(kind: 'console' | 'file', opts?: {
|
|
80
|
+
path?: string;
|
|
81
|
+
}): TelemetryAdapter;
|
|
82
|
+
/**
|
|
83
|
+
* Create a telemetry instance; pass adapter + options
|
|
84
|
+
* @beta
|
|
85
|
+
* @experimental
|
|
86
|
+
*/
|
|
87
|
+
export declare function createTelemetry(options: TelemetryOptions): Telemetry;
|
|
88
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/telemetry/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAanF,4DAA4D;AAC5D,0BAA0B;AAC1B,qBAAa,UAAU,CAAC,CAAC;IAKX,OAAO,CAAC,QAAQ;IAJ5B,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAK;gBACE,QAAQ,EAAE,MAAM;IAIpC,IAAI,IAAI,IAAI,MAAM,CAAuB;IACzC,IAAI,MAAM,IAAI,OAAO,CAAyC;IAC9D,IAAI,OAAO,IAAI,OAAO,CAA6B;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAOtB,GAAG,IAAI,CAAC,GAAG,SAAS;IAQpB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;CAQxB;AAED,wCAAwC;AACxC,0BAA0B;AAC1B,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,IAAI,CAA6O;IACzP,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,SAAS,CAAgB;gBAErB,OAAO,EAAE,gBAAgB;IAuBrC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAkBhD,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAyC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B,OAAO,CAAC,UAAU;IAOlB,KAAK;;;;;;;;IAWL,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAMd,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B;AAGD;;;;GAIG;AACH,qBAAa,cAAe,YAAW,gBAAgB;IACrD,SAAS,IAAI,IAAI;IACX,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAO3C;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD;;;;GAIG;AACH,qBAAa,WAAY,YAAW,gBAAgB;IAEtC,OAAO,CAAC,IAAI;IADxB,OAAO,CAAC,MAAM,CAAc;gBACR,IAAI,EAAE,kBAAkB;IAGtC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,CAM3G;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAEpE"}
|