@sharpee/core 0.9.56-beta
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/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/constants/attributes.d.ts +32 -0
- package/dist/constants/attributes.d.ts.map +1 -0
- package/dist/constants/attributes.js +53 -0
- package/dist/constants/attributes.js.map +1 -0
- package/dist/constants/core-events.d.ts +37 -0
- package/dist/constants/core-events.d.ts.map +1 -0
- package/dist/constants/core-events.js +50 -0
- package/dist/constants/core-events.js.map +1 -0
- package/dist/constants/entity-types.d.ts +15 -0
- package/dist/constants/entity-types.d.ts.map +1 -0
- package/dist/constants/entity-types.js +27 -0
- package/dist/constants/entity-types.js.map +1 -0
- package/dist/constants/index.d.ts +22 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +41 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/relationships.d.ts +25 -0
- package/dist/constants/relationships.d.ts.map +1 -0
- package/dist/constants/relationships.js +55 -0
- package/dist/constants/relationships.js.map +1 -0
- package/dist/debug/index.d.ts +5 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/index.js +21 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/debug/types.d.ts +65 -0
- package/dist/debug/types.d.ts.map +1 -0
- package/dist/debug/types.js +39 -0
- package/dist/debug/types.js.map +1 -0
- package/dist/events/event-factory.d.ts +81 -0
- package/dist/events/event-factory.d.ts.map +1 -0
- package/dist/events/event-factory.js +74 -0
- package/dist/events/event-factory.js.map +1 -0
- package/dist/events/event-helpers.d.ts +118 -0
- package/dist/events/event-helpers.d.ts.map +1 -0
- package/dist/events/event-helpers.js +151 -0
- package/dist/events/event-helpers.js.map +1 -0
- package/dist/events/event-registry.d.ts +154 -0
- package/dist/events/event-registry.d.ts.map +1 -0
- package/dist/events/event-registry.js +24 -0
- package/dist/events/event-registry.js.map +1 -0
- package/dist/events/event-source.d.ts +39 -0
- package/dist/events/event-source.d.ts.map +1 -0
- package/dist/events/event-source.js +57 -0
- package/dist/events/event-source.js.map +1 -0
- package/dist/events/event-system.d.ts +27 -0
- package/dist/events/event-system.d.ts.map +1 -0
- package/dist/events/event-system.js +64 -0
- package/dist/events/event-system.js.map +1 -0
- package/dist/events/game-events.d.ts +245 -0
- package/dist/events/game-events.d.ts.map +1 -0
- package/dist/events/game-events.js +250 -0
- package/dist/events/game-events.js.map +1 -0
- package/dist/events/index.d.ts +19 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +51 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/platform-events.d.ts +161 -0
- package/dist/events/platform-events.d.ts.map +1 -0
- package/dist/events/platform-events.js +135 -0
- package/dist/events/platform-events.js.map +1 -0
- package/dist/events/semantic-event-source.d.ts +85 -0
- package/dist/events/semantic-event-source.d.ts.map +1 -0
- package/dist/events/semantic-event-source.js +147 -0
- package/dist/events/semantic-event-source.js.map +1 -0
- package/dist/events/standard-events.d.ts +26 -0
- package/dist/events/standard-events.d.ts.map +1 -0
- package/dist/events/standard-events.js +27 -0
- package/dist/events/standard-events.js.map +1 -0
- package/dist/events/system-event.d.ts +62 -0
- package/dist/events/system-event.d.ts.map +1 -0
- package/dist/events/system-event.js +55 -0
- package/dist/events/system-event.js.map +1 -0
- package/dist/events/typed-event.d.ts +69 -0
- package/dist/events/typed-event.d.ts.map +1 -0
- package/dist/events/typed-event.js +20 -0
- package/dist/events/typed-event.js.map +1 -0
- package/dist/events/types.d.ts +105 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +4 -0
- package/dist/events/types.js.map +1 -0
- package/dist/execution/index.d.ts +2 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +23 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/types.d.ts +117 -0
- package/dist/execution/types.d.ts.map +1 -0
- package/dist/execution/types.js +4 -0
- package/dist/execution/types.js.map +1 -0
- package/dist/extensions/index.d.ts +3 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +20 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/registry.d.ts +61 -0
- package/dist/extensions/registry.d.ts.map +1 -0
- package/dist/extensions/registry.js +153 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/types.d.ts +84 -0
- package/dist/extensions/types.d.ts.map +1 -0
- package/dist/extensions/types.js +15 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/ifid/ifid.d.ts +30 -0
- package/dist/ifid/ifid.d.ts.map +1 -0
- package/dist/ifid/ifid.js +52 -0
- package/dist/ifid/ifid.js.map +1 -0
- package/dist/ifid/index.d.ts +2 -0
- package/dist/ifid/index.d.ts.map +1 -0
- package/dist/ifid/index.js +9 -0
- package/dist/ifid/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/metadata/index.d.ts +2 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +3 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/metadata/story-metadata.d.ts +64 -0
- package/dist/metadata/story-metadata.d.ts.map +1 -0
- package/dist/metadata/story-metadata.js +5 -0
- package/dist/metadata/story-metadata.js.map +1 -0
- package/dist/query/index.d.ts +9 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +25 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/query-manager.d.ts +86 -0
- package/dist/query/query-manager.d.ts.map +1 -0
- package/dist/query/query-manager.js +391 -0
- package/dist/query/query-manager.js.map +1 -0
- package/dist/query/types.d.ts +188 -0
- package/dist/query/types.d.ts.map +1 -0
- package/dist/query/types.js +106 -0
- package/dist/query/types.js.map +1 -0
- package/dist/random/index.d.ts +5 -0
- package/dist/random/index.d.ts.map +1 -0
- package/dist/random/index.js +9 -0
- package/dist/random/index.js.map +1 -0
- package/dist/random/seeded-random.d.ts +32 -0
- package/dist/random/seeded-random.d.ts.map +1 -0
- package/dist/random/seeded-random.js +62 -0
- package/dist/random/seeded-random.js.map +1 -0
- package/dist/rules/compatibility.d.ts +46 -0
- package/dist/rules/compatibility.d.ts.map +1 -0
- package/dist/rules/compatibility.js +62 -0
- package/dist/rules/compatibility.js.map +1 -0
- package/dist/rules/condition-builder.d.ts +23 -0
- package/dist/rules/condition-builder.d.ts.map +1 -0
- package/dist/rules/condition-builder.js +16 -0
- package/dist/rules/condition-builder.js.map +1 -0
- package/dist/rules/helpers.d.ts +51 -0
- package/dist/rules/helpers.d.ts.map +1 -0
- package/dist/rules/helpers.js +111 -0
- package/dist/rules/helpers.js.map +1 -0
- package/dist/rules/index.d.ts +12 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +34 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/rule-system.d.ts +6 -0
- package/dist/rules/rule-system.d.ts.map +1 -0
- package/dist/rules/rule-system.js +10 -0
- package/dist/rules/rule-system.js.map +1 -0
- package/dist/rules/rule-world-adapter.d.ts +43 -0
- package/dist/rules/rule-world-adapter.d.ts.map +1 -0
- package/dist/rules/rule-world-adapter.js +74 -0
- package/dist/rules/rule-world-adapter.js.map +1 -0
- package/dist/rules/simple-rule-system.d.ts +36 -0
- package/dist/rules/simple-rule-system.d.ts.map +1 -0
- package/dist/rules/simple-rule-system.js +135 -0
- package/dist/rules/simple-rule-system.js.map +1 -0
- package/dist/rules/types.d.ts +64 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +6 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/types/attribute.d.ts +40 -0
- package/dist/types/attribute.d.ts.map +1 -0
- package/dist/types/attribute.js +4 -0
- package/dist/types/attribute.js.map +1 -0
- package/dist/types/entity.d.ts +47 -0
- package/dist/types/entity.d.ts.map +1 -0
- package/dist/types/entity.js +4 -0
- package/dist/types/entity.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +27 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/relationship.d.ts +44 -0
- package/dist/types/relationship.d.ts.map +1 -0
- package/dist/types/relationship.js +4 -0
- package/dist/types/relationship.js.map +1 -0
- package/dist/types/result.d.ts +81 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +79 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/save-data.d.ts +264 -0
- package/dist/types/save-data.d.ts.map +1 -0
- package/dist/types/save-data.js +6 -0
- package/dist/types/save-data.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic result type for operations that can succeed or fail
|
|
3
|
+
* This is a discriminated union type - check the 'success' field to narrow the type
|
|
4
|
+
*/
|
|
5
|
+
export type Result<T, E = Error> = {
|
|
6
|
+
success: true;
|
|
7
|
+
value: T;
|
|
8
|
+
} | {
|
|
9
|
+
success: false;
|
|
10
|
+
error: E;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Convenience functions for working with Result types
|
|
14
|
+
*/
|
|
15
|
+
export declare const Result: {
|
|
16
|
+
/**
|
|
17
|
+
* Create a successful result
|
|
18
|
+
*/
|
|
19
|
+
ok<T>(value: T): Result<T, any>;
|
|
20
|
+
/**
|
|
21
|
+
* Create a failed result
|
|
22
|
+
*/
|
|
23
|
+
fail<E>(error: E): Result<any, E>;
|
|
24
|
+
/**
|
|
25
|
+
* Check if a result is successful
|
|
26
|
+
*/
|
|
27
|
+
isOk<T, E>(result: Result<T, E>): result is {
|
|
28
|
+
success: true;
|
|
29
|
+
value: T;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Check if a result is a failure
|
|
33
|
+
*/
|
|
34
|
+
isFail<T, E>(result: Result<T, E>): result is {
|
|
35
|
+
success: false;
|
|
36
|
+
error: E;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Map a successful result to a new value
|
|
40
|
+
*/
|
|
41
|
+
map<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
42
|
+
/**
|
|
43
|
+
* Map a failed result to a new error
|
|
44
|
+
*/
|
|
45
|
+
mapError<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
|
|
46
|
+
/**
|
|
47
|
+
* Chain results together
|
|
48
|
+
*/
|
|
49
|
+
flatMap<T, U, E>(result: Result<T, E>, fn: (value: T) => Result<U, E>): Result<U, E>;
|
|
50
|
+
/**
|
|
51
|
+
* Get the value or throw an error
|
|
52
|
+
*/
|
|
53
|
+
unwrap<T, E>(result: Result<T, E>): T;
|
|
54
|
+
/**
|
|
55
|
+
* Get the value or return a default
|
|
56
|
+
*/
|
|
57
|
+
unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Generic command result type for operations that produce events
|
|
61
|
+
* Domain-specific implementations can extend this
|
|
62
|
+
*/
|
|
63
|
+
export interface ICommandResult<TEvent = any> {
|
|
64
|
+
/**
|
|
65
|
+
* Whether the command was successful
|
|
66
|
+
*/
|
|
67
|
+
success: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Events generated during command execution
|
|
70
|
+
*/
|
|
71
|
+
events: TEvent[];
|
|
72
|
+
/**
|
|
73
|
+
* Error message if the command failed
|
|
74
|
+
*/
|
|
75
|
+
error?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Additional metadata about the command execution
|
|
78
|
+
*/
|
|
79
|
+
metadata?: Record<string, unknown>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAC3B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC3B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;OACA,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC;IAI/B;;OAEG;SACE,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAIjC;;OAEG;SACE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE;IAIvE;;OAEG;WACI,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,CAAC,CAAA;KAAE;IAI1E;;OAEG;QACC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAOrE;;OAEG;aACM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAO1E;;OAEG;YACK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAOpF;;OAEG;WACI,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;IAOrC;;OAEG;aACM,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC;CAMzD,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,MAAM,GAAG,GAAG;IAC1C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/core/src/types/result.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Result = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Convenience functions for working with Result types
|
|
7
|
+
*/
|
|
8
|
+
exports.Result = {
|
|
9
|
+
/**
|
|
10
|
+
* Create a successful result
|
|
11
|
+
*/
|
|
12
|
+
ok(value) {
|
|
13
|
+
return { success: true, value };
|
|
14
|
+
},
|
|
15
|
+
/**
|
|
16
|
+
* Create a failed result
|
|
17
|
+
*/
|
|
18
|
+
fail(error) {
|
|
19
|
+
return { success: false, error };
|
|
20
|
+
},
|
|
21
|
+
/**
|
|
22
|
+
* Check if a result is successful
|
|
23
|
+
*/
|
|
24
|
+
isOk(result) {
|
|
25
|
+
return result.success;
|
|
26
|
+
},
|
|
27
|
+
/**
|
|
28
|
+
* Check if a result is a failure
|
|
29
|
+
*/
|
|
30
|
+
isFail(result) {
|
|
31
|
+
return !result.success;
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Map a successful result to a new value
|
|
35
|
+
*/
|
|
36
|
+
map(result, fn) {
|
|
37
|
+
if (result.success) {
|
|
38
|
+
return exports.Result.ok(fn(result.value));
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* Map a failed result to a new error
|
|
44
|
+
*/
|
|
45
|
+
mapError(result, fn) {
|
|
46
|
+
if (!result.success) {
|
|
47
|
+
return exports.Result.fail(fn(result.error));
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Chain results together
|
|
53
|
+
*/
|
|
54
|
+
flatMap(result, fn) {
|
|
55
|
+
if (result.success) {
|
|
56
|
+
return fn(result.value);
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* Get the value or throw an error
|
|
62
|
+
*/
|
|
63
|
+
unwrap(result) {
|
|
64
|
+
if (result.success) {
|
|
65
|
+
return result.value;
|
|
66
|
+
}
|
|
67
|
+
throw result.error;
|
|
68
|
+
},
|
|
69
|
+
/**
|
|
70
|
+
* Get the value or return a default
|
|
71
|
+
*/
|
|
72
|
+
unwrapOr(result, defaultValue) {
|
|
73
|
+
if (result.success) {
|
|
74
|
+
return result.value;
|
|
75
|
+
}
|
|
76
|
+
return defaultValue;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;AAUpC;;GAEG;AACU,QAAA,MAAM,GAAG;IACpB;;OAEG;IACH,EAAE,CAAI,KAAQ;QACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IAAI,CAAI,KAAQ;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,CAAO,MAAoB;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAO,MAAoB;QAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,GAAG,CAAU,MAAoB,EAAE,EAAmB;QACpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,cAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAU,MAAoB,EAAE,EAAmB;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,cAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO,CAAU,MAAoB,EAAE,EAA8B;QACnE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAO,MAAoB;QAC/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAO,MAAoB,EAAE,YAAe;QAClD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Save/Restore data structures for game state serialization
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Complete save game data structure
|
|
6
|
+
*/
|
|
7
|
+
export interface ISaveData {
|
|
8
|
+
/** Engine version for compatibility checking */
|
|
9
|
+
version: string;
|
|
10
|
+
/** Unix timestamp when save was created */
|
|
11
|
+
timestamp: number;
|
|
12
|
+
/** Game metadata for save management */
|
|
13
|
+
metadata: ISaveMetadata;
|
|
14
|
+
/** Complete engine state */
|
|
15
|
+
engineState: IEngineState;
|
|
16
|
+
/** Story configuration for validation */
|
|
17
|
+
storyConfig: IStoryConfig;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Save game metadata
|
|
21
|
+
*/
|
|
22
|
+
export interface ISaveMetadata {
|
|
23
|
+
/** Unique story identifier */
|
|
24
|
+
storyId: string;
|
|
25
|
+
/** Story version for compatibility */
|
|
26
|
+
storyVersion: string;
|
|
27
|
+
/** Number of turns played */
|
|
28
|
+
turnCount: number;
|
|
29
|
+
/** Optional: Total play time in milliseconds */
|
|
30
|
+
playTime?: number;
|
|
31
|
+
/** Optional: Player-provided or auto-generated description */
|
|
32
|
+
description?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Complete engine state for serialization
|
|
36
|
+
*/
|
|
37
|
+
export interface IEngineState {
|
|
38
|
+
/** Complete event history */
|
|
39
|
+
eventSource: ISerializedEvent[];
|
|
40
|
+
/** Current world state */
|
|
41
|
+
spatialIndex: ISerializedSpatialIndex;
|
|
42
|
+
/** Turn history for undo/redo */
|
|
43
|
+
turnHistory: ISerializedTurn[];
|
|
44
|
+
/** Optional: Parser state if needed */
|
|
45
|
+
parserState?: ISerializedParserState;
|
|
46
|
+
/** Optional: Scheduler state (daemons and fuses) */
|
|
47
|
+
schedulerState?: ISerializedSchedulerState;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Serialized scheduler state for save/load
|
|
51
|
+
*/
|
|
52
|
+
export interface ISerializedSchedulerState {
|
|
53
|
+
/** Current turn number */
|
|
54
|
+
turn: number;
|
|
55
|
+
/** Daemon states */
|
|
56
|
+
daemons: ISerializedDaemonState[];
|
|
57
|
+
/** Fuse states */
|
|
58
|
+
fuses: ISerializedFuseState[];
|
|
59
|
+
/** Random seed for deterministic replay */
|
|
60
|
+
randomSeed: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Serialized daemon runtime state
|
|
64
|
+
*/
|
|
65
|
+
export interface ISerializedDaemonState {
|
|
66
|
+
/** Daemon ID */
|
|
67
|
+
id: string;
|
|
68
|
+
/** Whether daemon is paused */
|
|
69
|
+
isPaused: boolean;
|
|
70
|
+
/** Number of times daemon has run */
|
|
71
|
+
runCount: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Serialized fuse runtime state
|
|
75
|
+
*/
|
|
76
|
+
export interface ISerializedFuseState {
|
|
77
|
+
/** Fuse ID */
|
|
78
|
+
id: string;
|
|
79
|
+
/** Turns remaining until trigger */
|
|
80
|
+
turnsRemaining: number;
|
|
81
|
+
/** Whether fuse is paused */
|
|
82
|
+
isPaused: boolean;
|
|
83
|
+
/** Optional: Entity the fuse is bound to */
|
|
84
|
+
entityId?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Serialized event representation
|
|
88
|
+
*/
|
|
89
|
+
export interface ISerializedEvent {
|
|
90
|
+
/** Unique event ID */
|
|
91
|
+
id: string;
|
|
92
|
+
/** Event type */
|
|
93
|
+
type: string;
|
|
94
|
+
/** Unix timestamp */
|
|
95
|
+
timestamp: number;
|
|
96
|
+
/** Event payload data */
|
|
97
|
+
data: Record<string, unknown>;
|
|
98
|
+
/** Optional metadata */
|
|
99
|
+
metadata?: Record<string, unknown>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Serialized spatial index state
|
|
103
|
+
*/
|
|
104
|
+
export interface ISerializedSpatialIndex {
|
|
105
|
+
/** All entities indexed by ID */
|
|
106
|
+
entities: Record<string, ISerializedEntity>;
|
|
107
|
+
/** All locations indexed by ID */
|
|
108
|
+
locations: Record<string, ISerializedLocation>;
|
|
109
|
+
/** Spatial relationships */
|
|
110
|
+
relationships: Record<string, ISerializedRelationship[]>;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Serialized entity representation
|
|
114
|
+
*/
|
|
115
|
+
export interface ISerializedEntity {
|
|
116
|
+
/** Unique entity ID */
|
|
117
|
+
id: string;
|
|
118
|
+
/** Entity traits as key-value pairs */
|
|
119
|
+
traits: Record<string, unknown>;
|
|
120
|
+
/** Entity type hint for deserialization */
|
|
121
|
+
entityType?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Serialized location representation
|
|
125
|
+
*/
|
|
126
|
+
export interface ISerializedLocation {
|
|
127
|
+
/** Unique location ID */
|
|
128
|
+
id: string;
|
|
129
|
+
/** Location properties */
|
|
130
|
+
properties: Record<string, unknown>;
|
|
131
|
+
/** IDs of entities at this location */
|
|
132
|
+
contents: string[];
|
|
133
|
+
/** Connected locations */
|
|
134
|
+
connections?: Record<string, string>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Serialized spatial relationship
|
|
138
|
+
*/
|
|
139
|
+
export interface ISerializedRelationship {
|
|
140
|
+
/** Relationship type (e.g., "contains", "supports") */
|
|
141
|
+
type: string;
|
|
142
|
+
/** Source entity/location ID */
|
|
143
|
+
sourceId: string;
|
|
144
|
+
/** Target entity/location ID */
|
|
145
|
+
targetId: string;
|
|
146
|
+
/** Additional relationship data */
|
|
147
|
+
data?: Record<string, unknown>;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Serialized turn data
|
|
151
|
+
*/
|
|
152
|
+
export interface ISerializedTurn {
|
|
153
|
+
/** Turn number */
|
|
154
|
+
turnNumber: number;
|
|
155
|
+
/** Event IDs that occurred in this turn */
|
|
156
|
+
eventIds: string[];
|
|
157
|
+
/** Turn timestamp */
|
|
158
|
+
timestamp: number;
|
|
159
|
+
/** Optional: Command that triggered this turn */
|
|
160
|
+
command?: string;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Serialized parser state (if needed)
|
|
164
|
+
*/
|
|
165
|
+
export interface ISerializedParserState {
|
|
166
|
+
/** Current context stack */
|
|
167
|
+
contextStack?: unknown[];
|
|
168
|
+
/** Disambiguation state */
|
|
169
|
+
disambiguationState?: unknown;
|
|
170
|
+
/** Any other parser-specific state */
|
|
171
|
+
[key: string]: unknown;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Story configuration for validation
|
|
175
|
+
*/
|
|
176
|
+
export interface IStoryConfig {
|
|
177
|
+
/** Unique story identifier */
|
|
178
|
+
id: string;
|
|
179
|
+
/** Story version */
|
|
180
|
+
version: string;
|
|
181
|
+
/** Story title */
|
|
182
|
+
title: string;
|
|
183
|
+
/** Story author(s) */
|
|
184
|
+
author: string;
|
|
185
|
+
/** Optional: Additional story metadata */
|
|
186
|
+
metadata?: Record<string, unknown>;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Client-provided hooks for save/restore functionality
|
|
190
|
+
*/
|
|
191
|
+
export interface ISaveRestoreHooks {
|
|
192
|
+
/**
|
|
193
|
+
* Called when save is requested
|
|
194
|
+
* @param data Complete save data to persist
|
|
195
|
+
* @throws Error if save fails
|
|
196
|
+
*/
|
|
197
|
+
onSaveRequested: (data: ISaveData) => Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* Called when restore is requested
|
|
200
|
+
* @returns Save data to restore, or null if cancelled/unavailable
|
|
201
|
+
*/
|
|
202
|
+
onRestoreRequested: () => Promise<ISaveData | null>;
|
|
203
|
+
/**
|
|
204
|
+
* Called when quit is requested
|
|
205
|
+
* @param context Quit context with game state info
|
|
206
|
+
* @returns true if game should quit, false if cancelled
|
|
207
|
+
*/
|
|
208
|
+
onQuitRequested?: (context: IQuitContext) => Promise<boolean>;
|
|
209
|
+
/**
|
|
210
|
+
* Called when restart is requested
|
|
211
|
+
* @param context Restart context with game state info
|
|
212
|
+
* @returns true if game should restart, false if cancelled
|
|
213
|
+
*/
|
|
214
|
+
onRestartRequested?: (context: IRestartContext) => Promise<boolean>;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Context provided when quit is requested
|
|
218
|
+
*/
|
|
219
|
+
export interface IQuitContext {
|
|
220
|
+
/** Current game score */
|
|
221
|
+
score?: number;
|
|
222
|
+
/** Number of moves/turns taken */
|
|
223
|
+
moves?: number;
|
|
224
|
+
/** Whether there are unsaved changes */
|
|
225
|
+
hasUnsavedChanges?: boolean;
|
|
226
|
+
/** Whether to force quit without confirmation */
|
|
227
|
+
force?: boolean;
|
|
228
|
+
/** Any final game statistics */
|
|
229
|
+
stats?: Record<string, unknown>;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Context provided when restart is requested
|
|
233
|
+
*/
|
|
234
|
+
export interface IRestartContext {
|
|
235
|
+
/** Current progress information */
|
|
236
|
+
currentProgress?: {
|
|
237
|
+
score?: number;
|
|
238
|
+
moves?: number;
|
|
239
|
+
location?: string;
|
|
240
|
+
};
|
|
241
|
+
/** Whether confirmation is needed */
|
|
242
|
+
confirmationRequired?: boolean;
|
|
243
|
+
/** Whether there are unsaved changes */
|
|
244
|
+
hasUnsavedChanges?: boolean;
|
|
245
|
+
/** Whether to force restart without confirmation */
|
|
246
|
+
force?: boolean;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Result of a save operation
|
|
250
|
+
*/
|
|
251
|
+
export interface ISaveResult {
|
|
252
|
+
success: boolean;
|
|
253
|
+
error?: string;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Result of a restore operation
|
|
257
|
+
*/
|
|
258
|
+
export interface IRestoreResult {
|
|
259
|
+
success: boolean;
|
|
260
|
+
error?: string;
|
|
261
|
+
/** If true, UI should perform full refresh */
|
|
262
|
+
refreshUI?: boolean;
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=save-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-data.d.ts","sourceRoot":"","sources":["../../src/types/save-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"save-data.js","sourceRoot":"","sources":["../../src/types/save-data.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sharpee/core",
|
|
3
|
+
"version": "0.9.56-beta",
|
|
4
|
+
"description": "Core functionality for the Sharpee interactive fiction engine",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.mjs",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/node": "^18.0.0",
|
|
17
|
+
"@typescript-eslint/eslint-plugin": "^5.59.0",
|
|
18
|
+
"@typescript-eslint/parser": "^5.59.0",
|
|
19
|
+
"cross-env": "^7.0.3",
|
|
20
|
+
"eslint": "^8.38.0",
|
|
21
|
+
"rimraf": "^5.0.0",
|
|
22
|
+
"typescript": "^5.0.0"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"keywords": [
|
|
28
|
+
"interactive-fiction",
|
|
29
|
+
"if",
|
|
30
|
+
"text-adventure",
|
|
31
|
+
"sharpee",
|
|
32
|
+
"core",
|
|
33
|
+
"ifid"
|
|
34
|
+
],
|
|
35
|
+
"author": "Sharpee Team",
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "https://github.com/ChicagoDave/sharpee.git",
|
|
40
|
+
"directory": "packages/core"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://github.com/ChicagoDave/sharpee#readme",
|
|
43
|
+
"bugs": {
|
|
44
|
+
"url": "https://github.com/ChicagoDave/sharpee/issues"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=18.0.0"
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"eventemitter3": "^5.0.1"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build": "tsc",
|
|
57
|
+
"test": "vitest",
|
|
58
|
+
"test:ci": "vitest run",
|
|
59
|
+
"test:verbose": "vitest run --reporter=verbose",
|
|
60
|
+
"test:watch": "vitest",
|
|
61
|
+
"test:coverage": "vitest run --coverage",
|
|
62
|
+
"lint": "eslint src --ext .ts",
|
|
63
|
+
"clean": "rimraf dist"
|
|
64
|
+
}
|
|
65
|
+
}
|