qnce-engine 1.2.0 → 1.2.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.
Files changed (125) hide show
  1. package/README.md +713 -7
  2. package/dist/cli/audit.js +0 -0
  3. package/dist/cli/init.js +0 -0
  4. package/dist/cli/perf.d.ts.map +1 -1
  5. package/dist/cli/perf.js +2 -1
  6. package/dist/cli/perf.js.map +1 -1
  7. package/dist/cli/play.d.ts +4 -0
  8. package/dist/cli/play.d.ts.map +1 -0
  9. package/dist/cli/play.js +259 -0
  10. package/dist/cli/play.js.map +1 -0
  11. package/dist/engine/condition.d.ts +69 -0
  12. package/dist/engine/condition.d.ts.map +1 -0
  13. package/dist/engine/condition.js +195 -0
  14. package/dist/engine/condition.js.map +1 -0
  15. package/dist/engine/core.d.ts +274 -3
  16. package/dist/engine/core.d.ts.map +1 -1
  17. package/dist/engine/core.js +1148 -9
  18. package/dist/engine/core.js.map +1 -1
  19. package/dist/engine/demo-story.d.ts.map +1 -1
  20. package/dist/engine/demo-story.js +99 -13
  21. package/dist/engine/demo-story.js.map +1 -1
  22. package/dist/engine/errors.d.ts +76 -0
  23. package/dist/engine/errors.d.ts.map +1 -0
  24. package/dist/engine/errors.js +178 -0
  25. package/dist/engine/errors.js.map +1 -0
  26. package/dist/engine/types.d.ts +445 -0
  27. package/dist/engine/types.d.ts.map +1 -0
  28. package/dist/engine/types.js +9 -0
  29. package/dist/engine/types.js.map +1 -0
  30. package/dist/engine/validation.d.ts +110 -0
  31. package/dist/engine/validation.d.ts.map +1 -0
  32. package/dist/engine/validation.js +261 -0
  33. package/dist/engine/validation.js.map +1 -0
  34. package/dist/examples/examples/autosave-undo-demo.js +248 -0
  35. package/dist/examples/examples/persistence-demo.js +63 -0
  36. package/dist/examples/src/engine/condition.js +194 -0
  37. package/dist/examples/src/engine/core.js +1382 -0
  38. package/dist/examples/src/engine/demo-story.js +200 -0
  39. package/dist/examples/src/engine/types.js +8 -0
  40. package/dist/examples/src/index.js +35 -0
  41. package/dist/examples/src/integrations/react.js +322 -0
  42. package/dist/examples/src/narrative/branching/engine-simple.js +348 -0
  43. package/dist/examples/src/narrative/branching/index.js +55 -0
  44. package/dist/examples/src/narrative/branching/models.js +5 -0
  45. package/dist/examples/src/performance/ObjectPool.js +296 -0
  46. package/dist/examples/src/performance/PerfReporter.js +280 -0
  47. package/dist/examples/src/performance/ThreadPool.js +347 -0
  48. package/dist/index.d.ts +4 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +12 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/integrations/react.d.ts +200 -0
  53. package/dist/integrations/react.d.ts.map +1 -0
  54. package/dist/integrations/react.js +365 -0
  55. package/dist/integrations/react.js.map +1 -0
  56. package/dist/narrative/branching/engine-simple.js +3 -3
  57. package/dist/narrative/branching/engine-simple.js.map +1 -1
  58. package/dist/narrative/branching/engine.d.ts +1 -0
  59. package/dist/narrative/branching/engine.d.ts.map +1 -0
  60. package/dist/narrative/branching/engine.js +2 -0
  61. package/dist/narrative/branching/engine.js.map +1 -0
  62. package/dist/narrative/branching/models.d.ts.map +1 -1
  63. package/dist/performance/HotReloadDelta.d.ts +25 -8
  64. package/dist/performance/HotReloadDelta.d.ts.map +1 -1
  65. package/dist/performance/HotReloadDelta.js +10 -15
  66. package/dist/performance/HotReloadDelta.js.map +1 -1
  67. package/dist/ui/__tests__/AutosaveIndicator.test.d.ts +2 -0
  68. package/dist/ui/__tests__/AutosaveIndicator.test.d.ts.map +1 -0
  69. package/dist/ui/__tests__/AutosaveIndicator.test.js +329 -0
  70. package/dist/ui/__tests__/AutosaveIndicator.test.js.map +1 -0
  71. package/dist/ui/__tests__/UndoRedoControls.test.d.ts +2 -0
  72. package/dist/ui/__tests__/UndoRedoControls.test.d.ts.map +1 -0
  73. package/dist/ui/__tests__/UndoRedoControls.test.js +245 -0
  74. package/dist/ui/__tests__/UndoRedoControls.test.js.map +1 -0
  75. package/dist/ui/__tests__/autosave-simple.test.d.ts +2 -0
  76. package/dist/ui/__tests__/autosave-simple.test.d.ts.map +1 -0
  77. package/dist/ui/__tests__/autosave-simple.test.js +29 -0
  78. package/dist/ui/__tests__/autosave-simple.test.js.map +1 -0
  79. package/dist/ui/__tests__/setup.d.ts +2 -0
  80. package/dist/ui/__tests__/setup.d.ts.map +1 -0
  81. package/dist/ui/__tests__/setup.js +40 -0
  82. package/dist/ui/__tests__/setup.js.map +1 -0
  83. package/dist/ui/__tests__/smoke-test.d.ts +2 -0
  84. package/dist/ui/__tests__/smoke-test.d.ts.map +1 -0
  85. package/dist/ui/__tests__/smoke-test.js +18 -0
  86. package/dist/ui/__tests__/smoke-test.js.map +1 -0
  87. package/dist/ui/__tests__/smoke-test.test.d.ts +2 -0
  88. package/dist/ui/__tests__/smoke-test.test.d.ts.map +1 -0
  89. package/dist/ui/__tests__/smoke-test.test.js +18 -0
  90. package/dist/ui/__tests__/smoke-test.test.js.map +1 -0
  91. package/dist/ui/__tests__/useKeyboardShortcuts.test.d.ts +2 -0
  92. package/dist/ui/__tests__/useKeyboardShortcuts.test.d.ts.map +1 -0
  93. package/dist/ui/__tests__/useKeyboardShortcuts.test.js +374 -0
  94. package/dist/ui/__tests__/useKeyboardShortcuts.test.js.map +1 -0
  95. package/dist/ui/components/AutosaveIndicator.d.ts +18 -0
  96. package/dist/ui/components/AutosaveIndicator.d.ts.map +1 -0
  97. package/dist/ui/components/AutosaveIndicator.js +175 -0
  98. package/dist/ui/components/AutosaveIndicator.js.map +1 -0
  99. package/dist/ui/components/UndoRedoControls.d.ts +16 -0
  100. package/dist/ui/components/UndoRedoControls.d.ts.map +1 -0
  101. package/dist/ui/components/UndoRedoControls.js +144 -0
  102. package/dist/ui/components/UndoRedoControls.js.map +1 -0
  103. package/dist/ui/hooks/useKeyboardShortcuts.d.ts +22 -0
  104. package/dist/ui/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  105. package/dist/ui/hooks/useKeyboardShortcuts.js +162 -0
  106. package/dist/ui/hooks/useKeyboardShortcuts.js.map +1 -0
  107. package/dist/ui/index.d.ts +9 -0
  108. package/dist/ui/index.d.ts.map +1 -0
  109. package/dist/ui/index.js +14 -0
  110. package/dist/ui/index.js.map +1 -0
  111. package/dist/ui/types.d.ts +141 -0
  112. package/dist/ui/types.d.ts.map +1 -0
  113. package/dist/ui/types.js +51 -0
  114. package/dist/ui/types.js.map +1 -0
  115. package/examples/autosave-undo-demo.ts +306 -0
  116. package/examples/branching-demo-simple.ts +0 -0
  117. package/examples/branching-demo.ts +0 -0
  118. package/examples/persistence-demo.ts +84 -0
  119. package/examples/tsconfig.json +13 -0
  120. package/examples/ui-components-demo.tsx +320 -0
  121. package/examples/validation-demo-story.json +177 -0
  122. package/examples/validation-demo.js +163 -0
  123. package/package.json +24 -4
  124. package/docs/branching/PDM.md +0 -443
  125. package/docs/branching/RELEASE-v1.2.0.md +0 -169
