state-in-url 6.0.4 → 6.1.0
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 +4 -3
- package/dist/encodeState/encodeState.js +1 -1
- package/dist/encodeState/encodeState.mjs +1 -1
- package/dist/encoder/encoder.js +1 -1
- package/dist/encoder/encoder.mjs +1 -1
- package/dist/subscribers.js +1 -1
- package/dist/subscribers.mjs +1 -1
- package/dist/useUrlEncode/useUrlEncode.js +1 -1
- package/dist/useUrlEncode/useUrlEncode.mjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.mjs +1 -1
- package/package.json +105 -59
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ This library is a good alternative for NUQS.
|
|
|
75
75
|
### Use cases
|
|
76
76
|
|
|
77
77
|
- Store unsaved user forms or page filters in URL
|
|
78
|
-
-
|
|
78
|
+
- Sync URL with React state
|
|
79
79
|
- Just sync data between unrelated client components without touching URI
|
|
80
80
|
- Shareable URLs with application state (Deep linking, URL state synchronization)
|
|
81
81
|
- Easy state persistence across page reloads
|
|
@@ -90,7 +90,7 @@ This library is a good alternative for NUQS.
|
|
|
90
90
|
- **compatible**: Will keep 3rd party query params as is
|
|
91
91
|
- **flexible**: Can use more than 1 state objects on the same page, just use different keys
|
|
92
92
|
- **Fast**: Minimal rerenders, around [1ms](https://github.com/asmyshlyaev177/state-in-url/blob/87c8c7c995c5cd7d9e7aa039c30bfe64b24abe4b/packages/urlstate/encoder/encoder.test.ts#L185) to encode and decode big object
|
|
93
|
-
- **Server Side Rendering**: Can use it in Server Components, Next.js 14 and
|
|
93
|
+
- **Server Side Rendering**: Can use it in Server Components, Next.js 14, 15, and 16 are supported
|
|
94
94
|
- **Lightweight**: Zero dependencies, library less than 2KB
|
|
95
95
|
- **DX**: Good developer experience, documentation, JSDoc comments, and examples
|
|
96
96
|
- **Framework Flexibility**: Hooks for `Next.js` and `react-router`, helpers to use it with other frameworks or pure JS
|
|
@@ -138,6 +138,7 @@ This library is a good alternative for NUQS.
|
|
|
138
138
|
- [Changelog](#changelog)
|
|
139
139
|
- [Mentions](#mentions)
|
|
140
140
|
- [License](#license)
|
|
141
|
+
- [Personal website](#personal-website)
|
|
141
142
|
- [Inspiration](#inspiration)
|
|
142
143
|
|
|
143
144
|
## installation
|
|
@@ -728,7 +729,7 @@ export const useUserState = () => {
|
|
|
728
729
|
|
|
729
730
|
1. Can pass only serializable values, `Function`, `BigInt` or `Symbol` won't work, probably things like `ArrayBuffer` neither. Everything that can be serialized to JSON will work.
|
|
730
731
|
2. Vercel servers limit size of headers (query string and other stuff) to **14KB**, so keep your URL state under ~5000 words. <https://vercel.com/docs/errors/URL_TOO_LONG>
|
|
731
|
-
3. Tested with `next.js` 14/15 with app router, no plans to support pages.
|
|
732
|
+
3. Tested with `next.js` 14/15/16 with app router, no plans to support pages.
|
|
732
733
|
|
|
733
734
|
## Other
|
|
734
735
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var a=require("../encoder/encoder.js");var d=require("../utils.js");function
|
|
1
|
+
"use strict";var a=require("../encoder/encoder.js");var d=require("../utils.js");function u(n,c,s){const r=d.getParams(s);const e=Object.keys(n||{});for(let o=0;o<e.length;o++){const t=e[o];const i=n[t];const f=c?.[t];if(JSON.stringify(i)!==JSON.stringify(f)){r.set(t,a.encode(i))}}return r.toString()}function g(n,c){const s=Object.assign({},c||{});const r=d.getParams(n);for(const[e,o]of r){const t=c?.[e];s[e]=a.decode(o,t)??t}return s}exports.decodeState=g;exports.encodeState=u;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{decode as
|
|
1
|
+
import{decode as g,encode as a}from"../encoder/encoder.mjs";import{getParams as f}from"../utils.mjs";function m(n,c,s){const r=f(s);const o=Object.keys(n||{});for(let e=0;e<o.length;e++){const t=o[e];const i=n[t];const d=c?.[t];if(JSON.stringify(i)!==JSON.stringify(d)){r.set(t,a(i))}}return r.toString()}function S(n,c){const s=Object.assign({},c||{});const r=f(n);for(const[o,e]of r){const t=c?.[o];s[o]=g(e,t)??t}return s}export{S as decodeState,m as encodeState};
|
package/dist/encoder/encoder.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var n=require("../constants/constants.js");var u=require("../utils.js");const
|
|
1
|
+
"use strict";var n=require("../constants/constants.js");var u=require("../utils.js");const O=/['"]/g;const p={"'":"%27",'"':"'"};const v=/'|%27/g;const y={"'":'"',"%27":"'"};const g=new RegExp(`^(${n.SYMBOLS.undefined}|${n.SYMBOLS.date})`);function m(e){if(typeof e==="function"||typeof e==="symbol")return"";if(B(e)){return e}return JSON.stringify(e,c).replace(O,r=>p[r])}function c(e,r){const t=u.typeOf(r);if(t!=="object"&&t!=="array"){return d(r)}if(t==="object"){const i=r;const o={};for(const s of Object.keys(i)){o[s]=c(e,i[s])}return o}if(t==="array"){return r.map(i=>c(e,i))}return r}const d=e=>{switch(u.typeOf(e)){case"date":return n.SYMBOLS.date+new Date(e).toISOString();case"undefined":return n.SYMBOLS.undefined;default:return e}};function l(e,r){return f(e.replace(v,t=>y[t]),r)}function f(e,r){try{return JSON.parse(e,a)}catch{return r}}function a(e,r){return typeof r==="string"?S(r):r}const S=e=>{if(e===n.SYMBOLS.undefined)return void 0;if(e?.startsWith?.(n.SYMBOLS.date))return new Date(e.slice(1));return e};const B=e=>g.test(String(e));exports.decode=l;exports.decodePrimitive=S;exports.encode=m;exports.encodePrimitive=d;exports.parseJSON=f;exports.reviver=a;
|
package/dist/encoder/encoder.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SYMBOLS as n}from"../constants/constants.mjs";import{typeOf as u}from"../utils.mjs";const
|
|
1
|
+
import{SYMBOLS as n}from"../constants/constants.mjs";import{typeOf as u}from"../utils.mjs";const y=/['"]/g;const m={"'":"%27",'"':"'"};const O=/'|%27/g;const S={"'":'"',"%27":"'"};const g=new RegExp(`^(${n.undefined}|${n.date})`);function l(t){if(typeof t==="function"||typeof t==="symbol")return"";if(b(t)){return t}return JSON.stringify(t,i).replace(y,r=>m[r])}function i(t,r){const e=u(r);if(e!=="object"&&e!=="array"){return s(r)}if(e==="object"){const o=r;const c={};for(const f of Object.keys(o)){c[f]=i(t,o[f])}return c}if(e==="array"){return r.map(o=>i(t,o))}return r}const s=t=>{switch(u(t)){case"date":return n.date+new Date(t).toISOString();case"undefined":return n.undefined;default:return t}};function v(t,r){return d(t.replace(O,e=>S[e]),r)}function d(t,r){try{return JSON.parse(t,a)}catch{return r}}function a(t,r){return typeof r==="string"?p(r):r}const p=t=>{if(t===n.undefined)return void 0;if(t?.startsWith?.(n.date))return new Date(t.slice(1));return t};const b=t=>g.test(String(t));export{v as decode,p as decodePrimitive,l as encode,s as encodePrimitive,d as parseJSON,a as reviver};
|
package/dist/subscribers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const c=new WeakMap;const n=new WeakMap;const o={get(t){return n.get(t)||[]},add(t,e){const s=this.get(t);n.set(t,[...s,e]);return()=>this.remove(t,e)},remove(t,e){const s=this.get(t);if(!s)return;const r=s.filter(i=>i!==e);if(r.length){n.set(t,r)}else{n.delete(t)}}};const a={get:function(t){return c.get(t)},set:function(t,e){c.set(t,e)}};exports.stateMap=a;exports.subscribers=o;
|
package/dist/subscribers.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const o=new WeakMap;const n=new WeakMap;const
|
|
1
|
+
const o=new WeakMap;const n=new WeakMap;const i={get(t){return n.get(t)||[]},add(t,e){const s=this.get(t);n.set(t,[...s,e]);return()=>this.remove(t,e)},remove(t,e){const s=this.get(t);if(!s)return;const r=s.filter(c=>c!==e);if(r.length){n.set(t,r)}else{n.delete(t)}}};const a={get:function(t){return o.get(t)},set:function(t,e){o.set(t,e)}};export{a as stateMap,i as subscribers};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=require("react");var
|
|
1
|
+
"use strict";var c=require("react");var u=require("../encodeState/encodeState.js");function l(e){return e&&e.__esModule?e:{default:e}}var a=l(c);function d(e){const n=a.default.useCallback((t,s)=>{return u.encodeState(t,e,s)},[e]);const r=a.default.useCallback(t=>u.decodeState(t,e),[e]);return{parse:r,stringify:n}}exports.useUrlEncode=d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from"react";import{encodeState as s,decodeState as a}from"../encodeState/encodeState.mjs";function u(e){const n=o.useCallback((t,c)=>{return s(t,e,c)},[e]);const r=o.useCallback(t=>a(t,e),[e]);return{parse:r,stringify:n}}export{u as useUrlEncode};
|
package/dist/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const
|
|
1
|
+
"use strict";const i=n=>{if(n===null)return"null";const t=typeof n;if(t!=="object")return t;if(Array.isArray(n))return"array";if(n instanceof Date)return"date";return"object"};const u=n=>{const t=i(n);return t!=="object"&&t!=="array"};const a=typeof window==="undefined";const l=n=>{if(n instanceof URLSearchParams){return n}if(typeof n==="string"){const t=n.indexOf("?");return new URLSearchParams(t===-1?n:n.slice(t+1))}return new URLSearchParams};const y=(n,t)=>{if(n.length!==t.length)return false;return n.every((r,s)=>c(r,t[s]))};const w=(n,t)=>{const r=Object.keys(n);const s=Object.keys(t);if(r.length!==s.length)return false;return r.every(e=>c(n[e],t[e]))};const c=(n,t)=>{if(n===t)return true;if(n==null||t==null)return false;const r=i(n);const s=i(t);if(r!==s)return false;if(u(n))return false;if(r==="array"){return y(n,t)}if(r==="object"){return w(n,t)}return JSON.stringify(n)===JSON.stringify(t)};function p(n,t){const r=new URLSearchParams;const s=f(n,[...new URLSearchParams(t||"").entries()]);for(const[e,o]of s){r.set(e,o)}return r.toString()}function g(n,t){return Object.fromEntries(f(n,Object.entries(t||{})))}function f(n,t){const r=Object.keys(n);const s=[];for(let e=0;e<t.length;e++){if(r.includes(t[e]?.[0])){s.push([t[e][0].replace(/\+/g," "),t[e][1]])}}return s}function h(n,t){const r=Object.assign({},n);for(const[s]of Object.entries(n)){const e=s;const o=t[e]!==void 0;r[e]=o?t[e]:n[e]}return r}const S={push:n=>{if(typeof window!=="undefined"){window.history.pushState(null,"",n)}},replace:n=>{if(typeof window!=="undefined"){window.history.replaceState(null,"",n)}}};const d=/apple/i.test(!a&&navigator?.userAgent||"");const m="popstate";function P(){return a?"":window.location.search}exports.assignValue=h;exports.filterUnknown=f;exports.filterUnknownParams=g;exports.filterUnknownParamsClient=p;exports.getParams=l;exports.getSearch=P;exports.isEqual=c;exports.isPrimitive=u;exports.isSSR=a;exports.isSafari=d;exports.popstateEv=m;exports.routerHistory=S;exports.typeOf=i;
|
package/dist/utils.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const o=n=>{if(n===null)return"null";const t=typeof n;if(t!=="object")return t;if(Array.isArray(n))return"array";if(n instanceof Date)return"date";return"object"};const u=n=>{const t=o(n);return t!=="object"&&t!=="array"};const a=typeof window==="undefined";const l=n=>{if(n instanceof URLSearchParams){return n}if(typeof n==="string"){const t=n.indexOf("?");return new URLSearchParams(t===-1?n:n.slice(t+1))}return new URLSearchParams};const y=(n,t)=>{if(n.length!==t.length)return false;return n.every((r,s)=>c(r,t[s]))};const p=(n,t)=>{const r=Object.keys(n);const s=Object.keys(t);if(r.length!==s.length)return false;return r.every(e=>c(n[e],t[e]))};const c=(n,t)=>{if(n===t)return true;if(n==null||t==null)return false;const r=o(n);const s=o(t);if(r!==s)return false;if(u(n))return false;if(r==="array"){return y(n,t)}if(r==="object"){return p(n,t)}return JSON.stringify(n)===JSON.stringify(t)};function w(n,t){const r=new URLSearchParams;const s=f(n,[...new URLSearchParams(t||"").entries()]);for(const[e,i]of s){r.set(e,i)}return r.toString()}function h(n,t){return Object.fromEntries(f(n,Object.entries(t||{})))}function f(n,t){const r=Object.keys(n);const s=[];for(let e=0;e<t.length;e++){if(r.includes(t[e]?.[0])){s.push([t[e][0].replace(/\+/g," "),t[e][1]])}}return s}function d(n,t){const r=Object.assign({},n);for(const[s]of Object.entries(n)){const e=s;const i=t[e]!==void 0;r[e]=i?t[e]:n[e]}return r}const g={push:n=>{if(typeof window!=="undefined"){window.history.pushState(null,"",n)}},replace:n=>{if(typeof window!=="undefined"){window.history.replaceState(null,"",n)}}};const S=/apple/i.test(!a&&navigator?.userAgent||"");const b="popstate";function j(){return a?"":window.location.search}export{d as assignValue,f as filterUnknown,h as filterUnknownParams,w as filterUnknownParamsClient,l as getParams,j as getSearch,c as isEqual,u as isPrimitive,a as isSSR,S as isSafari,b as popstateEv,g as routerHistory,o as typeOf};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "state-in-url",
|
|
3
|
-
"version": "6.0
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "Store state in URL as in object, types and structure are preserved, with TS validation. Same API as React.useState, wthout any hasssle or boilerplate. Next.js@14-15, react-router@6-7, and remix@2.",
|
|
5
5
|
"homepage": "https://state-in-url.dev",
|
|
6
6
|
"repository": {
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"packages/urlstate",
|
|
30
30
|
"packages/example-nextjs14",
|
|
31
31
|
"packages/example-nextjs15",
|
|
32
|
+
"packages/example-nextjs16",
|
|
32
33
|
"packages/example-react",
|
|
33
34
|
"packages/example-react-router6",
|
|
34
35
|
"packages/example-react-router7",
|
|
@@ -109,6 +110,8 @@
|
|
|
109
110
|
"dev": "wireit",
|
|
110
111
|
"dev:lib": "wireit",
|
|
111
112
|
"dev:nextjs14": "wireit",
|
|
113
|
+
"dev:nextjs15": "wireit",
|
|
114
|
+
"dev:nextjs16": "wireit",
|
|
112
115
|
"dev:remix2": "wireit",
|
|
113
116
|
"bump": "npx standard-version --no-verify",
|
|
114
117
|
"build": "wireit",
|
|
@@ -124,7 +127,7 @@
|
|
|
124
127
|
"kill-vite": "wireit",
|
|
125
128
|
"kill": "wireit",
|
|
126
129
|
"rmdist": "rm -rf dist",
|
|
127
|
-
"cleanup": "rm -rf dist .wireit node_modules test-results playwright-report coverage-reports nyc_coverage packages/example-nextjs14/node_modules packages/example-nextjs14/.next packages/example-nextjs15/node_modules packages/example-nextjs15/.next packages/example-react/node_modules packages/example-react-router6/node_modules packages/example-react-router7/node_modules packages/example-remix2/node_modules",
|
|
130
|
+
"cleanup": "rm -rf dist .wireit node_modules test-results playwright-report coverage-reports nyc_coverage packages/example-nextjs14/node_modules packages/example-nextjs14/.next packages/example-nextjs15/node_modules packages/example-nextjs15/.next packages/example-nextjs16/node_modules packages/example-nextjs16/.next packages/example-react/node_modules packages/example-react-router6/node_modules packages/example-react-router7/node_modules packages/example-remix2/node_modules",
|
|
128
131
|
"reinstall": "npm run cleanup && npm install",
|
|
129
132
|
"setup": "playwright install --with-deps",
|
|
130
133
|
"prepack": "npm run build && cp package.json dist/package.json && npm run build:demo",
|
|
@@ -132,6 +135,23 @@
|
|
|
132
135
|
"prepare": "npx husky"
|
|
133
136
|
},
|
|
134
137
|
"wireit": {
|
|
138
|
+
"dev": {
|
|
139
|
+
"dependencies": [
|
|
140
|
+
"dev:lib",
|
|
141
|
+
"dev:react",
|
|
142
|
+
"dev:remix2",
|
|
143
|
+
"dev:router6",
|
|
144
|
+
"dev:router7",
|
|
145
|
+
"dev:nextjs16",
|
|
146
|
+
"start:demo14"
|
|
147
|
+
],
|
|
148
|
+
"service": {
|
|
149
|
+
"readyWhen": {
|
|
150
|
+
"lineMatches": "http://localhost:3000"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"command": "npm run dev:nextjs15"
|
|
154
|
+
},
|
|
135
155
|
"test": {
|
|
136
156
|
"dependencies": [
|
|
137
157
|
"tsc",
|
|
@@ -172,22 +192,6 @@
|
|
|
172
192
|
],
|
|
173
193
|
"command": "npx vitest"
|
|
174
194
|
},
|
|
175
|
-
"dev": {
|
|
176
|
-
"dependencies": [
|
|
177
|
-
"dev:lib",
|
|
178
|
-
"dev:react",
|
|
179
|
-
"dev:remix2",
|
|
180
|
-
"dev:router6",
|
|
181
|
-
"dev:router7",
|
|
182
|
-
"dev:nextjs15"
|
|
183
|
-
],
|
|
184
|
-
"service": {
|
|
185
|
-
"readyWhen": {
|
|
186
|
-
"lineMatches": "http://localhost:3000"
|
|
187
|
-
}
|
|
188
|
-
},
|
|
189
|
-
"command": "npm run dev:nextjs14"
|
|
190
|
-
},
|
|
191
195
|
"dev:lib": {
|
|
192
196
|
"command": "cross-env IS_DEVELOPMENT=true rollup -c rollup.config.mjs -w",
|
|
193
197
|
"service": {
|
|
@@ -219,12 +223,28 @@
|
|
|
219
223
|
"command": "cd packages/example-nextjs15 && npm run dev --turbo",
|
|
220
224
|
"service": true
|
|
221
225
|
},
|
|
226
|
+
"dev:nextjs16": {
|
|
227
|
+
"command": "cd packages/example-nextjs16 && npm run dev --turbo",
|
|
228
|
+
"service": true
|
|
229
|
+
},
|
|
230
|
+
"build:next14": {
|
|
231
|
+
"command": "cd packages/example-nextjs14 && npm run build",
|
|
232
|
+
"dependencies": [
|
|
233
|
+
"build"
|
|
234
|
+
]
|
|
235
|
+
},
|
|
222
236
|
"build:next15": {
|
|
223
237
|
"command": "cd packages/example-nextjs15 && npm run build",
|
|
224
238
|
"dependencies": [
|
|
225
239
|
"build"
|
|
226
240
|
]
|
|
227
241
|
},
|
|
242
|
+
"build:next16": {
|
|
243
|
+
"command": "cd packages/example-nextjs16 && npm run build",
|
|
244
|
+
"dependencies": [
|
|
245
|
+
"build"
|
|
246
|
+
]
|
|
247
|
+
},
|
|
228
248
|
"build:router6": {
|
|
229
249
|
"command": "cd packages/example-react-router6 && npm run build",
|
|
230
250
|
"dependencies": [
|
|
@@ -247,23 +267,23 @@
|
|
|
247
267
|
"dependencies": [
|
|
248
268
|
"build"
|
|
249
269
|
],
|
|
250
|
-
"command": "cd packages/example-
|
|
270
|
+
"command": "cd packages/example-nextjs15 && npm run build"
|
|
251
271
|
},
|
|
252
272
|
"build:demo:tests": {
|
|
253
273
|
"dependencies": [
|
|
254
274
|
"build"
|
|
255
275
|
],
|
|
256
|
-
"command": "cd packages/example-
|
|
276
|
+
"command": "cd packages/example-nextjs15 && npx cross-env TEST=true npm run build"
|
|
257
277
|
},
|
|
258
278
|
"start:demo": {
|
|
259
279
|
"dependencies": [
|
|
260
280
|
"build:demo"
|
|
261
281
|
],
|
|
262
|
-
"command": "cd packages/example-
|
|
282
|
+
"command": "cd packages/example-nextjs15 && npm run start",
|
|
263
283
|
"service": true
|
|
264
284
|
},
|
|
265
285
|
"start:demo:ci": {
|
|
266
|
-
"command": "cd packages/example-
|
|
286
|
+
"command": "cd packages/example-nextjs15 && npm run start",
|
|
267
287
|
"service": true
|
|
268
288
|
},
|
|
269
289
|
"start:react": {
|
|
@@ -310,6 +330,13 @@
|
|
|
310
330
|
"command": "cd packages/example-remix2 && npm run start",
|
|
311
331
|
"service": true
|
|
312
332
|
},
|
|
333
|
+
"start:demo14": {
|
|
334
|
+
"dependencies": [
|
|
335
|
+
"build:next14"
|
|
336
|
+
],
|
|
337
|
+
"command": "cd packages/example-nextjs14 && npm run start",
|
|
338
|
+
"service": true
|
|
339
|
+
},
|
|
313
340
|
"start:demo15": {
|
|
314
341
|
"dependencies": [
|
|
315
342
|
"build:next15"
|
|
@@ -317,14 +344,30 @@
|
|
|
317
344
|
"command": "cd packages/example-nextjs15 && npm run start",
|
|
318
345
|
"service": true
|
|
319
346
|
},
|
|
347
|
+
"start:demo14:ci": {
|
|
348
|
+
"command": "cd packages/example-nextjs14 && npm run start",
|
|
349
|
+
"service": true
|
|
350
|
+
},
|
|
320
351
|
"start:demo15:ci": {
|
|
321
352
|
"command": "cd packages/example-nextjs15 && npm run start",
|
|
322
353
|
"service": true
|
|
323
354
|
},
|
|
355
|
+
"start:demo16": {
|
|
356
|
+
"dependencies": [
|
|
357
|
+
"build:next16"
|
|
358
|
+
],
|
|
359
|
+
"command": "cd packages/example-nextjs16 && npm run start",
|
|
360
|
+
"service": true
|
|
361
|
+
},
|
|
362
|
+
"start:demo16:ci": {
|
|
363
|
+
"command": "cd packages/example-nextjs16 && npm run start",
|
|
364
|
+
"service": true
|
|
365
|
+
},
|
|
324
366
|
"start": {
|
|
325
367
|
"command": "npm run start:demo15",
|
|
326
368
|
"dependencies": [
|
|
327
|
-
"start:
|
|
369
|
+
"start:demo14",
|
|
370
|
+
"start:demo16",
|
|
328
371
|
"start:react",
|
|
329
372
|
"start:router6",
|
|
330
373
|
"start:router7",
|
|
@@ -335,7 +378,8 @@
|
|
|
335
378
|
"start:ci": {
|
|
336
379
|
"command": "npm run start:demo15:ci",
|
|
337
380
|
"dependencies": [
|
|
338
|
-
"start:
|
|
381
|
+
"start:demo14:ci",
|
|
382
|
+
"start:demo16:ci",
|
|
339
383
|
"start:react:ci",
|
|
340
384
|
"start:router6:ci",
|
|
341
385
|
"start:router7:ci",
|
|
@@ -352,7 +396,8 @@
|
|
|
352
396
|
"build",
|
|
353
397
|
"build:react",
|
|
354
398
|
"build:demo:tests",
|
|
355
|
-
"build:
|
|
399
|
+
"build:next14",
|
|
400
|
+
"build:next16",
|
|
356
401
|
"build:router6",
|
|
357
402
|
"build:router7",
|
|
358
403
|
"build:remix2"
|
|
@@ -403,34 +448,35 @@
|
|
|
403
448
|
}
|
|
404
449
|
},
|
|
405
450
|
"devDependencies": {
|
|
406
|
-
"@babel/core": "^7.
|
|
407
|
-
"@babel/node": "^7.
|
|
408
|
-
"@babel/preset-env": "^7.
|
|
409
|
-
"@babel/preset-typescript": "^7.
|
|
410
|
-
"@commitlint/cli": "^19.
|
|
411
|
-
"@commitlint/config-conventional": "^19.
|
|
412
|
-
"@playwright/test": "^1.
|
|
413
|
-
"@rollup/plugin-node-resolve": "^15.3.
|
|
414
|
-
"@rollup/plugin-typescript": "^12.1.
|
|
451
|
+
"@babel/core": "^7.28.4",
|
|
452
|
+
"@babel/node": "^7.28.0",
|
|
453
|
+
"@babel/preset-env": "^7.28.3",
|
|
454
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
455
|
+
"@commitlint/cli": "^19.8.1",
|
|
456
|
+
"@commitlint/config-conventional": "^19.8.1",
|
|
457
|
+
"@playwright/test": "^1.55.1",
|
|
458
|
+
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
459
|
+
"@rollup/plugin-typescript": "^12.1.4",
|
|
415
460
|
"@semantic-release/changelog": "^6.0.3",
|
|
416
|
-
"@semantic-release/commit-analyzer": "^13.0.
|
|
461
|
+
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
417
462
|
"@semantic-release/git": "^10.0.1",
|
|
418
|
-
"@semantic-release/npm": "^
|
|
419
|
-
"@semantic-release/release-notes-generator": "^14.0
|
|
420
|
-
"@testing-library/dom": "^10.4.
|
|
421
|
-
"@testing-library/jest-dom": "^6.
|
|
422
|
-
"@testing-library/react": "^16.
|
|
463
|
+
"@semantic-release/npm": "^13.1.1",
|
|
464
|
+
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
465
|
+
"@testing-library/dom": "^10.4.1",
|
|
466
|
+
"@testing-library/jest-dom": "^6.9.0",
|
|
467
|
+
"@testing-library/react": "^16.3.0",
|
|
423
468
|
"@testing-library/react-hooks": "^8.0.1",
|
|
424
469
|
"@types/glob": "^8.1.0",
|
|
425
|
-
"@types/node": "^20.
|
|
426
|
-
"@types/react": "^18.3.
|
|
427
|
-
"@types/react-dom": "^18.3.
|
|
428
|
-
"@vitest/coverage-istanbul": "^2.1.
|
|
470
|
+
"@types/node": "^20.19.18",
|
|
471
|
+
"@types/react": "^18.3.25",
|
|
472
|
+
"@types/react-dom": "^18.3.7",
|
|
473
|
+
"@vitest/coverage-istanbul": "^2.1.9",
|
|
429
474
|
"auto-changelog": "^2.4.0",
|
|
430
475
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
476
|
+
"baseline-browser-mapping": "^2.8.32",
|
|
431
477
|
"chokidar": "^4.0.3",
|
|
432
478
|
"commitizen": "^4.3.0",
|
|
433
|
-
"commitlint": "^19.8.
|
|
479
|
+
"commitlint": "^19.8.1",
|
|
434
480
|
"conventional-recommended-bump": "^10.0.0",
|
|
435
481
|
"cross-env": "^7.0.3",
|
|
436
482
|
"cz": "^1.8.2",
|
|
@@ -441,28 +487,28 @@
|
|
|
441
487
|
"eslint-plugin-prettier": "^5.2.1",
|
|
442
488
|
"eslint-plugin-react-hooks": "^4.6.2",
|
|
443
489
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
444
|
-
"happy-dom": "^15.11.
|
|
445
|
-
"husky": "^9.
|
|
446
|
-
"lint-staged": "^15.2
|
|
490
|
+
"happy-dom": "^15.11.7",
|
|
491
|
+
"husky": "^9.1.7",
|
|
492
|
+
"lint-staged": "^15.5.2",
|
|
447
493
|
"nyc": "^17.1.0",
|
|
448
494
|
"only-allow": "^1.2.1",
|
|
449
495
|
"pin-github-action": "^1.9.1",
|
|
450
|
-
"playwright": "^1.
|
|
451
|
-
"prettier": "^3.2
|
|
452
|
-
"prettier-plugin-tailwindcss": "^0.6.
|
|
453
|
-
"release-it": "^17.
|
|
454
|
-
"rollup": "^4.
|
|
496
|
+
"playwright": "^1.55.1",
|
|
497
|
+
"prettier": "^3.6.2",
|
|
498
|
+
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
499
|
+
"release-it": "^17.11.0",
|
|
500
|
+
"rollup": "^4.52.3",
|
|
455
501
|
"rollup-plugin-esbuild": "^6.2.1",
|
|
456
502
|
"rollup-plugin-filesize": "^10.0.0",
|
|
457
503
|
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
458
|
-
"semantic-release": "^24.
|
|
504
|
+
"semantic-release": "^24.2.9",
|
|
459
505
|
"standard-version": "^9.5.0",
|
|
460
506
|
"ts-node": "^10.9.2",
|
|
461
|
-
"typescript": "^5.
|
|
462
|
-
"unplugin-auto-import": "^0.18.
|
|
463
|
-
"vitest": "^2.1.
|
|
464
|
-
"wait-on": "^8.0.
|
|
465
|
-
"wireit": "^0.14.
|
|
507
|
+
"typescript": "^5.9.2",
|
|
508
|
+
"unplugin-auto-import": "^0.18.6",
|
|
509
|
+
"vitest": "^2.1.9",
|
|
510
|
+
"wait-on": "^8.0.5",
|
|
511
|
+
"wireit": "^0.14.12"
|
|
466
512
|
},
|
|
467
513
|
"keywords": [
|
|
468
514
|
"state in url",
|