@scrolled/nav-graph 0.1.0 → 0.1.1-dev.3bb0204
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 +38 -24
- package/dist/compile/compileGraph.d.ts.map +1 -1
- package/dist/compile/compileGraph.js +23 -0
- package/dist/compile/compileGraph.js.map +1 -1
- package/dist/dsl/builder.d.ts +41 -8
- package/dist/dsl/builder.d.ts.map +1 -1
- package/dist/dsl/builder.js +26 -4
- package/dist/dsl/builder.js.map +1 -1
- package/dist/dsl/index.d.ts +1 -1
- package/dist/dsl/index.d.ts.map +1 -1
- package/dist/dsl/index.js.map +1 -1
- package/dist/graphs/starter/index.d.ts.map +1 -1
- package/dist/graphs/starter/index.js +14 -5
- package/dist/graphs/starter/index.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ir/schema.d.ts +103 -19
- package/dist/ir/schema.d.ts.map +1 -1
- package/dist/ir/schema.js +16 -2
- package/dist/ir/schema.js.map +1 -1
- package/dist/ir/types.d.ts +27 -3
- package/dist/ir/types.d.ts.map +1 -1
- package/dist/ir/types.js +10 -1
- package/dist/ir/types.js.map +1 -1
- package/dist/path/findPath.d.ts +33 -0
- package/dist/path/findPath.d.ts.map +1 -1
- package/dist/path/findPath.js +135 -27
- package/dist/path/findPath.js.map +1 -1
- package/dist/path/index.d.ts +2 -2
- package/dist/path/index.d.ts.map +1 -1
- package/dist/path/index.js +1 -1
- package/dist/path/index.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -10,16 +10,21 @@ the design.
|
|
|
10
10
|
(`src/ir/`). Branded `NodeId` / `GroupId`, the `TravelEdge` and `Requirement`
|
|
11
11
|
unions, and a Zod schema that mirrors them.
|
|
12
12
|
- **DSL** — `defineGraph(...)`, region scopes, and the verb methods (`walk`,
|
|
13
|
-
`portalTo`, `npcTo`, `itemTo`, `skillTo`) authors call on node
|
|
14
|
-
(`src/dsl/`).
|
|
15
|
-
|
|
13
|
+
`transportTo`, `portalTo`, `npcTo`, `itemTo`, `skillTo`) authors call on node
|
|
14
|
+
handles (`src/dsl/`). `walk` and `transportTo` accept a `seconds` travel time;
|
|
15
|
+
`transportTo` models a boarded conveyance (boat/train/carpet) that is instant
|
|
16
|
+
with fast travel and costs its ride time without it. The requirement
|
|
17
|
+
constructors (`meso`, `item`, `quest`, `level`) live here too. The DSL emits
|
|
18
|
+
`NavGraphSource` — nothing more.
|
|
16
19
|
- **Compiler** — `compileGraph(source)` validates the source with Zod, runs the
|
|
17
20
|
pre-merge duplicate pass, expands bidirectional edges, and freezes adjacency
|
|
18
21
|
into a runtime `NavGraph` (`src/compile/`).
|
|
19
|
-
- **Pathfinding** — `findPath(graph, from, to, opts?)` is
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
- **Pathfinding** — `findPath(graph, from, to, opts?)` is a least-time Dijkstra:
|
|
23
|
+
`walk` and `transport` edges cost their `seconds` (or a method default), every
|
|
24
|
+
other method is instant, and `opts.fastTravel` waives `transport` time so
|
|
25
|
+
routes prefer boats over long walks. Supports optional per-edge eligibility
|
|
26
|
+
filtering; when filtering disconnects the destination it returns the best
|
|
27
|
+
unfiltered path with blocking step indices flagged (`src/path/`).
|
|
23
28
|
- **JSON** — `toJSON(graph)` serializes a compiled graph to the portability
|
|
24
29
|
shape (`src/json/`); `vite-node src/cli/export.ts` runs it from the command
|
|
25
30
|
line.
|
|
@@ -52,25 +57,34 @@ against the trust relationship npm has on file for this package + workflow.
|
|
|
52
57
|
That's it — npm will accept publishes only from this workflow file in this
|
|
53
58
|
repo. No long-lived credentials live anywhere.
|
|
54
59
|
|
|
55
|
-
**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
**Release flow (pre-1.0 — fast iteration).** The
|
|
61
|
+
[publish workflow](../../.github/workflows/nav-graph-publish.yml) runs on
|
|
62
|
+
every push to `main` that touches `packages/nav-graph/**` and picks a mode
|
|
63
|
+
based on whether `package.json`'s version is already on npm:
|
|
64
|
+
|
|
65
|
+
| `package.json` version | What ships | npm dist-tag | Pull with |
|
|
66
|
+
|---|---|---|---|
|
|
67
|
+
| Not yet on npm (you bumped) | The version as-is | `latest` | `npm i @scrolled/nav-graph` |
|
|
68
|
+
| Already on npm (unchanged) | `<version>-dev.<sha7>` | `dev` | `npm i @scrolled/nav-graph@dev` |
|
|
69
|
+
|
|
70
|
+
So the day-to-day loop is just: edit code, commit, push. Each push gets a
|
|
71
|
+
unique `0.1.0-dev.<sha7>` build under the `dev` tag — pullable immediately,
|
|
72
|
+
pinnable by full version, never overwritten. When you're ready to cut a
|
|
73
|
+
stable release, bump the version in `package.json` to a value that isn't on
|
|
74
|
+
npm yet, push, and that publishes to `latest`.
|
|
75
|
+
|
|
76
|
+
Either mode runs typecheck + tests + `tsc` build, then `npm publish
|
|
77
|
+
--provenance`. The OIDC handshake happens inside the npm CLI; the tarball
|
|
78
|
+
gets a Sigstore-signed provenance attestation that shows on the package
|
|
79
|
+
page.
|
|
68
80
|
|
|
69
81
|
**Dry-run a build without publishing:** trigger the workflow manually from
|
|
70
82
|
the Actions tab with `dry_run: true`. It uploads the packed tarball as an
|
|
71
|
-
artifact so you can inspect it.
|
|
83
|
+
artifact so you can inspect it before flipping the toggle off.
|
|
72
84
|
|
|
73
85
|
The published tarball contains only `dist/` (compiled JS + .d.ts +
|
|
74
|
-
sourcemaps), `LICENSE`, and `README.md`. `
|
|
75
|
-
|
|
76
|
-
inside this monorepo
|
|
86
|
+
sourcemaps), `LICENSE`, and `README.md`. `main`/`types`/`exports` in
|
|
87
|
+
`package.json` point directly at `dist/`; running tests or the export CLI
|
|
88
|
+
inside this monorepo works without consulting the exports field (Vitest and
|
|
89
|
+
the CLI use relative imports), so the dist-only exports don't get in the way
|
|
90
|
+
of source-tree dev.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileGraph.d.ts","sourceRoot":"","sources":["../../src/compile/compileGraph.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,MAAM,EACN,UAAU,EACX,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;CAChE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"compileGraph.d.ts","sourceRoot":"","sources":["../../src/compile/compileGraph.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,MAAM,EACN,UAAU,EACX,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;CAChE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAe7D"}
|
|
@@ -14,6 +14,7 @@ export function compileGraph(source) {
|
|
|
14
14
|
validateNodes(parsed.nodes);
|
|
15
15
|
validateGroups(parsed);
|
|
16
16
|
validateEdgeEndpoints(parsed);
|
|
17
|
+
validateNearestTowns(parsed);
|
|
17
18
|
const nodes = new Map(parsed.nodes.map((n) => [n.id, n]));
|
|
18
19
|
const groups = new Map((parsed.groups ?? []).map((g) => [g.id, g]));
|
|
19
20
|
const adjacency = buildAdjacency(parsed.nodes, parsed.edges);
|
|
@@ -71,6 +72,14 @@ function validateEdgeEndpoints(source) {
|
|
|
71
72
|
throw new Error(`Edge endpoint(s) reference undeclared nodes: ${[...missing].join(', ')}.`);
|
|
72
73
|
}
|
|
73
74
|
}
|
|
75
|
+
function validateNearestTowns(source) {
|
|
76
|
+
const known = new Set(source.nodes.map((n) => n.id));
|
|
77
|
+
for (const node of source.nodes) {
|
|
78
|
+
if (node.nearestTown && !known.has(node.nearestTown)) {
|
|
79
|
+
throw new Error(`Node "${node.id}" has nearestTown "${node.nearestTown}", which is not a declared node.`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
74
83
|
function buildAdjacency(nodes, edges) {
|
|
75
84
|
const adj = new Map();
|
|
76
85
|
for (const node of nodes)
|
|
@@ -85,6 +94,20 @@ function buildAdjacency(nodes, edges) {
|
|
|
85
94
|
adj.get(edge.to).push({ ...edge, from: edge.to, to: edge.from });
|
|
86
95
|
}
|
|
87
96
|
}
|
|
97
|
+
// Synthesize a one-way "return scroll" edge from each node to its nearest
|
|
98
|
+
// town. These live only in the adjacency (not source.edges), so they don't
|
|
99
|
+
// clutter the rendered graph; pathfinding gates them behind the traveller's
|
|
100
|
+
// nearestTownScroll option. Self-targets (the default) yield no edge.
|
|
101
|
+
for (const node of nodes) {
|
|
102
|
+
if (!node.nearestTown || node.nearestTown === node.id)
|
|
103
|
+
continue;
|
|
104
|
+
adj.get(node.id).push({
|
|
105
|
+
from: node.id,
|
|
106
|
+
to: node.nearestTown,
|
|
107
|
+
method: 'scroll',
|
|
108
|
+
via: 'Return to nearest town',
|
|
109
|
+
});
|
|
110
|
+
}
|
|
88
111
|
for (const [id, list] of adj)
|
|
89
112
|
adj.set(id, Object.freeze(list));
|
|
90
113
|
return adj;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileGraph.js","sourceRoot":"","sources":["../../src/compile/compileGraph.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,oBAAoB;AACpB,8EAA8E;AAC9E,kFAAkF;AAClF,0EAA0E;AAC1E,+EAA+E;AAC/E,kBAAkB;AAClB,kEAAkE;AAClE,0DAA0D;AAU1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAepD,MAAM,UAAU,YAAY,CAAC,MAAsB;IACjD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElD,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,qBAAqB,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"compileGraph.js","sourceRoot":"","sources":["../../src/compile/compileGraph.ts"],"names":[],"mappings":"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"}
|
package/dist/dsl/builder.d.ts
CHANGED
|
@@ -14,24 +14,57 @@ export interface EdgeOpts {
|
|
|
14
14
|
* - npcTo / itemTo / skillTo default directed → set true for paired transit.
|
|
15
15
|
*/
|
|
16
16
|
both?: boolean;
|
|
17
|
-
/** Reserved for the future weighted-cost model. */
|
|
18
|
-
weight?: number;
|
|
19
17
|
notes?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Hide this edge from the default map (pathfinding is unaffected; it still
|
|
20
|
+
* draws when it's on the computed route). For noisy or rarely-taken links.
|
|
21
|
+
*/
|
|
22
|
+
minor?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Options for a timed edge. Only `walk` and `transport` (boats/trains/carpets)
|
|
26
|
+
* take time, so `seconds` lives here and not on the base `EdgeOpts` — portal /
|
|
27
|
+
* npc / item / skill transitions are instant and the type system rejects a
|
|
28
|
+
* `seconds` on them.
|
|
29
|
+
*/
|
|
30
|
+
export interface TimedEdgeOpts extends EdgeOpts {
|
|
31
|
+
/**
|
|
32
|
+
* Estimated travel time, in seconds. On a `transport` edge this is the ride
|
|
33
|
+
* time when the traveller has no fast-travel ticket; with fast travel the ride
|
|
34
|
+
* is instant (see `findPath`). Drives weighted routing.
|
|
35
|
+
*/
|
|
36
|
+
seconds?: number;
|
|
20
37
|
}
|
|
21
38
|
export interface NodeHandle {
|
|
22
39
|
readonly id: NodeId;
|
|
23
|
-
walk(other: NodeHandle, opts?:
|
|
40
|
+
walk(other: NodeHandle, opts?: TimedEdgeOpts): void;
|
|
41
|
+
/**
|
|
42
|
+
* A boarded conveyance — boat, train, magic carpet. Bidirectional by default
|
|
43
|
+
* (vehicles round-trip). Takes `seconds` unless the route is found with fast
|
|
44
|
+
* travel, which makes every transport hop instant.
|
|
45
|
+
*/
|
|
46
|
+
transportTo(other: NodeHandle, opts?: TimedEdgeOpts): void;
|
|
24
47
|
portalTo(other: NodeHandle, opts?: EdgeOpts): void;
|
|
25
48
|
npcTo(other: NodeHandle, opts?: EdgeOpts): void;
|
|
26
49
|
itemTo(other: NodeHandle, opts?: EdgeOpts): void;
|
|
27
50
|
skillTo(other: NodeHandle, opts?: EdgeOpts): void;
|
|
28
|
-
/** Escape hatch when none of the named verbs fit. */
|
|
29
|
-
edgeTo(other: NodeHandle, method: TravelMethod, opts?:
|
|
51
|
+
/** Escape hatch when none of the named verbs fit. `seconds` applies only if method is 'walk' or 'transport'. */
|
|
52
|
+
edgeTo(other: NodeHandle, method: TravelMethod, opts?: TimedEdgeOpts): void;
|
|
53
|
+
}
|
|
54
|
+
export interface NodeOpts {
|
|
55
|
+
group?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Where a "return to nearest town" scroll sends you from this node. Defaults
|
|
58
|
+
* to the node itself (scroll is a no-op); set it when the scroll routes
|
|
59
|
+
* elsewhere, e.g. a dungeon whose scroll drops you at its hub town. Pass the
|
|
60
|
+
* town's `NodeHandle` (its id is inferred) or its id string as a fallback —
|
|
61
|
+
* handy for forward references. Resolved at build(); the target need not be
|
|
62
|
+
* declared yet.
|
|
63
|
+
*/
|
|
64
|
+
nearestTown?: NodeHandle | string;
|
|
30
65
|
}
|
|
31
66
|
export interface RegionScope {
|
|
32
|
-
node(id: string, name: string, opts?:
|
|
33
|
-
group?: string;
|
|
34
|
-
}): NodeHandle;
|
|
67
|
+
node(id: string, name: string, opts?: NodeOpts): NodeHandle;
|
|
35
68
|
region(id: string, name: string, fn: (r: RegionScope) => void): void;
|
|
36
69
|
}
|
|
37
70
|
export interface GraphBuilder extends RegionScope {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/dsl/builder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,UAAU,EAGV,cAAc,EACd,MAAM,EACN,WAAW,EAEX,YAAY,EACb,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,oEAAoE;IACpE,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/dsl/builder.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,UAAU,EAGV,cAAc,EACd,MAAM,EACN,WAAW,EAEX,YAAY,EACb,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,sEAAsE;IACtE,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,oEAAoE;IACpE,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACpD;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnD,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAClD,gHAAgH;IAChH,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,gFAAgF;IAChF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5B,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AA8ND,wBAAgB,WAAW,CACzB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,EAC3B,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,GAC5B,cAAc,CAIhB"}
|
package/dist/dsl/builder.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { asGroupId, asNodeId } from '../ir/types';
|
|
10
10
|
const VERB_DEFAULTS = {
|
|
11
11
|
walk: { method: 'walk', defaultBidirectional: true },
|
|
12
|
+
transportTo: { method: 'transport', defaultBidirectional: true },
|
|
12
13
|
portalTo: { method: 'portal', defaultBidirectional: true },
|
|
13
14
|
npcTo: { method: 'npc', defaultBidirectional: false },
|
|
14
15
|
itemTo: { method: 'item', defaultBidirectional: false },
|
|
@@ -36,8 +37,18 @@ class Builder {
|
|
|
36
37
|
const group = opts?.group
|
|
37
38
|
? asGroupId(opts.group)
|
|
38
39
|
: (this.groupStack[this.groupStack.length - 1] ?? undefined);
|
|
40
|
+
const nearestTown = opts?.nearestTown === undefined
|
|
41
|
+
? undefined
|
|
42
|
+
: typeof opts.nearestTown === 'string'
|
|
43
|
+
? asNodeId(opts.nearestTown)
|
|
44
|
+
: opts.nearestTown.id;
|
|
39
45
|
const decl = {
|
|
40
|
-
node: {
|
|
46
|
+
node: {
|
|
47
|
+
id: nodeId,
|
|
48
|
+
name,
|
|
49
|
+
...(group ? { group } : {}),
|
|
50
|
+
...(nearestTown ? { nearestTown } : {}),
|
|
51
|
+
},
|
|
41
52
|
declarationIndex: this.nodeDecls.length,
|
|
42
53
|
};
|
|
43
54
|
this.nodeDecls.push(decl);
|
|
@@ -72,6 +83,7 @@ class Builder {
|
|
|
72
83
|
this.validateNodes();
|
|
73
84
|
this.validateGroupRefs();
|
|
74
85
|
this.validateEdgeEndpoints();
|
|
86
|
+
this.validateNearestTowns();
|
|
75
87
|
const groups = [...this.groups.values()];
|
|
76
88
|
return {
|
|
77
89
|
profileId: this.profileId,
|
|
@@ -86,8 +98,9 @@ class Builder {
|
|
|
86
98
|
id,
|
|
87
99
|
edgeTo: (other, method, opts) => this.pushEdge(id, other.id, { ...opts, method, defaultBidirectional: false }),
|
|
88
100
|
// The named verbs are populated below — keeps the type explicit while
|
|
89
|
-
// avoiding
|
|
101
|
+
// avoiding six near-identical method bodies.
|
|
90
102
|
walk: () => undefined,
|
|
103
|
+
transportTo: () => undefined,
|
|
91
104
|
portalTo: () => undefined,
|
|
92
105
|
npcTo: () => undefined,
|
|
93
106
|
itemTo: () => undefined,
|
|
@@ -99,7 +112,7 @@ class Builder {
|
|
|
99
112
|
return handle;
|
|
100
113
|
}
|
|
101
114
|
pushEdge(from, to, opts) {
|
|
102
|
-
const { method, defaultBidirectional, both, cost, require, ref, via,
|
|
115
|
+
const { method, defaultBidirectional, both, cost, require, ref, via, seconds, notes, minor } = opts;
|
|
103
116
|
const requirements = mergeRequirements(cost, require);
|
|
104
117
|
const bidirectional = both ?? defaultBidirectional;
|
|
105
118
|
const edge = {
|
|
@@ -110,8 +123,9 @@ class Builder {
|
|
|
110
123
|
...(via !== undefined ? { via } : {}),
|
|
111
124
|
...(ref ? { refs: ref } : {}),
|
|
112
125
|
...(requirements ? { requirements } : {}),
|
|
113
|
-
...(
|
|
126
|
+
...(seconds !== undefined ? { seconds } : {}),
|
|
114
127
|
...(notes !== undefined ? { notes } : {}),
|
|
128
|
+
...(minor ? { minor: true } : {}),
|
|
115
129
|
};
|
|
116
130
|
this.edges.push(edge);
|
|
117
131
|
}
|
|
@@ -158,6 +172,14 @@ class Builder {
|
|
|
158
172
|
`Either declare the node with g.node(...) or remove the edge.`);
|
|
159
173
|
}
|
|
160
174
|
}
|
|
175
|
+
validateNearestTowns() {
|
|
176
|
+
const declared = new Set(this.nodeDecls.map((d) => d.node.id));
|
|
177
|
+
for (const { node } of this.nodeDecls) {
|
|
178
|
+
if (node.nearestTown && !declared.has(node.nearestTown)) {
|
|
179
|
+
throw new Error(`Node "${node.id}" has nearestTown "${node.nearestTown}", which is not a declared node.`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
161
183
|
}
|
|
162
184
|
function mergeRequirements(cost, require) {
|
|
163
185
|
if (!cost && !require)
|
package/dist/dsl/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/dsl/builder.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gFAAgF;AAChF,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,yEAAyE;AACzE,4EAA4E;AAC5E,oEAAoE;AAapE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/dsl/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/dsl/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { defineGraph } from './builder';
|
|
2
|
-
export type { EdgeOpts, GraphBuilder, NodeHandle, RegionScope } from './builder';
|
|
2
|
+
export type { EdgeOpts, GraphBuilder, NodeHandle, NodeOpts, RegionScope, TimedEdgeOpts, } from './builder';
|
|
3
3
|
export { item, level, meso, quest } from './requirements';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/dsl/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dsl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dsl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/dsl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dsl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dsl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AASxC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphs/starter/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphs/starter/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,YAAY,EAAE,cAkE1B,CAAC"}
|
|
@@ -7,8 +7,8 @@ export const starterGraph = defineGraph({ profileId: 'starter-demo' }, (g) => {
|
|
|
7
7
|
const riverside = r.node('riverside', 'Riverside');
|
|
8
8
|
const meadow = r.node('meadow', 'Meadow Crossing');
|
|
9
9
|
const oldFort = r.node('old-fort', 'Old Fort');
|
|
10
|
-
riverside.walk(meadow);
|
|
11
|
-
meadow.walk(oldFort);
|
|
10
|
+
riverside.walk(meadow, { seconds: 90 });
|
|
11
|
+
meadow.walk(oldFort, { seconds: 120 });
|
|
12
12
|
riverside.npcTo(oldFort, {
|
|
13
13
|
via: 'Hire the wagon driver at the inn',
|
|
14
14
|
cost: meso(500),
|
|
@@ -18,8 +18,10 @@ export const starterGraph = defineGraph({ profileId: 'starter-demo' }, (g) => {
|
|
|
18
18
|
});
|
|
19
19
|
g.region('coast', 'Eastern Coast', (r) => {
|
|
20
20
|
const harbour = r.node('harbour', 'Harbour Town');
|
|
21
|
-
const lighthouse = r.node('lighthouse', 'Lighthouse Point'
|
|
22
|
-
|
|
21
|
+
const lighthouse = r.node('lighthouse', 'Lighthouse Point', {
|
|
22
|
+
nearestTown: harbour,
|
|
23
|
+
});
|
|
24
|
+
harbour.walk(lighthouse, { seconds: 150 });
|
|
23
25
|
harbour.skillTo(lighthouse, {
|
|
24
26
|
via: 'Use the bridge-keeper teleport',
|
|
25
27
|
cost: meso(100),
|
|
@@ -27,8 +29,9 @@ export const starterGraph = defineGraph({ profileId: 'starter-demo' }, (g) => {
|
|
|
27
29
|
});
|
|
28
30
|
g.region('mountain', 'Mountain Pass', (r) => {
|
|
29
31
|
const trailhead = r.node('trailhead', 'Trailhead');
|
|
30
|
-
const summit = r.node('summit', 'Summit Shrine');
|
|
32
|
+
const summit = r.node('summit', 'Summit Shrine', { nearestTown: 'riverside' });
|
|
31
33
|
trailhead.walk(summit, {
|
|
34
|
+
seconds: 300,
|
|
32
35
|
require: [level(20)],
|
|
33
36
|
notes: 'Steep climb — recommended past level 20.',
|
|
34
37
|
});
|
|
@@ -50,5 +53,11 @@ export const starterGraph = defineGraph({ profileId: 'starter-demo' }, (g) => {
|
|
|
50
53
|
require: [quest(7_001)],
|
|
51
54
|
ref: { questId: 7_001 },
|
|
52
55
|
});
|
|
56
|
+
g.ref('harbour').transportTo(g.ref('summit'), {
|
|
57
|
+
via: 'Board the summit ferry',
|
|
58
|
+
seconds: 480,
|
|
59
|
+
notes: 'A long ride — instant with a fast-travel ticket.',
|
|
60
|
+
minor: true,
|
|
61
|
+
});
|
|
53
62
|
});
|
|
54
63
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graphs/starter/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,yEAAyE;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGlE,MAAM,CAAC,MAAM,YAAY,GAAmB,WAAW,CACrD,EAAE,SAAS,EAAE,cAAc,EAAE,EAC7B,CAAC,CAAC,EAAE,EAAE;IACJ,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE/C,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graphs/starter/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,13 +2,13 @@ export type { AreaNode, EntityRefs, GroupDef, GroupId, NavGraphSource, NodeId, R
|
|
|
2
2
|
export { TRAVEL_METHODS, asGroupId, asNodeId } from './ir/types';
|
|
3
3
|
export { navGraphSourceSchema } from './ir/schema';
|
|
4
4
|
export { defineGraph } from './dsl/builder';
|
|
5
|
-
export type { EdgeOpts, GraphBuilder, NodeHandle, RegionScope, } from './dsl/builder';
|
|
5
|
+
export type { EdgeOpts, GraphBuilder, NodeHandle, NodeOpts, RegionScope, TimedEdgeOpts, } from './dsl/builder';
|
|
6
6
|
export { item, level, meso, quest } from './dsl/requirements';
|
|
7
7
|
export { compileGraph } from './compile/compileGraph';
|
|
8
8
|
export type { NavGraph } from './compile/compileGraph';
|
|
9
|
-
export { findPath } from './path/findPath';
|
|
9
|
+
export { DEFAULT_TRANSPORT_SECONDS, DEFAULT_WALK_SECONDS, edgeSeconds, findPath, } from './path/findPath';
|
|
10
10
|
export { eligibilityFilter } from './path/eligibility';
|
|
11
|
-
export type { FindPathOptions, PathResult, UserCapability, } from './path/index';
|
|
11
|
+
export type { EdgeCostOptions, FindPathOptions, PathResult, UserCapability, } from './path/index';
|
|
12
12
|
export { toJSON } from './json/toJSON';
|
|
13
13
|
export type { NavGraphJSON } from './json/toJSON';
|
|
14
14
|
export { DEFAULT_GRAPH_ID, GRAPHS, getGraph, listGraphIds, } from './graphs/index';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,cAAc,EACd,MAAM,EACN,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACV,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,cAAc,EACd,MAAM,EACN,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,WAAW,EACX,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EACV,eAAe,EACf,eAAe,EACf,UAAU,EACV,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ export { item, level, meso, quest } from './dsl/requirements';
|
|
|
12
12
|
// Compiler
|
|
13
13
|
export { compileGraph } from './compile/compileGraph';
|
|
14
14
|
// Pathfinding
|
|
15
|
-
export { findPath } from './path/findPath';
|
|
15
|
+
export { DEFAULT_TRANSPORT_SECONDS, DEFAULT_WALK_SECONDS, edgeSeconds, findPath, } from './path/findPath';
|
|
16
16
|
export { eligibilityFilter } from './path/eligibility';
|
|
17
17
|
// Portability
|
|
18
18
|
export { toJSON } from './json/toJSON';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,8DAA8D;AAc9D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,8DAA8D;AAc9D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE9D,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,cAAc;AACd,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,WAAW,EACX,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQvD,cAAc;AACd,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,oFAAoF;AACpF,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|