state-in-url 6.1.2 → 6.2.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 +11 -0
- package/dist/package.json +579 -0
- package/package.json +10 -7
- package/skills/feature-state-hook/SKILL.md +352 -0
- package/skills/form-library-integration/SKILL.md +191 -0
- package/skills/input-handling/SKILL.md +160 -0
- package/skills/nextjs-ssr/SKILL.md +251 -0
- package/skills/react-router-remix-setup/SKILL.md +180 -0
- package/skills/shared-state-no-url/SKILL.md +158 -0
package/README.md
CHANGED
|
@@ -108,6 +108,7 @@ This library is a good alternative for NUQS.
|
|
|
108
108
|
- [installation](#installation)
|
|
109
109
|
- [1. Install package](#1-install-package)
|
|
110
110
|
- [2. Edit tsconfig.json](#2-edit-tsconfigjson)
|
|
111
|
+
- [Using with AI coding agents](#using-with-ai-coding-agents)
|
|
111
112
|
- [useUrlState](#useurlstate)
|
|
112
113
|
- [useUrlState hook for Next.js](#useurlstate-hook-for-nextjs)
|
|
113
114
|
- [Usage examples](#usage-examples)
|
|
@@ -159,6 +160,16 @@ pnpm add state-in-url
|
|
|
159
160
|
In `tsconfig.json` in `compilerOptions` set `"moduleResolution": "Bundler"`, or`"moduleResolution": "Node16"`, or `"moduleResolution": "NodeNext"`.
|
|
160
161
|
Possibly need to set `"module": "ES2022"`, or `"module": "ESNext"`
|
|
161
162
|
|
|
163
|
+
## Using with AI coding agents
|
|
164
|
+
|
|
165
|
+
`state-in-url` ships skill files for [@tanstack/intent](https://tanstack.com/intent/latest/docs/overview), so AI agents (Claude Code, Cursor, Copilot, Codex, etc.) load the right patterns and avoid common mistakes when using the library. After installing `state-in-url`, run once in your project:
|
|
166
|
+
|
|
167
|
+
```sh
|
|
168
|
+
npx @tanstack/intent@latest install
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
This wires your installed agent to discover the skills from `node_modules/state-in-url/skills/`. List available skills with `npx @tanstack/intent@latest list`.
|
|
172
|
+
|
|
162
173
|
## useUrlState
|
|
163
174
|
|
|
164
175
|
Main hook that takes initial state as parameter and returns state object, callback to update url, and callback to update only state.
|
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "state-in-url",
|
|
3
|
+
"version": "6.2.0",
|
|
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
|
+
"homepage": "https://state-in-url.dev",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/asmyshlyaev177/state-in-url.git"
|
|
9
|
+
},
|
|
10
|
+
"author": {
|
|
11
|
+
"name": "asmyshlyaev177",
|
|
12
|
+
"email": "asmyshlyaev177@gmail.com",
|
|
13
|
+
"url": "https://www.linkedin.com/in/asmyshlyaev177/"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"registry": "https://registry.npmjs.org/",
|
|
17
|
+
"tag": "latest",
|
|
18
|
+
"provenance": true
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"funding": {
|
|
22
|
+
"type": "patreon",
|
|
23
|
+
"url": "https://patreon.com/asmyshlyaev177"
|
|
24
|
+
},
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/asmyshlyaev177/state-in-url/issues"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"skills",
|
|
31
|
+
"!skills/_artifacts"
|
|
32
|
+
],
|
|
33
|
+
"main": "./dist/index.js",
|
|
34
|
+
"module": "dist/index.mjs",
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"require": "./dist/index.js",
|
|
38
|
+
"types": "./dist/index.d.ts",
|
|
39
|
+
"default": "./dist/index.mjs"
|
|
40
|
+
},
|
|
41
|
+
"./next": {
|
|
42
|
+
"require": "./dist/next/index.js",
|
|
43
|
+
"types": "./dist/next/index.d.ts",
|
|
44
|
+
"default": "./dist/next/index.mjs"
|
|
45
|
+
},
|
|
46
|
+
"./react-router6": {
|
|
47
|
+
"require": "./dist/react-router6/index.js",
|
|
48
|
+
"types": "./dist/react-router6/index.d.ts",
|
|
49
|
+
"default": "./dist/react-router6/index.mjs"
|
|
50
|
+
},
|
|
51
|
+
"./react-router": {
|
|
52
|
+
"require": "./dist/react-router/index.js",
|
|
53
|
+
"types": "./dist/react-router/index.d.ts",
|
|
54
|
+
"default": "./dist/react-router/index.mjs"
|
|
55
|
+
},
|
|
56
|
+
"./remix": {
|
|
57
|
+
"require": "./dist/remix/index.js",
|
|
58
|
+
"types": "./dist/remix/index.d.ts",
|
|
59
|
+
"default": "./dist/remix/index.mjs"
|
|
60
|
+
},
|
|
61
|
+
"./encodeState": {
|
|
62
|
+
"require": "./dist/encodeState/index.js",
|
|
63
|
+
"types": "./dist/encodeState/index.d.ts",
|
|
64
|
+
"default": "./dist/encodeState/index.mjs"
|
|
65
|
+
},
|
|
66
|
+
"./encoder": {
|
|
67
|
+
"require": "./dist/encoder/index.js",
|
|
68
|
+
"types": "./dist/encoder/index.d.ts",
|
|
69
|
+
"default": "./dist/encoder/index.mjs"
|
|
70
|
+
},
|
|
71
|
+
"./useSharedState": {
|
|
72
|
+
"require": "./dist/useSharedState/index.js",
|
|
73
|
+
"types": "./dist/useSharedState/index.d.ts",
|
|
74
|
+
"default": "./dist/useSharedState/index.mjs"
|
|
75
|
+
},
|
|
76
|
+
"./useUrlEncode": {
|
|
77
|
+
"require": "./dist/useUrlEncode/index.js",
|
|
78
|
+
"types": "./dist/useUrlEncode/index.d.ts",
|
|
79
|
+
"default": "./dist/useUrlEncode/index.mjs"
|
|
80
|
+
},
|
|
81
|
+
"./useUrlStateBase": {
|
|
82
|
+
"require": "./dist/useUrlStateBase/index.js",
|
|
83
|
+
"types": "./dist/useUrlStateBase/index.d.ts",
|
|
84
|
+
"default": "./dist/useUrlStateBase/index.mjs"
|
|
85
|
+
},
|
|
86
|
+
"./utils": {
|
|
87
|
+
"require": "./dist/utils.js",
|
|
88
|
+
"types": "./dist/utils.d.ts",
|
|
89
|
+
"default": "./dist/utils.mjs"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"types": "./dist/index.d.ts",
|
|
93
|
+
"scripts": {
|
|
94
|
+
"test:unit": "wireit",
|
|
95
|
+
"test:int": "wireit",
|
|
96
|
+
"test:int:ci": "wireit",
|
|
97
|
+
"test:exports": "pnpm run build && npx babel-node --extensions .js,.mjs,.ts,.mts --config-file ./babel.config.json -- ./packages/urlstate/exportsTest.ts",
|
|
98
|
+
"install:all": "pnpm install",
|
|
99
|
+
"install:ci": "pnpm install --frozen-lockfile",
|
|
100
|
+
"test": "wireit",
|
|
101
|
+
"tsc": "wireit",
|
|
102
|
+
"dev": "wireit",
|
|
103
|
+
"dev:lib": "wireit",
|
|
104
|
+
"dev:nextjs14": "wireit",
|
|
105
|
+
"dev:nextjs15": "wireit",
|
|
106
|
+
"dev:nextjs16": "wireit",
|
|
107
|
+
"dev:remix2": "wireit",
|
|
108
|
+
"bump": "npx standard-version --no-verify",
|
|
109
|
+
"build": "wireit",
|
|
110
|
+
"build:demo": "wireit",
|
|
111
|
+
"start:demo": "wireit",
|
|
112
|
+
"build:packages": "wireit",
|
|
113
|
+
"start:demo15": "wireit",
|
|
114
|
+
"start:demo15:ci": "wireit",
|
|
115
|
+
"start:react": "wireit",
|
|
116
|
+
"start": "wireit",
|
|
117
|
+
"start:ci": "wireit",
|
|
118
|
+
"kill-next": "wireit",
|
|
119
|
+
"kill-vite": "wireit",
|
|
120
|
+
"kill": "wireit",
|
|
121
|
+
"rmdist": "rm -rf dist",
|
|
122
|
+
"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",
|
|
123
|
+
"reinstall": "pnpm run cleanup && pnpm install",
|
|
124
|
+
"setup": "playwright install --with-deps",
|
|
125
|
+
"prepack": "pnpm run build && cp package.json dist/package.json",
|
|
126
|
+
"pin-gh-deps": "pin-github-action -i .github/workflows/tests.yml",
|
|
127
|
+
"prepare": "pnpm exec husky"
|
|
128
|
+
},
|
|
129
|
+
"wireit": {
|
|
130
|
+
"dev": {
|
|
131
|
+
"dependencies": [
|
|
132
|
+
"dev:lib",
|
|
133
|
+
"dev:react",
|
|
134
|
+
"dev:remix2",
|
|
135
|
+
"dev:router6",
|
|
136
|
+
"dev:router7",
|
|
137
|
+
"dev:nextjs16",
|
|
138
|
+
"start:demo14"
|
|
139
|
+
],
|
|
140
|
+
"service": {
|
|
141
|
+
"readyWhen": {
|
|
142
|
+
"lineMatches": "http://localhost:3000"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"command": "pnpm run dev:nextjs15"
|
|
146
|
+
},
|
|
147
|
+
"test": {
|
|
148
|
+
"dependencies": [
|
|
149
|
+
"tsc",
|
|
150
|
+
"test:unit",
|
|
151
|
+
"build:packages"
|
|
152
|
+
],
|
|
153
|
+
"command": "pnpm run test:exports && pnpm run test:int"
|
|
154
|
+
},
|
|
155
|
+
"kill-next": {
|
|
156
|
+
"command": "ps aux | grep .next | grep -v grep | awk '{print $2}' | xargs kill -9 2>&1; exit 0"
|
|
157
|
+
},
|
|
158
|
+
"kill-vite": {
|
|
159
|
+
"command": "ps aux | grep '.bin/vite' | grep -v grep | awk '{print $2}' | xargs kill -9 2>&1; exit 0"
|
|
160
|
+
},
|
|
161
|
+
"kill-wireit": {
|
|
162
|
+
"command": "ps axu | grep wireit | awk '{print $2}' | xargs kill -9"
|
|
163
|
+
},
|
|
164
|
+
"kill": {
|
|
165
|
+
"command": "killed",
|
|
166
|
+
"dependencies": [
|
|
167
|
+
"kill-next",
|
|
168
|
+
"kill-vite",
|
|
169
|
+
"kill-wireit"
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"test:int:ci": {
|
|
173
|
+
"command": "npx cross-env HOME=/root PLAYWRIGHT_BROWSERS_PATH=0 playwright test"
|
|
174
|
+
},
|
|
175
|
+
"test:int": {
|
|
176
|
+
"command": "playwright test --project=chromium --retries=2"
|
|
177
|
+
},
|
|
178
|
+
"tsc": {
|
|
179
|
+
"command": "npx tsc --noEmit"
|
|
180
|
+
},
|
|
181
|
+
"test:unit": {
|
|
182
|
+
"dependencies": [
|
|
183
|
+
"tsc"
|
|
184
|
+
],
|
|
185
|
+
"command": "npx vitest"
|
|
186
|
+
},
|
|
187
|
+
"dev:lib": {
|
|
188
|
+
"command": "cross-env IS_DEVELOPMENT=true rollup -c rollup.config.mjs -w",
|
|
189
|
+
"service": {
|
|
190
|
+
"readyWhen": {
|
|
191
|
+
"lineMatches": "created "
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"dependencies": [
|
|
195
|
+
"rmdist"
|
|
196
|
+
]
|
|
197
|
+
},
|
|
198
|
+
"dev:router6": {
|
|
199
|
+
"command": "cd packages/example-react-router6 && pnpm run dev",
|
|
200
|
+
"service": true
|
|
201
|
+
},
|
|
202
|
+
"dev:router7": {
|
|
203
|
+
"command": "cd packages/example-react-router7 && pnpm run dev",
|
|
204
|
+
"service": true
|
|
205
|
+
},
|
|
206
|
+
"dev:remix2": {
|
|
207
|
+
"command": "cd packages/example-remix2 && PORT=3003 pnpm run dev",
|
|
208
|
+
"service": true
|
|
209
|
+
},
|
|
210
|
+
"dev:nextjs14": {
|
|
211
|
+
"command": "cd packages/example-nextjs14 && pnpm run dev --turbo",
|
|
212
|
+
"service": true
|
|
213
|
+
},
|
|
214
|
+
"dev:nextjs15": {
|
|
215
|
+
"command": "cd packages/example-nextjs15 && pnpm run dev --turbo",
|
|
216
|
+
"service": true
|
|
217
|
+
},
|
|
218
|
+
"dev:nextjs16": {
|
|
219
|
+
"command": "cd packages/example-nextjs16 && pnpm run dev --turbo",
|
|
220
|
+
"service": true
|
|
221
|
+
},
|
|
222
|
+
"build:next14": {
|
|
223
|
+
"command": "cd packages/example-nextjs14 && pnpm run build",
|
|
224
|
+
"dependencies": [
|
|
225
|
+
"build"
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"build:next15": {
|
|
229
|
+
"command": "cd packages/example-nextjs15 && pnpm run build",
|
|
230
|
+
"dependencies": [
|
|
231
|
+
"build"
|
|
232
|
+
]
|
|
233
|
+
},
|
|
234
|
+
"build:next16": {
|
|
235
|
+
"command": "cd packages/example-nextjs16 && pnpm run build",
|
|
236
|
+
"dependencies": [
|
|
237
|
+
"build"
|
|
238
|
+
]
|
|
239
|
+
},
|
|
240
|
+
"build:router6": {
|
|
241
|
+
"command": "cd packages/example-react-router6 && pnpm run build",
|
|
242
|
+
"dependencies": [
|
|
243
|
+
"build"
|
|
244
|
+
]
|
|
245
|
+
},
|
|
246
|
+
"build:router7": {
|
|
247
|
+
"command": "cd packages/example-react-router7 && pnpm run build",
|
|
248
|
+
"dependencies": [
|
|
249
|
+
"build"
|
|
250
|
+
]
|
|
251
|
+
},
|
|
252
|
+
"build:remix2": {
|
|
253
|
+
"command": "cd packages/example-remix2 && pnpm run build",
|
|
254
|
+
"dependencies": [
|
|
255
|
+
"build"
|
|
256
|
+
]
|
|
257
|
+
},
|
|
258
|
+
"build:demo": {
|
|
259
|
+
"dependencies": [
|
|
260
|
+
"build"
|
|
261
|
+
],
|
|
262
|
+
"command": "cd packages/example-nextjs15 && pnpm run build"
|
|
263
|
+
},
|
|
264
|
+
"build:demo:tests": {
|
|
265
|
+
"dependencies": [
|
|
266
|
+
"build"
|
|
267
|
+
],
|
|
268
|
+
"command": "cd packages/example-nextjs15 && npx cross-env TEST=true pnpm run build"
|
|
269
|
+
},
|
|
270
|
+
"start:demo": {
|
|
271
|
+
"dependencies": [
|
|
272
|
+
"build:demo"
|
|
273
|
+
],
|
|
274
|
+
"command": "cd packages/example-nextjs15 && pnpm run start",
|
|
275
|
+
"service": true
|
|
276
|
+
},
|
|
277
|
+
"start:demo:ci": {
|
|
278
|
+
"command": "cd packages/example-nextjs15 && pnpm run start",
|
|
279
|
+
"service": true
|
|
280
|
+
},
|
|
281
|
+
"start:react": {
|
|
282
|
+
"command": "npx vite preview --port 5180 packages/example-react",
|
|
283
|
+
"dependencies": [
|
|
284
|
+
"build:react"
|
|
285
|
+
],
|
|
286
|
+
"service": true
|
|
287
|
+
},
|
|
288
|
+
"start:react:ci": {
|
|
289
|
+
"command": "npx vite preview --port 5180 packages/example-react",
|
|
290
|
+
"service": true
|
|
291
|
+
},
|
|
292
|
+
"start:router6": {
|
|
293
|
+
"command": "npx vite preview --port 5181 packages/example-react-router6",
|
|
294
|
+
"dependencies": [
|
|
295
|
+
"build:router6"
|
|
296
|
+
],
|
|
297
|
+
"service": true
|
|
298
|
+
},
|
|
299
|
+
"start:router6:ci": {
|
|
300
|
+
"command": "npx vite preview --port 5181 packages/example-react-router6",
|
|
301
|
+
"service": true
|
|
302
|
+
},
|
|
303
|
+
"start:router7": {
|
|
304
|
+
"command": "npx vite preview --port 5183 packages/example-react-router7",
|
|
305
|
+
"dependencies": [
|
|
306
|
+
"build:router7"
|
|
307
|
+
],
|
|
308
|
+
"service": true
|
|
309
|
+
},
|
|
310
|
+
"start:router7:ci": {
|
|
311
|
+
"command": "npx vite preview --port 5183 packages/example-react-router7",
|
|
312
|
+
"service": true
|
|
313
|
+
},
|
|
314
|
+
"start:remix2": {
|
|
315
|
+
"command": "cd packages/example-remix2 && pnpm run start",
|
|
316
|
+
"dependencies": [
|
|
317
|
+
"build:remix2"
|
|
318
|
+
],
|
|
319
|
+
"service": true
|
|
320
|
+
},
|
|
321
|
+
"start:remix2:ci": {
|
|
322
|
+
"command": "cd packages/example-remix2 && pnpm run start",
|
|
323
|
+
"service": true
|
|
324
|
+
},
|
|
325
|
+
"start:demo14": {
|
|
326
|
+
"dependencies": [
|
|
327
|
+
"build:next14"
|
|
328
|
+
],
|
|
329
|
+
"command": "cd packages/example-nextjs14 && pnpm run start",
|
|
330
|
+
"service": true
|
|
331
|
+
},
|
|
332
|
+
"start:demo15": {
|
|
333
|
+
"dependencies": [
|
|
334
|
+
"build:next15"
|
|
335
|
+
],
|
|
336
|
+
"command": "cd packages/example-nextjs15 && pnpm run start",
|
|
337
|
+
"service": true
|
|
338
|
+
},
|
|
339
|
+
"start:demo14:ci": {
|
|
340
|
+
"command": "cd packages/example-nextjs14 && pnpm run start",
|
|
341
|
+
"service": true
|
|
342
|
+
},
|
|
343
|
+
"start:demo15:ci": {
|
|
344
|
+
"command": "cd packages/example-nextjs15 && pnpm run start",
|
|
345
|
+
"service": true
|
|
346
|
+
},
|
|
347
|
+
"start:demo16": {
|
|
348
|
+
"dependencies": [
|
|
349
|
+
"build:next16"
|
|
350
|
+
],
|
|
351
|
+
"command": "cd packages/example-nextjs16 && pnpm run start",
|
|
352
|
+
"service": true
|
|
353
|
+
},
|
|
354
|
+
"start:demo16:ci": {
|
|
355
|
+
"command": "cd packages/example-nextjs16 && pnpm run start",
|
|
356
|
+
"service": true
|
|
357
|
+
},
|
|
358
|
+
"start": {
|
|
359
|
+
"command": "pnpm run start:demo15",
|
|
360
|
+
"dependencies": [
|
|
361
|
+
"start:demo14",
|
|
362
|
+
"start:demo16",
|
|
363
|
+
"start:react",
|
|
364
|
+
"start:router6",
|
|
365
|
+
"start:router7",
|
|
366
|
+
"start:remix2"
|
|
367
|
+
],
|
|
368
|
+
"service": true
|
|
369
|
+
},
|
|
370
|
+
"start:ci": {
|
|
371
|
+
"command": "pnpm run start:demo15:ci",
|
|
372
|
+
"dependencies": [
|
|
373
|
+
"start:demo14:ci",
|
|
374
|
+
"start:demo16:ci",
|
|
375
|
+
"start:react:ci",
|
|
376
|
+
"start:router6:ci",
|
|
377
|
+
"start:router7:ci",
|
|
378
|
+
"start:remix2:ci"
|
|
379
|
+
],
|
|
380
|
+
"service": true
|
|
381
|
+
},
|
|
382
|
+
"dev:react": {
|
|
383
|
+
"command": "cd packages/example-react && pnpm run dev",
|
|
384
|
+
"service": true
|
|
385
|
+
},
|
|
386
|
+
"build:packages": {
|
|
387
|
+
"dependencies": [
|
|
388
|
+
"build",
|
|
389
|
+
"build:react",
|
|
390
|
+
"build:demo:tests",
|
|
391
|
+
"build:next14",
|
|
392
|
+
"build:next16",
|
|
393
|
+
"build:router6",
|
|
394
|
+
"build:router7",
|
|
395
|
+
"build:remix2"
|
|
396
|
+
]
|
|
397
|
+
},
|
|
398
|
+
"build:react": {
|
|
399
|
+
"command": "cd packages/example-react && pnpm run build"
|
|
400
|
+
},
|
|
401
|
+
"build": {
|
|
402
|
+
"command": "rollup -c rollup.config.mjs",
|
|
403
|
+
"dependencies": [
|
|
404
|
+
"rmdist"
|
|
405
|
+
]
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
"browserslist": [
|
|
409
|
+
"last 5 Chrome versions",
|
|
410
|
+
"last 5 ChromeAndroid versions",
|
|
411
|
+
"last 5 Firefox versions",
|
|
412
|
+
"last 5 FirefoxAndroid versions",
|
|
413
|
+
"Firefox ESR",
|
|
414
|
+
"last 2 Safari major versions",
|
|
415
|
+
"last 2 iOS major versions"
|
|
416
|
+
],
|
|
417
|
+
"lint-staged": {
|
|
418
|
+
"*.{js,jsx,ts,tsx}": [
|
|
419
|
+
"eslint --fix"
|
|
420
|
+
],
|
|
421
|
+
"*.{html,css,less,ejs,json}": [
|
|
422
|
+
"prettier --write"
|
|
423
|
+
]
|
|
424
|
+
},
|
|
425
|
+
"config": {
|
|
426
|
+
"commitizen": {
|
|
427
|
+
"path": "cz-conventional-changelog"
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
"commitlint": {
|
|
431
|
+
"extends": [
|
|
432
|
+
"@commitlint/config-conventional"
|
|
433
|
+
],
|
|
434
|
+
"rules": {
|
|
435
|
+
"body-max-line-length": [
|
|
436
|
+
0,
|
|
437
|
+
"always",
|
|
438
|
+
"Infinity"
|
|
439
|
+
]
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
"devDependencies": {
|
|
443
|
+
"@babel/core": "^7.28.4",
|
|
444
|
+
"@tanstack/intent": "latest",
|
|
445
|
+
"@babel/node": "^7.28.0",
|
|
446
|
+
"@babel/preset-env": "^7.28.3",
|
|
447
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
448
|
+
"@commitlint/cli": "^19.8.1",
|
|
449
|
+
"@commitlint/config-conventional": "^19.8.1",
|
|
450
|
+
"@playwright/test": "^1.55.1",
|
|
451
|
+
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
452
|
+
"@rollup/plugin-typescript": "^12.1.4",
|
|
453
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
454
|
+
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
455
|
+
"@semantic-release/git": "^10.0.1",
|
|
456
|
+
"@semantic-release/npm": "^13.1.3",
|
|
457
|
+
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
458
|
+
"@testing-library/dom": "^10.4.1",
|
|
459
|
+
"@testing-library/jest-dom": "^6.9.0",
|
|
460
|
+
"@testing-library/react": "^16.3.0",
|
|
461
|
+
"@testing-library/react-hooks": "^8.0.1",
|
|
462
|
+
"@types/node": "^20.19.18",
|
|
463
|
+
"@types/react": "^18.3.25",
|
|
464
|
+
"@types/react-dom": "^18.3.7",
|
|
465
|
+
"@vitest/coverage-istanbul": "^2.1.9",
|
|
466
|
+
"auto-changelog": "^2.4.0",
|
|
467
|
+
"babel-plugin-module-resolver": "^5.0.2",
|
|
468
|
+
"baseline-browser-mapping": "^2.8.32",
|
|
469
|
+
"chokidar": "^4.0.3",
|
|
470
|
+
"commitizen": "^4.3.0",
|
|
471
|
+
"commitlint": "^19.8.1",
|
|
472
|
+
"conventional-recommended-bump": "^10.0.0",
|
|
473
|
+
"cross-env": "^7.0.3",
|
|
474
|
+
"cz": "^1.8.2",
|
|
475
|
+
"cz-conventional-changelog": "^3.3.0",
|
|
476
|
+
"eslint": "^8.57.0",
|
|
477
|
+
"eslint-config-prettier": "^9.1.0",
|
|
478
|
+
"eslint-plugin-maintainable": "^0.4.4",
|
|
479
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
480
|
+
"eslint-plugin-react-hooks": "^4.6.2",
|
|
481
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
482
|
+
"glob": "^13.0.0",
|
|
483
|
+
"happy-dom": "^20.0.2",
|
|
484
|
+
"husky": "^9.1.7",
|
|
485
|
+
"lint-staged": "^15.5.2",
|
|
486
|
+
"next": "^15.5.18",
|
|
487
|
+
"nyc": "^17.1.0",
|
|
488
|
+
"only-allow": "^1.2.1",
|
|
489
|
+
"pin-github-action": "^1.9.1",
|
|
490
|
+
"playwright": "^1.55.1",
|
|
491
|
+
"prettier": "^3.6.2",
|
|
492
|
+
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
493
|
+
"react": "^19.2.6",
|
|
494
|
+
"react-dom": "^19.2.6",
|
|
495
|
+
"react-router": "^7.15.0",
|
|
496
|
+
"rollup": "^4.52.3",
|
|
497
|
+
"rollup-plugin-esbuild": "^6.2.1",
|
|
498
|
+
"rollup-plugin-filesize": "^10.0.0",
|
|
499
|
+
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
500
|
+
"semantic-release": "^25.0.2",
|
|
501
|
+
"standard-version": "^9.5.0",
|
|
502
|
+
"ts-node": "^10.9.2",
|
|
503
|
+
"typescript": "^5.9.2",
|
|
504
|
+
"unplugin-auto-import": "^0.18.6",
|
|
505
|
+
"vitest": "^2.1.9",
|
|
506
|
+
"wait-on": "^8.0.5",
|
|
507
|
+
"wireit": "^0.14.12"
|
|
508
|
+
},
|
|
509
|
+
"keywords": [
|
|
510
|
+
"state in url",
|
|
511
|
+
"useSearchParams",
|
|
512
|
+
"useUrlState",
|
|
513
|
+
"url state",
|
|
514
|
+
"search params",
|
|
515
|
+
"nuqs alternative",
|
|
516
|
+
"reactive",
|
|
517
|
+
"json",
|
|
518
|
+
"state sync",
|
|
519
|
+
"state management",
|
|
520
|
+
"encode",
|
|
521
|
+
"decode",
|
|
522
|
+
"Next.js",
|
|
523
|
+
"react-router",
|
|
524
|
+
"remix",
|
|
525
|
+
"remixjs",
|
|
526
|
+
"url",
|
|
527
|
+
"url synchronization",
|
|
528
|
+
"url sync",
|
|
529
|
+
"state synchronization",
|
|
530
|
+
"synchronized state",
|
|
531
|
+
"state-in-url",
|
|
532
|
+
"store",
|
|
533
|
+
"react hook",
|
|
534
|
+
"state hook",
|
|
535
|
+
"url-state",
|
|
536
|
+
"client components communication",
|
|
537
|
+
"query string",
|
|
538
|
+
"query-string",
|
|
539
|
+
"querystring",
|
|
540
|
+
"search-params",
|
|
541
|
+
"searchparams",
|
|
542
|
+
"params",
|
|
543
|
+
"parse",
|
|
544
|
+
"stringify",
|
|
545
|
+
"query params",
|
|
546
|
+
"typescript",
|
|
547
|
+
"hooks",
|
|
548
|
+
"react.js",
|
|
549
|
+
"reactjs",
|
|
550
|
+
"react",
|
|
551
|
+
"NextJS",
|
|
552
|
+
"query params parser",
|
|
553
|
+
"query params parsing",
|
|
554
|
+
"shared state",
|
|
555
|
+
"state sharing",
|
|
556
|
+
"front-end",
|
|
557
|
+
"state-management",
|
|
558
|
+
"state-sync",
|
|
559
|
+
"search",
|
|
560
|
+
"encode url",
|
|
561
|
+
"decode url",
|
|
562
|
+
"fast"
|
|
563
|
+
],
|
|
564
|
+
"packageManager": "pnpm@10.26.0",
|
|
565
|
+
"pnpm": {
|
|
566
|
+
"overrides": {
|
|
567
|
+
"@remix-run/react>react": "18.3.1",
|
|
568
|
+
"@remix-run/react>react-dom": "18.3.1"
|
|
569
|
+
},
|
|
570
|
+
"onlyBuiltDependencies": [
|
|
571
|
+
"@parcel/watcher",
|
|
572
|
+
"core-js",
|
|
573
|
+
"esbuild",
|
|
574
|
+
"less",
|
|
575
|
+
"sharp",
|
|
576
|
+
"unrs-resolver"
|
|
577
|
+
]
|
|
578
|
+
}
|
|
579
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "state-in-url",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.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": {
|
|
@@ -26,7 +26,9 @@
|
|
|
26
26
|
"url": "https://github.com/asmyshlyaev177/state-in-url/issues"
|
|
27
27
|
},
|
|
28
28
|
"files": [
|
|
29
|
-
"dist"
|
|
29
|
+
"dist",
|
|
30
|
+
"skills",
|
|
31
|
+
"!skills/_artifacts"
|
|
30
32
|
],
|
|
31
33
|
"main": "./dist/index.js",
|
|
32
34
|
"module": "dist/index.mjs",
|
|
@@ -120,7 +122,7 @@
|
|
|
120
122
|
"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",
|
|
121
123
|
"reinstall": "pnpm run cleanup && pnpm install",
|
|
122
124
|
"setup": "playwright install --with-deps",
|
|
123
|
-
"prepack": "pnpm run build && cp package.json dist/package.json
|
|
125
|
+
"prepack": "pnpm run build && cp package.json dist/package.json",
|
|
124
126
|
"pin-gh-deps": "pin-github-action -i .github/workflows/tests.yml",
|
|
125
127
|
"prepare": "pnpm exec husky"
|
|
126
128
|
},
|
|
@@ -439,6 +441,7 @@
|
|
|
439
441
|
},
|
|
440
442
|
"devDependencies": {
|
|
441
443
|
"@babel/core": "^7.28.4",
|
|
444
|
+
"@tanstack/intent": "latest",
|
|
442
445
|
"@babel/node": "^7.28.0",
|
|
443
446
|
"@babel/preset-env": "^7.28.3",
|
|
444
447
|
"@babel/preset-typescript": "^7.27.1",
|
|
@@ -480,16 +483,16 @@
|
|
|
480
483
|
"happy-dom": "^20.0.2",
|
|
481
484
|
"husky": "^9.1.7",
|
|
482
485
|
"lint-staged": "^15.5.2",
|
|
483
|
-
"next": "^15.5.
|
|
486
|
+
"next": "^15.5.18",
|
|
484
487
|
"nyc": "^17.1.0",
|
|
485
488
|
"only-allow": "^1.2.1",
|
|
486
489
|
"pin-github-action": "^1.9.1",
|
|
487
490
|
"playwright": "^1.55.1",
|
|
488
491
|
"prettier": "^3.6.2",
|
|
489
492
|
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
490
|
-
"react": "^19.2.
|
|
491
|
-
"react-dom": "^19.2.
|
|
492
|
-
"react-router": "^7.
|
|
493
|
+
"react": "^19.2.6",
|
|
494
|
+
"react-dom": "^19.2.6",
|
|
495
|
+
"react-router": "^7.15.0",
|
|
493
496
|
"rollup": "^4.52.3",
|
|
494
497
|
"rollup-plugin-esbuild": "^6.2.1",
|
|
495
498
|
"rollup-plugin-filesize": "^10.0.0",
|