@@ -1,16 +1,32 @@
1
1
  import { ThreadPoolConfig } from '../performance/ThreadPool';
2
2
  import { QNCEBranchingEngine } from '../narrative/branching';
3
3
  import { QNCEStory } from '../narrative/branching/models';
4
+ import { ChoiceValidator, ValidationResult } from './validation';
5
+ export { QNCENavigationError, ChoiceValidationError } from './errors';
6
+ import { SerializedState, Checkpoint, SerializationOptions, LoadOptions, PersistenceResult, CheckpointOptions } from './types';
7
+ import { CustomEvaluatorFunction } from './condition';
8
+ import { AutosaveConfig, UndoRedoConfig, UndoRedoResult, AutosaveResult } from './types';
4
9
  export interface Choice {
5
10
  text: string;
6
11
  nextNodeId: string;
7
12
  flagEffects?: Record<string, unknown>;
13
+ flagRequirements?: Record<string, unknown>;
14
+ timeRequirements?: {
15
+ minTime?: number;
16
+ maxTime?: number;
17
+ availableAfter?: Date;
18
+ availableBefore?: Date;
19
+ };
20
+ inventoryRequirements?: Record<string, number>;
21
+ enabled?: boolean;
22
+ condition?: string;
8
23
  }
9
24
  export interface NarrativeNode {
10
25
  id: string;
11
26
  text: string;
12
27
  choices: Choice[];
13
28
  }
