@graview/ship 0.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.
Files changed (87) hide show
  1. package/LICENSE +96 -0
  2. package/README.md +95 -0
  3. package/dist/browser-adapter.d.ts +84 -0
  4. package/dist/browser-adapter.d.ts.map +1 -0
  5. package/dist/browser-adapter.js +111 -0
  6. package/dist/browser-adapter.js.map +1 -0
  7. package/dist/browser.d.ts +26 -0
  8. package/dist/browser.d.ts.map +1 -0
  9. package/dist/browser.js +16 -0
  10. package/dist/browser.js.map +1 -0
  11. package/dist/cli.d.ts +48 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +170 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/dev.d.ts +148 -0
  16. package/dist/dev.d.ts.map +1 -0
  17. package/dist/dev.js +286 -0
  18. package/dist/dev.js.map +1 -0
  19. package/dist/door.d.ts +22 -0
  20. package/dist/door.d.ts.map +1 -0
  21. package/dist/door.js +43 -0
  22. package/dist/door.js.map +1 -0
  23. package/dist/export.d.ts +25 -0
  24. package/dist/export.d.ts.map +1 -0
  25. package/dist/export.js +30 -0
  26. package/dist/export.js.map +1 -0
  27. package/dist/file-adapter.d.ts +28 -0
  28. package/dist/file-adapter.d.ts.map +1 -0
  29. package/dist/file-adapter.js +50 -0
  30. package/dist/file-adapter.js.map +1 -0
  31. package/dist/health.d.ts +19 -0
  32. package/dist/health.d.ts.map +1 -0
  33. package/dist/health.js +16 -0
  34. package/dist/health.js.map +1 -0
  35. package/dist/index.d.ts +29 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +15 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/migrations.d.ts +31 -0
  40. package/dist/migrations.d.ts.map +1 -0
  41. package/dist/migrations.js +59 -0
  42. package/dist/migrations.js.map +1 -0
  43. package/dist/open-store.d.ts +57 -0
  44. package/dist/open-store.d.ts.map +1 -0
  45. package/dist/open-store.js +103 -0
  46. package/dist/open-store.js.map +1 -0
  47. package/dist/photos.d.ts +89 -0
  48. package/dist/photos.d.ts.map +1 -0
  49. package/dist/photos.js +102 -0
  50. package/dist/photos.js.map +1 -0
  51. package/dist/presence.d.ts +33 -0
  52. package/dist/presence.d.ts.map +1 -0
  53. package/dist/presence.js +99 -0
  54. package/dist/presence.js.map +1 -0
  55. package/dist/remote.d.ts +73 -0
  56. package/dist/remote.d.ts.map +1 -0
  57. package/dist/remote.js +271 -0
  58. package/dist/remote.js.map +1 -0
  59. package/dist/serve.d.ts +121 -0
  60. package/dist/serve.d.ts.map +1 -0
  61. package/dist/serve.js +249 -0
  62. package/dist/serve.js.map +1 -0
  63. package/dist/snapshot.d.ts +20 -0
  64. package/dist/snapshot.d.ts.map +1 -0
  65. package/dist/snapshot.js +41 -0
  66. package/dist/snapshot.js.map +1 -0
  67. package/dist/source-edit.d.ts +52 -0
  68. package/dist/source-edit.d.ts.map +1 -0
  69. package/dist/source-edit.js +455 -0
  70. package/dist/source-edit.js.map +1 -0
  71. package/dist/steps.d.ts +98 -0
  72. package/dist/steps.d.ts.map +1 -0
  73. package/dist/steps.js +189 -0
  74. package/dist/steps.js.map +1 -0
  75. package/dist/studio-door.d.ts +36 -0
  76. package/dist/studio-door.d.ts.map +1 -0
  77. package/dist/studio-door.js +102 -0
  78. package/dist/studio-door.js.map +1 -0
  79. package/dist/sync-seed.d.ts +61 -0
  80. package/dist/sync-seed.d.ts.map +1 -0
  81. package/dist/sync-seed.js +95 -0
  82. package/dist/sync-seed.js.map +1 -0
  83. package/dist/typecheck.d.ts +15 -0
  84. package/dist/typecheck.d.ts.map +1 -0
  85. package/dist/typecheck.js +59 -0
  86. package/dist/typecheck.js.map +1 -0
  87. package/package.json +75 -0
