diff --git a/.changeset/fresh-podman-candidate.md b/.changeset/fresh-podman-candidate.md new file mode 100644 index 00000000..257864b2 --- /dev/null +++ b/.changeset/fresh-podman-candidate.md @@ -0,0 +1,9 @@ +--- +"@graphrefly/ts": minor +--- + +Add the independent rootless native Libpod API v0 PostgreSQL backend family and +its Node-local certifier. The certifier keeps socket discovery and resource +handles private and admits only the package-owned exact host profile after all +containment, network, secret, cancellation, cleanup, and zero-residue probes +succeed. diff --git a/.changeset/strict-core-package-floor.md b/.changeset/strict-core-package-floor.md new file mode 100644 index 00000000..ce5a9082 --- /dev/null +++ b/.changeset/strict-core-package-floor.md @@ -0,0 +1,9 @@ +--- +"@graphrefly/ts": minor +--- + +Enforce the strict zero-dependency package floor. Framework and third-party +runtime integrations move to `@graphrefly/react`, `@graphrefly/vue`, +`@graphrefly/solid`, `@graphrefly/svelte`, `@graphrefly/nestjs`, and +`@graphrefly/reactive-layout-node-canvas`; the core manifest no longer declares +dependencies, optional dependencies, or peer dependencies. diff --git a/README.md b/README.md index 6feedd06..03e35275 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ import { map, switchMap } from "@graphrefly/ts/operators"; import { fromPromise, timer } from "@graphrefly/ts/sources"; import { memoryKv } from "@graphrefly/ts/storage"; import { describeToMermaid } from "@graphrefly/ts/render"; -import { useNodeValue } from "@graphrefly/ts/adapters/react"; +import { useNodeValue } from "@graphrefly/react"; ``` Node-only and browser-only helpers are split: diff --git a/demos/compat-matrix/package.json b/demos/compat-matrix/package.json index 7b046188..280e2bd4 100644 --- a/demos/compat-matrix/package.json +++ b/demos/compat-matrix/package.json @@ -8,7 +8,11 @@ "preview": "astro preview" }, "dependencies": { + "@graphrefly/react": "^0.1.0", + "@graphrefly/solid": "^0.1.0", + "@graphrefly/svelte": "^0.1.0", "@graphrefly/ts": "workspace:*", + "@graphrefly/vue": "^0.1.0", "astro": "^5.16.0", "@astrojs/react": "^4.0.0", "@astrojs/vue": "^5.1.4", diff --git a/demos/compat-matrix/src/components/ReactDemo.tsx b/demos/compat-matrix/src/components/ReactDemo.tsx index 5e00d82c..50fd57c1 100644 --- a/demos/compat-matrix/src/components/ReactDemo.tsx +++ b/demos/compat-matrix/src/components/ReactDemo.tsx @@ -1,3 +1,8 @@ +import { + useNodeRecord, + useNodeInput as useStore, + useNodeValue as useSubscribe, +} from "@graphrefly/react"; import type { JotaiAtom, NanoAtom, @@ -5,11 +10,6 @@ import type { WritableNanoAtom, ZustandStoreApi, } from "@graphrefly/ts/adapters"; -import { - useNodeRecord, - useNodeInput as useStore, - useNodeValue as useSubscribe, -} from "@graphrefly/ts/adapters/react"; import type { Node } from "@graphrefly/ts/graph"; import { useCallback, useEffect, useRef, useState, useSyncExternalStore } from "react"; import { diff --git a/demos/compat-matrix/src/components/SolidDemo.tsx b/demos/compat-matrix/src/components/SolidDemo.tsx index 6eaf9d82..715be509 100644 --- a/demos/compat-matrix/src/components/SolidDemo.tsx +++ b/demos/compat-matrix/src/components/SolidDemo.tsx @@ -1,5 +1,10 @@ /** @jsxImportSource solid-js */ +import { + createNodeRecord, + createNodeInput as useStore, + createNodeValue as useSubscribe, +} from "@graphrefly/solid"; import type { JotaiAtom, NanoAtom, @@ -7,11 +12,6 @@ import type { WritableNanoAtom, ZustandStoreApi, } from "@graphrefly/ts/adapters"; -import { - createNodeRecord, - createNodeInput as useStore, - createNodeValue as useSubscribe, -} from "@graphrefly/ts/adapters/solid"; import type { Node } from "@graphrefly/ts/graph"; import { createEffect, createMemo, createSignal, onCleanup, onMount } from "solid-js"; import { diff --git a/demos/compat-matrix/src/components/SvelteDemo.svelte b/demos/compat-matrix/src/components/SvelteDemo.svelte index 40b51ec5..968979dc 100644 --- a/demos/compat-matrix/src/components/SvelteDemo.svelte +++ b/demos/compat-matrix/src/components/SvelteDemo.svelte @@ -3,7 +3,7 @@ import { nodeRecord, nodeWritable as useStore, nodeReadable as useSubscribe, -} from "@graphrefly/ts/adapters/svelte"; +} from "@graphrefly/svelte"; import type { Node } from "@graphrefly/ts/graph"; import { onMount } from "svelte"; import { readable, writable } from "svelte/store"; diff --git a/demos/compat-matrix/src/components/VueDemo.vue b/demos/compat-matrix/src/components/VueDemo.vue index 4feeed26..7928c8f7 100644 --- a/demos/compat-matrix/src/components/VueDemo.vue +++ b/demos/compat-matrix/src/components/VueDemo.vue @@ -6,12 +6,8 @@ import type { WritableNode, ZustandStoreApi, } from "@graphrefly/ts/adapters"; -import { - useNodeInput, - useNodeRecord, - useNodeValue as useSubscribe, -} from "@graphrefly/ts/adapters/vue"; import type { Node } from "@graphrefly/ts/graph"; +import { useNodeInput, useNodeRecord, useNodeValue as useSubscribe } from "@graphrefly/vue"; import { computed, onMounted, onUnmounted, ref, watch } from "vue"; import { counterGraph, diff --git a/demos/compat-matrix/src/lib/counter.ts b/demos/compat-matrix/src/lib/counter.ts index f14a0876..566dd2e8 100644 --- a/demos/compat-matrix/src/lib/counter.ts +++ b/demos/compat-matrix/src/lib/counter.ts @@ -128,7 +128,7 @@ export type FrameworkName = "react" | "vue" | "solid" | "svelte"; const GRAPHREFLY_BY_FRAMEWORK: Record = { react: `// GraphReFly direct node binding [React] import { graph } from "@graphrefly/ts/graph"; -import { useNodeInput, useNodeValue } from "@graphrefly/ts/adapters/react"; +import { useNodeInput, useNodeValue } from "@graphrefly/react"; const g = graph({ name: "counter" }); const count = g.state(0, { name: "count" }); @@ -149,7 +149,7 @@ function Counter() { vue: `