@holoscript/std 2.1.0 → 3.1.1

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 (85) hide show
  1. package/README.md +197 -0
  2. package/dist/__tests__/EconomicPrimitives.test.d.ts.map +1 -0
  3. package/dist/__tests__/EconomicTraits.test.d.ts.map +1 -0
  4. package/dist/__tests__/SimulationLabPrimitives.test.d.ts.map +1 -0
  5. package/dist/__tests__/Sprint33.test.d.ts.map +1 -0
  6. package/dist/__tests__/Sprint56.test.d.ts.map +1 -0
  7. package/dist/__tests__/collections.test.d.ts.map +1 -0
  8. package/dist/__tests__/events.test.d.ts.map +1 -0
  9. package/dist/__tests__/materials.test.d.ts.map +1 -0
  10. package/dist/__tests__/math.test.d.ts.map +1 -0
  11. package/dist/__tests__/physics.test.d.ts.map +1 -0
  12. package/dist/__tests__/spatial.test.d.ts.map +1 -0
  13. package/dist/__tests__/string-decoupled.test.d.ts.map +1 -0
  14. package/dist/__tests__/string.test.d.ts.map +1 -0
  15. package/dist/__tests__/time.test.d.ts.map +1 -0
  16. package/dist/collections.d.ts.map +1 -1
  17. package/dist/events.d.ts.map +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +42 -9
  20. package/dist/materials.d.ts.map +1 -0
  21. package/dist/math.d.ts.map +1 -1
  22. package/dist/physics.d.ts.map +1 -0
  23. package/dist/spatial.d.ts.map +1 -0
  24. package/dist/string.d.ts.map +1 -1
  25. package/dist/time.d.ts.map +1 -1
  26. package/dist/traits/ARTraits.d.ts.map +1 -0
  27. package/dist/traits/EconomicPrimitives.d.ts.map +1 -0
  28. package/dist/traits/EconomicTraits.d.ts.map +1 -0
  29. package/dist/traits/IoTTraits.d.ts.map +1 -0
  30. package/dist/traits/SimulationLabPrimitives.d.ts.map +1 -0
  31. package/dist/traits/SimulationLabTraits.d.ts.map +1 -0
  32. package/dist/traits/VRRTraits.d.ts.map +1 -0
  33. package/dist/types.d.ts.map +1 -1
  34. package/package.json +17 -6
  35. package/src/__tests__/EconomicPrimitives.test.ts +690 -0
  36. package/src/__tests__/EconomicTraits.test.ts +425 -0
  37. package/src/__tests__/SimulationLabPrimitives.test.ts +415 -0
  38. package/src/__tests__/Sprint33.test.ts +1301 -0
  39. package/src/__tests__/Sprint56.test.ts +1070 -0
  40. package/src/__tests__/collections.test.ts +182 -0
  41. package/src/__tests__/events.test.ts +135 -0
  42. package/src/__tests__/materials.test.ts +84 -0
  43. package/src/__tests__/math.test.ts +246 -0
  44. package/src/__tests__/physics.test.ts +83 -0
  45. package/src/__tests__/spatial.test.ts +333 -0
  46. package/src/__tests__/string-decoupled.test.ts +16 -0
  47. package/src/__tests__/string.test.ts +164 -0
  48. package/src/__tests__/time.test.ts +110 -0
  49. package/src/collections.ts +8 -2
  50. package/src/events.ts +88 -0
  51. package/src/index.ts +161 -11
  52. package/src/materials.ts +109 -0
  53. package/src/math.ts +30 -14
  54. package/src/physics.ts +141 -0
  55. package/src/spatial.ts +320 -0
  56. package/src/string.basic.test.ts +14 -0
  57. package/src/string.test.ts +335 -0
  58. package/src/string.ts +19 -2
  59. package/src/time.ts +9 -10
  60. package/src/traits/ARTraits.ts +103 -0
  61. package/src/traits/EconomicPrimitives.ts +755 -0
  62. package/src/traits/EconomicTraits.ts +552 -0
  63. package/src/traits/IoTTraits.ts +102 -0
  64. package/src/traits/SimulationLabPrimitives.ts +650 -0
  65. package/src/traits/SimulationLabTraits.ts +191 -0
  66. package/src/traits/VRRTraits.ts +326 -0
  67. package/src/types.ts +47 -12
  68. package/vitest.config.ts +10 -0
  69. package/dist/collections.d.ts +0 -177
  70. package/dist/collections.js +0 -720
  71. package/dist/collections.js.map +0 -1
  72. package/dist/index.d.ts +0 -89
  73. package/dist/index.js.map +0 -1
  74. package/dist/math.d.ts +0 -162
  75. package/dist/math.js +0 -539
  76. package/dist/math.js.map +0 -1
  77. package/dist/string.d.ts +0 -208
  78. package/dist/string.js +0 -443
  79. package/dist/string.js.map +0 -1
  80. package/dist/time.d.ts +0 -215
  81. package/dist/time.js +0 -530
  82. package/dist/time.js.map +0 -1
  83. package/dist/types.d.ts +0 -193
  84. package/dist/types.js +0 -198
  85. package/dist/types.js.map +0 -1
