@rickosborne/rebound 2025.2.16

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 (194) hide show
  1. package/README.md +1469 -0
  2. package/assert-bounded.cjs +44 -0
  3. package/assert-bounded.cjs.map +6 -0
  4. package/assert-bounded.d.ts +11 -0
  5. package/assert-bounded.d.ts.map +1 -0
  6. package/assert-bounded.mjs +25 -0
  7. package/assert-bounded.mjs.map +6 -0
  8. package/bound.cjs +132 -0
  9. package/bound.cjs.map +6 -0
  10. package/bound.d.ts +35 -0
  11. package/bound.d.ts.map +1 -0
  12. package/bound.mjs +113 -0
  13. package/bound.mjs.map +6 -0
  14. package/effective-range.cjs +30 -0
  15. package/effective-range.cjs.map +6 -0
  16. package/effective-range.d.ts +7 -0
  17. package/effective-range.d.ts.map +1 -0
  18. package/effective-range.mjs +11 -0
  19. package/effective-range.mjs.map +6 -0
  20. package/empty-range.cjs +45 -0
  21. package/empty-range.cjs.map +6 -0
  22. package/empty-range.d.ts +11 -0
  23. package/empty-range.d.ts.map +1 -0
  24. package/empty-range.mjs +26 -0
  25. package/empty-range.mjs.map +6 -0
  26. package/from-number-bounded.cjs +49 -0
  27. package/from-number-bounded.cjs.map +6 -0
  28. package/from-number-bounded.d.ts +12 -0
  29. package/from-number-bounded.d.ts.map +1 -0
  30. package/from-number-bounded.mjs +30 -0
  31. package/from-number-bounded.mjs.map +6 -0
  32. package/guard-bounded.cjs +38 -0
  33. package/guard-bounded.cjs.map +6 -0
  34. package/guard-bounded.d.ts +15 -0
  35. package/guard-bounded.d.ts.map +1 -0
  36. package/guard-bounded.mjs +19 -0
  37. package/guard-bounded.mjs.map +6 -0
  38. package/index.cjs +49 -0
  39. package/index.cjs.map +6 -0
  40. package/index.d.ts +32 -0
  41. package/index.d.ts.map +1 -0
  42. package/index.mjs +32 -0
  43. package/index.mjs.map +6 -0
  44. package/int255-from-01.cjs +34 -0
  45. package/int255-from-01.cjs.map +6 -0
  46. package/int255-from-01.d.ts +8 -0
  47. package/int255-from-01.d.ts.map +1 -0
  48. package/int255-from-01.mjs +15 -0
  49. package/int255-from-01.mjs.map +6 -0
  50. package/int255.cjs +34 -0
  51. package/int255.cjs.map +6 -0
  52. package/int255.d.ts +9 -0
  53. package/int255.d.ts.map +1 -0
  54. package/int255.mjs +14 -0
  55. package/int255.mjs.map +6 -0
  56. package/int360.cjs +34 -0
  57. package/int360.cjs.map +6 -0
  58. package/int360.d.ts +9 -0
  59. package/int360.d.ts.map +1 -0
  60. package/int360.mjs +14 -0
  61. package/int360.mjs.map +6 -0
  62. package/integer-from.cjs +54 -0
  63. package/integer-from.cjs.map +6 -0
  64. package/integer-from.d.ts +19 -0
  65. package/integer-from.d.ts.map +1 -0
  66. package/integer-from.mjs +35 -0
  67. package/integer-from.mjs.map +6 -0
  68. package/integer-generator.cjs +54 -0
  69. package/integer-generator.cjs.map +6 -0
  70. package/integer-generator.d.ts +9 -0
  71. package/integer-generator.d.ts.map +1 -0
  72. package/integer-generator.mjs +35 -0
  73. package/integer-generator.mjs.map +6 -0
  74. package/integer-range.cjs +50 -0
  75. package/integer-range.cjs.map +6 -0
  76. package/integer-range.d.ts +9 -0
  77. package/integer-range.d.ts.map +1 -0
  78. package/integer-range.mjs +31 -0
  79. package/integer-range.mjs.map +6 -0
  80. package/number-range.cjs +97 -0
  81. package/number-range.cjs.map +6 -0
  82. package/number-range.d.ts +20 -0
  83. package/number-range.d.ts.map +1 -0
  84. package/number-range.mjs +78 -0
  85. package/number-range.mjs.map +6 -0
  86. package/package.json +248 -0
  87. package/random-bounded.cjs +52 -0
  88. package/random-bounded.cjs.map +6 -0
  89. package/random-bounded.d.ts +9 -0
  90. package/random-bounded.d.ts.map +1 -0
  91. package/random-bounded.mjs +33 -0
  92. package/random-bounded.mjs.map +6 -0
  93. package/range-base.cjs +127 -0
  94. package/range-base.cjs.map +6 -0
  95. package/range-base.d.ts +29 -0
  96. package/range-base.d.ts.map +1 -0
  97. package/range-base.mjs +108 -0
  98. package/range-base.mjs.map +6 -0
  99. package/range-like.cjs +25 -0
  100. package/range-like.cjs.map +6 -0
  101. package/range-like.d.ts +20 -0
  102. package/range-like.d.ts.map +1 -0
  103. package/range-like.mjs +5 -0
  104. package/range-like.mjs.map +6 -0
  105. package/range.cjs +41 -0
  106. package/range.cjs.map +6 -0
  107. package/range.d.ts +4 -0
  108. package/range.d.ts.map +1 -0
  109. package/range.mjs +22 -0
  110. package/range.mjs.map +6 -0
  111. package/real-range.cjs +53 -0
  112. package/real-range.cjs.map +6 -0
  113. package/real-range.d.ts +8 -0
  114. package/real-range.d.ts.map +1 -0
  115. package/real-range.mjs +34 -0
  116. package/real-range.mjs.map +6 -0
  117. package/real01-from-255.cjs +37 -0
  118. package/real01-from-255.cjs.map +6 -0
  119. package/real01-from-255.d.ts +10 -0
  120. package/real01-from-255.d.ts.map +1 -0
  121. package/real01-from-255.mjs +18 -0
  122. package/real01-from-255.mjs.map +6 -0
  123. package/real01.cjs +34 -0
  124. package/real01.cjs.map +6 -0
  125. package/real01.d.ts +9 -0
  126. package/real01.d.ts.map +1 -0
  127. package/real01.mjs +14 -0
  128. package/real01.mjs.map +6 -0
  129. package/real255-from-01.cjs +28 -0
  130. package/real255-from-01.cjs.map +6 -0
  131. package/real255-from-01.d.ts +7 -0
  132. package/real255-from-01.d.ts.map +1 -0
  133. package/real255-from-01.mjs +9 -0
  134. package/real255-from-01.mjs.map +6 -0
  135. package/real255.cjs +34 -0
  136. package/real255.cjs.map +6 -0
  137. package/real255.d.ts +9 -0
  138. package/real255.d.ts.map +1 -0
  139. package/real255.mjs +14 -0
  140. package/real255.mjs.map +6 -0
  141. package/real360.cjs +34 -0
  142. package/real360.cjs.map +6 -0
  143. package/real360.d.ts +9 -0
  144. package/real360.d.ts.map +1 -0
  145. package/real360.mjs +14 -0
  146. package/real360.mjs.map +6 -0
  147. package/rebound-builder.cjs +148 -0
  148. package/rebound-builder.cjs.map +6 -0
  149. package/rebound-builder.d.ts +46 -0
  150. package/rebound-builder.d.ts.map +1 -0
  151. package/rebound-builder.mjs +129 -0
  152. package/rebound-builder.mjs.map +6 -0
  153. package/rebound.cjs +156 -0
  154. package/rebound.cjs.map +6 -0
  155. package/rebound.d.ts +70 -0
  156. package/rebound.d.ts.map +1 -0
  157. package/rebound.mjs +137 -0
  158. package/rebound.mjs.map +6 -0
  159. package/same-bounds.cjs +46 -0
  160. package/same-bounds.cjs.map +6 -0
  161. package/same-bounds.d.ts +4 -0
  162. package/same-bounds.d.ts.map +1 -0
  163. package/same-bounds.mjs +27 -0
  164. package/same-bounds.mjs.map +6 -0
  165. package/scale-bounded.cjs +59 -0
  166. package/scale-bounded.cjs.map +6 -0
  167. package/scale-bounded.d.ts +12 -0
  168. package/scale-bounded.d.ts.map +1 -0
  169. package/scale-bounded.mjs +40 -0
  170. package/scale-bounded.mjs.map +6 -0
  171. package/spec.cjs +41 -0
  172. package/spec.cjs.map +6 -0
  173. package/spec.d.ts +204 -0
  174. package/spec.d.ts.map +1 -0
  175. package/spec.mjs +21 -0
  176. package/spec.mjs.map +6 -0
  177. package/string-range.cjs +40 -0
  178. package/string-range.cjs.map +6 -0
  179. package/string-range.d.ts +8 -0
  180. package/string-range.d.ts.map +1 -0
  181. package/string-range.mjs +21 -0
  182. package/string-range.mjs.map +6 -0
  183. package/typed-function.cjs +42 -0
  184. package/typed-function.cjs.map +6 -0
  185. package/typed-function.d.ts +3 -0
  186. package/typed-function.d.ts.map +1 -0
  187. package/typed-function.mjs +23 -0
  188. package/typed-function.mjs.map +6 -0
  189. package/util.cjs +28 -0
  190. package/util.cjs.map +6 -0
  191. package/util.d.ts +3 -0
  192. package/util.d.ts.map +1 -0
  193. package/util.mjs +9 -0
  194. package/util.mjs.map +6 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer-from.d.ts","sourceRoot":"","sources":["../../../src/packages/rebound/integer-from.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGnG,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,kBAAkB;IACtE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACzE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC;CACzF;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,CAAC,CAAC;AACnF,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,IAAI,SAAS,CAAC;AAC3B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,eAAO,MAAM,KAAK,UAAU,CAAC;AAC7B,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,GAAG,OAAO,IAAI,GAAG,OAAO,KAAK,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;AAEjH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,OAAO,EAAE,KAAK,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,UAAU,SAAS,OAAO,EAAE,SAAS,SAAS,OAAO,EACnL,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,wBAAwB,EACvC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAClB,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GACvB,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CASjC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,OAAO,EAAE,KAAK,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,UAAU,SAAS,OAAO,EAAE,SAAS,SAAS,OAAO,EAC1K,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC9F,aAAa,EAAE,wBAAwB,EACvC,SAAS,EAAE,SAAS,EACpB,QAAQ,GAAE,WAAmB,EAC7B,MAAM,GAAE,MAAuI,GAC7I,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAIpD"}
