Skip to content

Commit 729a4d6

Browse files
committed
Merge branch 'master' of github.com:inertiajs/inertia
2 parents 1e64275 + 3701734 commit 729a4d6

File tree

19 files changed

+1456
-1081
lines changed

19 files changed

+1456
-1081
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
For changes prior to v1.0.0, see the [legacy releases](https://legacy.inertiajs.com/releases).
99

10-
## [Unreleased](https://github.com/inertiajs/inertia/compare/v1.2.0...HEAD)
10+
## [Unreleased](https://github.com/inertiajs/inertia/compare/v2.0.0-beta.1...HEAD)
1111

12-
- v2.0 🫣
12+
- Nothing!
13+
14+
## [v2.0.0-beta.1](https://github.com/inertiajs/inertia/compare/v1.2.0...v2.0.0-beta.1)
15+
16+
- First beta release for the upcoming Inertia.js v2.0. View documentation and upgrade guide at https://v2.inertiajs.com.
1317

1418
## [v1.3.0-beta.2](https://github.com/inertiajs/inertia/compare/v1.3.0-beta.1...v1.3.0-beta.2)
1519

package-lock.json

Lines changed: 13 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@inertiajs/core",
3-
"version": "1.2.0",
3+
"version": "2.0.0-beta.1",
44
"license": "MIT",
55
"description": "A framework for creating server-driven single page apps.",
66
"contributors": [

packages/core/src/encryption.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ export const encryptHistory = async (data: any): Promise<ArrayBuffer> => {
88
const iv = getIv()
99
const storedKey = await getKeyFromSessionStorage()
1010
const key = await getOrCreateKey(storedKey)
11+
12+
if (!key) {
13+
throw new Error('Unable to encrypt history')
14+
}
15+
1116
const encrypted = await encryptData(iv, key, data)
1217

1318
return encrypted
@@ -34,6 +39,12 @@ const encryptData = async (iv: Uint8Array, key: CryptoKey, data: any) => {
3439
throw new Error('Unable to encrypt history')
3540
}
3641

42+
if (typeof window.crypto.subtle === 'undefined') {
43+
console.warn('Encryption is not supported in this environment. SSL is required.')
44+
45+
return Promise.resolve(data)
46+
}
47+
3748
const textEncoder = new TextEncoder()
3849
const str = JSON.stringify(data)
3950
const encoded = new Uint8Array(str.length)
@@ -51,6 +62,12 @@ const encryptData = async (iv: Uint8Array, key: CryptoKey, data: any) => {
5162
}
5263

5364
const decryptData = async (iv: Uint8Array, key: CryptoKey, data: any) => {
65+
if (typeof window.crypto.subtle === 'undefined') {
66+
console.warn('Decryption is not supported in this environment. SSL is required.')
67+
68+
return Promise.resolve(data)
69+
}
70+
5471
const decrypted = await window.crypto.subtle.decrypt(
5572
{
5673
name: 'AES-GCM',
@@ -78,6 +95,12 @@ const getIv = () => {
7895
}
7996

8097
const createKey = async () => {
98+
if (typeof window.crypto.subtle === 'undefined') {
99+
console.warn('Encryption is not supported in this environment. SSL is required.')
100+
101+
return Promise.resolve(null)
102+
}
103+
81104
return window.crypto.subtle.generateKey(
82105
{
83106
name: 'AES-GCM',
@@ -89,6 +112,12 @@ const createKey = async () => {
89112
}
90113

91114
const saveKey = async (key: CryptoKey) => {
115+
if (typeof window.crypto.subtle === 'undefined') {
116+
console.warn('Encryption is not supported in this environment. SSL is required.')
117+
118+
return Promise.resolve()
119+
}
120+
92121
const keyData = await window.crypto.subtle.exportKey('raw', key)
93122

94123
SessionStorage.set(historySessionStorageKeys.key, Array.from(new Uint8Array(keyData)))
@@ -101,6 +130,10 @@ const getOrCreateKey = async (key: CryptoKey | null) => {
101130

102131
const newKey = await createKey()
103132

133+
if (!newKey) {
134+
return null
135+
}
136+
104137
await saveKey(newKey)
105138

106139
return newKey

packages/react/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@inertiajs/react",
3-
"version": "1.2.0",
3+
"version": "2.0.0-beta.1",
44
"license": "MIT",
55
"description": "The React adapter for Inertia.js",
66
"contributors": [
@@ -59,7 +59,7 @@
5959
"react": "^16.9.0 || ^17.0.0 || ^18.0.0"
6060
},
6161
"dependencies": {
62-
"@inertiajs/core": "1.2.0",
62+
"@inertiajs/core": "2.0.0-beta.1",
6363
"lodash.isequal": "^4.5.0"
6464
}
6565
}

packages/react/src/Deferred.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const Deferred = ({ children, data, fallback }: DeferredProps) => {
1717
const keys = Array.isArray(data) ? data : [data]
1818

1919
useEffect(() => {
20-
setLoaded(loaded || keys.every((key) => pageProps[key] !== undefined))
20+
setLoaded(keys.every((key) => pageProps[key] !== undefined))
2121
}, [pageProps, keys])
2222

2323
return loaded ? children : fallback

packages/svelte/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@inertiajs/svelte",
3-
"version": "1.2.0",
3+
"version": "2.0.0-beta.1",
44
"license": "MIT",
55
"description": "The Svelte adapter for Inertia.js",
66
"contributors": [
@@ -43,7 +43,7 @@
4343
"svelte": "^4.0.0 || ^5.0.0 || ^5.0.0-next.244"
4444
},
4545
"dependencies": {
46-
"@inertiajs/core": "1.2.0",
46+
"@inertiajs/core": "2.0.0-beta.1",
4747
"html-escape": "^2.0.0",
4848
"lodash": "^4.5.0"
4949
},

packages/vue3/package.json

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,65 @@
11
{
2-
"name": "@inertiajs/vue3",
3-
"version": "1.2.0",
4-
"license": "MIT",
5-
"description": "The Vue 3 adapter for Inertia.js",
6-
"contributors": [
7-
"Jonathan Reinink <[email protected]>"
8-
],
9-
"homepage": "https://inertiajs.com/",
10-
"repository": {
11-
"type": "git",
12-
"url": "https://github.com/inertiajs/inertia.git",
13-
"directory": "packages/vue3"
2+
"name": "@inertiajs/vue3",
3+
"version": "2.0.0-beta.1",
4+
"license": "MIT",
5+
"description": "The Vue 3 adapter for Inertia.js",
6+
"contributors": [
7+
"Jonathan Reinink <[email protected]>"
8+
],
9+
"homepage": "https://inertiajs.com/",
10+
"repository": {
11+
"type": "git",
12+
"url": "https://github.com/inertiajs/inertia.git",
13+
"directory": "packages/vue3"
14+
},
15+
"bugs": {
16+
"url": "https://github.com/inertiajs/inertia/issues"
17+
},
18+
"files": [
19+
"dist",
20+
"types"
21+
],
22+
"type": "module",
23+
"main": "dist/index.js",
24+
"types": "types/index.d.ts",
25+
"exports": {
26+
".": {
27+
"types": "./types/index.d.ts",
28+
"import": "./dist/index.esm.js",
29+
"require": "./dist/index.js"
1430
},
15-
"bugs": {
16-
"url": "https://github.com/inertiajs/inertia/issues"
17-
},
18-
"files": [
19-
"dist",
20-
"types"
21-
],
22-
"type": "module",
23-
"main": "dist/index.js",
24-
"types": "types/index.d.ts",
25-
"exports": {
26-
".": {
27-
"types": "./types/index.d.ts",
28-
"import": "./dist/index.esm.js",
29-
"require": "./dist/index.js"
30-
},
31-
"./server": {
32-
"types": "./types/server.d.ts",
33-
"import": "./dist/server.esm.js",
34-
"require": "./dist/server.js"
35-
}
36-
},
37-
"typesVersions": {
38-
"*": {
39-
"server": [
40-
"types/server.d.ts"
41-
]
42-
}
43-
},
44-
"scripts": {
45-
"dev": "./build.js --watch",
46-
"build": "npm run clean && ./build.js && tsc --emitDeclarationOnly --skipLibCheck",
47-
"clean": "rm -rf types && rm -rf dist",
48-
"prepublishOnly": "npm run build"
49-
},
50-
"devDependencies": {
51-
"@playwright/test": "^1.46.1",
52-
"@types/node": "^22.5.3",
53-
"esbuild": "^0.16.13",
54-
"typescript": "^4.9.4",
55-
"vue": "^3.0.0"
56-
},
57-
"peerDependencies": {
58-
"vue": "^3.0.0"
59-
},
60-
"dependencies": {
61-
"@inertiajs/core": "1.2.0",
62-
"lodash.clonedeep": "^4.5.0",
63-
"lodash.isequal": "^4.5.0"
31+
"./server": {
32+
"types": "./types/server.d.ts",
33+
"import": "./dist/server.esm.js",
34+
"require": "./dist/server.js"
35+
}
36+
},
37+
"typesVersions": {
38+
"*": {
39+
"server": [
40+
"types/server.d.ts"
41+
]
6442
}
43+
},
44+
"scripts": {
45+
"dev": "./build.js --watch",
46+
"build": "npm run clean && ./build.js && tsc --emitDeclarationOnly --skipLibCheck",
47+
"clean": "rm -rf types && rm -rf dist",
48+
"prepublishOnly": "npm run build"
49+
},
50+
"devDependencies": {
51+
"@playwright/test": "^1.46.1",
52+
"@types/node": "^22.5.3",
53+
"esbuild": "^0.16.13",
54+
"typescript": "^4.9.4",
55+
"vue": "^3.0.0"
56+
},
57+
"peerDependencies": {
58+
"vue": "^3.0.0"
59+
},
60+
"dependencies": {
61+
"@inertiajs/core": "2.0.0-beta.1",
62+
"lodash.clonedeep": "^4.5.0",
63+
"lodash.isequal": "^4.5.0"
64+
}
6565
}

playgrounds/react/composer.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22
"name": "laravel/laravel",
33
"type": "project",
44
"description": "The Laravel Framework.",
5-
"keywords": ["framework", "laravel"],
5+
"keywords": [
6+
"framework",
7+
"laravel"
8+
],
69
"license": "MIT",
710
"require": {
811
"php": "^8.0.2",
912
"guzzlehttp/guzzle": "^7.2",
10-
"inertiajs/inertia-laravel": "^1.2",
11-
"laravel/framework": "^9.19",
12-
"laravel/sanctum": "^3.0",
13+
"inertiajs/inertia-laravel": "2.x-dev",
14+
"laravel/framework": "^10.0",
15+
"laravel/sanctum": "^3.2",
1316
"laravel/tinker": "^2.7"
1417
},
1518
"require-dev": {
@@ -19,7 +22,7 @@
1922
"mockery/mockery": "^1.4.4",
2023
"nunomaduro/collision": "^6.1",
2124
"phpunit/phpunit": "^9.5.10",
22-
"spatie/laravel-ignition": "^1.0"
25+
"spatie/laravel-ignition": "^2.0"
2326
},
2427
"autoload": {
2528
"psr-4": {

0 commit comments

Comments
 (0)