@@ -0,0 +1,95 @@
1
+ import { invert, normalise, writesOf, } from "@graview/core";
2
+ import { primitivesForSteps, sayStep } from "./steps.js";
3
+ const same = (a, b) => JSON.stringify(a) === JSON.stringify(b);
4
+ /**
5
+ * The steps that make `live` contain `seed`.
6
+ *
7
+ * Only the fields the seed SETS are compared: a record the live graph has
8
+ * given a field the seed never mentions keeps it. A record whose kind has
9
+ * changed is dropped and put again, because a kind is a record's identity
10
+ * to the schema and no patch can move it.
11
+ */
12
+ export function seedSteps(seed, live, options = {}) {
13
+ const steps = [];
14
+ const liveNodes = new Map(live.nodes.map((node) => [node.id, node]));
15
+ const seedNodes = new Map(seed.nodes.map((node) => [node.id, node]));
16
+ for (const wanted of seed.nodes) {
17
+ const have = liveNodes.get(wanted.id);
18
+ if (!have) {
19
+ steps.push({ what: "put-node", node: wanted });
20
+ continue;
21
+ }
22
+ if (have.kind !== wanted.kind) {
23
+ steps.push({ what: "drop-node", id: wanted.id }, { what: "put-node", node: wanted });
24
+ continue;
25
+ }
26
+ const fields = {};
27
+ for (const [key, value] of Object.entries(wanted)) {
28
+ if (key === "id" || key === "kind" || same(have[key], value))
29
+ continue;
30
+ fields[key] = value;
31
+ }
32
+ if (Object.keys(fields).length > 0)
33
+ steps.push({ what: "patch-node", id: wanted.id, fields });
34
+ }
35
+ for (const edge of seed.edges) {
36
+ if (live.edges.some((have) => have.kind === edge.kind && have.from === edge.from && have.to === edge.to))
37
+ continue;
38
+ steps.push({ what: "put-edge", edge });
39
+ }
40
+ if (options.prune) {
41
+ for (const edge of live.edges) {
42
+ if (seed.edges.some((want) => want.kind === edge.kind && want.from === edge.from && want.to === edge.to))
43
+ continue;
44
+ // An edge whose end is going goes with it; saying so twice is harmless and deduped.
45
+ steps.push({ what: "drop-edge", edge });
46
+ }
47
+ for (const node of live.nodes)
48
+ if (!seedNodes.has(node.id))
49
+ steps.push({ what: "drop-node", id: node.id });
50
+ }
51
+ return steps;
52
+ }
53
+ export const SEED_SYNC_AUTHOR = { kind: "system", id: "ship:sync-seed" };
54
+ /**
55
+ * Content steps as ONE OPERATION against a live graph: authored, stating
56
+ * what it did, carrying its inverse — the same shape a migration run
57
+ * appends, so the activity shows it, `undo` takes it back, and a host's
58
+ * adapter persists it like any other change. Null when the steps come to
59
+ * nothing against this graph, which is the honest answer to a second run.
60
+ */
61
+ export function contentOperation(steps, live, options = {}) {
62
+ const primitives = primitivesForSteps(steps, live).map(normalise);
63
+ if (primitives.length === 0)
64
+ return null;
65
+ const now = options.now ?? (() => new Date().toISOString());
66
+ const at = now();
67
+ const author = options.author ?? SEED_SYNC_AUTHOR;
68
+ return {
69
+ id: options.id ?? `sync:${at}`,
70
+ seq: -1,
71
+ batch: options.batch ?? `sync:${at}`,
72
+ author,
73
+ intent: options.intent ?? `seed sync: ${steps.map(sayStep).join("; ")}`,
74
+ mutation: null,
75
+ primitives,
76
+ inverse: [...primitives].reverse().map(invert),
77
+ reads: [],
78
+ writes: [...new Set(primitives.flatMap(writesOf))],
79
+ at,
80
+ };
81
+ }
82
+ /**
83
+ * Lands content steps on an open store. Through `receive`, so the op keeps
84
+ * its author and intent, the subscribers — persistence among them — hear
85
+ * it exactly as they hear a person's change, and `store.undo(op.batch)` is
86
+ * the way back. Returns what landed, or null when there was nothing to do.
87
+ */
88
+ export function applySteps(store, steps, options = {}) {
89
+ const op = contentOperation(steps, store.graph.snapshot(), options);
90
+ if (!op)
91
+ return null;
92
+ const [landed] = store.receive([op]);
93
+ return landed ?? null;
94
+ }
95
+ //# sourceMappingURL=sync-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-seed.js","sourceRoot":"","sources":["../src/sync-seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { StudioDoorDiagnostic } from "@graview/core";
2
+ import type * as TS from "typescript";
3
+ /**
4
+ * WOULD IT COMPILE — asked of the app as it would be, before anything is
5
+ * written. The app's own `tsconfig.json`, its own files, and the edited ones
6
+ * laid over them in memory; the answer is the compiler's own sentences,
7
+ * each at the file and line it is about.
8
+ *
9
+ * A declaration change the checker is happy with can still leave the code
10
+ * around it wrong — an act whose body adds an edge the kind no longer
11
+ * declares, a page that reads a field that is gone — and the only honest
12
+ * judge of that is the compiler the app already builds with.
13
+ */
14
+ export declare function typecheckWith(ts: typeof TS, root: string, overlay: ReadonlyMap<string, string>, limit?: number): readonly StudioDoorDiagnostic[];
15
+ //# sourceMappingURL=typecheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../src/typecheck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,KAAK,SAAK,GACT,SAAS,oBAAoB,EAAE,CA6CjC"}
@@ -0,0 +1,59 @@
1
+ import { resolve } from "node:path";
2
+ /**
3
+ * WOULD IT COMPILE — asked of the app as it would be, before anything is
4
+ * written. The app's own `tsconfig.json`, its own files, and the edited ones
5
+ * laid over them in memory; the answer is the compiler's own sentences,
6
+ * each at the file and line it is about.
7
+ *
8
+ * A declaration change the checker is happy with can still leave the code
9
+ * around it wrong — an act whose body adds an edge the kind no longer
10
+ * declares, a page that reads a field that is gone — and the only honest
11
+ * judge of that is the compiler the app already builds with.
12
+ */
13
+ export function typecheckWith(ts, root, overlay, limit = 20) {
14
+ const configPath = ts.findConfigFile(root, ts.sys.fileExists, "tsconfig.json");
15
+ if (!configPath)
16
+ return [{ path: "tsconfig.json", line: 0, message: `No tsconfig.json in ${root}, so nothing can say whether this compiles.` }];
17
+ const parsed = ts.getParsedCommandLineOfConfigFile(configPath, { noEmit: true }, {
18
+ ...ts.sys,
19
+ onUnRecoverableConfigFileDiagnostic: () => undefined,
20
+ });
21
+ if (!parsed)
22
+ return [{ path: "tsconfig.json", line: 0, message: "The app's tsconfig.json could not be read." }];
23
+ const options = {
24
+ ...parsed.options,
25
+ noEmit: true,
26
+ composite: false,
27
+ incremental: false,
28
+ declaration: false,
29
+ declarationMap: false,
30
+ emitDeclarationOnly: false,
31
+ };
32
+ const edited = new Map([...overlay].map(([path, text]) => [resolve(root, path), text]));
33
+ const host = ts.createCompilerHost(options);
34
+ const readFile = host.readFile.bind(host);
35
+ const fileExists = host.fileExists.bind(host);
36
+ const getSourceFile = host.getSourceFile.bind(host);
37
+ host.readFile = (file) => edited.get(resolve(file)) ?? readFile(file);
38
+ host.fileExists = (file) => edited.has(resolve(file)) || fileExists(file);
39
+ host.getSourceFile = (file, language, onError, fresh) => {
40
+ const text = edited.get(resolve(file));
41
+ return text === undefined ? getSourceFile(file, language, onError, fresh) : ts.createSourceFile(file, text, language, true);
42
+ };
43
+ const program = ts.createProgram({
44
+ rootNames: parsed.fileNames,
45
+ options,
46
+ host,
47
+ ...(parsed.projectReferences ? { projectReferences: parsed.projectReferences } : {}),
48
+ });
49
+ return ts
50
+ .getPreEmitDiagnostics(program)
51
+ .filter((diagnostic) => diagnostic.category === ts.DiagnosticCategory.Error)
52
+ .slice(0, limit)
53
+ .map((diagnostic) => ({
54
+ path: diagnostic.file ? diagnostic.file.fileName.replace(`${resolve(root)}/`, "") : "the project",
55
+ line: diagnostic.file && diagnostic.start !== undefined ? diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start).line + 1 : 0,
56
+ message: ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"),
57
+ }));
58
+ }
59
+ //# sourceMappingURL=typecheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../src/typecheck.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@graview/ship",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./browser": {
13
+ "types": "./dist/browser.d.ts",
14
+ "default": "./dist/browser.js"
15
+ },
16
+ "./dev": {
17
+ "types": "./dist/dev.d.ts",
18
+ "default": "./dist/dev.js"
19
+ },
20
+ "./cli": {
21
+ "types": "./dist/cli.d.ts",
22
+ "default": "./dist/cli.js"
23
+ }
24
+ },
25
+ "dependencies": {
26
+ "@graview/core": "0.1.0"
27
+ },
28
+ "devDependencies": {
29
+ "zod": "^4.4.3"
30
+ },
31
+ "description": "What every deployment needs, hosted or self-hosted: persistence wiring, op-log-native migrations, export, health.",
32
+ "keywords": [
33
+ "graview",
34
+ "context-graph",
35
+ "typed-graph",
36
+ "interface",
37
+ "declarative",
38
+ "persistence",
39
+ "migrations",
40
+ "sqlite",
41
+ "server"
42
+ ],
43
+ "files": [
44
+ "dist",
45
+ "README.md"
46
+ ],
47
+ "sideEffects": false,
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "git+https://github.com/en-dash-consulting/graview.git",
51
+ "directory": "packages/ship"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public"
55
+ },
56
+ "peerDependencies": {
57
+ "typescript": ">=5"
58
+ },
59
+ "peerDependenciesMeta": {
60
+ "typescript": {
61
+ "optional": true
62
+ }
63
+ },
64
+ "license": "Elastic-2.0",
65
+ "homepage": "https://graview.dev/docs/packages/ship.html",
66
+ "bugs": {
67
+ "url": "https://github.com/en-dash-consulting/graview/issues"
68
+ },
69
+ "engines": {
70
+ "node": ">=22"
71
+ },
72
+ "scripts": {
73
+ "build": "tsc -b"
74
+ }
75
+ }