@@ -0,0 +1,35 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { lowerFirst } from "@rickosborne/foundation";
4
+ import { scrubStackTrace } from "@rickosborne/guard";
5
+ import { addTypedProperties } from "./typed-function.mjs";
6
+ const ROUND = "round";
7
+ const CEIL = "ceil";
8
+ const TRUNC = "trunc";
9
+ const FLOOR = "floor";
10
+ function boundedIntFromNumber(isLowerInc, lower, upper, isUpperInc, ifPresent, errorProvider, strategy, value, name) {
11
+ if (value != null && (isLowerInc ? value >= lower : value > lower) && (isUpperInc ? value <= upper : value < upper)) {
12
+ return strategy(value);
13
+ }
14
+ if (value == null && ifPresent) {
15
+ return void 0;
16
+ }
17
+ const error = errorProvider(value, name);
18
+ throw scrubStackTrace(error, "boundedIntFromNumber");
19
+ }
20
+ __name(boundedIntFromNumber, "boundedIntFromNumber");
21
+ function integerFrom(typeName, bounds, errorProvider, ifPresent, strategy = ROUND, fnName = `${lowerFirst(typeName)}From${typeof strategy === "function" ? strategy.name : strategy}${ifPresent ? "IfPresent" : ""}`) {
22
+ const toInt = typeof strategy === "function" ? strategy : Math[strategy];
23
+ const boundedIntFrom = boundedIntFromNumber.bind(void 0, bounds.isLowerInc, bounds.lower, bounds.upper, bounds.isUpperInc, ifPresent, errorProvider, toInt);
24
+ return addTypedProperties(boundedIntFrom, bounds, typeName, fnName);
25
+ }
26
+ __name(integerFrom, "integerFrom");
27
+ export {
28
+ CEIL,
29
+ FLOOR,
30
+ ROUND,
31
+ TRUNC,
32
+ boundedIntFromNumber,
33
+ integerFrom
34
+ };
35
+ //# sourceMappingURL=integer-from.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/rebound/integer-from.ts"],
4
+ "mappings": ";;AAAA,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAGhC,SAAS,0BAA0B;AAW5B,MAAM,QAAQ;AACd,MAAM,OAAO;AACb,MAAM,QAAQ;AACd,MAAM,QAAQ;AAGd,SAAS,qBACf,YACA,OACA,OACA,YACA,WACA,eACA,UACA,OACA,MACkC;AAClC,MAAI,SAAS,SAAS,aAAc,SAAS,QAAU,QAAQ,WAAY,aAAc,SAAS,QAAU,QAAQ,QAAS;AAC5H,WAAO,SAAS,KAAK;AAAA,EACtB;AACA,MAAI,SAAS,QAAQ,WAAW;AAC/B,WAAO;AAAA,EACR;AACA,QAAM,QAAQ,cAAc,OAAO,IAAI;AACvC,QAAM,gBAAgB,OAAO,sBAAsB;AACpD;AAnBgB;AAqBT,SAAS,YACf,UACA,QACA,eACA,WACA,WAAwB,OACxB,SAAiB,GAAI,WAAW,QAAQ,CAAE,OAAQ,OAAO,aAAa,aAAa,SAAS,OAAO,QAAS,GAAI,YAAY,cAAc,EAAG,IACxF;AACrD,QAAM,QAAS,OAAO,aAAa,aAAa,WAAW,KAAM,QAAS;AAC1E,QAAM,iBAAiB,qBAAqB,KAAK,QAAW,OAAO,YAAY,OAAO,OAAO,OAAO,OAAO,OAAO,YAAY,WAAW,eAAe,KAAK;AAC7J,SAAO,mBAAmB,gBAAgB,QAAQ,UAAU,MAAM;AACnE;AAXgB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var integer_generator_exports = {};
21
+ __export(integer_generator_exports, {
22
+ integerGenerator: () => integerGenerator
23
+ });
24
+ module.exports = __toCommonJS(integer_generator_exports);
25
+ var import_guard_bounded = require("./guard-bounded.cjs");
26
+ function* integerGenerator(bounds, options = {}) {
27
+ var _a;
28
+ const { isLowerInc, isUpperInc, isInt, upper, lower } = bounds;
29
+ const prefix = ((_a = options.typeName) == null ? void 0 : _a.concat(": ")) ?? "";
30
+ const step = options.step ?? 1;
31
+ const start = options.start ?? (step < 0 ? upper : lower);
32
+ const end = options.end ?? (step < 0 ? lower : upper);
33
+ if (!Number.isFinite(start)) {
34
+ throw new RangeError(`${prefix}Unbounded start`);
35
+ }
36
+ if (!(0, import_guard_bounded.validateBounded)(isLowerInc, lower, isInt, upper, isUpperInc, false, start) || !(0, import_guard_bounded.validateBounded)(isLowerInc, lower, isInt, upper, isUpperInc, false, end) || step > 0 && start > end || step < 0 && start < end) {
37
+ return;
38
+ }
39
+ let more;
40
+ if (step > 0) {
41
+ if (isUpperInc) more = /* @__PURE__ */ __name((n) => n <= end, "more");
42
+ else more = /* @__PURE__ */ __name((n) => n < end, "more");
43
+ } else if (step < 0) {
44
+ if (isLowerInc) more = /* @__PURE__ */ __name((n) => n >= end, "more");
45
+ else more = /* @__PURE__ */ __name((n) => n > end, "more");
46
+ } else {
47
+ more = /* @__PURE__ */ __name(() => true, "more");
48
+ }
49
+ for (let n = start; more(n); n = n + step) {
50
+ yield n;
51
+ }
52
+ }
53
+ __name(integerGenerator, "integerGenerator");
54
+ //# sourceMappingURL=integer-generator.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/rebound/integer-generator.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAgC;AAUzB,UAAU,iBAChB,QACA,UAAmC,CAAC,GACC;AAbtC;AAcC,QAAM,EAAE,YAAY,YAAY,OAAO,OAAO,MAAM,IAAI;AACxD,QAAM,WAAS,aAAQ,aAAR,mBAAkB,OAAO,UAAS;AACjD,QAAM,OAAQ,QAAQ,QAAQ;AAC9B,QAAM,QAAS,QAAQ,UAAU,OAAO,IAAI,QAAQ;AACpD,QAAM,MAAO,QAAQ,QAAQ,OAAO,IAAI,QAAQ;AAChD,MAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC5B,UAAM,IAAI,WAAW,GAAI,MAAO,iBAAiB;AAAA,EAClD;AACA,MACC,KAAC,sCAAgB,YAAY,OAAO,OAAO,OAAO,YAAY,OAAO,KAAK,KAC1E,KAAC,sCAAgB,YAAY,OAAO,OAAO,OAAO,YAAY,OAAO,GAAG,KACvE,OAAO,KAAK,QAAQ,OACpB,OAAO,KAAK,QAAQ,KACpB;AACD;AAAA,EACD;AACA,MAAI;AACJ,MAAI,OAAO,GAAG;AACb,QAAI,WAAY,QAAO,wBAAC,MAAM,KAAK,KAAZ;AAAA,QAClB,QAAO,wBAAC,MAAM,IAAI,KAAX;AAAA,EACb,WAAW,OAAO,GAAG;AACpB,QAAI,WAAY,QAAO,wBAAC,MAAM,KAAK,KAAZ;AAAA,QAClB,QAAO,wBAAC,MAAM,IAAI,KAAX;AAAA,EACb,OAAO;AACN,WAAO,6BAAM,MAAN;AAAA,EACR;AACA,WAAS,IAAO,OAAO,KAAK,CAAC,GAAG,IAAK,IAAI,MAAY;AACpD,UAAM;AAAA,EACP;AACD;AAjCiB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,9 @@
1
+ import type { CheckedBounds } from "./spec.js";
2
+ export interface IntegerGeneratorOptions {
3
+ end?: number | undefined;
4
+ start?: number | undefined;
5
+ step?: number | undefined;
6
+ typeName?: string | undefined;
7
+ }
8
+ export declare function integerGenerator<N extends number>(bounds: CheckedBounds, options?: IntegerGeneratorOptions): Generator<N, undefined, undefined>;
9
+ //# sourceMappingURL=integer-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer-generator.d.ts","sourceRoot":"","sources":["../../../src/packages/rebound/integer-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,uBAAuB;IACvC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,wBAAiB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EACjD,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,uBAA4B,GACnC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CA8BpC"}
@@ -0,0 +1,35 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { validateBounded } from "./guard-bounded.mjs";
4
+ function* integerGenerator(bounds, options = {}) {
5
+ var _a;
6
+ const { isLowerInc, isUpperInc, isInt, upper, lower } = bounds;
7
+ const prefix = ((_a = options.typeName) == null ? void 0 : _a.concat(": ")) ?? "";
8
+ const step = options.step ?? 1;
9
+ const start = options.start ?? (step < 0 ? upper : lower);
10
+ const end = options.end ?? (step < 0 ? lower : upper);
11
+ if (!Number.isFinite(start)) {
12
+ throw new RangeError(`${prefix}Unbounded start`);
13
+ }
14
+ if (!validateBounded(isLowerInc, lower, isInt, upper, isUpperInc, false, start) || !validateBounded(isLowerInc, lower, isInt, upper, isUpperInc, false, end) || step > 0 && start > end || step < 0 && start < end) {
15
+ return;
16
+ }
17
+ let more;
18
+ if (step > 0) {
19
+ if (isUpperInc) more = /* @__PURE__ */ __name((n) => n <= end, "more");
20
+ else more = /* @__PURE__ */ __name((n) => n < end, "more");
21
+ } else if (step < 0) {
22
+ if (isLowerInc) more = /* @__PURE__ */ __name((n) => n >= end, "more");
23
+ else more = /* @__PURE__ */ __name((n) => n > end, "more");
24
+ } else {
25
+ more = /* @__PURE__ */ __name(() => true, "more");
26
+ }
27
+ for (let n = start; more(n); n = n + step) {
28
+ yield n;
29
+ }
30
+ }
31
+ __name(integerGenerator, "integerGenerator");
32
+ export {
33
+ integerGenerator
34
+ };
35
+ //# sourceMappingURL=integer-generator.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/rebound/integer-generator.ts"],
4
+ "mappings": ";;AAAA,SAAS,uBAAuB;AAUzB,UAAU,iBAChB,QACA,UAAmC,CAAC,GACC;AAbtC;AAcC,QAAM,EAAE,YAAY,YAAY,OAAO,OAAO,MAAM,IAAI;AACxD,QAAM,WAAS,aAAQ,aAAR,mBAAkB,OAAO,UAAS;AACjD,QAAM,OAAQ,QAAQ,QAAQ;AAC9B,QAAM,QAAS,QAAQ,UAAU,OAAO,IAAI,QAAQ;AACpD,QAAM,MAAO,QAAQ,QAAQ,OAAO,IAAI,QAAQ;AAChD,MAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAC5B,UAAM,IAAI,WAAW,GAAI,MAAO,iBAAiB;AAAA,EAClD;AACA,MACC,CAAC,gBAAgB,YAAY,OAAO,OAAO,OAAO,YAAY,OAAO,KAAK,KAC1E,CAAC,gBAAgB,YAAY,OAAO,OAAO,OAAO,YAAY,OAAO,GAAG,KACvE,OAAO,KAAK,QAAQ,OACpB,OAAO,KAAK,QAAQ,KACpB;AACD;AAAA,EACD;AACA,MAAI;AACJ,MAAI,OAAO,GAAG;AACb,QAAI,WAAY,QAAO,wBAAC,MAAM,KAAK,KAAZ;AAAA,QAClB,QAAO,wBAAC,MAAM,IAAI,KAAX;AAAA,EACb,WAAW,OAAO,GAAG;AACpB,QAAI,WAAY,QAAO,wBAAC,MAAM,KAAK,KAAZ;AAAA,QAClB,QAAO,wBAAC,MAAM,IAAI,KAAX;AAAA,EACb,OAAO;AACN,WAAO,6BAAM,MAAN;AAAA,EACR;AACA,WAAS,IAAO,OAAO,KAAK,CAAC,GAAG,IAAK,IAAI,MAAY;AACpD,UAAM;AAAA,EACP;AACD;AAjCiB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var integer_range_exports = {};
21
+ __export(integer_range_exports, {
22
+ IntegerRange: () => IntegerRange
23
+ });
24
+ module.exports = __toCommonJS(integer_range_exports);
25
+ var import_number_range = require("./number-range.cjs");
26
+ const _IntegerRange = class _IntegerRange extends import_number_range.NumberRange {
27
+ discreteIntegers;
28
+ step = 1;
29
+ constructor(lower, upper) {
30
+ super(true, lower, true, upper, true);
31
+ this.discreteIntegers = upper - lower + 1;
32
+ }
33
+ contains(value) {
34
+ return (Number.isSafeInteger(value) || !Number.isFinite(value)) && super.contains(value);
35
+ }
36
+ scaleValueFrom(value, other) {
37
+ super.assertCanScaleFrom(other);
38
+ if (this.isSingleton) {
39
+ return this.lower;
40
+ }
41
+ const thisWidth = this.discreteIntegers;
42
+ const otherWidth = other.upper - other.lower;
43
+ const factor = thisWidth / otherWidth;
44
+ const offset = value - other.lower;
45
+ return Math.min(this.upper, this.lower + Math.trunc(offset * factor));
46
+ }
47
+ };
48
+ __name(_IntegerRange, "IntegerRange");
49
+ let IntegerRange = _IntegerRange;
50
+ //# sourceMappingURL=integer-range.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/rebound/integer-range.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA4B;AAErB,MAAM,gBAAN,MAAM,sBAAqB,gCAAY;AAAA,EAC7B;AAAA,EACS,OAAO;AAAA,EAEhC,YACC,OACA,OACC;AACD,UAAM,MAAM,OAAO,MAAM,OAAO,IAAI;AACpC,SAAK,mBAAmB,QAAQ,QAAQ;AAAA,EACzC;AAAA,EAEgB,SAAS,OAAwB;AAChD,YAAQ,OAAO,cAAc,KAAK,KAAK,CAAC,OAAO,SAAS,KAAK,MAAM,MAAM,SAAS,KAAK;AAAA,EACxF;AAAA,EAEgB,eAAe,OAAe,OAA4B;AACzE,UAAM,mBAAmB,KAAK;AAC9B,QAAI,KAAK,aAAa;AACrB,aAAO,KAAK;AAAA,IACb;AACA,UAAM,YAAY,KAAK;AACvB,UAAM,aAAa,MAAM,QAAQ,MAAM;AACvC,UAAM,SAAS,YAAY;AAC3B,UAAM,SAAS,QAAQ,MAAM;AAC7B,WAAO,KAAK,IAAI,KAAK,OAAO,KAAK,QAAQ,KAAK,MAAM,SAAS,MAAM,CAAC;AAAA,EACrE;AACD;AA3B8C;AAAvC,IAAM,eAAN;",
5
+ "names": []
6
+ }
@@ -0,0 +1,9 @@
1
+ import { NumberRange } from "./number-range.js";
2
+ export declare class IntegerRange extends NumberRange {
3
+ readonly discreteIntegers: number;
4
+ readonly step = 1;
5
+ constructor(lower: number, upper: number);
6
+ contains(value: number): boolean;
7
+ scaleValueFrom(value: number, other: NumberRange): number;
8
+ }
9
+ //# sourceMappingURL=integer-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer-range.d.ts","sourceRoot":"","sources":["../../../src/packages/rebound/integer-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,YAAa,SAAQ,WAAW;IAC5C,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IACzC,SAAyB,IAAI,KAAK;gBAGjC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;IAME,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIhC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;CAWzE"}
@@ -0,0 +1,31 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { NumberRange } from "./number-range.mjs";
4
+ const _IntegerRange = class _IntegerRange extends NumberRange {
5
+ discreteIntegers;
6
+ step = 1;
7
+ constructor(lower, upper) {
8
+ super(true, lower, true, upper, true);
9
+ this.discreteIntegers = upper - lower + 1;
10
+ }
11
+ contains(value) {
12
+ return (Number.isSafeInteger(value) || !Number.isFinite(value)) && super.contains(value);
13
+ }
14
+ scaleValueFrom(value, other) {
15
+ super.assertCanScaleFrom(other);
16
+ if (this.isSingleton) {
17
+ return this.lower;
18
+ }
19
+ const thisWidth = this.discreteIntegers;
20
+ const otherWidth = other.upper - other.lower;
21
+ const factor = thisWidth / otherWidth;
22
+ const offset = value - other.lower;
23
+ return Math.min(this.upper, this.lower + Math.trunc(offset * factor));
24
+ }
25
+ };
26
+ __name(_IntegerRange, "IntegerRange");
27
+ let IntegerRange = _IntegerRange;
28
+ export {
29
+ IntegerRange
30
+ };
31
+ //# sourceMappingURL=integer-range.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/rebound/integer-range.ts"],
4
+ "mappings": ";;AAAA,SAAS,mBAAmB;AAErB,MAAM,gBAAN,MAAM,sBAAqB,YAAY;AAAA,EAC7B;AAAA,EACS,OAAO;AAAA,EAEhC,YACC,OACA,OACC;AACD,UAAM,MAAM,OAAO,MAAM,OAAO,IAAI;AACpC,SAAK,mBAAmB,QAAQ,QAAQ;AAAA,EACzC;AAAA,EAEgB,SAAS,OAAwB;AAChD,YAAQ,OAAO,cAAc,KAAK,KAAK,CAAC,OAAO,SAAS,KAAK,MAAM,MAAM,SAAS,KAAK;AAAA,EACxF;AAAA,EAEgB,eAAe,OAAe,OAA4B;AACzE,UAAM,mBAAmB,KAAK;AAC9B,QAAI,KAAK,aAAa;AACrB,aAAO,KAAK;AAAA,IACb;AACA,UAAM,YAAY,KAAK;AACvB,UAAM,aAAa,MAAM,QAAQ,MAAM;AACvC,UAAM,SAAS,YAAY;AAC3B,UAAM,SAAS,QAAQ,MAAM;AAC7B,WAAO,KAAK,IAAI,KAAK,OAAO,KAAK,QAAQ,KAAK,MAAM,SAAS,MAAM,CAAC;AAAA,EACrE;AACD;AA3B8C;AAAvC,IAAM,eAAN;",
5
+ "names": []
6
+ }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var number_range_exports = {};
21
+ __export(number_range_exports, {
22
+ NumberRange: () => NumberRange
23
+ });
24
+ module.exports = __toCommonJS(number_range_exports);
25
+ var import_foundation = require("@rickosborne/foundation");
26
+ var import_range_base = require("./range-base.cjs");
27
+ var import_range_like = require("./range-like.cjs");
28
+ var import_range = require("./range.cjs");
29
+ const _NumberRange = class _NumberRange extends import_range_base.RangeBase {
30
+ constructor(isLowerInc, lower, isInt, upper, isUpperInc) {
31
+ if (!Number.isFinite(lower) && !isLowerInc || !Number.isFinite(upper) && !isUpperInc) {
32
+ throw new RangeError(`Unbounded (infinite) upper/lower must be inclusive`);
33
+ }
34
+ let isSingleton = false;
35
+ let isEmpty = false;
36
+ if (lower > upper) {
37
+ throw new RangeError("Expected lower <= upper");
38
+ }
39
+ if (lower === upper) {
40
+ if (!isLowerInc && !isUpperInc) {
41
+ throw new Error("Expected at least one inclusive when lower === upper");
42
+ }
43
+ isSingleton = isLowerInc && isUpperInc;
44
+ isEmpty = !isSingleton;
45
+ }
46
+ super(
47
+ isLowerInc,
48
+ Number.isFinite(lower) ? lower : import_range_like.unbounded,
49
+ Number.isFinite(upper) ? upper : import_range_like.unbounded,
50
+ isUpperInc,
51
+ import_foundation.numberAsc
52
+ );
53
+ this.lower = lower;
54
+ this.isInt = isInt;
55
+ this.upper = upper;
56
+ this.isSingleton = isSingleton;
57
+ this.isEmpty = isEmpty;
58
+ this.label = (0, import_range.rangeFromChecked)({ isInt, isLowerInc, isUpperInc, lower, upper });
59
+ }
60
+ isEmpty;
61
+ isSingleton;
62
+ label;
63
+ assertCanScaleFrom(other) {
64
+ if (!this.isBounded || !other.isBounded) {
65
+ throw new RangeError("Cannot scale with unbounded range");
66
+ }
67
+ if (other.lower >= other.upper) {
68
+ throw new RangeError("Not enough source range");
69
+ }
70
+ }
71
+ compareTo(other) {
72
+ const compared = super.compareTo(other);
73
+ if (compared !== 0) {
74
+ return compared;
75
+ }
76
+ if (other instanceof _NumberRange) {
77
+ if (this.isInt && !other.isInt) {
78
+ return -1;
79
+ } else if (!this.isInt && other.isInt) {
80
+ return 1;
81
+ }
82
+ }
83
+ return 0;
84
+ }
85
+ encloses(other) {
86
+ if (other instanceof _NumberRange && this.step > other.step) {
87
+ return false;
88
+ }
89
+ return super.encloses(other);
90
+ }
91
+ isType(obj) {
92
+ return typeof obj === "number" && !Number.isNaN(obj);
93
+ }
94
+ };
95
+ __name(_NumberRange, "NumberRange");
96
+ let NumberRange = _NumberRange;
97
+ //# sourceMappingURL=number-range.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/rebound/number-range.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA0B;AAC1B,wBAA0B;AAE1B,wBAA0B;AAC1B,mBAAiC;AAG1B,MAAe,eAAf,MAAe,qBAAoB,4BAA8D;AAAA,EAO7F,YACT,YACgB,OACT,OACS,OAChB,YACC;AACD,QAAK,CAAC,OAAO,SAAS,KAAK,KAAK,CAAC,cAAgB,CAAC,OAAO,SAAS,KAAK,KAAK,CAAC,YAAa;AACzF,YAAM,IAAI,WAAW,oDAAoD;AAAA,IAC1E;AACA,QAAI,cAAc;AAClB,QAAI,UAAU;AACd,QAAI,QAAQ,OAAO;AAClB,YAAM,IAAI,WAAW,yBAAyB;AAAA,IAC/C;AACA,QAAI,UAAU,OAAO;AACpB,UAAI,CAAC,cAAc,CAAC,YAAY;AAC/B,cAAM,IAAI,MAAM,sDAAsD;AAAA,MACvE;AACA,oBAAc,cAAc;AAC5B,gBAAU,CAAC;AAAA,IACZ;AACA;AAAA,MACC;AAAA,MACA,OAAO,SAAS,KAAK,IAAI,QAAQ;AAAA,MACjC,OAAO,SAAS,KAAK,IAAI,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,IACD;AA1BgB;AACT;AACS;AAyBhB,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,YAAQ,+BAAiB,EAAE,OAAO,YAAY,YAAY,OAAO,MAAM,CAAC;AAAA,EAC9E;AAAA,EArCyB;AAAA,EACA;AAAA,EACT;AAAA,EAqCN,mBAAmB,OAA0B;AACtD,QAAI,CAAC,KAAK,aAAa,CAAC,MAAM,WAAW;AACxC,YAAM,IAAI,WAAW,mCAAmC;AAAA,IACzD;AACA,QAAI,MAAM,SAAS,MAAM,OAAO;AAC/B,YAAM,IAAI,WAAW,yBAAyB;AAAA,IAC/C;AAAA,EACD;AAAA,EAEgB,UAAU,OAAkC;AAC3D,UAAM,WAAW,MAAM,UAAU,KAAK;AACtC,QAAI,aAAa,GAAG;AACnB,aAAO;AAAA,IACR;AACA,QAAI,iBAAiB,cAAa;AACjC,UAAI,KAAK,SAAS,CAAC,MAAM,OAAO;AAC/B,eAAO;AAAA,MACR,WAAW,CAAC,KAAK,SAAS,MAAM,OAAO;AACtC,eAAO;AAAA,MACR;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAEgB,SAAS,OAAmC;AAC3D,QAAI,iBAAiB,gBAAe,KAAK,OAAO,MAAM,MAAM;AAC3D,aAAO;AAAA,IACR;AACA,WAAO,MAAM,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEgB,OAAO,KAA6B;AACnD,WAAO,OAAO,QAAQ,YAAY,CAAC,OAAO,MAAM,GAAG;AAAA,EACpD;AAGD;AA7EwG;AAAjG,IAAe,cAAf;",
5
+ "names": []
6
+ }
@@ -0,0 +1,20 @@
1
+ import { RangeBase } from "./range-base.js";
2
+ import type { RangeLike } from "./range-like.js";
3
+ import type { CheckedBounds } from "./spec.js";
4
+ export declare abstract class NumberRange extends RangeBase<number> implements CheckedBounds, RangeLike<number> {
5
+ readonly lower: number;
6
+ isInt: boolean;
7
+ readonly upper: number;
8
+ abstract readonly discreteIntegers: number | undefined;
9
+ readonly isEmpty: boolean;
10
+ readonly isSingleton: boolean;
11
+ readonly label: string;
12
+ abstract readonly step: number;
13
+ protected constructor(isLowerInc: boolean, lower: number, isInt: boolean, upper: number, isUpperInc: boolean);
14
+ protected assertCanScaleFrom(other: NumberRange): void;
15
+ compareTo(other: RangeLike<number>): number;
16
+ encloses(other: RangeLike<number>): boolean;
17
+ isType(obj: unknown): obj is number;
18
+ abstract scaleValueFrom(value: number, other: NumberRange): number;
19
+ }
20
+ //# sourceMappingURL=number-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-range.d.ts","sourceRoot":"","sources":["../../../src/packages/rebound/number-range.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,8BAAsB,WAAY,SAAQ,SAAS,CAAC,MAAM,CAAE,YAAW,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC;aASrF,KAAK,EAAE,MAAM;IACtB,KAAK,EAAE,OAAO;aACL,KAAK,EAAE,MAAM;IAV9B,kBAAyB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9D,SAAyB,OAAO,EAAE,OAAO,CAAC;IAC1C,SAAyB,WAAW,EAAE,OAAO,CAAC;IAC9C,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC,SAAS,aACR,UAAU,EAAE,OAAO,EACH,KAAK,EAAE,MAAM,EACtB,KAAK,EAAE,OAAO,EACL,KAAK,EAAE,MAAM,EAC7B,UAAU,EAAE,OAAO;IA6BpB,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAStC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM;IAe3C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO;IAO3C,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;aAInC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;CACzE"}
@@ -0,0 +1,78 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { numberAsc } from "@rickosborne/foundation";
4
+ import { RangeBase } from "./range-base.mjs";
5
+ import { unbounded } from "./range-like.mjs";
6
+ import { rangeFromChecked } from "./range.mjs";
7
+ const _NumberRange = class _NumberRange extends RangeBase {
8
+ constructor(isLowerInc, lower, isInt, upper, isUpperInc) {
9
+ if (!Number.isFinite(lower) && !isLowerInc || !Number.isFinite(upper) && !isUpperInc) {
10
+ throw new RangeError(`Unbounded (infinite) upper/lower must be inclusive`);
11
+ }
12
+ let isSingleton = false;
13
+ let isEmpty = false;
14
+ if (lower > upper) {
15
+ throw new RangeError("Expected lower <= upper");
16
+ }
17
+ if (lower === upper) {
18
+ if (!isLowerInc && !isUpperInc) {
19
+ throw new Error("Expected at least one inclusive when lower === upper");
20
+ }
21
+ isSingleton = isLowerInc && isUpperInc;
22
+ isEmpty = !isSingleton;
23
+ }
24
+ super(
25
+ isLowerInc,
26
+ Number.isFinite(lower) ? lower : unbounded,
27
+ Number.isFinite(upper) ? upper : unbounded,
28
+ isUpperInc,
29
+ numberAsc
30
+ );
31
+ this.lower = lower;
32
+ this.isInt = isInt;
33
+ this.upper = upper;
34
+ this.isSingleton = isSingleton;
35
+ this.isEmpty = isEmpty;
36
+ this.label = rangeFromChecked({ isInt, isLowerInc, isUpperInc, lower, upper });
37
+ }
38
+ isEmpty;
39
+ isSingleton;
40
+ label;
41
+ assertCanScaleFrom(other) {
42
+ if (!this.isBounded || !other.isBounded) {
43
+ throw new RangeError("Cannot scale with unbounded range");
44
+ }
45
+ if (other.lower >= other.upper) {
46
+ throw new RangeError("Not enough source range");
47
+ }
48
+ }
49
+ compareTo(other) {
50
+ const compared = super.compareTo(other);
51
+ if (compared !== 0) {
52
+ return compared;
53
+ }
54
+ if (other instanceof _NumberRange) {
55
+ if (this.isInt && !other.isInt) {
56
+ return -1;
57
+ } else if (!this.isInt && other.isInt) {
58
+ return 1;
59
+ }
60
+ }
61
+ return 0;
62
+ }
63
+ encloses(other) {
64
+ if (other instanceof _NumberRange && this.step > other.step) {
65
+ return false;
66
+ }
67
+ return super.encloses(other);
68
+ }
69
+ isType(obj) {
70
+ return typeof obj === "number" && !Number.isNaN(obj);
71
+ }
72
+ };
73
+ __name(_NumberRange, "NumberRange");
74
+ let NumberRange = _NumberRange;
75
+ export {
76
+ NumberRange
77
+ };
78
+ //# sourceMappingURL=number-range.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/rebound/number-range.ts"],
4
+ "mappings": ";;AAAA,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAE1B,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AAG1B,MAAe,eAAf,MAAe,qBAAoB,UAA8D;AAAA,EAO7F,YACT,YACgB,OACT,OACS,OAChB,YACC;AACD,QAAK,CAAC,OAAO,SAAS,KAAK,KAAK,CAAC,cAAgB,CAAC,OAAO,SAAS,KAAK,KAAK,CAAC,YAAa;AACzF,YAAM,IAAI,WAAW,oDAAoD;AAAA,IAC1E;AACA,QAAI,cAAc;AAClB,QAAI,UAAU;AACd,QAAI,QAAQ,OAAO;AAClB,YAAM,IAAI,WAAW,yBAAyB;AAAA,IAC/C;AACA,QAAI,UAAU,OAAO;AACpB,UAAI,CAAC,cAAc,CAAC,YAAY;AAC/B,cAAM,IAAI,MAAM,sDAAsD;AAAA,MACvE;AACA,oBAAc,cAAc;AAC5B,gBAAU,CAAC;AAAA,IACZ;AACA;AAAA,MACC;AAAA,MACA,OAAO,SAAS,KAAK,IAAI,QAAQ;AAAA,MACjC,OAAO,SAAS,KAAK,IAAI,QAAQ;AAAA,MACjC;AAAA,MACA;AAAA,IACD;AA1BgB;AACT;AACS;AAyBhB,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,QAAQ,iBAAiB,EAAE,OAAO,YAAY,YAAY,OAAO,MAAM,CAAC;AAAA,EAC9E;AAAA,EArCyB;AAAA,EACA;AAAA,EACT;AAAA,EAqCN,mBAAmB,OAA0B;AACtD,QAAI,CAAC,KAAK,aAAa,CAAC,MAAM,WAAW;AACxC,YAAM,IAAI,WAAW,mCAAmC;AAAA,IACzD;AACA,QAAI,MAAM,SAAS,MAAM,OAAO;AAC/B,YAAM,IAAI,WAAW,yBAAyB;AAAA,IAC/C;AAAA,EACD;AAAA,EAEgB,UAAU,OAAkC;AAC3D,UAAM,WAAW,MAAM,UAAU,KAAK;AACtC,QAAI,aAAa,GAAG;AACnB,aAAO;AAAA,IACR;AACA,QAAI,iBAAiB,cAAa;AACjC,UAAI,KAAK,SAAS,CAAC,MAAM,OAAO;AAC/B,eAAO;AAAA,MACR,WAAW,CAAC,KAAK,SAAS,MAAM,OAAO;AACtC,eAAO;AAAA,MACR;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAEgB,SAAS,OAAmC;AAC3D,QAAI,iBAAiB,gBAAe,KAAK,OAAO,MAAM,MAAM;AAC3D,aAAO;AAAA,IACR;AACA,WAAO,MAAM,SAAS,KAAK;AAAA,EAC5B;AAAA,EAEgB,OAAO,KAA6B;AACnD,WAAO,OAAO,QAAQ,YAAY,CAAC,OAAO,MAAM,GAAG;AAAA,EACpD;AAGD;AA7EwG;AAAjG,IAAe,cAAf;",
5
+ "names": []
6
+ }