@cldmv/slothlet 3.2.1 → 3.2.3
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
CHANGED
|
@@ -55,18 +55,17 @@ 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.3 (April 2026)
|
|
59
59
|
|
|
60
|
-
- **
|
|
61
|
-
-
|
|
62
|
-
- [View full v3.2.1 Changelog](./docs/changelog/v3/v3.2.1.md)
|
|
60
|
+
- **Publish workflow fix** — switched CI trigger from `pull_request` to `push` on master so releases publish immediately on merge without depending on the PR event payload
|
|
61
|
+
- [View full v3.2.3 Changelog](./docs/changelog/v3/v3.2.3.md)
|
|
63
62
|
|
|
64
63
|
### Recent Releases
|
|
65
64
|
|
|
65
|
+
- **v3.2.2** (April 2026) — missing `set` trap on version dispatchers; `util.inspect(api.auth)` now shows resolved versioned namespace ([Changelog](./docs/changelog/v3/v3.2.2.md))
|
|
66
|
+
- **v3.2.1** (April 2026) — version-dispatcher `defineProperty` trap fix; pre-commit validation cleanup ([Changelog](./docs/changelog/v3/v3.2.1.md))
|
|
66
67
|
- **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))
|
|
67
68
|
- **v3.1.0** (March 2026) — Frozen `api.slothlet.env` snapshot; `env.include` allowlist; reload immunity ([Changelog](./docs/changelog/v3/v3.1.0.md))
|
|
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))
|
|
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))
|
|
70
69
|
|
|
71
70
|
|
|
72
71
|
📚 **For complete version history and detailed release notes, see [docs/changelog/](./docs/changelog/) folder.**
|
|
@@ -154,7 +153,7 @@ Automatic context preservation across all asynchronous boundaries:
|
|
|
154
153
|
- **TypeScript-Friendly**: Comprehensive JSDoc annotations with auto-generated declarations
|
|
155
154
|
- **Configurable Debug**: Detailed logging via CLI flags or environment variables
|
|
156
155
|
- **Multiple Instances**: Parameter-based isolation for complex applications
|
|
157
|
-
- **Inspectable APIs**: `console.log(api.math)`
|
|
156
|
+
- **Inspectable APIs**: `console.log(api.math)` and logical versioned paths like `console.log(api.auth)` show real module contents instead of proxy internals (v3+)
|
|
158
157
|
- **Development Checks**: Built-in environment detection with silent production behavior
|
|
159
158
|
|
|
160
159
|
---
|
|
@@ -969,7 +968,7 @@ try {
|
|
|
969
968
|
- **Debug Mode**: Comprehensive i18n-translated logging via `--slothletdebug` flag or `SLOTHLET_DEBUG=true`
|
|
970
969
|
- **Development Check**: `devcheck.mjs` for environment validation
|
|
971
970
|
- **Source Detection**: Automatic `src/` vs `dist/` mode detection
|
|
972
|
-
- **API Inspection**: `console.log(api.math)`
|
|
971
|
+
- **API Inspection**: `console.log(api.math)` and versioned dispatcher paths like `console.log(api.auth)` show real module contents (v3+)
|
|
973
972
|
|
|
974
973
|
---
|
|
975
974
|
|
|
@@ -508,6 +508,30 @@ export class VersionManager extends ComponentBase {
|
|
|
508
508
|
return manager.#walkApiPath([versionTag, ...logicalPath.split(".")]);
|
|
509
509
|
};
|
|
510
510
|
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
target[Symbol.for("nodejs.util.inspect.custom")] = function (_depth, options, inspectFn) {
|
|
517
|
+
const vw = resolveVersionedWrapper();
|
|
518
|
+
if (vw) {
|
|
519
|
+
try {
|
|
520
|
+
return typeof inspectFn === "function" ? inspectFn(vw, options) : inspect(vw, options);
|
|
521
|
+
} catch {
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
void 0;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
const entry = manager.#registry.get(logicalPath);
|
|
531
|
+
const versions = entry ? Array.from(entry.versions.keys()) : [];
|
|
532
|
+
return { __versionDispatcher: logicalPath, versions };
|
|
533
|
+
};
|
|
534
|
+
|
|
511
535
|
const handlers = {
|
|
512
536
|
|
|
513
537
|
get(t, prop) {
|
|
@@ -566,24 +590,26 @@ export class VersionManager extends ComponentBase {
|
|
|
566
590
|
|
|
567
591
|
|
|
568
592
|
|
|
569
|
-
|
|
570
|
-
|
|
593
|
+
|
|
594
|
+
if (prop === inspect.custom) {
|
|
595
|
+
return (_depth, options, inspectFn) => {
|
|
571
596
|
const vw = resolveVersionedWrapper();
|
|
572
597
|
if (vw) {
|
|
573
598
|
try {
|
|
574
|
-
return inspect(vw);
|
|
599
|
+
return typeof inspectFn === "function" ? inspectFn(vw, options) : inspect(vw, options);
|
|
575
600
|
} catch {
|
|
576
601
|
|
|
602
|
+
|
|
577
603
|
void 0;
|
|
578
604
|
}
|
|
579
605
|
}
|
|
580
606
|
|
|
607
|
+
|
|
581
608
|
const entry = manager.#registry.get(logicalPath);
|
|
582
609
|
const versions = entry ? Array.from(entry.versions.keys()) : [];
|
|
583
610
|
return { __versionDispatcher: logicalPath, versions };
|
|
584
611
|
};
|
|
585
612
|
}
|
|
586
|
-
|
|
587
613
|
|
|
588
614
|
|
|
589
615
|
if (prop === "toString") return () => `[VersionDispatcher: ${logicalPath}]`;
|
|
@@ -741,6 +767,53 @@ export class VersionManager extends ComponentBase {
|
|
|
741
767
|
}
|
|
742
768
|
|
|
743
769
|
return Reflect.defineProperty(vw, prop, descriptor);
|
|
770
|
+
},
|
|
771
|
+
|
|
772
|
+
|
|
773
|
+
set(t, prop, value) {
|
|
774
|
+
|
|
775
|
+
|
|
776
|
+
|
|
777
|
+
|
|
778
|
+
|
|
779
|
+
if (typeof prop === "symbol") return true;
|
|
780
|
+
|
|
781
|
+
|
|
782
|
+
if (prop === "____slothletInternal" || prop === "_impl" || prop === "__impl" || prop === "__state" || prop === "__invalid")
|
|
783
|
+
return true;
|
|
784
|
+
|
|
785
|
+
|
|
786
|
+
if (
|
|
787
|
+
prop === "__isVersionDispatcher" ||
|
|
788
|
+
prop === "__mode" ||
|
|
789
|
+
prop === "__apiPath" ||
|
|
790
|
+
prop === "__slothletPath" ||
|
|
791
|
+
prop === "__isCallable" ||
|
|
792
|
+
prop === "__materializeOnCreate" ||
|
|
793
|
+
prop === "__materialized" ||
|
|
794
|
+
prop === "__inFlight" ||
|
|
795
|
+
prop === "__displayName" ||
|
|
796
|
+
prop === "__moduleID" ||
|
|
797
|
+
prop === "_materialize" ||
|
|
798
|
+
prop === "length" ||
|
|
799
|
+
prop === "name"
|
|
800
|
+
)
|
|
801
|
+
return true;
|
|
802
|
+
|
|
803
|
+
|
|
804
|
+
if (prop === "then" || prop === "constructor" || prop === "toString" || prop === "valueOf" || prop === "toJSON") return true;
|
|
805
|
+
|
|
806
|
+
const vw = resolveVersionedWrapper();
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
|
|
812
|
+
if (!vw) return true;
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
return Reflect.set(vw, prop, value, vw);
|
|
744
817
|
}
|
|
745
818
|
};
|
|
746
819
|
|
package/package.json
CHANGED
|
@@ -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,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,
|
|
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,CA6elB;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;8BAttC6B,0CAA0C"}
|