@datamoc/mw_games 0.5.1 → 0.5.2
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/actors/EntityTemplate.d.ts +42 -1
- package/dist/actors/EntityTemplate.d.ts.map +1 -1
- package/dist/actors/EntityTemplate.js +56 -4
- package/dist/actors/EntityTemplate.js.map +1 -1
- package/dist/actors/index.d.ts +2 -2
- package/dist/actors/index.d.ts.map +1 -1
- package/dist/actors/index.js +1 -1
- package/dist/actors/index.js.map +1 -1
- package/dist/core/Registry.d.ts +31 -0
- package/dist/core/Registry.d.ts.map +1 -0
- package/dist/core/Registry.js +46 -0
- package/dist/core/Registry.js.map +1 -0
- package/dist/core/SceneComponents.d.ts +67 -0
- package/dist/core/SceneComponents.d.ts.map +1 -0
- package/dist/core/SceneComponents.js +76 -0
- package/dist/core/SceneComponents.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -1
- package/dist/mw_games.global.js +91 -91
- package/dist/rpg/Quest.d.ts +45 -0
- package/dist/rpg/Quest.d.ts.map +1 -1
- package/dist/rpg/Quest.js +76 -0
- package/dist/rpg/Quest.js.map +1 -1
- package/dist/rpg/index.d.ts +2 -2
- package/dist/rpg/index.d.ts.map +1 -1
- package/dist/rpg/index.js +1 -1
- package/dist/rpg/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StatBlock } from './StatBlock.ts';
|
|
1
|
+
import { StatBlock, type Stats } from './StatBlock.ts';
|
|
2
2
|
import { Progression, type GrowthCurve } from './Progression.ts';
|
|
3
3
|
import { type AffixDef } from './Affix.ts';
|
|
4
4
|
import type { InventoryItem } from './Inventory.ts';
|
|
@@ -71,6 +71,17 @@ export interface BuiltEntity {
|
|
|
71
71
|
maxHp: number;
|
|
72
72
|
}>;
|
|
73
73
|
}
|
|
74
|
+
/** what a `BuiltEntity` actually needs saved - everything else is the row/catalog, definitions supplied fresh on load */
|
|
75
|
+
export interface EntitySaveState {
|
|
76
|
+
stats: {
|
|
77
|
+
base: Stats;
|
|
78
|
+
};
|
|
79
|
+
progression?: {
|
|
80
|
+
level: number;
|
|
81
|
+
experience: number;
|
|
82
|
+
};
|
|
83
|
+
item?: InventoryItem;
|
|
84
|
+
}
|
|
74
85
|
/**
|
|
75
86
|
* @example
|
|
76
87
|
* ```ts
|
|
@@ -83,4 +94,34 @@ export interface BuiltEntity {
|
|
|
83
94
|
export declare function buildEntity(row: EntityTemplateRow, catalog?: EntityTemplateCatalog, onLowHp?: (entity: BuiltEntity) => void): BuiltEntity;
|
|
84
95
|
/** `buildEntity` over every row - the usual shape once a whole file's worth loads at once */
|
|
85
96
|
export declare function buildEntities(rows: readonly EntityTemplateRow[], catalog?: EntityTemplateCatalog, onLowHp?: (entity: BuiltEntity) => void): BuiltEntity[];
|
|
97
|
+
/**
|
|
98
|
+
* A `BuiltEntity`'s mutable state, in the same "definitions supplied fresh on load" shape
|
|
99
|
+
* `StatBlock.toJSON`/`Progression.toJSON` already draw: base stat values, level and
|
|
100
|
+
* experience, and the carried item, never the row or catalog that produced them.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```ts
|
|
104
|
+
* import { buildEntity, toEntitySaveState, fromEntitySaveState, type EntityTemplateCatalog } from '@datamoc/mw_games/actors';
|
|
105
|
+
*
|
|
106
|
+
* const catalog: EntityTemplateCatalog = {
|
|
107
|
+
* growthCurves: { steep: { maxLevel: 20, experienceFor: (level) => level * level * 10 } },
|
|
108
|
+
* };
|
|
109
|
+
*
|
|
110
|
+
* const row = { id: 'fireling', growth: 'steep', attack: 10 };
|
|
111
|
+
* const fireling = buildEntity(row, catalog);
|
|
112
|
+
* fireling.stats.setBase('attack', 12);
|
|
113
|
+
* fireling.progression?.addExperience(500);
|
|
114
|
+
*
|
|
115
|
+
* const saved = toEntitySaveState(fireling); // JSON.stringify this into a save slot
|
|
116
|
+
* const restored = fromEntitySaveState(row, catalog, saved);
|
|
117
|
+
* restored.stats.get('attack'); // 12, not the row's original 10
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export declare function toEntitySaveState(entity: BuiltEntity): EntitySaveState;
|
|
121
|
+
/**
|
|
122
|
+
* Rebuilds a `BuiltEntity` the same way `buildEntity` does - same row, same catalog, so the
|
|
123
|
+
* reactions and item lookups stay validated the same way - then overlays the saved base
|
|
124
|
+
* stats, level/experience, and carried item on top of the fresh one.
|
|
125
|
+
*/
|
|
126
|
+
export declare function fromEntitySaveState(row: EntityTemplateRow, catalog: EntityTemplateCatalog, data: EntitySaveState, onLowHp?: (entity: BuiltEntity) => void): BuiltEntity;
|
|
86
127
|
//# sourceMappingURL=EntityTemplate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTemplate.d.ts","sourceRoot":"","sources":["../../src/actors/EntityTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"EntityTemplate.d.ts","sourceRoot":"","sources":["../../src/actors/EntityTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,qEAAqE;IACrE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,uFAAuF;AACvF,MAAM,WAAW,qBAAqB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEnC,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED,yHAAyH;AACzH,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC;IACvB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAID;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,GAAE,qBAA0B,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,WAAW,CAgC7I;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAAE,OAAO,GAAE,qBAA0B,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,WAAW,EAAE,CAE7J;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAKtE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,iBAAiB,EACtB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GACrC,WAAW,CAab"}
|
|
@@ -16,10 +16,7 @@ export function buildEntity(row, catalog = {}, onLowHp) {
|
|
|
16
16
|
const stats = new StatBlock({ base: statsFrom(row) });
|
|
17
17
|
let progression;
|
|
18
18
|
if (row.growth !== undefined) {
|
|
19
|
-
|
|
20
|
-
if (!curve)
|
|
21
|
-
throw new Error(`entity template "${row.id}": unknown growth curve "${row.growth}"`);
|
|
22
|
-
progression = new Progression(curve, { level: row.level ?? 1 });
|
|
19
|
+
progression = new Progression(growthCurveFor(row, catalog), { level: row.level ?? 1 });
|
|
23
20
|
}
|
|
24
21
|
let item;
|
|
25
22
|
if (row.startingItem !== undefined) {
|
|
@@ -51,6 +48,61 @@ export function buildEntity(row, catalog = {}, onLowHp) {
|
|
|
51
48
|
export function buildEntities(rows, catalog = {}, onLowHp) {
|
|
52
49
|
return rows.map((row) => buildEntity(row, catalog, onLowHp));
|
|
53
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* A `BuiltEntity`'s mutable state, in the same "definitions supplied fresh on load" shape
|
|
53
|
+
* `StatBlock.toJSON`/`Progression.toJSON` already draw: base stat values, level and
|
|
54
|
+
* experience, and the carried item, never the row or catalog that produced them.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* import { buildEntity, toEntitySaveState, fromEntitySaveState, type EntityTemplateCatalog } from '@datamoc/mw_games/actors';
|
|
59
|
+
*
|
|
60
|
+
* const catalog: EntityTemplateCatalog = {
|
|
61
|
+
* growthCurves: { steep: { maxLevel: 20, experienceFor: (level) => level * level * 10 } },
|
|
62
|
+
* };
|
|
63
|
+
*
|
|
64
|
+
* const row = { id: 'fireling', growth: 'steep', attack: 10 };
|
|
65
|
+
* const fireling = buildEntity(row, catalog);
|
|
66
|
+
* fireling.stats.setBase('attack', 12);
|
|
67
|
+
* fireling.progression?.addExperience(500);
|
|
68
|
+
*
|
|
69
|
+
* const saved = toEntitySaveState(fireling); // JSON.stringify this into a save slot
|
|
70
|
+
* const restored = fromEntitySaveState(row, catalog, saved);
|
|
71
|
+
* restored.stats.get('attack'); // 12, not the row's original 10
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export function toEntitySaveState(entity) {
|
|
75
|
+
const state = { stats: entity.stats.toJSON() };
|
|
76
|
+
if (entity.progression)
|
|
77
|
+
state.progression = entity.progression.toJSON();
|
|
78
|
+
if (entity.item)
|
|
79
|
+
state.item = entity.item;
|
|
80
|
+
return state;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Rebuilds a `BuiltEntity` the same way `buildEntity` does - same row, same catalog, so the
|
|
84
|
+
* reactions and item lookups stay validated the same way - then overlays the saved base
|
|
85
|
+
* stats, level/experience, and carried item on top of the fresh one.
|
|
86
|
+
*/
|
|
87
|
+
export function fromEntitySaveState(row, catalog, data, onLowHp) {
|
|
88
|
+
const entity = buildEntity(row, catalog, onLowHp);
|
|
89
|
+
entity.stats = StatBlock.fromJSON({ base: statsFrom(row) }, data.stats);
|
|
90
|
+
if (data.progression !== undefined) {
|
|
91
|
+
if (!entity.progression) {
|
|
92
|
+
throw new Error(`entity template "${row.id}": save data has progression but the row names no growth curve`);
|
|
93
|
+
}
|
|
94
|
+
entity.progression = Progression.fromJSON(growthCurveFor(row, catalog), data.progression);
|
|
95
|
+
}
|
|
96
|
+
if (data.item !== undefined)
|
|
97
|
+
entity.item = data.item;
|
|
98
|
+
return entity;
|
|
99
|
+
}
|
|
100
|
+
function growthCurveFor(row, catalog) {
|
|
101
|
+
const curve = catalog.growthCurves?.[row.growth ?? ''];
|
|
102
|
+
if (!curve)
|
|
103
|
+
throw new Error(`entity template "${row.id}": unknown growth curve "${row.growth}"`);
|
|
104
|
+
return curve;
|
|
105
|
+
}
|
|
54
106
|
function statsFrom(row) {
|
|
55
107
|
const stats = {};
|
|
56
108
|
for (const [key, value] of Object.entries(row)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTemplate.js","sourceRoot":"","sources":["../../src/actors/EntityTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAoB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityTemplate.js","sourceRoot":"","sources":["../../src/actors/EntityTemplate.ts"],"names":[],"mappings":"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"}
|
package/dist/actors/index.d.ts
CHANGED
|
@@ -41,6 +41,6 @@ export { AuraField } from './Aura.ts';
|
|
|
41
41
|
export type { AuraDef, AuraParticipant } from './Aura.ts';
|
|
42
42
|
export { SupportLedger } from './Support.ts';
|
|
43
43
|
export type { SupportLevel, SupportChange, SupportSave } from './Support.ts';
|
|
44
|
-
export { buildEntity, buildEntities } from './EntityTemplate.ts';
|
|
45
|
-
export type { EntityTemplateRow, EntityTemplateCatalog, BuiltEntity } from './EntityTemplate.ts';
|
|
44
|
+
export { buildEntity, buildEntities, toEntitySaveState, fromEntitySaveState } from './EntityTemplate.ts';
|
|
45
|
+
export type { EntityTemplateRow, EntityTemplateCatalog, BuiltEntity, EntitySaveState } from './EntityTemplate.ts';
|
|
46
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actors/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actors/index.ts"],"names":[],"mappings":"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"}
|
package/dist/actors/index.js
CHANGED
|
@@ -20,5 +20,5 @@ export { Barrier } from './Barrier.js';
|
|
|
20
20
|
export { assignTraits } from './Traits.js';
|
|
21
21
|
export { AuraField } from './Aura.js';
|
|
22
22
|
export { SupportLedger } from './Support.js';
|
|
23
|
-
export { buildEntity, buildEntities } from './EntityTemplate.js';
|
|
23
|
+
export { buildEntity, buildEntities, toEntitySaveState, fromEntitySaveState } from './EntityTemplate.js';
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/dist/actors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpG,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpG,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A named lookup of values, registered once and read back by name - the shape underneath a
|
|
3
|
+
* catalog of factories, handlers, or scene sections, so a game can grow that catalog by
|
|
4
|
+
* registering another entry instead of adding another branch to a hand-written `if`/`switch`.
|
|
5
|
+
*
|
|
6
|
+
* Deliberately does not discover or import anything on its own: a game still writes the
|
|
7
|
+
* import and the `register` call for each entry itself, the same explicit-import style
|
|
8
|
+
* `core`/`two-d` already use throughout - this only replaces the dispatch step after that,
|
|
9
|
+
* not the wiring step before it.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { Registry } from '@datamoc/mw_games/core';
|
|
14
|
+
*
|
|
15
|
+
* const commands = new Registry<(args: string[]) => void>();
|
|
16
|
+
* commands.register('heal', (args) => console.log('healing', args[0]));
|
|
17
|
+
*
|
|
18
|
+
* commands.get('heal')(['fireling']); // "healing fireling"
|
|
19
|
+
* commands.get('missing'); // throws: no registration named "missing"
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class Registry<T> {
|
|
23
|
+
private items;
|
|
24
|
+
/** throws if `name` is already registered - a duplicate is always an authoring error */
|
|
25
|
+
register(name: string, value: T): void;
|
|
26
|
+
get(name: string): T;
|
|
27
|
+
has(name: string): boolean;
|
|
28
|
+
/** every registered name, in registration order */
|
|
29
|
+
list(): string[];
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../src/core/Registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,CAAwB;IAErC,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAGrC;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAInB;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,mDAAmD;IACnD,IAAI,IAAI,MAAM,EAAE,CAEf;CACD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A named lookup of values, registered once and read back by name - the shape underneath a
|
|
3
|
+
* catalog of factories, handlers, or scene sections, so a game can grow that catalog by
|
|
4
|
+
* registering another entry instead of adding another branch to a hand-written `if`/`switch`.
|
|
5
|
+
*
|
|
6
|
+
* Deliberately does not discover or import anything on its own: a game still writes the
|
|
7
|
+
* import and the `register` call for each entry itself, the same explicit-import style
|
|
8
|
+
* `core`/`two-d` already use throughout - this only replaces the dispatch step after that,
|
|
9
|
+
* not the wiring step before it.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { Registry } from '@datamoc/mw_games/core';
|
|
14
|
+
*
|
|
15
|
+
* const commands = new Registry<(args: string[]) => void>();
|
|
16
|
+
* commands.register('heal', (args) => console.log('healing', args[0]));
|
|
17
|
+
*
|
|
18
|
+
* commands.get('heal')(['fireling']); // "healing fireling"
|
|
19
|
+
* commands.get('missing'); // throws: no registration named "missing"
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export class Registry {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.items = new Map();
|
|
25
|
+
}
|
|
26
|
+
/** throws if `name` is already registered - a duplicate is always an authoring error */
|
|
27
|
+
register(name, value) {
|
|
28
|
+
if (this.items.has(name))
|
|
29
|
+
throw new Error(`"${name}" is already registered`);
|
|
30
|
+
this.items.set(name, value);
|
|
31
|
+
}
|
|
32
|
+
get(name) {
|
|
33
|
+
const value = this.items.get(name);
|
|
34
|
+
if (value === undefined)
|
|
35
|
+
throw new Error(`no registration named "${name}"`);
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
has(name) {
|
|
39
|
+
return this.items.has(name);
|
|
40
|
+
}
|
|
41
|
+
/** every registered name, in registration order */
|
|
42
|
+
list() {
|
|
43
|
+
return [...this.items.keys()];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=Registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../src/core/Registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,QAAQ;IAArB;QACS,UAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IAsBtC,CAAC;IApBA,wFAAwF;IACxF,QAAQ,CAAC,IAAY,EAAE,KAAQ;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,yBAAyB,CAAC,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,IAAY;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,GAAG,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,mDAAmD;IACnD,IAAI;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;CACD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Scene } from './Scene.ts';
|
|
2
|
+
/**
|
|
3
|
+
* One self-contained section of a scene - map logic, encounter logic, UI wiring - with its
|
|
4
|
+
* own slice of `core.Scene`'s lifecycle, registered by name into a `SceneComponentHost`
|
|
5
|
+
* instead of folded into one growing scene class.
|
|
6
|
+
*
|
|
7
|
+
* Every hook is optional and receives the owning scene, so a component reads whatever the
|
|
8
|
+
* scene exposes (a `two-d.Scene2D`'s `stage`, a game's own fields) without the host needing
|
|
9
|
+
* to know what a scene actually is beyond `core.Scene`'s lifecycle shape.
|
|
10
|
+
*/
|
|
11
|
+
export interface SceneComponent<TScene extends Scene = Scene> {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
create?(scene: TScene): void;
|
|
14
|
+
update?(scene: TScene, dt: number): void;
|
|
15
|
+
resize?(scene: TScene, width: number, height: number): void;
|
|
16
|
+
onSuspend?(scene: TScene): void;
|
|
17
|
+
onResume?(scene: TScene, result: unknown): void;
|
|
18
|
+
destroy?(scene: TScene): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Composes a scene out of named `SceneComponent`s instead of one class accreting every
|
|
22
|
+
* responsibility a scene ends up needing - a factory assembling named sections (map,
|
|
23
|
+
* encounters, UI) at scene-creation time, each a separate module with its own lifecycle.
|
|
24
|
+
*
|
|
25
|
+
* A composition helper, not a base class: a scene owns one `SceneComponentHost` and forwards
|
|
26
|
+
* `core.Scene`'s lifecycle methods to it, the same few lines regardless of whether that scene
|
|
27
|
+
* extends `core.Scene` directly or `two-d.Scene2D` - inheritance would have to pick one of
|
|
28
|
+
* those to sit above, composition does not.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { Scene, SceneComponentHost, type SceneComponent } from '@datamoc/mw_games/core';
|
|
33
|
+
*
|
|
34
|
+
* class MapSection implements SceneComponent<DungeonScene> {
|
|
35
|
+
* readonly name = 'map';
|
|
36
|
+
* create(scene: DungeonScene): void { console.log('map ready for', scene.floor); }
|
|
37
|
+
* update(_scene: DungeonScene, dt: number): void { }
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* class DungeonScene extends Scene {
|
|
41
|
+
* floor = 1;
|
|
42
|
+
* private components = new SceneComponentHost<DungeonScene>();
|
|
43
|
+
*
|
|
44
|
+
* create(): void {
|
|
45
|
+
* this.components.add(new MapSection(), this);
|
|
46
|
+
* }
|
|
47
|
+
* override update(dt: number): void { this.components.update(this, dt); }
|
|
48
|
+
* protected override teardown(): void { this.components.destroy(this); }
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class SceneComponentHost<TScene extends Scene = Scene> {
|
|
53
|
+
private order;
|
|
54
|
+
private registry;
|
|
55
|
+
/** registers `component` and immediately runs its `create`, if it has one */
|
|
56
|
+
add(component: SceneComponent<TScene>, scene: TScene): void;
|
|
57
|
+
has(name: string): boolean;
|
|
58
|
+
/** the component registered under `name`; throws if none was */
|
|
59
|
+
get<T extends SceneComponent<TScene> = SceneComponent<TScene>>(name: string): T;
|
|
60
|
+
update(scene: TScene, dt: number): void;
|
|
61
|
+
resize(scene: TScene, width: number, height: number): void;
|
|
62
|
+
onSuspend(scene: TScene): void;
|
|
63
|
+
onResume(scene: TScene, result: unknown): void;
|
|
64
|
+
/** destroys every component in reverse registration order, then forgets them all */
|
|
65
|
+
destroy(scene: TScene): void;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=SceneComponents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneComponents.d.ts","sourceRoot":"","sources":["../../src/core/SceneComponents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,kBAAkB,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK;IAC3D,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,QAAQ,CAA0C;IAE1D,6EAA6E;IAC7E,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAI1D;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,gEAAgE;IAChE,GAAG,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAE9E;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzD;IAED,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAE7C;IAED,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3B;CACD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Registry } from './Registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Composes a scene out of named `SceneComponent`s instead of one class accreting every
|
|
4
|
+
* responsibility a scene ends up needing - a factory assembling named sections (map,
|
|
5
|
+
* encounters, UI) at scene-creation time, each a separate module with its own lifecycle.
|
|
6
|
+
*
|
|
7
|
+
* A composition helper, not a base class: a scene owns one `SceneComponentHost` and forwards
|
|
8
|
+
* `core.Scene`'s lifecycle methods to it, the same few lines regardless of whether that scene
|
|
9
|
+
* extends `core.Scene` directly or `two-d.Scene2D` - inheritance would have to pick one of
|
|
10
|
+
* those to sit above, composition does not.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Scene, SceneComponentHost, type SceneComponent } from '@datamoc/mw_games/core';
|
|
15
|
+
*
|
|
16
|
+
* class MapSection implements SceneComponent<DungeonScene> {
|
|
17
|
+
* readonly name = 'map';
|
|
18
|
+
* create(scene: DungeonScene): void { console.log('map ready for', scene.floor); }
|
|
19
|
+
* update(_scene: DungeonScene, dt: number): void { }
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* class DungeonScene extends Scene {
|
|
23
|
+
* floor = 1;
|
|
24
|
+
* private components = new SceneComponentHost<DungeonScene>();
|
|
25
|
+
*
|
|
26
|
+
* create(): void {
|
|
27
|
+
* this.components.add(new MapSection(), this);
|
|
28
|
+
* }
|
|
29
|
+
* override update(dt: number): void { this.components.update(this, dt); }
|
|
30
|
+
* protected override teardown(): void { this.components.destroy(this); }
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export class SceneComponentHost {
|
|
35
|
+
constructor() {
|
|
36
|
+
this.order = [];
|
|
37
|
+
this.registry = new Registry();
|
|
38
|
+
}
|
|
39
|
+
/** registers `component` and immediately runs its `create`, if it has one */
|
|
40
|
+
add(component, scene) {
|
|
41
|
+
this.registry.register(component.name, component);
|
|
42
|
+
this.order.push(component);
|
|
43
|
+
component.create?.(scene);
|
|
44
|
+
}
|
|
45
|
+
has(name) {
|
|
46
|
+
return this.registry.has(name);
|
|
47
|
+
}
|
|
48
|
+
/** the component registered under `name`; throws if none was */
|
|
49
|
+
get(name) {
|
|
50
|
+
return this.registry.get(name);
|
|
51
|
+
}
|
|
52
|
+
update(scene, dt) {
|
|
53
|
+
for (const c of this.order)
|
|
54
|
+
c.update?.(scene, dt);
|
|
55
|
+
}
|
|
56
|
+
resize(scene, width, height) {
|
|
57
|
+
for (const c of this.order)
|
|
58
|
+
c.resize?.(scene, width, height);
|
|
59
|
+
}
|
|
60
|
+
onSuspend(scene) {
|
|
61
|
+
for (const c of this.order)
|
|
62
|
+
c.onSuspend?.(scene);
|
|
63
|
+
}
|
|
64
|
+
onResume(scene, result) {
|
|
65
|
+
for (const c of this.order)
|
|
66
|
+
c.onResume?.(scene, result);
|
|
67
|
+
}
|
|
68
|
+
/** destroys every component in reverse registration order, then forgets them all */
|
|
69
|
+
destroy(scene) {
|
|
70
|
+
for (let i = this.order.length - 1; i >= 0; i--)
|
|
71
|
+
this.order[i].destroy?.(scene);
|
|
72
|
+
this.order = [];
|
|
73
|
+
this.registry = new Registry();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=SceneComponents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneComponents.js","sourceRoot":"","sources":["../../src/core/SceneComponents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAqBzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACS,UAAK,GAA6B,EAAE,CAAC;QACrC,aAAQ,GAAG,IAAI,QAAQ,EAA0B,CAAC;IAwC3D,CAAC;IAtCA,6EAA6E;IAC7E,GAAG,CAAC,SAAiC,EAAE,KAAa;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,gEAAgE;IAChE,GAAG,CAA4D,IAAY;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,EAAU;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc;QAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,KAAa;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,KAAa,EAAE,MAAe;QACtC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,oFAAoF;IACpF,OAAO,CAAC,KAAa;QACpB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAA0B,CAAC;IACxD,CAAC;CACD"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { Scene } from './Scene.ts';
|
|
2
2
|
export type { SceneClass } from './Scene.ts';
|
|
3
3
|
export { SceneStack } from './SceneStack.ts';
|
|
4
|
+
export { Registry } from './Registry.ts';
|
|
5
|
+
export { SceneComponentHost } from './SceneComponents.ts';
|
|
6
|
+
export type { SceneComponent } from './SceneComponents.ts';
|
|
4
7
|
export { Logger } from './Log.ts';
|
|
5
8
|
export type { LogLevel, LogEntry, LoggerOptions } from './Log.ts';
|
|
6
9
|
export { Signal } from './Signal.ts';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { Scene } from './Scene.js';
|
|
2
2
|
export { SceneStack } from './SceneStack.js';
|
|
3
|
+
export { Registry } from './Registry.js';
|
|
4
|
+
export { SceneComponentHost } from './SceneComponents.js';
|
|
3
5
|
export { Logger } from './Log.js';
|
|
4
6
|
export { Signal } from './Signal.js';
|
|
5
7
|
export { HookRegistry } from './Hooks.js';
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEzG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEhG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEzG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEhG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
|