@enhance-eng/sandbox 0.4.2 → 0.5.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 +27 -1
- package/dist/cli.js +4 -4
- package/dist/index.js +1 -1
- package/dist/next/index.d.ts +7 -0
- package/dist/next/index.js +1 -0
- package/dist/vite/index.js +4 -4
- package/package.json +10 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Enhance sandbox library for adding preview functionality to your application.
|
|
4
4
|
|
|
5
|
-
**Supported frameworks:** React SPAs and statically generated sites.
|
|
5
|
+
**Supported frameworks:** React SPAs, Next.js (App Router), and statically generated sites.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -10,6 +10,32 @@ Enhance sandbox library for adding preview functionality to your application.
|
|
|
10
10
|
npm install @enhance-eng/sandbox
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
## Next.js (App Router)
|
|
14
|
+
|
|
15
|
+
To enable Enhance in your Next.js application and resolve hydration errors, add the `EnhanceScripts` component to your root layout.
|
|
16
|
+
|
|
17
|
+
```tsx
|
|
18
|
+
// app/layout.tsx
|
|
19
|
+
import { EnhanceScripts } from "@enhance-eng/sandbox/next";
|
|
20
|
+
|
|
21
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
22
|
+
return (
|
|
23
|
+
<html lang="en">
|
|
24
|
+
<head>
|
|
25
|
+
<EnhanceScripts />
|
|
26
|
+
</head>
|
|
27
|
+
<body>{children}</body>
|
|
28
|
+
</html>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
This component ensures:
|
|
34
|
+
|
|
35
|
+
- The Service Worker is installed reliably.
|
|
36
|
+
- HMR works correctly through the preview proxy.
|
|
37
|
+
- React hydrates without mismatch errors by rendering the scripts natively.
|
|
38
|
+
|
|
13
39
|
## Vite
|
|
14
40
|
|
|
15
41
|
Add the plugin to your Vite config:
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
self.__ENHANCE_PUBLISHABLE_KEY__ = ${JSON[
|
|
5
|
-
self.__ENHANCE_CDN__ = ${JSON[
|
|
3
|
+
const _0x4dc12d=_0x2951;function _0x5a22(){const _0xdcf461=['--publishable-key\x20<key>','write','9872247JJvbhW','0.0.0','24cmjUlH','requiredOption','1511928atPqbQ','--cdn-url\x20<url>','Publishable\x20key\x20for\x20enhance','1089060qSHacp','8cfFsrI','description','parseAsync','Created\x20','stringify','enhance-sandbox','CDN\x20URL\x20for\x20enhance\x20assets\x20(defaults\x20to\x20production)','https://cdn.enhancelabs.ai','1126748ZYOfBS','name','stdout','Generate\x20the\x20service\x20worker\x20loader\x20file','1136660blPBew','action','publishableKey','453525mtKbJF','19009791wXHOPk','Enhance\x20sandbox\x20utility\x20CLI','cwd','option','utf-8','cdnUrl'];_0x5a22=function(){return _0xdcf461;};return _0x5a22();}(function(_0x4f6f7f,_0x5c6429){const _0x4ba61b=_0x2951,_0x188da4=_0x4f6f7f();while(!![]){try{const _0x44872c=-parseInt(_0x4ba61b(0x1e7))/0x1+parseInt(_0x4ba61b(0x1f7))/0x2+-parseInt(_0x4ba61b(0x1fa))/0x3+parseInt(_0x4ba61b(0x1f3))/0x4+-parseInt(_0x4ba61b(0x1ea))/0x5*(-parseInt(_0x4ba61b(0x1e5))/0x6)+-parseInt(_0x4ba61b(0x1e3))/0x7+parseInt(_0x4ba61b(0x1eb))/0x8*(parseInt(_0x4ba61b(0x1fb))/0x9);if(_0x44872c===_0x5c6429)break;else _0x188da4['push'](_0x188da4['shift']());}catch(_0x224190){_0x188da4['push'](_0x188da4['shift']());}}}(_0x5a22,0xb98e8));import{Command}from'commander';import{writeFile,mkdir}from'fs/promises';import{dirname,resolve}from'path';import _0x238769 from'dedent';var DEFAULT_CDN_URL=_0x4dc12d(0x1f2);function buildSwSource(_0x5377ec){const _0xdcc768=_0x4dc12d,_0xf196f1=_0x5377ec['cdnUrl']??DEFAULT_CDN_URL;return _0x238769`
|
|
4
|
+
self.__ENHANCE_PUBLISHABLE_KEY__ = ${JSON[_0xdcc768(0x1ef)](_0x5377ec[_0xdcc768(0x1f9)])};
|
|
5
|
+
self.__ENHANCE_CDN__ = ${JSON[_0xdcc768(0x1ef)](_0xf196f1)};
|
|
6
6
|
importScripts(self.__ENHANCE_CDN__ + "/loader/loader.v1.js");
|
|
7
|
-
`;}function
|
|
7
|
+
`;}var program=new Command();function _0x2951(_0x5c55ca,_0x3f1538){_0x5c55ca=_0x5c55ca-0x1e1;const _0x5a22ba=_0x5a22();let _0x2951cd=_0x5a22ba[_0x5c55ca];return _0x2951cd;}program[_0x4dc12d(0x1f4)](_0x4dc12d(0x1f0))[_0x4dc12d(0x1ec)](_0x4dc12d(0x1fc))['version'](_0x4dc12d(0x1e4)),program['command']('init')['description'](_0x4dc12d(0x1f6))[_0x4dc12d(0x1e6)](_0x4dc12d(0x1e1),_0x4dc12d(0x1e9))[_0x4dc12d(0x1fe)](_0x4dc12d(0x1e8),_0x4dc12d(0x1f1))[_0x4dc12d(0x1fe)]('--output\x20<path>','Output\x20path\x20for\x20the\x20service\x20worker\x20file','public/enhance-sw.js')[_0x4dc12d(0x1f8)](async _0x73bf6f=>{const _0x40c9d1=_0x4dc12d,_0x1d17cb=resolve(process[_0x40c9d1(0x1fd)](),_0x73bf6f['output']),_0x5d02aa=buildSwSource({'publishableKey':_0x73bf6f[_0x40c9d1(0x1f9)],'cdnUrl':_0x73bf6f[_0x40c9d1(0x200)]});await mkdir(dirname(_0x1d17cb),{'recursive':!![]}),await writeFile(_0x1d17cb,_0x5d02aa,_0x40c9d1(0x1ff)),process[_0x40c9d1(0x1f5)][_0x40c9d1(0x1e2)](_0x40c9d1(0x1ee)+_0x73bf6f['output']+'\x0a');}),program[_0x4dc12d(0x1ed)]();
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
function _0x54f0(_0x363076,_0xea53fd){_0x363076=_0x363076-0xdf;var _0x1ffebf=_0x1ffe();var _0x54f0cb=_0x1ffebf[_0x363076];return _0x54f0cb;}var _0x413fba=_0x54f0;(function(_0x230a61,_0x203047){var _0x3225a0=_0x54f0,_0x37bd57=_0x230a61();while(!![]){try{var _0x4e15de=parseInt(_0x3225a0(0xef))/0x1*(-parseInt(_0x3225a0(0xdf))/0x2)+parseInt(_0x3225a0(0xee))/0x3*(-parseInt(_0x3225a0(0xe3))/0x4)+-parseInt(_0x3225a0(0xf0))/0x5+parseInt(_0x3225a0(0xe5))/0x6+-parseInt(_0x3225a0(0xeb))/0x7*(-parseInt(_0x3225a0(0xe4))/0x8)+parseInt(_0x3225a0(0xe2))/0x9*(-parseInt(_0x3225a0(0xe0))/0xa)+-parseInt(_0x3225a0(0xe9))/0xb*(-parseInt(_0x3225a0(0xed))/0xc);if(_0x4e15de===_0x203047)break;else _0x37bd57['push'](_0x37bd57['shift']());}catch(_0x5880de){_0x37bd57['push'](_0x37bd57['shift']());}}}(_0x1ffe,0x99917));var SW_PATH=_0x413fba(0xec);function enhance(){var _0x2d6461=_0x413fba;const _0x49286c=document[_0x2d6461(0xe1)](_0x2d6461(0xe6));_0x49286c[_0x2d6461(0xea)]=_0x2d6461(0xe7)+SW_PATH+'\x22)',document[_0x2d6461(0xe8)]['appendChild'](_0x49286c);}export{enhance};function _0x1ffe(){var _0x46fcc6=['textContent','7rLkWqy','/enhance-sw.js','30581484zYeLzD','26139CHXfoq','1wQCcQv','5336310CkTSRp','2348274pJcIMQ','1518340pSEZVK','createElement','36tAEETu','212XbWWks','2474632zDYIxC','6490518ChbQmx','script','navigator.serviceWorker?.register(\x22','head','11CHBjmt'];_0x1ffe=function(){return _0x46fcc6;};return _0x1ffe();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0xffd5(){var _0x37b991=['5425940ZcHJZa','4DfWGFX','enhance-integrated','8XyfIlE','9057618YkWupK','196293UaupVK','/__enhance/init.js','26907678dOtcgG','9826453ssdQiB','3277480aJBzaR','meta','beforeInteractive','enhance-overlay','1385876HEDOEl','enhance-sw-register'];_0xffd5=function(){return _0x37b991;};return _0xffd5();}(function(_0x17807c,_0x3bf2cc){var _0x262f97=_0x36d7,_0x501ebd=_0x17807c();while(!![]){try{var _0x3787b0=-parseInt(_0x262f97(0x8f))/0x1+-parseInt(_0x262f97(0x8b))/0x2+parseInt(_0x262f97(0x96))/0x3*(-parseInt(_0x262f97(0x92))/0x4)+parseInt(_0x262f97(0x91))/0x5+-parseInt(_0x262f97(0x95))/0x6+parseInt(_0x262f97(0x8a))/0x7+parseInt(_0x262f97(0x94))/0x8*(parseInt(_0x262f97(0x89))/0x9);if(_0x3787b0===_0x3bf2cc)break;else _0x501ebd['push'](_0x501ebd['shift']());}catch(_0x40b4cf){_0x501ebd['push'](_0x501ebd['shift']());}}}(_0xffd5,0xd69d3));import _0x2f9430 from'next/script';import{Fragment,jsx,jsxs}from'react/jsx-runtime';function _0x36d7(_0x39586b,_0x51c711){_0x39586b=_0x39586b-0x89;var _0xffd5d6=_0xffd5();var _0x36d7c3=_0xffd5d6[_0x39586b];return _0x36d7c3;}function EnhanceScripts({nonce:_0x5c2c96}){var _0x3de559=_0x36d7;return jsxs(Fragment,{'children':[jsx(_0x3de559(0x8c),{'name':_0x3de559(0x93),'content':'1'}),jsx(_0x2f9430,{'id':_0x3de559(0x90),'strategy':'beforeInteractive','nonce':_0x5c2c96,'children':'navigator.serviceWorker?.register(\x22/enhance-sw.js\x22)'}),jsx(_0x2f9430,{'id':'enhance-init','src':_0x3de559(0x97),'strategy':_0x3de559(0x8d),'nonce':_0x5c2c96}),jsx(_0x2f9430,{'id':_0x3de559(0x8e),'src':'/__enhance/overlay.js','strategy':'afterInteractive','type':'module','nonce':_0x5c2c96})]});}export{EnhanceScripts};
|
package/dist/vite/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function
|
|
2
|
-
self.__ENHANCE_PUBLISHABLE_KEY__ = ${JSON[
|
|
3
|
-
self.__ENHANCE_CDN__ = ${JSON[
|
|
1
|
+
function _0x1dfc(_0x47952d,_0x1e78dc){_0x47952d=_0x47952d-0xc0;var _0x261856=_0x2618();var _0x1dfc2b=_0x261856[_0x47952d];return _0x1dfc2b;}var _0x21b0df=_0x1dfc;(function(_0x47f247,_0x1fe0ac){var _0x1dd7fb=_0x1dfc,_0x2a2084=_0x47f247();while(!![]){try{var _0x2efbb4=parseInt(_0x1dd7fb(0xd8))/0x1*(-parseInt(_0x1dd7fb(0xd6))/0x2)+-parseInt(_0x1dd7fb(0xd0))/0x3+parseInt(_0x1dd7fb(0xc1))/0x4*(parseInt(_0x1dd7fb(0xd1))/0x5)+parseInt(_0x1dd7fb(0xc6))/0x6+parseInt(_0x1dd7fb(0xd2))/0x7+parseInt(_0x1dd7fb(0xc0))/0x8*(-parseInt(_0x1dd7fb(0xcd))/0x9)+parseInt(_0x1dd7fb(0xc5))/0xa;if(_0x2efbb4===_0x1fe0ac)break;else _0x2a2084['push'](_0x2a2084['shift']());}catch(_0x4178fe){_0x2a2084['push'](_0x2a2084['shift']());}}}(_0x2618,0x546dc));import _0x5a56a8 from'dedent';var DEFAULT_CDN_URL=_0x21b0df(0xc2);function buildSwSource(_0x25ff3e){var _0xcd1ab5=_0x21b0df;const _0x2ce090=_0x25ff3e['cdnUrl']??DEFAULT_CDN_URL;return _0x5a56a8`
|
|
2
|
+
self.__ENHANCE_PUBLISHABLE_KEY__ = ${JSON[_0xcd1ab5(0xd4)](_0x25ff3e['publishableKey'])};
|
|
3
|
+
self.__ENHANCE_CDN__ = ${JSON['stringify'](_0x2ce090)};
|
|
4
4
|
importScripts(self.__ENHANCE_CDN__ + "/loader/loader.v1.js");
|
|
5
|
-
`;}var
|
|
5
|
+
`;}function _0x2618(){var _0x4174e0=['setHeader','asset','9TWaGgA','end','middlewares','1444710jZrstr','985bIbljc','1708644RbziZs','\x22)</script>','stringify','enhance','262mntzdz','use','2207NMgrkK','405928johMnf','820XKKnkR','https://cdn.enhancelabs.ai','enhance-sw.js','<script>navigator.serviceWorker?.register(\x22','7036760eJLZLW','1074570NewrEC','replace','Content-Type','/enhance-sw.js','application/javascript'];_0x2618=function(){return _0x4174e0;};return _0x2618();}var SW_PATH=_0x21b0df(0xc9),enhance=_0x263c85=>{var _0x23fedf=_0x21b0df;const _0xf60d34=buildSwSource(_0x263c85),_0x428a1d=_0x23fedf(0xc4)+SW_PATH+_0x23fedf(0xd3);return{'name':_0x23fedf(0xd5),'configureServer'(_0xd0460e){var _0x45f804=_0x23fedf;_0xd0460e['middlewares'][_0x45f804(0xd7)]((_0x473e40,_0x4808c2,_0x3b800a)=>{var _0x528431=_0x45f804;if(_0x473e40['url']===SW_PATH){_0x4808c2[_0x528431(0xcb)](_0x528431(0xc8),_0x528431(0xca)),_0x4808c2[_0x528431(0xce)](_0xf60d34);return;}_0x3b800a();});},'configurePreviewServer'(_0x40dc9e){var _0x225146=_0x23fedf;_0x40dc9e[_0x225146(0xcf)][_0x225146(0xd7)]((_0x3358b9,_0x457400,_0x279888)=>{var _0x26c3c4=_0x225146;if(_0x3358b9['url']===SW_PATH){_0x457400['setHeader'](_0x26c3c4(0xc8),_0x26c3c4(0xca)),_0x457400[_0x26c3c4(0xce)](_0xf60d34);return;}_0x279888();});},'generateBundle'(){var _0x5e0929=_0x23fedf;this['emitFile']({'type':_0x5e0929(0xcc),'fileName':_0x5e0929(0xc3),'source':_0xf60d34});},'transformIndexHtml'(_0x2a6b4d){var _0x1b6a5d=_0x23fedf;return _0x2a6b4d[_0x1b6a5d(0xc7)](/<head([^>]*)>/,'<head$1>'+_0x428a1d);}};};export{enhance};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enhance-eng/sandbox",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Enhance preview bootstrap and tooling package.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"./vite": {
|
|
16
16
|
"types": "./dist/vite/index.d.ts",
|
|
17
17
|
"import": "./dist/vite/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./next": {
|
|
20
|
+
"types": "./dist/next/index.d.ts",
|
|
21
|
+
"import": "./dist/next/index.js"
|
|
18
22
|
}
|
|
19
23
|
},
|
|
20
24
|
"files": [
|
|
@@ -29,6 +33,11 @@
|
|
|
29
33
|
"dedent": "^1.7.1",
|
|
30
34
|
"zod": "^3.22.4"
|
|
31
35
|
},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"next": ">=13.0.0",
|
|
38
|
+
"react": ">=18.0.0",
|
|
39
|
+
"react-dom": ">=18.0.0"
|
|
40
|
+
},
|
|
32
41
|
"publishConfig": {
|
|
33
42
|
"access": "public"
|
|
34
43
|
}
|