@holoscript/std 2.1.0

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.
@@ -0,0 +1,177 @@
1
+ /**
2
+ * @holoscript/std - Collections Module
3
+ *
4
+ * Provides List, Map, and Set implementations with functional operations
5
+ * for use in HoloScript Plus programs.
6
+ */
7
+ import type { Vec3 } from './types.js';
8
+ /**
9
+ * Immutable List with functional operations
10
+ */
11
+ export declare class List<T> {
12
+ private readonly items;
13
+ constructor(items?: Iterable<T>);
14
+ static of<T>(...items: T[]): List<T>;
15
+ static from<T>(iterable: Iterable<T>): List<T>;
16
+ static range(start: number, end: number, step?: number): List<number>;
17
+ static repeat<T>(value: T, count: number): List<T>;
18
+ get length(): number;
19
+ get isEmpty(): boolean;
20
+ get(index: number): T | undefined;
21
+ first(): T | undefined;
22
+ last(): T | undefined;
23
+ map<U>(fn: (item: T, index: number) => U): List<U>;
24
+ flatMap<U>(fn: (item: T, index: number) => List<U> | U[]): List<U>;
25
+ filter(predicate: (item: T, index: number) => boolean): List<T>;
26
+ reject(predicate: (item: T, index: number) => boolean): List<T>;
27
+ reduce<U>(fn: (acc: U, item: T, index: number) => U, initial: U): U;
28
+ fold<U>(initial: U, fn: (acc: U, item: T) => U): U;
29
+ find(predicate: (item: T, index: number) => boolean): T | undefined;
30
+ findIndex(predicate: (item: T, index: number) => boolean): number;
31
+ indexOf(item: T): number;
32
+ includes(item: T): boolean;
33
+ some(predicate: (item: T, index: number) => boolean): boolean;
34
+ every(predicate: (item: T, index: number) => boolean): boolean;
35
+ none(predicate: (item: T, index: number) => boolean): boolean;
36
+ count(predicate: (item: T, index: number) => boolean): number;
37
+ forEach(fn: (item: T, index: number) => void): void;
38
+ concat(...lists: (List<T> | T[])[]): List<T>;
39
+ append(item: T): List<T>;
40
+ prepend(item: T): List<T>;
41
+ insert(index: number, item: T): List<T>;
42
+ remove(index: number): List<T>;
43
+ update(index: number, item: T): List<T>;
44
+ slice(start?: number, end?: number): List<T>;
45
+ take(n: number): List<T>;
46
+ takeLast(n: number): List<T>;
47
+ takeWhile(predicate: (item: T, index: number) => boolean): List<T>;
48
+ drop(n: number): List<T>;
49
+ dropLast(n: number): List<T>;
50
+ dropWhile(predicate: (item: T, index: number) => boolean): List<T>;
51
+ reverse(): List<T>;
52
+ sort(compareFn?: (a: T, b: T) => number): List<T>;
53
+ sortBy<U>(fn: (item: T) => U): List<T>;
54
+ shuffle(): List<T>;
55
+ unique(): List<T>;
56
+ uniqueBy<U>(fn: (item: T) => U): List<T>;
57
+ groupBy<K>(fn: (item: T) => K): HoloMap<K, List<T>>;
58
+ partition(predicate: (item: T, index: number) => boolean): [List<T>, List<T>];
59
+ zip<U>(other: List<U>): List<[T, U]>;
60
+ zipWith<U, V>(other: List<U>, fn: (a: T, b: U) => V): List<V>;
61
+ flatten<U>(this: List<List<U> | U[]>): List<U>;
62
+ sum(this: List<number>): number;
63
+ min(this: List<number>): number | undefined;
64
+ max(this: List<number>): number | undefined;
65
+ average(this: List<number>): number | undefined;
66
+ join(separator?: string): string;
67
+ toArray(): T[];
68
+ toSet(): HoloSet<T>;
69
+ [Symbol.iterator](): Iterator<T>;
70
+ toString(): string;
71
+ }
72
+ /**
73
+ * Immutable Map with functional operations
74
+ */
75
+ export declare class HoloMap<K, V> {
76
+ private readonly _map;
77
+ constructor(entries?: Iterable<[K, V]> | Map<K, V>);
78
+ static of<K, V>(...entries: [K, V][]): HoloMap<K, V>;
79
+ static from<K, V>(entries: Iterable<[K, V]>): HoloMap<K, V>;
80
+ static fromObject<V>(obj: Record<string, V>): HoloMap<string, V>;
81
+ get size(): number;
82
+ get isEmpty(): boolean;
83
+ get(key: K): V | undefined;
84
+ getOrDefault(key: K, defaultValue: V): V;
85
+ has(key: K): boolean;
86
+ set(key: K, value: V): HoloMap<K, V>;
87
+ delete(key: K): HoloMap<K, V>;
88
+ update(key: K, fn: (value: V | undefined) => V): HoloMap<K, V>;
89
+ merge(other: HoloMap<K, V>): HoloMap<K, V>;
90
+ keys(): List<K>;
91
+ values(): List<V>;
92
+ entries(): List<[K, V]>;
93
+ map<U>(fn: (value: V, key: K) => U): HoloMap<K, U>;
94
+ mapKeys<K2>(fn: (key: K, value: V) => K2): HoloMap<K2, V>;
95
+ filter(predicate: (value: V, key: K) => boolean): HoloMap<K, V>;
96
+ reduce<U>(fn: (acc: U, value: V, key: K) => U, initial: U): U;
97
+ forEach(fn: (value: V, key: K) => void): void;
98
+ find(predicate: (value: V, key: K) => boolean): [K, V] | undefined;
99
+ some(predicate: (value: V, key: K) => boolean): boolean;
100
+ every(predicate: (value: V, key: K) => boolean): boolean;
101
+ toObject(this: HoloMap<string, V>): Record<string, V>;
102
+ toNativeMap(): Map<K, V>;
103
+ [Symbol.iterator](): Iterator<[K, V]>;
104
+ toString(): string;
105
+ }
106
+ /**
107
+ * Immutable Set with functional operations
108
+ */
109
+ export declare class HoloSet<T> {
110
+ private readonly set;
111
+ constructor(items?: Iterable<T>);
112
+ static of<T>(...items: T[]): HoloSet<T>;
113
+ static from<T>(iterable: Iterable<T>): HoloSet<T>;
114
+ get size(): number;
115
+ get isEmpty(): boolean;
116
+ has(item: T): boolean;
117
+ add(item: T): HoloSet<T>;
118
+ delete(item: T): HoloSet<T>;
119
+ addAll(items: Iterable<T>): HoloSet<T>;
120
+ union(other: HoloSet<T>): HoloSet<T>;
121
+ intersection(other: HoloSet<T>): HoloSet<T>;
122
+ difference(other: HoloSet<T>): HoloSet<T>;
123
+ symmetricDifference(other: HoloSet<T>): HoloSet<T>;
124
+ isSubsetOf(other: HoloSet<T>): boolean;
125
+ isSupersetOf(other: HoloSet<T>): boolean;
126
+ isDisjointFrom(other: HoloSet<T>): boolean;
127
+ map<U>(fn: (item: T) => U): HoloSet<U>;
128
+ filter(predicate: (item: T) => boolean): HoloSet<T>;
129
+ reduce<U>(fn: (acc: U, item: T) => U, initial: U): U;
130
+ forEach(fn: (item: T) => void): void;
131
+ find(predicate: (item: T) => boolean): T | undefined;
132
+ some(predicate: (item: T) => boolean): boolean;
133
+ every(predicate: (item: T) => boolean): boolean;
134
+ toArray(): T[];
135
+ toList(): List<T>;
136
+ toNativeSet(): Set<T>;
137
+ [Symbol.iterator](): Iterator<T>;
138
+ toString(): string;
139
+ }
140
+ /**
141
+ * Spatial grid for efficient spatial queries (useful for game worlds)
142
+ */
143
+ export declare class SpatialGrid<T> {
144
+ private readonly cellSize;
145
+ private readonly cells;
146
+ constructor(cellSize: number);
147
+ private getCellKey;
148
+ insert(position: Vec3, item: T): void;
149
+ remove(position: Vec3, item: T): boolean;
150
+ query(center: Vec3, radius: number): T[];
151
+ queryBox(min: Vec3, max: Vec3): T[];
152
+ clear(): void;
153
+ get cellCount(): number;
154
+ get itemCount(): number;
155
+ }
156
+ /**
157
+ * Priority queue (min-heap by default)
158
+ */
159
+ export declare class PriorityQueue<T> {
160
+ private compareFn;
161
+ private heap;
162
+ constructor(compareFn?: (a: number, b: number) => number);
163
+ static minHeap<T>(): PriorityQueue<T>;
164
+ static maxHeap<T>(): PriorityQueue<T>;
165
+ get size(): number;
166
+ get isEmpty(): boolean;
167
+ enqueue(item: T, priority: number): void;
168
+ dequeue(): T | undefined;
169
+ peek(): T | undefined;
170
+ peekPriority(): number | undefined;
171
+ clear(): void;
172
+ private bubbleUp;
173
+ private bubbleDown;
174
+ }
175
+ export { HoloMap as Map };
176
+ export { HoloSet as Set };
177
+ //# sourceMappingURL=collections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../src/collections.ts"],"names":[],"mappings":"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"}