29
+ export { QNCEStory };
14
30
  export interface QNCEState {
15
31
  currentNodeId: string;
16
32
  flags: Record<string, unknown>;
@@ -33,21 +49,98 @@ export interface StoryData {
33
49
  */
34
50
  export declare class QNCEEngine {
35
51
  private state;
36
- private storyData;
52
+ storyData: StoryData;
37
53
  private activeFlowEvents;
38
54
  private performanceMode;
39
55
  private enableProfiling;
40
56
  private branchingEngine?;
57
+ private choiceValidator;
58
+ private checkpoints;
59
+ private maxCheckpoints;
60
+ private autoCheckpointEnabled;
61
+ private checkpointManager?;
62
+ private undoStack;
63
+ private redoStack;
64
+ private autosaveConfig;
65
+ private undoRedoConfig;
66
+ private lastAutosaveTime;
67
+ private isUndoRedoOperation;
68
+ get flags(): Record<string, unknown>;
69
+ get history(): string[];
70
+ get isComplete(): boolean;
41
71
  constructor(storyData: StoryData, initialState?: Partial<QNCEState>, performanceMode?: boolean, threadPoolConfig?: Partial<ThreadPoolConfig>);
72
+ /**
73
+ * Navigate directly to a specific node by ID
74
+ * @param nodeId - The ID of the node to navigate to
75
+ * @throws {QNCENavigationError} When nodeId is invalid or not found
76
+ */
77
+ goToNodeById(nodeId: string): void;
78
+ /**
79
+ * Get the current narrative node
80
+ * @returns The current node object
81
+ */
42
82
  getCurrentNode(): NarrativeNode;
83
+ /**
84
+ * Get available choices from the current node with validation and conditional filtering
85
+ * @returns Array of available choices
86
+ */
87
+ getAvailableChoices(): Choice[];
88
+ makeChoice(choiceIndex: number): void;
43
89
  getState(): QNCEState;
44
90
  getFlags(): Record<string, unknown>;
91
+ setFlag(key: string, value: unknown): void;
45
92
  getHistory(): string[];
46
93
  selectChoice(choice: Choice): void;
47
94
  resetNarrative(): void;
48
- loadState(state: QNCEState): void;
95
+ /**
96
+ * Load simple state (legacy method for backward compatibility)
97
+ * @param state - QNCEState to load
98
+ */
99
+ loadSimpleState(state: QNCEState): void;
100
+ /**
101
+ * Save current engine state to a serialized format
102
+ * @param options - Serialization options
103
+ * @returns Promise resolving to serialized state
104
+ */
105
+ saveState(options?: SerializationOptions): Promise<SerializedState>;
106
+ /**
107
+ * Load engine state from serialized format
108
+ * @param serializedState - The serialized state to load
109
+ * @param options - Load options
110
+ * @returns Promise resolving to persistence result
111
+ */
112
+ loadState(serializedState: SerializedState, options?: LoadOptions): Promise<PersistenceResult>;
113
+ /**
114
+ * Create a lightweight checkpoint of current state
115
+ * @param name - Optional checkpoint name
116
+ * @param options - Checkpoint options
117
+ * @returns Promise resolving to created checkpoint
118
+ */
119
+ createCheckpoint(name?: string, options?: CheckpointOptions): Promise<Checkpoint>;
120
+ /**
121
+ * Restore engine state from a checkpoint
122
+ * @param checkpointId - ID of checkpoint to restore
123
+ * @returns Promise resolving to persistence result
124
+ */
125
+ restoreFromCheckpoint(checkpointId: string): Promise<PersistenceResult>;
49
126
  checkFlag(flagName: string, expectedValue?: unknown): boolean;
50
- getAvailableChoices(): Choice[];
127
+ /**
128
+ * Get the choice validator instance
129
+ * @returns The current choice validator
130
+ */
131
+ getChoiceValidator(): ChoiceValidator;
132
+ /**
133
+ * Validate a specific choice without executing it
134
+ * @param choice - The choice to validate
135
+ * @returns Validation result with details
136
+ */
137
+ validateChoice(choice: Choice): ValidationResult;
138
+ /**
139
+ * Check if a specific choice is valid without executing it
140
+ * @param choice - The choice to check
141
+ * @returns True if the choice is valid, false otherwise
142
+ */
143
+ isChoiceValid(choice: Choice): boolean;
51
144
  /**
52
145
  * Create a flow event using pooled objects for performance tracking
53
146
  */
@@ -130,6 +223,184 @@ export declare class QNCEEngine {
130
223
  * Background cache warming for story data
131
224
  */
132
225
  warmCache(): Promise<void>;
226
+ /**
227
+ * Deep copy utility for state objects
228
+ * @param obj - Object to deep copy
229
+ * @returns Deep copied object
230
+ */
231
+ private deepCopy;
232
+ /**
233
+ * Generate a hash for the current story data
234
+ * @returns Story hash string
235
+ */
236
+ private generateStoryHash;
237
+ /**
238
+ * Generate a unique checkpoint ID
239
+ * @returns Unique checkpoint ID
240
+ */
241
+ private generateCheckpointId;
242
+ /**
243
+ * Generate checksum for data integrity
244
+ * @param data - Data to generate checksum for
245
+ * @returns Promise resolving to checksum string
246
+ */
247
+ private generateChecksum;
248
+ /**
249
+ * Verify checksum integrity
250
+ * @param serializedState - State with checksum to verify
251
+ * @returns Promise resolving to verification result
252
+ */
253
+ private verifyChecksum;
254
+ /**
255
+ * Validate the structure of the serialized state object
256
+ * @param serializedState - State to validate
257
+ * @returns Validation result
258
+ */
259
+ private validateSerializedState;
260
+ /**
261
+ * Check version compatibility
262
+ * @param metadata - Serialization metadata
263
+ * @returns Compatibility check result
264
+ */
265
+ private checkCompatibility;
266
+ /**
267
+ * Cleanup old checkpoints based on strategy
268
+ * @param strategy - Cleanup strategy
269
+ * @param maxCheckpoints - Maximum number of checkpoints to keep
270
+ * @returns Promise resolving to number of cleaned checkpoints
271
+ */
272
+ private cleanupCheckpoints;
273
+ /**
274
+ * Get all checkpoints
275
+ * @returns Array of all checkpoints
276
+ */
277
+ getCheckpoints(): Checkpoint[];
278
+ /**
279
+ * Get specific checkpoint by ID
280
+ * @param id - Checkpoint ID
281
+ * @returns Checkpoint or undefined
282
+ */
283
+ getCheckpoint(id: string): Checkpoint | undefined;
284
+ /**
285
+ * Delete a checkpoint
286
+ * @param id - Checkpoint ID to delete
287
+ * @returns Whether checkpoint was deleted
288
+ */
289
+ deleteCheckpoint(id: string): boolean;
290
+ /**
291
+ * Enable/disable automatic checkpointing
292
+ * @param enabled - Whether to enable auto-checkpointing
293
+ */
294
+ setAutoCheckpoint(enabled: boolean): void;
295
+ /**
296
+ * Configure autosave settings
297
+ * @param config - Autosave configuration
298
+ */
299
+ configureAutosave(config: Partial<AutosaveConfig>): void;
300
+ /**
301
+ * Configure undo/redo settings
302
+ * @param config - Undo/redo configuration
303
+ */
304
+ configureUndoRedo(config: Partial<UndoRedoConfig>): void;
305
+ /**
306
+ * Push a state to the undo stack
307
+ * @param state - State to save
308
+ * @param action - Action that caused this state change
309
+ * @param metadata - Optional metadata about the change
310
+ */
311
+ private pushToUndoStack;
312
+ /**
313
+ * Undo the last operation
314
+ * @returns Result of undo operation
315
+ */
316
+ undo(): UndoRedoResult;
317
+ /**
318
+ * Redo the last undone operation
319
+ * @returns Result of redo operation
320
+ */
321
+ redo(): UndoRedoResult;
322
+ /**
323
+ * Check if undo is available
324
+ * @returns True if undo is possible
325
+ */
326
+ canUndo(): boolean;
327
+ /**
328
+ * Check if redo is available
329
+ * @returns True if redo is possible
330
+ */
331
+ canRedo(): boolean;
332
+ /**
333
+ * Get the number of available undo operations
334
+ * @returns Number of undo entries
335
+ */
336
+ getUndoCount(): number;
337
+ /**
338
+ * Get the number of available redo operations
339
+ * @returns Number of redo entries
340
+ */
341
+ getRedoCount(): number;
342
+ /**
343
+ * Clear all undo/redo history
344
+ */
345
+ clearHistory(): void;
346
+ /**
347
+ * Get history summary for debugging
348
+ * @returns Summary of undo/redo history
349
+ */
350
+ getHistorySummary(): {
351
+ undoEntries: {
352
+ id: string;
353
+ timestamp: string;
354
+ action?: string;
355
+ }[];
356
+ redoEntries: {
357
+ id: string;
358
+ timestamp: string;
359
+ action?: string;
360
+ }[];
361
+ };
362
+ /**
363
+ * Trigger an autosave operation
364
+ * @param trigger - What triggered the autosave
365
+ * @param metadata - Optional metadata about the trigger
366
+ * @returns Promise resolving to autosave result
367
+ */
368
+ private triggerAutosave;
369
+ /**
370
+ * Manually trigger an autosave
371
+ * @param metadata - Optional metadata
372
+ * @returns Promise resolving to autosave result
373
+ */
374
+ manualAutosave(metadata?: Record<string, unknown>): Promise<AutosaveResult>;
375
+ /**
376
+ * Generate a unique history entry ID
377
+ * @returns Unique ID string
378
+ */
379
+ private generateHistoryId;
380
+ /**
381
+ * Set a custom condition evaluator function for complex choice logic
382
+ * @param evaluator - Custom evaluator function
383
+ */
384
+ setConditionEvaluator(evaluator: CustomEvaluatorFunction): void;
385
+ /**
386
+ * Clear the custom condition evaluator
387
+ */
388
+ clearConditionEvaluator(): void;
389
+ /**
390
+ * Validate a condition expression without evaluating it
391
+ * @param expression - Condition expression to validate
392
+ * @returns Validation result
393
+ */
394
+ validateCondition(expression: string): {
395
+ valid: boolean;
396
+ error?: string;
397
+ };
398
+ /**
399
+ * Get flags referenced in a condition expression
400
+ * @param expression - Condition expression to analyze
401
+ * @returns Array of flag names referenced
402
+ */
403
+ getConditionFlags(expression: string): string[];
133
404
  }
134
405
  /**
135
406
  * Factory function to create a QNCE engine instance
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/engine/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/engine/core.ts"],"names":[],"mappings":"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"}