@holoscript/std 3.1.1 → 6.0.3

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 (106) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/dist/__tests__/EconomicPrimitives.test.d.ts +2 -0
  4. package/dist/__tests__/EconomicTraits.test.d.ts +2 -0
  5. package/dist/__tests__/SimulationLabPrimitives.test.d.ts +2 -0
  6. package/dist/__tests__/collections.test.d.ts +2 -0
  7. package/dist/__tests__/events.test.d.ts +2 -0
  8. package/dist/__tests__/index.test.d.ts +2 -0
  9. package/dist/__tests__/index.test.d.ts.map +1 -0
  10. package/dist/__tests__/materials.test.d.ts +2 -0
  11. package/dist/__tests__/math.test.d.ts +2 -0
  12. package/dist/__tests__/physics.test.d.ts +2 -0
  13. package/dist/__tests__/spatial.test.d.ts +2 -0
  14. package/dist/__tests__/standard-library-fundamentals.test.d.ts +2 -0
  15. package/dist/__tests__/standard-library-fundamentals.test.d.ts.map +1 -0
  16. package/dist/__tests__/string-and-time-utilities.test.d.ts +2 -0
  17. package/dist/__tests__/string-and-time-utilities.test.d.ts.map +1 -0
  18. package/dist/__tests__/string-decoupled.test.d.ts +2 -0
  19. package/dist/__tests__/string.test.d.ts +2 -0
  20. package/dist/__tests__/time.test.d.ts +2 -0
  21. package/dist/chunk-7HVUYGPS.js +679 -0
  22. package/dist/chunk-7HVUYGPS.js.map +1 -0
  23. package/dist/chunk-P4O3WNG2.js +287 -0
  24. package/dist/chunk-P4O3WNG2.js.map +1 -0
  25. package/dist/chunk-PFX2JM4X.js +683 -0
  26. package/dist/chunk-PFX2JM4X.js.map +1 -0
  27. package/dist/chunk-W2Q3LUCM.js +348 -0
  28. package/dist/chunk-W2Q3LUCM.js.map +1 -0
  29. package/dist/chunk-WS6W35YC.js +443 -0
  30. package/dist/chunk-WS6W35YC.js.map +1 -0
  31. package/dist/chunk-ZXVZAQCZ.js +470 -0
  32. package/dist/chunk-ZXVZAQCZ.js.map +1 -0
  33. package/dist/collections.cjs +715 -0
  34. package/dist/collections.cjs.map +1 -0
  35. package/dist/collections.d.ts +177 -0
  36. package/dist/collections.js +17 -0
  37. package/dist/collections.js.map +1 -0
  38. package/dist/events.d.ts +32 -0
  39. package/dist/index.cjs +4101 -0
  40. package/dist/index.cjs.map +1 -0
  41. package/dist/index.d.ts +101 -0
  42. package/dist/index.js +1270 -190
  43. package/dist/index.js.map +1 -0
  44. package/dist/materials.d.ts +50 -0
  45. package/dist/math.cjs +591 -0
  46. package/dist/math.cjs.map +1 -0
  47. package/dist/math.d.ts +162 -0
  48. package/dist/math.js +53 -0
  49. package/dist/math.js.map +1 -0
  50. package/dist/physics.d.ts +59 -0
  51. package/dist/spatial.d.ts +82 -0
  52. package/dist/string.basic.test.d.ts +5 -0
  53. package/dist/string.basic.test.d.ts.map +1 -0
  54. package/dist/string.cjs +422 -0
  55. package/dist/string.cjs.map +1 -0
  56. package/dist/string.d.ts +212 -0
  57. package/dist/string.d.ts.map +1 -1
  58. package/dist/string.js +107 -0
  59. package/dist/string.js.map +1 -0
  60. package/dist/string.test.d.ts +5 -0
  61. package/dist/string.test.d.ts.map +1 -0
  62. package/dist/time.cjs +512 -0
  63. package/dist/time.cjs.map +1 -0
  64. package/dist/time.d.ts +215 -0
  65. package/dist/time.js +43 -0
  66. package/dist/time.js.map +1 -0
  67. package/dist/traits/ARTraits.d.ts +14 -0
  68. package/dist/traits/EconomicPrimitives.cjs +335 -0
  69. package/dist/traits/EconomicPrimitives.cjs.map +1 -0
  70. package/dist/traits/EconomicPrimitives.d.ts +345 -0
  71. package/dist/traits/EconomicPrimitives.js +55 -0
  72. package/dist/traits/EconomicPrimitives.js.map +1 -0
  73. package/dist/traits/EconomicTraits.cjs +471 -0
  74. package/dist/traits/EconomicTraits.cjs.map +1 -0
  75. package/dist/traits/EconomicTraits.d.ts +71 -0
  76. package/dist/traits/EconomicTraits.js +17 -0
  77. package/dist/traits/EconomicTraits.js.map +1 -0
  78. package/dist/traits/IoTTraits.d.ts +14 -0
  79. package/dist/traits/SimulationLabPrimitives.d.ts +187 -0
  80. package/dist/traits/SimulationLabTraits.d.ts +42 -0
  81. package/dist/traits/VRRTraits.d.ts +150 -0
  82. package/dist/traits/__tests__/ARTraits.test.d.ts +2 -0
  83. package/dist/traits/__tests__/ARTraits.test.d.ts.map +1 -0
  84. package/dist/traits/__tests__/EconomicPrimitives.test.d.ts +2 -0
  85. package/dist/traits/__tests__/EconomicPrimitives.test.d.ts.map +1 -0
  86. package/dist/traits/__tests__/EconomicTraits.test.d.ts +2 -0
  87. package/dist/traits/__tests__/EconomicTraits.test.d.ts.map +1 -0
  88. package/dist/types.d.ts +202 -0
  89. package/error-utf8.log +6 -0
  90. package/error.log +0 -0
  91. package/package.json +30 -18
  92. package/src/__tests__/index.test.ts +14 -0
  93. package/src/__tests__/{Sprint33.test.ts → standard-library-fundamentals.test.ts} +70 -70
  94. package/src/__tests__/{Sprint56.test.ts → string-and-time-utilities.test.ts} +64 -64
  95. package/src/__tests__/string-decoupled.test.ts +0 -2
  96. package/src/string.basic.test.ts +1 -1
  97. package/src/string.test.ts +4 -4
  98. package/src/string.ts +30 -15
  99. package/src/time.ts +1 -1
  100. package/src/traits/__tests__/ARTraits.test.ts +14 -0
  101. package/src/traits/__tests__/EconomicPrimitives.test.ts +14 -0
  102. package/src/traits/__tests__/EconomicTraits.test.ts +14 -0
  103. package/std_error.log +5 -0
  104. package/tsup.config.ts +17 -0
  105. package/dist/__tests__/Sprint33.test.d.ts.map +0 -1
  106. package/dist/__tests__/Sprint56.test.d.ts.map +0 -1
