@forgeax/engine-ecs 0.1.28 → 0.1.30
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 +3 -0
- package/dist/__tests__/shared-ref-lifetime.unit.test.d.ts +2 -0
- package/dist/__tests__/shared-ref-lifetime.unit.test.d.ts.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +9 -2
- package/dist/index.mjs.map +1 -1
- package/dist/shared-ref-store.d.ts +7 -3
- package/dist/shared-ref-store.d.ts.map +1 -1
- package/dist/world.d.ts +2 -2
- package/dist/world.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/ecs-core-reduction.characterization.test.ts +1 -1
- package/src/__tests__/shared-ref-lifetime.unit.test.ts +59 -0
- package/src/__tests__/shared-ref-store.unit.test.ts +1 -1
- package/src/index.ts +3 -3
- package/src/shared-ref-store.ts +17 -5
- package/src/world.ts +3 -3
- package/dist/__tests__/changed-block-summary.candidate.test.d.ts +0 -2
- package/dist/__tests__/changed-block-summary.candidate.test.d.ts.map +0 -1
- package/src/__tests__/changed-block-summary.candidate.test.ts +0 -57
package/README.md
CHANGED
|
@@ -295,6 +295,9 @@ world.addSystem(FixedUpdate, {
|
|
|
295
295
|
runs one update step, and flushes each system's command buffer. Clock readers
|
|
296
296
|
receive a stable read view; the scheduler owns writes. Resources are non-owning
|
|
297
297
|
values: Cordis/plugin owners dispose external payloads, not `World`.
|
|
298
|
+
Final shared-reference `release()` returns the payload to its caller.
|
|
299
|
+
`readReleaseEvidence()` retains only bounded handle/refcount/generation records;
|
|
300
|
+
diagnostic history must not extend the lifetime of released meshes or textures.
|
|
298
301
|
|
|
299
302
|
## Failure and recovery
|
|
300
303
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-ref-lifetime.unit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/shared-ref-lifetime.unit.test.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -137,7 +137,7 @@ export type { Query, QueryCreationError, QueryDescriptor, QueryRow, QuerySpan, }
|
|
|
137
137
|
* // the SharedRefStore publishes release evidence at rc=0.
|
|
138
138
|
* ```
|
|
139
139
|
*/
|
|
140
|
-
export type { SharedRefReleaseEvidence } from './shared-ref-store';
|
|
140
|
+
export type { SharedRefReleaseEvidence, SharedRefReleaseRecord } from './shared-ref-store.js';
|
|
141
141
|
/**
|
|
142
142
|
* ECS-managed handle store (M1). Owns the lifecycle of every
|
|
143
143
|
* `Handle<T, 'unique'>` derived from `ref<T>` schema fields - World hooks
|
|
@@ -163,7 +163,7 @@ export type { SharedRefReleaseEvidence } from './shared-ref-store';
|
|
|
163
163
|
* const data: ComponentData = { component: Position, data: { x: 1, y: 2 } };
|
|
164
164
|
* ```
|
|
165
165
|
*/
|
|
166
|
-
export type { ComponentData } from './world';
|
|
166
|
+
export type { ComponentData } from './world.js';
|
|
167
167
|
/**
|
|
168
168
|
* Top-level ECS container. Owns entities, archetypes, systems, and resources.
|
|
169
169
|
*
|
|
@@ -174,7 +174,7 @@ export type { ComponentData } from './world';
|
|
|
174
174
|
* world.update();
|
|
175
175
|
* ```
|
|
176
176
|
*/
|
|
177
|
-
export { World } from './world';
|
|
177
|
+
export { World } from './world.js';
|
|
178
178
|
/**
|
|
179
179
|
* Deferred command buffer passed to system functions. Queues structural changes
|
|
180
180
|
* (spawn/despawn/addComponent/removeComponent) for end-of-frame flush.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA0DH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAerF;;;;;;GAMG;AACH,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,MAAM,GACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,QAAQ,CAAC;AAChB;;;GAGG;AACH,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,cAAc,EAAE,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,OAAO,GACR,MAAM,aAAa,CAAC;AACrB;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C;;;;;;;GAOG;AACH,YAAY,EACV,KAAK,EACL,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,YAAY,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA0DH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAerF;;;;;;GAMG;AACH,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,MAAM,GACP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,QAAQ,CAAC;AAChB;;;GAGG;AACH,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,cAAc,EAAE,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,OAAO,GACR,MAAM,aAAa,CAAC;AACrB;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C;;;;;;;GAOG;AACH,YAAY,EACV,KAAK,EACL,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,YAAY,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE9F;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;GAOG;AACH,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAMnC;;;;;;;;;;;GAWG;AACH,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;GAUG;AACH,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,GACV,MAAM,YAAY,CAAC;AACpB;;;;;;;;;;;;;GAaG;AACH;;;;;;;;GAQG;AACH,OAAO,EACL,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AAMH;;;;;;;;GAQG;AAuBH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -4133,13 +4133,20 @@ var SharedRefStore = class {
|
|
|
4133
4133
|
generation,
|
|
4134
4134
|
evidence: "released"
|
|
4135
4135
|
});
|
|
4136
|
-
this.releaseJournal.push(
|
|
4136
|
+
this.releaseJournal.push(
|
|
4137
|
+
Object.freeze({
|
|
4138
|
+
handle: raw,
|
|
4139
|
+
refcount: 0,
|
|
4140
|
+
generation,
|
|
4141
|
+
evidence: "released"
|
|
4142
|
+
})
|
|
4143
|
+
);
|
|
4137
4144
|
if (this.releaseJournal.length > SHARED_REF_RELEASE_EVIDENCE_CAPACITY) {
|
|
4138
4145
|
this.releaseJournal.shift();
|
|
4139
4146
|
}
|
|
4140
4147
|
return ok(evidence);
|
|
4141
4148
|
}
|
|
4142
|
-
/** Read
|
|
4149
|
+
/** Read bounded release metadata; payload ownership remains with the caller. */
|
|
4143
4150
|
readReleaseEvidence() {
|
|
4144
4151
|
return this.releaseJournal;
|
|
4145
4152
|
}
|