package/dist/time.d.ts DELETED
@@ -1,215 +0,0 @@
1
- /**
2
- * @holoscript/std - Time Module
3
- *
4
- * Time, timer, and scheduling utilities for HoloScript Plus programs.
5
- */
6
- /**
7
- * Get current timestamp in milliseconds
8
- */
9
- export declare function now(): number;
10
- /**
11
- * Get high-resolution timestamp (for performance measurement)
12
- */
13
- export declare function hrTime(): number;
14
- /**
15
- * Sleep for a specified number of milliseconds
16
- */
17
- export declare function sleep(ms: number): Promise<void>;
18
- /**
19
- * Wait until a condition is true
20
- */
21
- export declare function waitUntil(condition: () => boolean | Promise<boolean>, options?: {
22
- timeout?: number;
23
- interval?: number;
24
- }): Promise<void>;
25
- /**
26
- * Execute a function with timeout
27
- */
28
- export declare function withTimeout<T>(fn: () => Promise<T>, ms: number): Promise<T>;
29
- /**
30
- * Retry a function with exponential backoff
31
- */
32
- export declare function retry<T>(fn: () => Promise<T>, options?: {
33
- maxAttempts?: number;
34
- initialDelay?: number;
35
- maxDelay?: number;
36
- factor?: number;
37
- onRetry?: (error: Error, attempt: number) => void;
38
- }): Promise<T>;
39
- /**
40
- * Debounce a function
41
- */
42
- export declare function debounce<T extends (...args: unknown[]) => unknown>(fn: T, ms: number): T;
43
- /**
44
- * Throttle a function
45
- */
46
- export declare function throttle<T extends (...args: unknown[]) => unknown>(fn: T, ms: number): T;
47
- /**
48
- * Measure execution time of a function
49
- */
50
- export declare function measure<T>(fn: () => T | Promise<T>): Promise<{
51
- result: T;
52
- duration: number;
53
- }>;
54
- /**
55
- * Measure execution time and log it
56
- */
57
- export declare function timed<T>(label: string, fn: () => T | Promise<T>): Promise<T>;
58
- /**
59
- * Simple stopwatch for measuring elapsed time
60
- */
61
- export declare class Stopwatch {
62
- private startTime;
63
- private pausedTime;
64
- private running;
65
- start(): this;
66
- stop(): number;
67
- reset(): this;
68
- restart(): this;
69
- get elapsed(): number;
70
- get isRunning(): boolean;
71
- lap(): number;
72
- }
73
- /**
74
- * Interval timer with pause/resume support
75
- */
76
- export declare class IntervalTimer {
77
- private intervalId;
78
- private callback;
79
- private intervalMs;
80
- private isPaused;
81
- constructor(callback: () => void, intervalMs: number);
82
- start(): this;
83
- stop(): this;
84
- pause(): this;
85
- resume(): this;
86
- get running(): boolean;
87
- get paused(): boolean;
88
- }
89
- /**
90
- * Countdown timer
91
- */
92
- export declare class CountdownTimer {
93
- private remainingMs;
94
- private startTime;
95
- private running;
96
- private onTick?;
97
- private onComplete?;
98
- private tickIntervalId;
99
- constructor(durationMs: number, options?: {
100
- onTick?: (remaining: number) => void;
101
- onComplete?: () => void;
102
- tickInterval?: number;
103
- });
104
- start(): this;
105
- pause(): this;
106
- resume(): this;
107
- reset(durationMs?: number): this;
108
- stop(): this;
109
- get remaining(): number;
110
- get isRunning(): boolean;
111
- get isComplete(): boolean;
112
- private scheduleCompletion;
113
- }
114
- /**
115
- * Frame-based timer for game loops
116
- */
117
- export declare class FrameTimer {
118
- private lastFrameTime;
119
- private deltaTime;
120
- private frameCount;
121
- private fps;
122
- private fpsUpdateInterval;
123
- private lastFpsUpdate;
124
- private framesSinceLastFpsUpdate;
125
- /**
126
- * Call at the start of each frame
127
- */
128
- update(): void;
129
- /**
130
- * Get delta time in seconds since last frame
131
- */
132
- get delta(): number;
133
- /**
134
- * Get delta time in milliseconds since last frame
135
- */
136
- get deltaMs(): number;
137
- /**
138
- * Get total frame count
139
- */
140
- get frames(): number;
141
- /**
142
- * Get current FPS (frames per second)
143
- */
144
- get currentFps(): number;
145
- /**
146
- * Get total elapsed time in seconds
147
- */
148
- get totalTime(): number;
149
- /**
150
- * Reset the timer
151
- */
152
- reset(): void;
153
- }
154
- /**
155
- * Schedule a callback to run after a delay
156
- */
157
- export declare function schedule(callback: () => void, delayMs: number): () => void;
158
- /**
159
- * Schedule a callback to run at regular intervals
160
- */
161
- export declare function scheduleInterval(callback: () => void, intervalMs: number): () => void;
162
- /**
163
- * Schedule a callback to run on the next animation frame (browser only)
164
- */
165
- export declare function scheduleFrame(callback: (timestamp: number) => void): () => void;
166
- /**
167
- * Create a ticker that calls a callback at a target frame rate
168
- */
169
- export declare function createTicker(callback: (delta: number) => void, targetFps?: number): {
170
- start: () => void;
171
- stop: () => void;
172
- };
173
- /**
174
- * Date/time formatting utilities
175
- */
176
- export declare const DateTime: {
177
- /**
178
- * Format a date as ISO string
179
- */
180
- toISO(date?: Date): string;
181
- /**
182
- * Format a date as local string
183
- */
184
- toLocal(date?: Date): string;
185
- /**
186
- * Format a date using a pattern
187
- * Supports: YYYY, MM, DD, HH, mm, ss, SSS
188
- */
189
- format(date: Date, pattern: string): string;
190
- /**
191
- * Parse a date string
192
- */
193
- parse(dateString: string): Date;
194
- /**
195
- * Get difference between two dates in various units
196
- */
197
- diff(date1: Date, date2: Date, unit?: "ms" | "s" | "m" | "h" | "d"): number;
198
- /**
199
- * Add time to a date
200
- */
201
- add(date: Date, amount: number, unit: "ms" | "s" | "m" | "h" | "d"): Date;
202
- /**
203
- * Check if a date is today
204
- */
205
- isToday(date: Date): boolean;
206
- /**
207
- * Get start of day
208
- */
209
- startOfDay(date?: Date): Date;
210
- /**
211
- * Get end of day
212
- */
213
- endOfDay(date?: Date): Date;
214
- };
215
- //# sourceMappingURL=time.d.ts.map