@dtmd/temper 0.0.16 → 0.0.17
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/dist/src/emit.js +15 -1
- package/package.json +3 -3
package/dist/src/emit.js
CHANGED
|
@@ -552,9 +552,23 @@ function settingsResidue(harness) {
|
|
|
552
552
|
* The harness's composed members by `kind:name` address — the table an embedded value's
|
|
553
553
|
* edge field resolves its target against. Keyed the identical way {@link declaredAddresses}
|
|
554
554
|
* spells a member address, so an edge field and a mention name a member the same way.
|
|
555
|
+
*
|
|
556
|
+
* A projected member's address is its file, so two at one address are a collision and
|
|
557
|
+
* refuse loud. A registration member's address is its *group key* — a `hook` registers on
|
|
558
|
+
* its event, and Claude Code admits any number of matcher groups per event — so several
|
|
559
|
+
* legitimately share one address and the table keeps the last composed (the pre-0.0.16
|
|
560
|
+
* reading; an edge targeting that shared address resolves ambiguously, the open fork
|
|
561
|
+
* `(hook-member-identity)` in `.flume/plan/open-questions.md`). Refusing them broke
|
|
562
|
+
* `emit` on every harness with two hooks on one event (0.0.16).
|
|
555
563
|
*/
|
|
556
564
|
function memberTable(harness) {
|
|
557
|
-
|
|
565
|
+
const table = uniqueMap(harness.members
|
|
566
|
+
.filter((member) => !isRegistration(member))
|
|
567
|
+
.map((member) => [`${member.kind}:${member.name}`, member]));
|
|
568
|
+
for (const member of harness.members.filter(isRegistration)) {
|
|
569
|
+
table.set(`${member.kind}:${member.name}`, member);
|
|
570
|
+
}
|
|
571
|
+
return table;
|
|
558
572
|
}
|
|
559
573
|
/** The harness's projected members as payload members, deterministically kind-then-name ordered. */
|
|
560
574
|
function orderedMembers(harness, options) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dtmd/temper",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"description": "The temper authoring face — the six-noun model as typed modules: harness(), kind<T>(), clause values, needs, and file()/text/blocks(). Emit compiles to the declaration rows the engine reads, a byte-faithful projection, and the lock.",
|
|
5
5
|
"license": "(MIT OR Apache-2.0)",
|
|
6
6
|
"repository": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"temper": "bin/temper.js"
|
|
53
53
|
},
|
|
54
54
|
"optionalDependencies": {
|
|
55
|
-
"@dtmd/temper-linux-x64": "0.0.
|
|
56
|
-
"@dtmd/temper-win32-x64": "0.0.
|
|
55
|
+
"@dtmd/temper-linux-x64": "0.0.17",
|
|
56
|
+
"@dtmd/temper-win32-x64": "0.0.17"
|
|
57
57
|
}
|
|
58
58
|
}
|