diff --git a/package-lock.json b/package-lock.json index 2021513..eef013f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,11 @@ "version": "0.0.0", "dependencies": { "@globaltypesystem/gts-ts": "^0.4.0", - "lucide-react": "^0.554.0", - "react": "^19.2.3", - "react-dom": "^19.2.0", + "lucide-react": "^0.562.0", + "react": "19.2.3", + "react-dom": "19.2.3", "react-icons": "^5.7.0", - "react-router-dom": "^7.9.6" + "react-router-dom": "^7.11.0" }, "devDependencies": { "@types/node": "^22.14.0", @@ -1926,9 +1926,9 @@ } }, "node_modules/lucide-react": { - "version": "0.554.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.554.0.tgz", - "integrity": "sha512-St+z29uthEJVx0Is7ellNkgTEhaeSoA42I7JjOCBCrc5X6LYMGSv0P/2uS5HDLTExP5tpiqRD2PyUEOS6s9UXA==", + "version": "0.562.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz", + "integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==", "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -2110,15 +2110,15 @@ } }, "node_modules/react-dom": { - "version": "19.2.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.1.tgz", - "integrity": "sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.1" + "react": "^19.2.3" } }, "node_modules/react-icons": { @@ -2141,9 +2141,9 @@ } }, "node_modules/react-router": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.6.tgz", - "integrity": "sha512-Y1tUp8clYRXpfPITyuifmSoE2vncSME18uVLgaqyxh9H35JWpIfzHo+9y3Fzh5odk/jxPW29IgLgzcdwxGqyNA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.3.tgz", + "integrity": "sha512-gyXgtdr5uACJ5b1Q4udzjVV+tb/rlHIMJKuJ0e89R4Kzgz47z/rgP0dIKxktqIEUhDHluGTPJJH/wRha7CyqsA==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", @@ -2163,12 +2163,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.9.6.tgz", - "integrity": "sha512-2MkC2XSXq6HjGcihnx1s0DBWQETI4mlis4Ux7YTLvP67xnGxCvq+BcCQSO81qQHVUTM1V53tl4iVVaY5sReCOA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.3.tgz", + "integrity": "sha512-ytVbyBBM7vMfRCam25r0WMhSVSom909A8p+8m0/f1w853dz/xfFu6etAT2SEbVoSnI+ZoPRDqIsQXVT89gp7kg==", "license": "MIT", "dependencies": { - "react-router": "7.9.6" + "react-router": "7.18.3" }, "engines": { "node": ">=20.0.0" diff --git a/package.json b/package.json index ebf89b7..756796d 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,11 @@ }, "dependencies": { "@globaltypesystem/gts-ts": "^0.4.0", - "lucide-react": "^0.554.0", - "react": "^19.2.3", - "react-dom": "^19.2.0", + "lucide-react": "^0.562.0", + "react": "19.2.3", + "react-dom": "19.2.3", "react-icons": "^5.7.0", - "react-router-dom": "^7.9.6" + "react-router-dom": "^7.11.0" }, "devDependencies": { "@types/node": "^22.14.0", diff --git a/pages/Landing.tsx b/pages/Landing.tsx index e655026..5689c37 100644 --- a/pages/Landing.tsx +++ b/pages/Landing.tsx @@ -199,21 +199,21 @@ export const Landing: React.FC = () => { data schemas and instances across teams, vendors, and runtimes.
Built for CTOs, architects, and engineering leaders.
@@ -336,10 +336,10 @@ export const Landing: React.FC = () => {
className='container space-y-6 py-8 md:py-12 lg:py-24 mx-auto px-4 border-t border-slate-100 dark:border-slate-900'
>
Every identifier encodes vendor, package, namespace, type, and @@ -357,37 +357,15 @@ export const Landing: React.FC = () => {
- GTS Type Schemas are standard JSON Schema documents with{' '}
-
- x-gts-*
- {' '}
- extensions. Standard JSON Schema tooling can process the schema
- body, while GTS-aware tooling enforces the additional registry
- rules. YAML and TypeSpec sources may compile to the canonical form.
-
Major and optional minor versions are part of the identifier. @@ -398,15 +376,15 @@ export const Landing: React.FC = () => {
The vendor-qualified structure prevents naming collisions @@ -416,7 +394,28 @@ export const Landing: React.FC = () => {
+ Build RBAC/ABAC policies with wildcard patterns like{' '}
+
+ gts.vendor.pkg.*
+
+ . Authorize entire type families or filter by attribute
+ predicates — no explicit allowlists to maintain.
+
- Derive compatible types from platform base schemas. Store base
- fields in indexed columns and vendor extensions in JSON/JSONB
- — no DDL migrations, full API compatibility preserved.
+ Derive vendor-specific types from platform base types while
+ preserving API compatibility, e.g. by defining some data or payload property schema. Store common fields in indexed
+ columns, extensions in JSON/JSONB — no DDL migrations needed,
+ full type safety maintained across the inheritance chain.
- Build RBAC/ABAC policies with wildcard patterns like{' '}
-
- gts.vendor.pkg.*
-
- . Authorize entire type families or filter by attribute
- predicates — no explicit allowlists to maintain.
+ A JSON Schema defines the shape of data but not how to
+ process it. GTS adds{' '}
+
+ x-gts-traits
+ {' '}
+ — type-level metadata such as retention policies, PII-masking
+ directives, indexing hints, and stream/topic associations.
+ Traits are inherited along the type chain, so platform-wide
+ defaults propagate automatically to every derived type.