package/dist/math.d.ts ADDED
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Math utilities for HoloScript
3
+ *
4
+ * Vector math, quaternion operations, interpolation, and noise functions.
5
+ */
6
+ import type { Vec2, Vec3, Quat, EulerAngles, AABB } from './types.js';
7
+ export declare const PI: number;
8
+ export declare const TAU: number;
9
+ export declare const HALF_PI: number;
10
+ export declare const DEG_TO_RAD: number;
11
+ export declare const RAD_TO_DEG: number;
12
+ export declare const EPSILON = 0.000001;
13
+ export declare function clamp(value: number, min: number, max: number): number;
14
+ export declare function lerp(a: number, b: number, t: number): number;
15
+ export declare function inverseLerp(a: number, b: number, value: number): number;
16
+ export declare function remap(value: number, inMin: number, inMax: number, outMin: number, outMax: number): number;
17
+ export declare function smoothstep(edge0: number, edge1: number, x: number): number;
18
+ export declare function smootherstep(edge0: number, edge1: number, x: number): number;
19
+ export declare function degToRad(degrees: number): number;
20
+ export declare function radToDeg(radians: number): number;
21
+ export declare function mod(n: number, m: number): number;
22
+ export declare function fract(x: number): number;
23
+ export declare function sign(x: number): number;
24
+ export declare function step(edge: number, x: number): number;
25
+ export declare const vec2Math: {
26
+ add: (a: Vec2, b: Vec2) => Vec2;
27
+ sub: (a: Vec2, b: Vec2) => Vec2;
28
+ mul: (a: Vec2, s: number) => Vec2;
29
+ div: (a: Vec2, s: number) => Vec2;
30
+ dot: (a: Vec2, b: Vec2) => number;
31
+ length: (v: Vec2) => number;
32
+ lengthSq: (v: Vec2) => number;
33
+ normalize: (v: Vec2) => Vec2;
34
+ distance: (a: Vec2, b: Vec2) => number;
35
+ lerp: (a: Vec2, b: Vec2, t: number) => Vec2;
36
+ rotate: (v: Vec2, angle: number) => Vec2;
37
+ angle: (v: Vec2) => number;
38
+ angleBetween: (a: Vec2, b: Vec2) => number;
39
+ };
40
+ export declare const vec3Math: {
41
+ zero: () => Vec3;
42
+ one: () => Vec3;
43
+ up: () => Vec3;
44
+ down: () => Vec3;
45
+ forward: () => Vec3;
46
+ back: () => Vec3;
47
+ left: () => Vec3;
48
+ right: () => Vec3;
49
+ add: (a: Vec3, b: Vec3) => Vec3;
50
+ sub: (a: Vec3, b: Vec3) => Vec3;
51
+ mul: (a: Vec3, s: number) => Vec3;
52
+ div: (a: Vec3, s: number) => Vec3;
53
+ mulVec: (a: Vec3, b: Vec3) => Vec3;
54
+ dot: (a: Vec3, b: Vec3) => number;
55
+ cross: (a: Vec3, b: Vec3) => Vec3;
56
+ length: (v: Vec3) => number;
57
+ lengthSq: (v: Vec3) => number;
58
+ normalize: (v: Vec3) => Vec3;
59
+ distance: (a: Vec3, b: Vec3) => number;
60
+ distanceSq: (a: Vec3, b: Vec3) => number;
61
+ lerp: (a: Vec3, b: Vec3, t: number) => Vec3;
62
+ slerp: (a: Vec3, b: Vec3, t: number) => Vec3;
63
+ negate: (v: Vec3) => Vec3;
64
+ abs: (v: Vec3) => Vec3;
65
+ min: (a: Vec3, b: Vec3) => Vec3;
66
+ max: (a: Vec3, b: Vec3) => Vec3;
67
+ clamp: (v: Vec3, min: Vec3, max: Vec3) => Vec3;
68
+ floor: (v: Vec3) => Vec3;
69
+ ceil: (v: Vec3) => Vec3;
70
+ round: (v: Vec3) => Vec3;
71
+ reflect: (v: Vec3, normal: Vec3) => Vec3;
72
+ project: (v: Vec3, onto: Vec3) => Vec3;
73
+ angle: (a: Vec3, b: Vec3) => number;
74
+ equals: (a: Vec3, b: Vec3, epsilon?: number) => boolean;
75
+ };
76
+ export declare const quatMath: {
77
+ identity: () => Quat;
78
+ fromAxisAngle: (axis: Vec3, angle: number) => Quat;
79
+ fromEuler: (euler: EulerAngles) => Quat;
80
+ toEuler: (q: Quat) => EulerAngles;
81
+ multiply: (a: Quat, b: Quat) => Quat;
82
+ conjugate: (q: Quat) => Quat;
83
+ inverse: (q: Quat) => Quat;
84
+ normalize: (q: Quat) => Quat;
85
+ dot: (a: Quat, b: Quat) => number;
86
+ slerp: (a: Quat, b: Quat, t: number) => Quat;
87
+ rotateVec3: (q: Quat, v: Vec3) => Vec3;
88
+ lookAt: (forward: Vec3, up?: Vec3) => Quat;
89
+ };
90
+ export declare const aabbMath: {
91
+ contains: (aabb: AABB, point: Vec3) => boolean;
92
+ intersects: (a: AABB, b: AABB) => boolean;
93
+ center: (aabb: AABB) => Vec3;
94
+ size: (aabb: AABB) => Vec3;
95
+ expand: (aabb: AABB, point: Vec3) => AABB;
96
+ merge: (a: AABB, b: AABB) => AABB;
97
+ };
98
+ export declare const noise: {
99
+ /**
100
+ * 3D Perlin noise (-1 to 1)
101
+ */
102
+ perlin3d: (x: number, y: number, z: number) => number;
103
+ /**
104
+ * 2D Perlin noise (-1 to 1)
105
+ */
106
+ perlin2d: (x: number, y: number) => number;
107
+ /**
108
+ * Fractal Brownian Motion (fBm)
109
+ */
110
+ fbm: (x: number, y: number, z: number, octaves?: number, lacunarity?: number, gain?: number) => number;
111
+ /**
112
+ * Simplex-like noise (approximation using perlin)
113
+ */
114
+ simplex: (x: number, y: number) => number;
115
+ /**
116
+ * Worley/Cellular noise
117
+ */
118
+ worley: (x: number, y: number, z: number) => number;
119
+ };
120
+ export declare const random: {
121
+ /**
122
+ * Random float between 0 and 1
123
+ */
124
+ float: () => number;
125
+ /**
126
+ * Random float in range [min, max)
127
+ */
128
+ range: (min: number, max: number) => number;
129
+ /**
130
+ * Random integer in range [min, max]
131
+ */
132
+ int: (min: number, max: number) => number;
133
+ /**
134
+ * Random boolean with probability
135
+ */
136
+ bool: (probability?: number) => boolean;
137
+ /**
138
+ * Random element from array
139
+ */
140
+ pick: <T>(array: T[]) => T;
141
+ /**
142
+ * Shuffle array (Fisher-Yates)
143
+ */
144
+ shuffle: <T>(array: T[]) => T[];
145
+ /**
146
+ * Random Vec3 in unit sphere
147
+ */
148
+ insideUnitSphere: () => Vec3;
149
+ /**
150
+ * Random Vec3 on unit sphere surface
151
+ */
152
+ onUnitSphere: () => Vec3;
153
+ /**
154
+ * Random Vec2 in unit circle
155
+ */
156
+ insideUnitCircle: () => Vec2;
157
+ /**
158
+ * Seeded random number generator
159
+ */
160
+ seeded: (seed: number) => () => number;
161
+ };
162
+ //# sourceMappingURL=math.d.ts.map
package/dist/math.js ADDED
@@ -0,0 +1,53 @@
1
+ import {
2
+ DEG_TO_RAD,
3
+ EPSILON,
4
+ HALF_PI,
5
+ PI,
6
+ RAD_TO_DEG,
7
+ TAU,
8
+ aabbMath,
9
+ clamp,
10
+ degToRad,
11
+ fract,
12
+ inverseLerp,
13
+ lerp,
14
+ mod,
15
+ noise,
16
+ quatMath,
17
+ radToDeg,
18
+ random,
19
+ remap,
20
+ sign,
21
+ smootherstep,
22
+ smoothstep,
23
+ step,
24
+ vec2Math,
25
+ vec3Math
26
+ } from "./chunk-7HVUYGPS.js";
27
+ export {
28
+ DEG_TO_RAD,
29
+ EPSILON,
30
+ HALF_PI,
31
+ PI,
32
+ RAD_TO_DEG,
33
+ TAU,
34
+ aabbMath,
35
+ clamp,
36
+ degToRad,
37
+ fract,
38
+ inverseLerp,
39
+ lerp,
40
+ mod,
41
+ noise,
42
+ quatMath,
43
+ radToDeg,
44
+ random,
45
+ remap,
46
+ sign,
47
+ smootherstep,
48
+ smoothstep,
49
+ step,
50
+ vec2Math,
51
+ vec3Math
52
+ };
53
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @holoscript/std — Physics Module
3
+ *
4
+ * Provides physics primitives: ColliderShape, RigidbodyConfig, ForceField, Joint.
5
+ * Runtime representations for HoloScript physics blocks.
6
+ *
7
+ * @version 0.2.0
8
+ * @module @holoscript/std/physics
9
+ */
10
+ import type { Vec3 } from './spatial.js';
11
+ export type ColliderShapeType = 'box' | 'sphere' | 'capsule' | 'mesh' | 'convex' | 'cylinder' | 'heightfield';
12
+ export interface ColliderConfig {
13
+ shape: ColliderShapeType;
14
+ isTrigger: boolean;
15
+ friction: number;
16
+ restitution: number;
17
+ radius?: number;
18
+ halfExtents?: Vec3;
19
+ height?: number;
20
+ meshAsset?: string;
21
+ }
22
+ export declare function createBoxCollider(halfExtents: Vec3, options?: Partial<ColliderConfig>): ColliderConfig;
23
+ export declare function createSphereCollider(radius: number, options?: Partial<ColliderConfig>): ColliderConfig;
24
+ export declare function createCapsuleCollider(radius: number, height: number, options?: Partial<ColliderConfig>): ColliderConfig;
25
+ export interface RigidbodyConfig {
26
+ mass: number;
27
+ useGravity: boolean;
28
+ linearDamping: number;
29
+ angularDamping: number;
30
+ freezePosition: [boolean, boolean, boolean];
31
+ freezeRotation: [boolean, boolean, boolean];
32
+ isKinematic: boolean;
33
+ }
34
+ export declare function createRigidbody(mass: number, options?: Partial<RigidbodyConfig>): RigidbodyConfig;
35
+ export type ForceFieldType = 'directional' | 'radial' | 'vortex' | 'buoyancy';
36
+ export interface ForceFieldConfig {
37
+ type: ForceFieldType;
38
+ strength: number;
39
+ direction?: Vec3;
40
+ falloff: 'none' | 'linear' | 'quadratic';
41
+ turbulence: number;
42
+ }
43
+ export type JointType = 'hinge' | 'slider' | 'ball_socket' | 'fixed' | 'd6' | 'spring';
44
+ export interface JointConfig {
45
+ type: JointType;
46
+ connectedBody?: string;
47
+ axis?: Vec3;
48
+ limits?: [number, number];
49
+ damping: number;
50
+ springForce?: number;
51
+ breakForce?: number;
52
+ }
53
+ export interface RaycastHit {
54
+ point: Vec3;
55
+ normal: Vec3;
56
+ distance: number;
57
+ objectName: string;
58
+ }
59
+ //# sourceMappingURL=physics.d.ts.map
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @holoscript/std — Spatial Module
3
+ *
4
+ * Provides spatial math utilities: Vec3, Quaternion, Transform, Ray, AABB, distance.
5
+ * Used by the HoloScript runtime for spatial computing operations.
6
+ *
7
+ * @version 0.2.0
8
+ * @module @holoscript/std/spatial
9
+ */
10
+ export declare class Vec3 {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ constructor(x?: number, y?: number, z?: number);
15
+ static zero(): Vec3;
16
+ static one(): Vec3;
17
+ static up(): Vec3;
18
+ static down(): Vec3;
19
+ static forward(): Vec3;
20
+ static right(): Vec3;
21
+ add(other: Vec3): Vec3;
22
+ sub(other: Vec3): Vec3;
23
+ mul(s: number): Vec3;
24
+ div(s: number): Vec3;
25
+ dot(other: Vec3): number;
26
+ cross(other: Vec3): Vec3;
27
+ length(): number;
28
+ lengthSquared(): number;
29
+ normalize(): Vec3;
30
+ distanceTo(other: Vec3): number;
31
+ lerp(other: Vec3, t: number): Vec3;
32
+ toArray(): [number, number, number];
33
+ static fromArray(arr: number[]): Vec3;
34
+ equals(other: Vec3, epsilon?: number): boolean;
35
+ toString(): string;
36
+ }
37
+ export declare class Quaternion {
38
+ x: number;
39
+ y: number;
40
+ z: number;
41
+ w: number;
42
+ constructor(x?: number, y?: number, z?: number, w?: number);
43
+ static identity(): Quaternion;
44
+ static fromEuler(x: number, y: number, z: number): Quaternion;
45
+ static fromAxisAngle(axis: Vec3, angle: number): Quaternion;
46
+ multiply(other: Quaternion): Quaternion;
47
+ rotateVec3(v: Vec3): Vec3;
48
+ slerp(other: Quaternion, t: number): Quaternion;
49
+ normalize(): Quaternion;
50
+ toEuler(): Vec3;
51
+ }
52
+ export declare class Transform {
53
+ position: Vec3;
54
+ rotation: Quaternion;
55
+ scale: Vec3;
56
+ constructor(position?: Vec3, rotation?: Quaternion, scale?: Vec3);
57
+ static identity(): Transform;
58
+ transformPoint(point: Vec3): Vec3;
59
+ transformDirection(dir: Vec3): Vec3;
60
+ }
61
+ export declare class Ray {
62
+ origin: Vec3;
63
+ direction: Vec3;
64
+ constructor(origin: Vec3, direction: Vec3);
65
+ pointAt(t: number): Vec3;
66
+ }
67
+ export declare class AABB {
68
+ min: Vec3;
69
+ max: Vec3;
70
+ constructor(min: Vec3, max: Vec3);
71
+ contains(point: Vec3): boolean;
72
+ intersects(other: AABB): boolean;
73
+ center(): Vec3;
74
+ size(): Vec3;
75
+ intersectsRay(ray: Ray): number | null;
76
+ }
77
+ export declare function distance(a: Vec3, b: Vec3): number;
78
+ export declare function lerp(a: number, b: number, t: number): number;
79
+ export declare function clamp(v: number, min: number, max: number): number;
80
+ export declare function degToRad(deg: number): number;
81
+ export declare function radToDeg(rad: number): number;
82
+ //# sourceMappingURL=spatial.d.ts.map
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @fileoverview Basic test to verify formatBytes function
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=string.basic.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.basic.test.d.ts","sourceRoot":"","sources":["../src/string.basic.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}