@crimsonsunset/jsg-logger 1.8.6 → 1.8.7
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/CHANGELOG.md +12 -0
- package/config/config-manager.js +4 -2
- package/formatters/server-formatter.js +2 -1
- package/index.js +82 -19
- package/package.json +5 -1
- package/utils/redaction.js +12 -0
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/__vite-browser-external-2Ng8QIWW.js +0 -5
- package/devtools/dist/__vite-browser-external-2Ng8QIWW.js.map +0 -1
- package/devtools/dist/panel-entry-Ahej53sX-y0jCvGoU-BGR5GUGQ-B-CAdAd3-DipRT8xT-CSMwqnO2-CHbiC4Qe-BRrWXqYD-CNcJekPg.js +0 -13932
- package/devtools/dist/panel-entry-Ahej53sX-y0jCvGoU-BGR5GUGQ-B-CAdAd3-DipRT8xT-CSMwqnO2-CHbiC4Qe-BRrWXqYD-CNcJekPg.js.map +0 -1
- package/devtools/dist/panel-entry-B0ZWdsQY-DQdquw3J-TpkzsLdj-BGvdXuoS-CzTJvBQl-CAQNpg2W-Bo2gswMb-CAJV5DP5-DZe7oWlk-tDqwNUld.js +0 -13923
- package/devtools/dist/panel-entry-B0ZWdsQY-DQdquw3J-TpkzsLdj-BGvdXuoS-CzTJvBQl-CAQNpg2W-Bo2gswMb-CAJV5DP5-DZe7oWlk-tDqwNUld.js.map +0 -1
- package/devtools/dist/panel-entry-B2MhZ3gp.js +0 -13975
- package/devtools/dist/panel-entry-B2MhZ3gp.js.map +0 -1
- package/devtools/dist/panel-entry-BZ56bT66-BMyD75mc-BxfcB-io-DLFBg4X2-By57n0cz-DG9FfyPU-tsDeIORn-Brgs9eZh-C1aTwqVx-Bga5v200-D2uIBkta-DFygDOuM-CiZQ0ZWs-CK-Qy7JF-3_LfnrLj-C80pq-Ox-BAydVBl9.js +0 -13602
- package/devtools/dist/panel-entry-BZ56bT66-BMyD75mc-BxfcB-io-DLFBg4X2-By57n0cz-DG9FfyPU-tsDeIORn-Brgs9eZh-C1aTwqVx-Bga5v200-D2uIBkta-DFygDOuM-CiZQ0ZWs-CK-Qy7JF-3_LfnrLj-C80pq-Ox-BAydVBl9.js.map +0 -1
- package/devtools/dist/panel-entry-BaBkkSt6-B3YoMX06.js +0 -13963
- package/devtools/dist/panel-entry-BaBkkSt6-B3YoMX06.js.map +0 -1
- package/devtools/dist/panel-entry-CIG0rw0G-C23A9sjU-CbDuened.js +0 -13957
- package/devtools/dist/panel-entry-CIG0rw0G-C23A9sjU-CbDuened.js.map +0 -1
- package/devtools/dist/panel-entry-CLDrp2P4-BhE5Qmzo-DsrDp_aW-D77vFWhc-D0p-3Vck-juqy3fYf-Dla5eR-o-CER385zO-3kQqst6Z-mEXeTQxs-XDwY_WUW-CcUUttdq-BGVY77mY.js +0 -13914
- package/devtools/dist/panel-entry-CLDrp2P4-BhE5Qmzo-DsrDp_aW-D77vFWhc-D0p-3Vck-juqy3fYf-Dla5eR-o-CER385zO-3kQqst6Z-mEXeTQxs-XDwY_WUW-CcUUttdq-BGVY77mY.js.map +0 -1
- package/devtools/dist/panel-entry-Car1txqz-Cujk5tL9-pWwzfz1C-C_CMO2R5-BtcT6buV-DEh6fx7S-BLtwgJNF-CUuTgFqX.js +0 -13935
- package/devtools/dist/panel-entry-Car1txqz-Cujk5tL9-pWwzfz1C-C_CMO2R5-BtcT6buV-DEh6fx7S-BLtwgJNF-CUuTgFqX.js.map +0 -1
- package/devtools/dist/panel-entry-CdHyTMuR-wqllnGMv-CJFeg7x9-C7mRB5fj-DOgQaLRi-yYTqC4-t-DKUNOg6F-BtruRO_z-BDQrJIZQ-ByHq-LMj-Drlk5OTb-BAoinR4q-CD8VtN79-Cidg8klg-CA9PGoiF.js +0 -13728
- package/devtools/dist/panel-entry-CdHyTMuR-wqllnGMv-CJFeg7x9-C7mRB5fj-DOgQaLRi-yYTqC4-t-DKUNOg6F-BtruRO_z-BDQrJIZQ-ByHq-LMj-Drlk5OTb-BAoinR4q-CD8VtN79-Cidg8klg-CA9PGoiF.js.map +0 -1
- package/devtools/dist/panel-entry-D53S3yYJ-DlRCzJ0q-BnWPSxII-B57eqdYD-CRpb7P7m-CSgQ8r4U-DqjeAoTP.js +0 -13935
- package/devtools/dist/panel-entry-D53S3yYJ-DlRCzJ0q-BnWPSxII-B57eqdYD-CRpb7P7m-CSgQ8r4U-DqjeAoTP.js.map +0 -1
- package/devtools/dist/panel-entry-D6EQIVsV-51lrmGiZ-D4qVD_00-DVb1ySI7-C_RfHhv5-D78tUI3_.js +0 -13945
- package/devtools/dist/panel-entry-D6EQIVsV-51lrmGiZ-D4qVD_00-DVb1ySI7-C_RfHhv5-D78tUI3_.js.map +0 -1
- package/devtools/dist/panel-entry-Da9n85v7-C6Gam2oq-DDT89MNj-D9ZqvcEM-Dx--LZLa-BJiXK46m-DGuagWzT-B6evq62k-Cj2QcsAJ-BnxooYWW-D4oxy7MQ-g1-2DT91-DESRmxtW-BFO1EmVx-MWoTuzW5-Cg1SKwet.js +0 -13631
- package/devtools/dist/panel-entry-Da9n85v7-C6Gam2oq-DDT89MNj-D9ZqvcEM-Dx--LZLa-BJiXK46m-DGuagWzT-B6evq62k-Cj2QcsAJ-BnxooYWW-D4oxy7MQ-g1-2DT91-DESRmxtW-BFO1EmVx-MWoTuzW5-Cg1SKwet.js.map +0 -1
- package/devtools/dist/panel-entry-DeLbn5Tk-P7ZtOAd3-DXeez3fy-BFxPfyZi-9L9N-1f8-DzO_hXuM-CWXuuiJk-CI3ufk2T-CP3JflFQ-CLoczwy1-D7ukr7PE-DbMhopxi-BHxIMhDL-CDnadrxB.js +0 -13999
- package/devtools/dist/panel-entry-DeLbn5Tk-P7ZtOAd3-DXeez3fy-BFxPfyZi-9L9N-1f8-DzO_hXuM-CWXuuiJk-CI3ufk2T-CP3JflFQ-CLoczwy1-D7ukr7PE-DbMhopxi-BHxIMhDL-CDnadrxB.js.map +0 -1
- package/devtools/dist/panel-entry-Dh3i-JKj-D7NSYIQS-C_qI61WQ-BfJ0BW16-Df40_Q6R.js +0 -13951
- package/devtools/dist/panel-entry-Dh3i-JKj-D7NSYIQS-C_qI61WQ-BfJ0BW16-Df40_Q6R.js.map +0 -1
- package/devtools/dist/panel-entry-DlWAx2yA-vZadFV4d-DTvClgVl-zRu1NJo4-rPRjTg0e-dbBSWeq3-jx9KYEq_-B3sEcSWI-DeCc9Glr-02P4pIqr-CrzX1Fsr-C1C-Fcde.js +0 -13921
- package/devtools/dist/panel-entry-DlWAx2yA-vZadFV4d-DTvClgVl-zRu1NJo4-rPRjTg0e-dbBSWeq3-jx9KYEq_-B3sEcSWI-DeCc9Glr-02P4pIqr-CrzX1Fsr-C1C-Fcde.js.map +0 -1
- package/devtools/dist/panel-entry-DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s-.js +0 -11418
- package/devtools/dist/panel-entry-DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s--DzGsV7s-.js.map +0 -1
- package/devtools/dist/panel-entry-F_czAD5m-haMWJ-NK-CsYx2f8v-CczoKRsz-CIS8-qZe-F0ks_Y8t-CZBpt1gj-QmZJhT5N-460P-RpL-CKLofb-z-DEXl2ipp.js +0 -13921
- package/devtools/dist/panel-entry-F_czAD5m-haMWJ-NK-CsYx2f8v-CczoKRsz-CIS8-qZe-F0ks_Y8t-CZBpt1gj-QmZJhT5N-460P-RpL-CKLofb-z-DEXl2ipp.js.map +0 -1
- package/devtools/dist/panel-entry-L66PnOAy-CSPip1Cq-DIdgAB36-D56Z9rwz.js +0 -13957
- package/devtools/dist/panel-entry-L66PnOAy-CSPip1Cq-DIdgAB36-D56Z9rwz.js.map +0 -1
- package/devtools/dist/panel-entry.js +0 -13985
- package/devtools/dist/panel-entry.js.map +0 -1
- package/devtools/dist/vite.svg +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ All notable changes to the JSG Logger project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.8.7] - 2026-06-04 🧹 **Bundler-clean: no webpack warnings**
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **`fs/promises` module-not-found warning** — added a `browser` field to `package.json` mapping `fs` and `fs/promises` to `false`. Bundlers (webpack/Vite/esbuild) now skip the Node-only `fs.readFile` fallback in `_loadConfigNode` when building for the browser, instead of erroring with `Module not found: Can't resolve 'fs/promises'`.
|
|
12
|
+
- **`Critical dependency: the request of a dependency is an expression`** — the two variable-path `import()` calls in `config-manager.js` now carry a `webpackIgnore: true` magic comment (alongside the existing `@vite-ignore`). These are runtime user-supplied config paths that should resolve natively, not be bundled.
|
|
13
|
+
- **DevTools chunks leaking into production client bundles** — the on-demand `import('@crimsonsunset/jsg-logger/devtools')` fallback in `enableDevPanel()` is now guarded by `process.env.NODE_ENV !== 'production'`, so production bundlers statically eliminate the entire `devtools/` subtree (~110 `panel-entry-*` critical-dependency warnings) instead of pulling it into the client bundle. DevTools remains fully available in development.
|
|
14
|
+
|
|
15
|
+
### Migration
|
|
16
|
+
None. Drop-in replacement for 1.8.6.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
8
20
|
## [1.8.6] - 2026-03-28 🪵 **configure() console feedback**
|
|
9
21
|
|
|
10
22
|
### Changed
|
package/config/config-manager.js
CHANGED
|
@@ -151,7 +151,9 @@ export class ConfigManager {
|
|
|
151
151
|
|
|
152
152
|
try {
|
|
153
153
|
// Try dynamic import first (works with ES modules)
|
|
154
|
-
|
|
154
|
+
// Runtime user-supplied path: webpackIgnore stops webpack from emitting a
|
|
155
|
+
// "Critical dependency" warning; @vite-ignore does the same for Vite.
|
|
156
|
+
const module = await import(/* webpackIgnore: true */ /* @vite-ignore */ path, { assert: { type: 'json' } });
|
|
155
157
|
return module.default || module;
|
|
156
158
|
} catch (error) {
|
|
157
159
|
try {
|
|
@@ -174,7 +176,7 @@ export class ConfigManager {
|
|
|
174
176
|
async _loadConfigBrowserImport(path) {
|
|
175
177
|
try {
|
|
176
178
|
// Some bundlers can handle dynamic imports of JSON files
|
|
177
|
-
const module = await import(/* @vite-ignore */ path);
|
|
179
|
+
const module = await import(/* webpackIgnore: true */ /* @vite-ignore */ path);
|
|
178
180
|
return module.default || module;
|
|
179
181
|
} catch (error) {
|
|
180
182
|
return null;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import {configManager} from '../config/config-manager.js';
|
|
7
|
+
import {toPinoRedactPaths} from '../utils/redaction.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Create server formatter (structured JSON)
|
|
@@ -39,7 +40,7 @@ export const getServerConfig = () => {
|
|
|
39
40
|
},
|
|
40
41
|
// Redact sensitive information in production (configurable)
|
|
41
42
|
redact: {
|
|
42
|
-
paths: redactConfig.paths
|
|
43
|
+
paths: toPinoRedactPaths(redactConfig.paths),
|
|
43
44
|
censor: redactConfig.censor || '[REDACTED]'
|
|
44
45
|
}
|
|
45
46
|
};
|
package/index.js
CHANGED
|
@@ -14,18 +14,23 @@ import {createServerFormatter, getServerConfig} from './formatters/server-format
|
|
|
14
14
|
import {LogStore} from './stores/log-store.js';
|
|
15
15
|
import {metaLog, metaWarn, metaError} from './utils/meta-logger.js';
|
|
16
16
|
import {buildLogEntry, dispatchToTransports} from './utils/transport-dispatcher.js';
|
|
17
|
+
import {redactValue} from './utils/redaction.js';
|
|
17
18
|
import packageJson from './package.json' with {type: 'json'};
|
|
18
19
|
|
|
19
20
|
// Check default config for devtools at module load time
|
|
20
21
|
// This allows bundlers to tree-shake if disabled
|
|
21
22
|
const defaultDevtoolsEnabled = defaultConfig.devtools?.enabled ?? false;
|
|
22
23
|
|
|
23
|
-
// Conditional static import
|
|
24
|
-
//
|
|
24
|
+
// Conditional static import.
|
|
25
|
+
// The NODE_ENV check MUST come first: production bundlers (Next.js/webpack DefinePlugin)
|
|
26
|
+
// replace it with `false`, making the whole condition statically false so the entire
|
|
27
|
+
// block — and the devtools chunk graph — is dead-code-eliminated from client bundles.
|
|
28
|
+
// A bare `if (defaultDevtoolsEnabled)` is NOT eliminable because the value comes from a
|
|
29
|
+
// JSON property access webpack cannot constant-fold.
|
|
25
30
|
// Use lazy initialization to avoid top-level await (which would make module async)
|
|
26
31
|
let devtoolsModule = null;
|
|
27
32
|
let devtoolsModulePromise = null;
|
|
28
|
-
if (defaultDevtoolsEnabled) {
|
|
33
|
+
if (process.env.NODE_ENV !== 'production' && defaultDevtoolsEnabled) {
|
|
29
34
|
metaLog('[JSG-LOGGER] DevTools module pre-loading started (default config enabled)');
|
|
30
35
|
// Start loading immediately but don't await (non-blocking)
|
|
31
36
|
// Bundlers can still analyze this static import for tree-shaking
|
|
@@ -138,7 +143,8 @@ class JSGLogger {
|
|
|
138
143
|
if (isBrowser() && typeof window !== 'undefined' && window.JSG_Logger) {
|
|
139
144
|
// If enhanced loggers reference exists, use it (preferred)
|
|
140
145
|
if (window.__JSG_Logger_Enhanced__) {
|
|
141
|
-
|
|
146
|
+
JSGLogger._recoverFromGlobal();
|
|
147
|
+
return JSGLogger._enhancedLoggers;
|
|
142
148
|
}
|
|
143
149
|
// Fallback: reconstruct enhanced loggers from controls object
|
|
144
150
|
// This handles cases where __JSG_Logger_Enhanced__ wasn't set
|
|
@@ -157,7 +163,7 @@ class JSGLogger {
|
|
|
157
163
|
// Server equivalent: check globalThis for cross-module-instance singleton
|
|
158
164
|
// Same problem as browser cross-bundle, but for Node.js bundled server chunks
|
|
159
165
|
if (!isBrowser() && globalThis.__JSG_Logger_Enhanced__) {
|
|
160
|
-
JSGLogger.
|
|
166
|
+
JSGLogger._recoverFromGlobal();
|
|
161
167
|
return JSGLogger._enhancedLoggers;
|
|
162
168
|
}
|
|
163
169
|
|
|
@@ -464,18 +470,20 @@ class JSGLogger {
|
|
|
464
470
|
let data;
|
|
465
471
|
|
|
466
472
|
// Handle different argument patterns
|
|
473
|
+
const redactConfig = configManager.getRedactConfig();
|
|
474
|
+
|
|
467
475
|
if (typeof first === 'string') {
|
|
468
476
|
message = first;
|
|
469
477
|
if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null) {
|
|
470
|
-
data = args[0];
|
|
471
|
-
pinoLogger[level](
|
|
478
|
+
data = redactValue(args[0], redactConfig);
|
|
479
|
+
pinoLogger[level](data, message);
|
|
472
480
|
} else {
|
|
473
481
|
pinoLogger[level](message);
|
|
474
482
|
}
|
|
475
483
|
} else if (typeof first === 'object' && first !== null) {
|
|
476
|
-
data = first;
|
|
484
|
+
data = redactValue(first, redactConfig);
|
|
477
485
|
message = (args.length > 0 && typeof args[0] === 'string') ? args[0] : '';
|
|
478
|
-
pinoLogger[level](
|
|
486
|
+
pinoLogger[level](data, ...(message ? [message] : []));
|
|
479
487
|
} else {
|
|
480
488
|
pinoLogger[level](first, ...args);
|
|
481
489
|
}
|
|
@@ -538,6 +546,9 @@ class JSGLogger {
|
|
|
538
546
|
*/
|
|
539
547
|
getLoggerExports() {
|
|
540
548
|
return {
|
|
549
|
+
// Back-reference for cross-bundle singleton recovery
|
|
550
|
+
_jsgLoggerInstance: this,
|
|
551
|
+
|
|
541
552
|
// All component loggers
|
|
542
553
|
...this.loggers,
|
|
543
554
|
|
|
@@ -713,11 +724,16 @@ class JSGLogger {
|
|
|
713
724
|
devtoolsLogger.info('Waiting for pre-loaded DevTools module...');
|
|
714
725
|
// Wait for pre-load to complete
|
|
715
726
|
devtoolsModule = await devtoolsModulePromise;
|
|
716
|
-
} else {
|
|
717
|
-
// Runtime config override: consumer enabled devtools but default was disabled
|
|
718
|
-
// Load on demand via dynamic import
|
|
727
|
+
} else if (process.env.NODE_ENV !== 'production') {
|
|
728
|
+
// Runtime config override: consumer enabled devtools but default was disabled.
|
|
729
|
+
// Load on demand via dynamic import. Guarded by NODE_ENV so production
|
|
730
|
+
// bundlers (Next.js/webpack) statically eliminate the devtools subtree
|
|
731
|
+
// instead of pulling its chunks into the client bundle.
|
|
719
732
|
devtoolsLogger.info('Loading DevTools module dynamically (runtime config override)...');
|
|
720
733
|
devtoolsModule = await import('@crimsonsunset/jsg-logger/devtools');
|
|
734
|
+
} else {
|
|
735
|
+
devtoolsLogger.warn('DevTools panel is not available in production builds');
|
|
736
|
+
return null;
|
|
721
737
|
}
|
|
722
738
|
} else {
|
|
723
739
|
devtoolsLogger.info('Using pre-loaded DevTools module');
|
|
@@ -797,18 +813,20 @@ class JSGLogger {
|
|
|
797
813
|
let data;
|
|
798
814
|
|
|
799
815
|
// Handle different argument patterns
|
|
816
|
+
const redactConfig = configManager.getRedactConfig();
|
|
817
|
+
|
|
800
818
|
if (typeof first === 'string') {
|
|
801
819
|
message = first;
|
|
802
820
|
logData.msg = first;
|
|
803
821
|
if (args.length === 1 && typeof args[0] === 'object') {
|
|
804
|
-
data = args[0];
|
|
805
|
-
Object.assign(logData,
|
|
822
|
+
data = redactValue(args[0], redactConfig);
|
|
823
|
+
Object.assign(logData, data);
|
|
806
824
|
} else if (args.length > 0) {
|
|
807
825
|
logData.args = args;
|
|
808
826
|
}
|
|
809
827
|
} else if (typeof first === 'object') {
|
|
810
|
-
data = first;
|
|
811
|
-
Object.assign(logData,
|
|
828
|
+
data = redactValue(first, redactConfig);
|
|
829
|
+
Object.assign(logData, data);
|
|
812
830
|
if (args.length > 0 && typeof args[0] === 'string') {
|
|
813
831
|
message = args[0];
|
|
814
832
|
logData.msg = args[0];
|
|
@@ -835,12 +853,20 @@ class JSGLogger {
|
|
|
835
853
|
}
|
|
836
854
|
|
|
837
855
|
/**
|
|
838
|
-
* Refresh all loggers with updated configuration
|
|
856
|
+
* Refresh all loggers with updated configuration.
|
|
857
|
+
* Uses the original createLogger (not the caching wrapper) so levels and
|
|
858
|
+
* formatters are rebuilt from the current config.
|
|
839
859
|
* @private
|
|
840
860
|
*/
|
|
841
861
|
refreshLoggers() {
|
|
842
|
-
|
|
843
|
-
|
|
862
|
+
const createLogger = this._createLoggerOriginal || this.createLogger.bind(this);
|
|
863
|
+
const components = new Set([
|
|
864
|
+
...configManager.getAvailableComponents(),
|
|
865
|
+
...Object.keys(this.loggers),
|
|
866
|
+
]);
|
|
867
|
+
|
|
868
|
+
components.forEach((componentName) => {
|
|
869
|
+
this.loggers[componentName] = createLogger(componentName);
|
|
844
870
|
});
|
|
845
871
|
}
|
|
846
872
|
|
|
@@ -996,6 +1022,30 @@ class JSGLogger {
|
|
|
996
1022
|
}
|
|
997
1023
|
}
|
|
998
1024
|
|
|
1025
|
+
/**
|
|
1026
|
+
* Restore static singleton refs from window/global enhanced loggers export.
|
|
1027
|
+
* @returns {boolean} Whether a live instance was recovered
|
|
1028
|
+
* @private
|
|
1029
|
+
*/
|
|
1030
|
+
static _recoverFromGlobal() {
|
|
1031
|
+
const enhanced = (isBrowser() && typeof window !== 'undefined' && window.__JSG_Logger_Enhanced__)
|
|
1032
|
+
|| (!isBrowser() && globalThis.__JSG_Logger_Enhanced__)
|
|
1033
|
+
|| null;
|
|
1034
|
+
|
|
1035
|
+
if (!enhanced) {
|
|
1036
|
+
return false;
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
JSGLogger._enhancedLoggers = enhanced;
|
|
1040
|
+
|
|
1041
|
+
if (enhanced._jsgLoggerInstance?.initialized) {
|
|
1042
|
+
JSGLogger._instance = enhanced._jsgLoggerInstance;
|
|
1043
|
+
return true;
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
return false;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
999
1049
|
/**
|
|
1000
1050
|
* Update logger configuration post-initialization without reinitializing.
|
|
1001
1051
|
* Merges partialConfig into the current config without touching registered transports.
|
|
@@ -1006,6 +1056,8 @@ class JSGLogger {
|
|
|
1006
1056
|
* @returns {Object} Enhanced logger exports
|
|
1007
1057
|
*/
|
|
1008
1058
|
static configure(partialConfig = {}) {
|
|
1059
|
+
JSGLogger._recoverFromGlobal();
|
|
1060
|
+
|
|
1009
1061
|
if (!JSGLogger._instance?.initialized) {
|
|
1010
1062
|
return JSGLogger.getInstanceSync(partialConfig);
|
|
1011
1063
|
}
|
|
@@ -1017,6 +1069,15 @@ class JSGLogger {
|
|
|
1017
1069
|
JSGLogger._instance.transports = currentTransports;
|
|
1018
1070
|
JSGLogger._instance.refreshLoggers();
|
|
1019
1071
|
|
|
1072
|
+
if (isBrowser() && typeof window !== 'undefined' && JSGLogger._enhancedLoggers?.controls) {
|
|
1073
|
+
window.JSG_Logger = JSGLogger._enhancedLoggers.controls;
|
|
1074
|
+
window.__JSG_Logger_Enhanced__ = JSGLogger._enhancedLoggers;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
if (!isBrowser()) {
|
|
1078
|
+
globalThis.__JSG_Logger_Enhanced__ = JSGLogger._enhancedLoggers;
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1020
1081
|
// Re-log init summary so consumers can see the applied project config.
|
|
1021
1082
|
// The module-level auto-init fires before configure() can run, meaning
|
|
1022
1083
|
// the one-time init log always shows defaults. This follow-up makes
|
|
@@ -1063,6 +1124,8 @@ class JSGLogger {
|
|
|
1063
1124
|
* @returns {Object|null} Controls object or null if singleton not initialized
|
|
1064
1125
|
*/
|
|
1065
1126
|
static getControls() {
|
|
1127
|
+
JSGLogger._recoverFromGlobal();
|
|
1128
|
+
|
|
1066
1129
|
// Check window.JSG_Logger first to ensure singleton works across bundles
|
|
1067
1130
|
// This is critical when devtools bundle loads separately from main app
|
|
1068
1131
|
if (isBrowser() && typeof window !== 'undefined' && window.JSG_Logger) {
|
package/package.json
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crimsonsunset/jsg-logger",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-environment logger with smart detection, file-level overrides, and beautiful console formatting. Test it live: https://logger.joesangiorgio.com/",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"types": "./index.d.ts",
|
|
8
|
+
"browser": {
|
|
9
|
+
"fs": false,
|
|
10
|
+
"fs/promises": false
|
|
11
|
+
},
|
|
8
12
|
"keywords": [
|
|
9
13
|
"logging",
|
|
10
14
|
"pino",
|
package/utils/redaction.js
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
* Used by browser, CLI, and server formatters
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Pino/fast-redact only accepts dot-path keys — not JSG suffix wildcards like *key.
|
|
8
|
+
* Wildcard rules are applied via redactValue() in formatters and the pino wrapper.
|
|
9
|
+
*
|
|
10
|
+
* @param {string[]} paths - Redaction path patterns from config
|
|
11
|
+
* @returns {string[]} Paths safe to pass to pino's native redact option
|
|
12
|
+
*/
|
|
13
|
+
export function toPinoRedactPaths(paths) {
|
|
14
|
+
const exact = paths.filter((path) => !path.includes('*'));
|
|
15
|
+
return exact.length > 0 ? exact : ['password', 'token'];
|
|
16
|
+
}
|
|
17
|
+
|
|
6
18
|
/**
|
|
7
19
|
* Check if a key should be redacted based on patterns
|
|
8
20
|
* @param {string} key - Key to check
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __viteBrowserExternal = {};
|
|
2
|
-
export {
|
|
3
|
-
__viteBrowserExternal as default
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
package/devtools/dist/__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW-2Ng8QIWW.js","sources":["__vite-browser-external-2Ng8QIWW.js"],"sourcesContent":["const __viteBrowserExternal = {};\nexport {\n __viteBrowserExternal as default\n};\n//# sourceMappingURL=__vite-browser-external-2Ng8QIWW.js.map\n"],"names":[],"mappings":"AAAK,MAAC,wBAAwB,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"__vite-browser-external-2Ng8QIWW.js","sources":["../__vite-browser-external"],"sourcesContent":["export default {}"],"names":[],"mappings":"AAAA,MAAA,wBAAe,CAAA;"}
|