@cldmv/slothlet 3.2.0 → 3.2.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/AGENT-USAGE.md +129 -0
- package/README.md +6 -9
- package/dist/lib/builders/api_builder.mjs +1 -3
- package/dist/lib/handlers/metadata.mjs +2 -0
- package/dist/lib/handlers/unified-wrapper.mjs +17 -1
- package/dist/lib/handlers/version-manager.mjs +58 -3
- package/package.json +1 -1
- package/types/dist/lib/builders/api_builder.d.mts.map +1 -1
- package/types/dist/lib/handlers/metadata.d.mts.map +1 -1
- package/types/dist/lib/handlers/unified-wrapper.d.mts.map +1 -1
- package/types/dist/lib/handlers/version-manager.d.mts.map +1 -1
package/AGENT-USAGE.md
CHANGED
|
@@ -409,6 +409,34 @@ export const secureOperation = {
|
|
|
409
409
|
|
|
410
410
|
---
|
|
411
411
|
|
|
412
|
+
## 🌍 Environment Snapshot (v3.1+)
|
|
413
|
+
|
|
414
|
+
Slothlet captures a **frozen snapshot of `process.env` at init time** and exposes it at `api.slothlet.env`. The snapshot is deeply read-only — mutating `process.env` after init does not affect `api.slothlet.env`.
|
|
415
|
+
|
|
416
|
+
```js
|
|
417
|
+
const api = await slothlet({
|
|
418
|
+
dir: "./api",
|
|
419
|
+
env: true,
|
|
420
|
+
// env: { include: ["NODE_ENV", "DATABASE_URL", "PORT"] } // allowlist
|
|
421
|
+
});
|
|
422
|
+
|
|
423
|
+
// Access inside any module:
|
|
424
|
+
import { self } from "@cldmv/slothlet/runtime";
|
|
425
|
+
|
|
426
|
+
export const getConfig = () => ({
|
|
427
|
+
mode: self.slothlet.env.NODE_ENV,
|
|
428
|
+
dbUrl: self.slothlet.env.DATABASE_URL
|
|
429
|
+
});
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
**Key behaviors:**
|
|
433
|
+
- `env: true` → all `process.env` variables are captured
|
|
434
|
+
- `env: { include: [...] }` → only the listed keys are captured (recommended for security)
|
|
435
|
+
- `api.slothlet.env` is a frozen object — writes throw in strict mode
|
|
436
|
+
- Snapshot is taken at init time — late `process.env` mutations are NOT reflected
|
|
437
|
+
|
|
438
|
+
---
|
|
439
|
+
|
|
412
440
|
## 🔁 Hot Reload / Dynamic API Management
|
|
413
441
|
|
|
414
442
|
```js
|
|
@@ -457,6 +485,69 @@ api.slothlet.lifecycle.off("materialized:complete", handler);
|
|
|
457
485
|
|
|
458
486
|
---
|
|
459
487
|
|
|
488
|
+
## 🔀 API Path Versioning (v3.2+)
|
|
489
|
+
|
|
490
|
+
Mount multiple versions of the same logical path and dispatch to the correct version automatically based on the caller's version metadata.
|
|
491
|
+
|
|
492
|
+
### Setup
|
|
493
|
+
|
|
494
|
+
```js
|
|
495
|
+
const api = await slothlet({
|
|
496
|
+
dir: "./api",
|
|
497
|
+
versionDispatcher: "version" // use caller's versionMetadata.version field
|
|
498
|
+
// versionDispatcher: (allVersions, caller) => { ... } // custom function
|
|
499
|
+
});
|
|
500
|
+
|
|
501
|
+
// Register versioned modules — 4th argument is versionConfig
|
|
502
|
+
await api.slothlet.api.add("auth", "./api/v1", {}, { version: "v1", default: true });
|
|
503
|
+
await api.slothlet.api.add("auth", "./api/v2", {}, { version: "v2" });
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
### Access Patterns
|
|
507
|
+
|
|
508
|
+
```js
|
|
509
|
+
// Dispatcher — routes via discriminator (use this in most cases)
|
|
510
|
+
api.auth.login(user, pass) // → routes to v1 or v2 based on caller metadata
|
|
511
|
+
|
|
512
|
+
// Direct versioned access — bypasses dispatcher entirely
|
|
513
|
+
api.v1.auth.login(user, pass) // → always v1
|
|
514
|
+
api.v2.auth.login(user, pass) // → always v2
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
### Attaching Version Metadata to a Caller
|
|
518
|
+
|
|
519
|
+
```js
|
|
520
|
+
// Register a module WITH a version tag so the discriminator can use it
|
|
521
|
+
await api.slothlet.api.add("services/payments", "./payments", {}, {
|
|
522
|
+
version: "v2",
|
|
523
|
+
metadata: { stable: true } // versionConfig.metadata — stored in VersionManager only
|
|
524
|
+
});
|
|
525
|
+
|
|
526
|
+
// options.metadata (3rd arg) → regular Metadata system (metadata.caller() etc.)
|
|
527
|
+
// versionConfig.metadata (4th arg) → version-system only, used by the discriminator
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### Runtime Version Management
|
|
531
|
+
|
|
532
|
+
```js
|
|
533
|
+
// List registered versions for a path
|
|
534
|
+
api.slothlet.versioning.list("auth");
|
|
535
|
+
// → { versions: { v1: { ... }, v2: { ... } }, default: "v2" }
|
|
536
|
+
|
|
537
|
+
// Change the default dispatcher fallback
|
|
538
|
+
api.slothlet.versioning.setDefault("auth", "v1");
|
|
539
|
+
|
|
540
|
+
// Unregister a version (removes api.v1.auth; dispatcher updates automatically)
|
|
541
|
+
await api.slothlet.versioning.unregister("auth", "v1");
|
|
542
|
+
|
|
543
|
+
// Read version metadata stored at registration
|
|
544
|
+
api.slothlet.versioning.getVersionMetadata(moduleID);
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
> 📖 See [`docs/VERSIONING.md`](docs/VERSIONING.md) for full documentation.
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
460
551
|
## 📁 File Organization Best Practices
|
|
461
552
|
|
|
462
553
|
### ✅ Clean Folder Structure
|
|
@@ -550,6 +641,41 @@ api.slothlet.lifecycle.on("materialized:complete", handler);
|
|
|
550
641
|
api.slothlet.lifecycle.off("materialized:complete", handler);
|
|
551
642
|
```
|
|
552
643
|
|
|
644
|
+
### ❌ Mistake 6: Assuming `api.v1.auth` Goes Through the Dispatcher
|
|
645
|
+
|
|
646
|
+
```js
|
|
647
|
+
// ❌ WRONG — direct versioned path bypasses the discriminator entirely
|
|
648
|
+
api.v1.auth.login(user, pass); // always v1, no routing logic
|
|
649
|
+
|
|
650
|
+
// ✅ CORRECT — use the logical dispatcher path for dynamic routing
|
|
651
|
+
api.auth.login(user, pass); // routes based on caller version metadata
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
### ❌ Mistake 7: Wrong Config Key for Versioning
|
|
655
|
+
|
|
656
|
+
```js
|
|
657
|
+
// ❌ WRONG
|
|
658
|
+
const api = await slothlet({ dir: "./api", versionResolver: "version" });
|
|
659
|
+
|
|
660
|
+
// ✅ CORRECT
|
|
661
|
+
const api = await slothlet({ dir: "./api", versionDispatcher: "version" });
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
### ❌ Mistake 8: Conflating versionConfig.metadata with options.metadata
|
|
665
|
+
|
|
666
|
+
```js
|
|
667
|
+
// ❌ WRONG — puts version tag in the regular Metadata system instead of VersionManager
|
|
668
|
+
await api.slothlet.api.add("auth", "./v2", { metadata: { version: "v2" } });
|
|
669
|
+
|
|
670
|
+
// ✅ CORRECT
|
|
671
|
+
// options.metadata (3rd arg) → regular Metadata system (metadata.caller() etc.)
|
|
672
|
+
// versionConfig.metadata (4th arg) → VersionManager only, used by the discriminator
|
|
673
|
+
await api.slothlet.api.add("auth", "./v2",
|
|
674
|
+
{ metadata: { role: "core" } },
|
|
675
|
+
{ version: "v2", metadata: { stable: true } }
|
|
676
|
+
);
|
|
677
|
+
```
|
|
678
|
+
|
|
553
679
|
---
|
|
554
680
|
|
|
555
681
|
## ✅ AI Agent Checklist
|
|
@@ -563,6 +689,9 @@ api.slothlet.lifecycle.off("materialized:complete", handler);
|
|
|
563
689
|
- [ ] **Lifecycle** uses `api.slothlet.lifecycle.on/off()` only
|
|
564
690
|
- [ ] **Lazy mode**: if using background materialization, use `api.slothlet.materialize.wait()` before accessing the API
|
|
565
691
|
- [ ] **Hook subsets**: auth/security → `subset: "before"`, main logic → `"primary"`, audit → `"after"`
|
|
692
|
+
- [ ] **Versioning config key is `versionDispatcher:`**, not `versionResolver:` or `versionDiscriminator:`
|
|
693
|
+
- [ ] **Use `api.auth` (dispatcher path) for dynamic routing**, not `api.v1.auth` (direct path bypasses discriminator)
|
|
694
|
+
- [ ] **`versionConfig.metadata` (4th arg)** and **`options.metadata` (3rd arg)** are separate systems — don't conflate them
|
|
566
695
|
- [ ] **Double quotes everywhere** - follow Slothlet coding standards
|
|
567
696
|
|
|
568
697
|
---
|
package/README.md
CHANGED
|
@@ -55,22 +55,19 @@ Every feature has been hardened with a comprehensive test suite - over **5,300 t
|
|
|
55
55
|
|
|
56
56
|
## ✨ What's New
|
|
57
57
|
|
|
58
|
-
### Latest: v3.2.
|
|
58
|
+
### Latest: v3.2.1 (April 2026)
|
|
59
59
|
|
|
60
|
-
- **
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
- **Separate version metadata** — `versionConfig.metadata` stored in VersionManager; never merged with `options.metadata` (regular Metadata system)
|
|
64
|
-
- **Shutdown race fix** — `shutdown()` now drains in-flight lazy-mode ESM `import()` calls before teardown, preventing unhandled rejections on worker exit
|
|
65
|
-
- [View full v3.2.0 Changelog](./docs/changelog/v3/v3.2.0.md)
|
|
60
|
+
- **Missing `defineProperty` trap** — the version dispatcher proxy introduced in v3.2.0 had no `defineProperty` trap; calls fell through to the raw target, bypassing version routing, and non-configurable writes could trigger V8 proxy invariant `TypeError` on subsequent reads
|
|
61
|
+
- **Pre-commit tooling** — removed duplicate `build:cleanup` step from `precommit-validation.mjs`; sequence is now `build:dev → debug → test:node → vitest`
|
|
62
|
+
- [View full v3.2.1 Changelog](./docs/changelog/v3/v3.2.1.md)
|
|
66
63
|
|
|
67
64
|
### Recent Releases
|
|
68
65
|
|
|
66
|
+
- **v3.2.0** (April 2026) — API Path Versioning (`versionDispatcher`, `api.slothlet.versioning.*`, version metadata, dispatcher proxy); lazy-mode shutdown race fix ([Changelog](./docs/changelog/v3/v3.2.0.md))
|
|
69
67
|
- **v3.1.0** (March 2026) — Frozen `api.slothlet.env` snapshot; `env.include` allowlist; reload immunity ([Changelog](./docs/changelog/v3/v3.1.0.md))
|
|
70
68
|
- **v3.0.1** (March 2026) — Resolver fix for user `index.mjs` mis-classified as internal; CI `slothlet-dev` stripping hardening; respawn race fix; resilient `build:dist` script ([Changelog](./docs/changelog/v3/v3.0.1.md))
|
|
71
69
|
- **v3.0.0** (February 2026) — Unified Wrapper architecture, redesigned hook system, full i18n, background materialization, lifecycle events, collision modes, mutation controls ([Changelog](./docs/changelog/v3.0.md))
|
|
72
|
-
|
|
73
|
-
- **v2.10.0** — Function metadata tagging and introspection capabilities ([Changelog](https://github.com/CLDMV/slothlet/blob/master/docs/changelog/v2.10.md))
|
|
70
|
+
|
|
74
71
|
|
|
75
72
|
📚 **For complete version history and detailed release notes, see [docs/changelog/](./docs/changelog/) folder.**
|
|
76
73
|
|
|
@@ -584,9 +584,7 @@ export class ApiBuilder extends ComponentBase {
|
|
|
584
584
|
throw new slothlet.SlothletError("METADATA_NOT_AVAILABLE", {
|
|
585
585
|
handlersKeys: slothlet.handlers
|
|
586
586
|
? Object.keys(slothlet.handlers).join(", ")
|
|
587
|
-
:
|
|
588
|
-
|
|
589
|
-
"undefined",
|
|
587
|
+
: "undefined",
|
|
590
588
|
validationError: true
|
|
591
589
|
});
|
|
592
590
|
}
|
|
@@ -1342,6 +1342,8 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
1342
1342
|
|
|
1343
1343
|
|
|
1344
1344
|
|
|
1345
|
+
|
|
1346
|
+
|
|
1345
1347
|
wrapper._materialize().catch(() => {});
|
|
1346
1348
|
}
|
|
1347
1349
|
|
|
@@ -1900,7 +1902,9 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
1900
1902
|
!wrapper.____slothletInternal.state.materialized &&
|
|
1901
1903
|
wrapper.____slothletInternal.materializeFunc
|
|
1902
1904
|
) {
|
|
1903
|
-
|
|
1905
|
+
|
|
1906
|
+
|
|
1907
|
+
wrapper._materialize().catch(() => {});
|
|
1904
1908
|
}
|
|
1905
1909
|
|
|
1906
1910
|
|
|
@@ -2054,6 +2058,8 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
2054
2058
|
!wrapper.____slothletInternal.state.materialized &&
|
|
2055
2059
|
!wrapper.____slothletInternal.state.inFlight
|
|
2056
2060
|
) {
|
|
2061
|
+
|
|
2062
|
+
|
|
2057
2063
|
wrapper._materialize().catch(() => {});
|
|
2058
2064
|
}
|
|
2059
2065
|
|
|
@@ -2305,6 +2311,8 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
2305
2311
|
!cachedWrapper.____slothletInternal.state.materialized &&
|
|
2306
2312
|
!cachedWrapper.____slothletInternal.state.inFlight
|
|
2307
2313
|
) {
|
|
2314
|
+
|
|
2315
|
+
|
|
2308
2316
|
cachedWrapper._materialize().catch(() => {});
|
|
2309
2317
|
}
|
|
2310
2318
|
}
|
|
@@ -2565,6 +2573,8 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
2565
2573
|
!wrapper.____slothletInternal.state.materialized &&
|
|
2566
2574
|
!wrapper.____slothletInternal.state.inFlight
|
|
2567
2575
|
) {
|
|
2576
|
+
|
|
2577
|
+
|
|
2568
2578
|
wrapper._materialize().catch(() => {});
|
|
2569
2579
|
}
|
|
2570
2580
|
|
|
@@ -2772,6 +2782,8 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
2772
2782
|
!wrapper.____slothletInternal.state.materialized &&
|
|
2773
2783
|
!wrapper.____slothletInternal.state.inFlight
|
|
2774
2784
|
) {
|
|
2785
|
+
|
|
2786
|
+
|
|
2775
2787
|
wrapper._materialize().catch(() => {});
|
|
2776
2788
|
}
|
|
2777
2789
|
|
|
@@ -2799,6 +2811,8 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
2799
2811
|
!wrapper.____slothletInternal.state.materialized &&
|
|
2800
2812
|
!wrapper.____slothletInternal.state.inFlight
|
|
2801
2813
|
) {
|
|
2814
|
+
|
|
2815
|
+
|
|
2802
2816
|
wrapper._materialize().catch(() => {});
|
|
2803
2817
|
}
|
|
2804
2818
|
|
|
@@ -2848,6 +2862,8 @@ export class UnifiedWrapper extends ComponentBase {
|
|
|
2848
2862
|
!wrapper.____slothletInternal.state.materialized &&
|
|
2849
2863
|
!wrapper.____slothletInternal.state.inFlight
|
|
2850
2864
|
) {
|
|
2865
|
+
|
|
2866
|
+
|
|
2851
2867
|
wrapper._materialize().catch(() => {});
|
|
2852
2868
|
}
|
|
2853
2869
|
|
|
@@ -212,6 +212,8 @@ export class VersionManager extends ComponentBase {
|
|
|
212
212
|
});
|
|
213
213
|
}
|
|
214
214
|
const ve = entry.versions.get(versionTag);
|
|
215
|
+
|
|
216
|
+
|
|
215
217
|
const existing = this.#versionMetadataByModule.get(ve.moduleID) ?? {};
|
|
216
218
|
|
|
217
219
|
this.#versionMetadataByModule.set(ve.moduleID, {
|
|
@@ -435,6 +437,8 @@ export class VersionManager extends ComponentBase {
|
|
|
435
437
|
let node = this.slothlet.api;
|
|
436
438
|
|
|
437
439
|
|
|
440
|
+
|
|
441
|
+
|
|
438
442
|
const segments = Array.isArray(apiPath) ? apiPath : apiPath.split(".");
|
|
439
443
|
for (const segment of segments) {
|
|
440
444
|
|
|
@@ -678,14 +682,65 @@ export class VersionManager extends ComponentBase {
|
|
|
678
682
|
|
|
679
683
|
|
|
680
684
|
getOwnPropertyDescriptor(t, prop) {
|
|
681
|
-
|
|
682
685
|
const targetDesc = Reflect.getOwnPropertyDescriptor(t, prop);
|
|
683
|
-
if (targetDesc)
|
|
686
|
+
if (targetDesc) {
|
|
687
|
+
if (!targetDesc.configurable) {
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
return targetDesc;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
|
|
697
|
+
return { configurable: true, enumerable: true, writable: false, value: t[prop] };
|
|
698
|
+
}
|
|
684
699
|
|
|
685
700
|
|
|
686
701
|
|
|
687
|
-
|
|
688
702
|
return { configurable: true, enumerable: true, writable: false, value: undefined };
|
|
703
|
+
},
|
|
704
|
+
|
|
705
|
+
|
|
706
|
+
defineProperty(t, prop, descriptor) {
|
|
707
|
+
const vw = resolveVersionedWrapper();
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
if (!vw) return Reflect.defineProperty(t, prop, descriptor);
|
|
712
|
+
if (descriptor.configurable === false) {
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
const shadow = Object.create(Reflect.getPrototypeOf(t));
|
|
720
|
+
const currentDescriptor = Reflect.getOwnPropertyDescriptor(t, prop);
|
|
721
|
+
if (currentDescriptor) {
|
|
722
|
+
Reflect.defineProperty(shadow, prop, currentDescriptor);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
|
|
726
|
+
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
|
|
731
|
+
if (!Reflect.isExtensible(t)) {
|
|
732
|
+
Reflect.preventExtensions(shadow);
|
|
733
|
+
}
|
|
734
|
+
if (!Reflect.defineProperty(shadow, prop, descriptor)) return false;
|
|
735
|
+
|
|
736
|
+
if (!Reflect.defineProperty(vw, prop, descriptor)) return false;
|
|
737
|
+
|
|
738
|
+
|
|
739
|
+
|
|
740
|
+
return Reflect.defineProperty(t, prop, descriptor);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
return Reflect.defineProperty(vw, prop, descriptor);
|
|
689
744
|
}
|
|
690
745
|
};
|
|
691
746
|
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"AAyEA;;;;;;;;;;;;;GAaG;AACH;IACC,gCAAuC;IAcvC;;;;;OAKG;IACH,oCAHa,OAAO,KAAQ,CAiG3B;IAED;;;;;;;;;;;OAWG;IACH,
|
|
1
|
+
{"version":3,"file":"api_builder.d.mts","sourceRoot":"","sources":["../../../../dist/lib/builders/api_builder.mjs"],"names":[],"mappings":"AAyEA;;;;;;;;;;;;;GAaG;AACH;IACC,gCAAuC;IAcvC;;;;;OAKG;IACH,oCAHa,OAAO,KAAQ,CAiG3B;IAED;;;;;;;;;;;OAWG;IACH,gCAyuCC;IAED;;;;OAIG;IACH,+BAYC;IAED;;;;OAIG;IACH,0BAgCC;IAED;;;;OAIG;IACH,4BAoMC;IAED;;;;;OAKG;IACH,8BAyCC;IAED;;;;;OAKG;IACH,uBAgCC;CACD;;;;;;;;;;;;;;;;;;;;;;;;;;8BArwD6B,0CAA0C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/metadata.mjs"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH;IACC,gCAAqC;IASrC,iBAAmB;IAkCnB;;;;;;;;;;;;;;;OAeG;IACH,0BAyCC;IAED;;;;;OAKG;IACH,0BAJW,cAAe,GACb,MAAO,IAAI,CAYvB;IAED;;;;;;OAMG;IACH,2BAJW,cAAe,OAoEzB;IAED;;;;;OAKG;IACH,8BAJW,MAAM,SACN,OAAO,QAKjB;IAED;;;;;;OAMG;IACH,8CAJW,MAAM,SACN,OAAO,QA+CjB;IAED;;;;;;;;OAQG;IACH,kDANW,MAAM,GAAC,MAAM,EAAE,GAAC;YAAO,MAAM,GAAE,MAAM,EAAE;KAAC,QAkFlD;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,iCAJW,MAAM,uBA2BhB;IAED;;;;;;;;;OASG;IACH,qCAHW,MAAM,QAMhB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,gCALW,MAAM,YACN,MAAM,MAAO,UACb,OAAO,QAyBjB;IAED;;;;;;;;;;;;;OAaG;IACH,gCANW,MAAM,
|
|
1
|
+
{"version":3,"file":"metadata.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/metadata.mjs"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH;IACC,gCAAqC;IASrC,iBAAmB;IAkCnB;;;;;;;;;;;;;;;OAeG;IACH,0BAyCC;IAED;;;;;OAKG;IACH,0BAJW,cAAe,GACb,MAAO,IAAI,CAYvB;IAED;;;;;;OAMG;IACH,2BAJW,cAAe,OAoEzB;IAED;;;;;OAKG;IACH,8BAJW,MAAM,SACN,OAAO,QAKjB;IAED;;;;;;OAMG;IACH,8CAJW,MAAM,SACN,OAAO,QA+CjB;IAED;;;;;;;;OAQG;IACH,kDANW,MAAM,GAAC,MAAM,EAAE,GAAC;YAAO,MAAM,GAAE,MAAM,EAAE;KAAC,QAkFlD;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,iCAJW,MAAM,uBA2BhB;IAED;;;;;;;;;OASG;IACH,qCAHW,MAAM,QAMhB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,gCALW,MAAM,YACN,MAAM,MAAO,UACb,OAAO,QAyBjB;IAED;;;;;;;;;;;;;OAaG;IACH,gCANW,MAAM,OAoBhB;IAED;;;;;;;;;;;;OAYG;IACH,mCAJW,MAAM,QACN,MAAM,GAAC,MAAM,EAAE,QA+BzB;IAED;;;;;;;;;;OAUG;IACH,mBAHa;QAAE,cAAc,MAAS;QAAC,iBAAiB,gBAAK;KAAE,CAe9D;IAED;;;;;;;;;;;;;;;OAeG;IACH,uBAHW;QAAE,cAAc,MAAS;QAAC,iBAAiB,gBAAK;KAAE,QAgC5D;IAED;;;;;;;;;;;;;OAaG;IACH,iBAJW,MAAM,GACJ,OAAO,CAAC,MAAM,GAAC,IAAI,CAAC,CAkChC;IAED;;;;;;;;;;;;;OAaG;IACH,eAHa,MAAM,CASlB;IAED;;;;;;;;;;;;OAYG;IACH,iBAHa,MAAM,GAAC,IAAI,CAOvB;;CACD;8BA9qB6B,0CAA0C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-wrapper.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/unified-wrapper.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unified-wrapper.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/unified-wrapper.mjs"],"names":[],"mappings":"AAgwGA;;;;;;;;;;;GAWG;AACH,sCAPW,OAAO,GACL,cAAc,GAAC,IAAI,CAkB/B;;;;;AA5qGD;;;;;;;;;;GAUG;AACH;IAiQC;;;;;;;;;;;;;;;;OAgBG;IACH,0BA8BC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,gCA0DC;IApWD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,+IAtBG;QAAwB,IAAI,EAApB,MAAM;QACU,OAAO,EAAvB,MAAM;QACW,WAAW;QACT,eAAe;QAChB,UAAU,GAA5B,OAAO;QACW,mBAAmB,GAArC,OAAO;QACU,QAAQ,GAAzB,MAAM;QACW,QAAQ,GAAzB,MAAM;QACW,YAAY,GAA7B,MAAM;KAEd,EA4KF;IA1MD;;;;;;;;;;;OAWG;IACH,4BAFa,MAAO,SAAS,CAK5B;IA+ND;;;;OAIG;IACH,qBAHa,MAAO,IAAI,CAKvB;IAkID;;;;;;;;;;;OAWG;IACH,sBAiCC;IAED;;;;;;;;;;;;OAYG;IACH,mBAgDC;IAED;;;;;;;;;OASG;IACH,qBAmDC;IAED;;;;OAIG;IACH,uBA+FC;IAED;;;;;;;;;OASG;IACH,qBAEC;IAED;;;;;;;;;OASG;IACH,sBAiBC;IAED;;;;;;;;;;OAUG;IACH,6BA2bC;IAED;;;;;;;;;;;OAWG;IACH,8BAwIC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,8BAmpBC;IAED;;;;;;OAMG;IACH,uCA4rCC;IAvVE,mBAA0B;IAzlF7B;;;OAGG;IACH,2EAFa,GAAC,CA8Bb;;CAi5FD;8BAxuG6B,0CAA0C;iBADvD,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-manager.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/version-manager.mjs"],"names":[],"mappings":"AAsGA;;;;;;;;;;GAUG;AACH;IACC,gCAA2C;IA8B3C;;;;;;;;;;;OAWG;IACH,6BATW,MAAM,cACN,MAAM,YACN,MAAM,eACN,MAAM,aACN,OAAO,GACL,IAAI,CAyDhB;IAED;;;;;;;;;OASG;IACH,+BANW,MAAM,cACN,MAAM,GACJ,OAAO,CAqCnB;IAED;;;;;;;;OAQG;IACH,iCALW,MAAM,GACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAMnE;IAED;;;;;;;;OAQG;IACH,2BALW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;;;;;OAQG;IACH,6BALW,MAAM,GACJ,MAAM,GAAG,SAAS,CAM9B;IAED;;;;;;;;OAQG;IACH,sCANW,MAAM,cACN,MAAM,GACJ,MAAM,GAAG,SAAS,CAU9B;IAED;;;;;;;;;;;OAWG;IACH,sCARW,MAAM,cACN,MAAM,SACN,MAAM,GACJ,IAAI,
|
|
1
|
+
{"version":3,"file":"version-manager.d.mts","sourceRoot":"","sources":["../../../../dist/lib/handlers/version-manager.mjs"],"names":[],"mappings":"AAsGA;;;;;;;;;;GAUG;AACH;IACC,gCAA2C;IA8B3C;;;;;;;;;;;OAWG;IACH,6BATW,MAAM,cACN,MAAM,YACN,MAAM,eACN,MAAM,aACN,OAAO,GACL,IAAI,CAyDhB;IAED;;;;;;;;;OASG;IACH,+BANW,MAAM,cACN,MAAM,GACJ,OAAO,CAqCnB;IAED;;;;;;;;OAQG;IACH,iCALW,MAAM,GACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAMnE;IAED;;;;;;;;OAQG;IACH,2BALW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;;;;;OAQG;IACH,6BALW,MAAM,GACJ,MAAM,GAAG,SAAS,CAM9B;IAED;;;;;;;;OAQG;IACH,sCANW,MAAM,cACN,MAAM,GACJ,MAAM,GAAG,SAAS,CAU9B;IAED;;;;;;;;;;;OAWG;IACH,sCARW,MAAM,cACN,MAAM,SACN,MAAM,GACJ,IAAI,CAwBhB;IAED;;;;;;;;OAQG;IACH,kBANW,MAAM,GACJ;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAcpE;IAED;;;;;;;;;;OAUG;IACH,wBAPW,MAAM,cACN,MAAM,GACJ,IAAI,CAwBhB;IAID;;;;;;;;;;;;;OAaG;IACH,+BANW,MAAM,GACJ,MAAM,GAAG,IAAI,CAqCzB;IAID;;;;;;;;;;;;OAYG;IACH,4BAPW,MAAM,eACN,MAAM,UACN,MAAM,GACJ,MAAM,GAAG,IAAI,CAkDzB;IAID;;;;;;;;;;;OAWG;IACH,iCANW,MAAM,GACJ,MAAM,CAmClB;IAED;;;;;;;;;;;OAWG;IACH,8BANW,MAAM,GAAG,IAAI,GAAG,SAAS,GACvB;QAAE,OAAO,EAAE,MAAM,GAAC,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,GAAC,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAC,IAAI,CAAA;KAAE,CAkC3G;IA0DD;;;;;;;;;;;;OAYG;IACH,8BAPW,MAAM,GACJ,MAAM,CAqYlB;IAED;;;;;;;;OAQG;IACH,8BALW,MAAM,GACJ,IAAI,CAiChB;IAED;;;;;;;OAOG;IACH,gCALW,MAAM,GACJ,IAAI,CAkBhB;IAID;;;;;;;;OAQG;IACH,kCALW,MAAM,GACJ,IAAI,CAmBhB;IAED;;;;;;;OAOG;IACH,YAJa,IAAI,CAShB;;CACD;8BA9mC6B,0CAA0C"}
|