@ts-fns/stdlib 0.1.0 → 0.2.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.
Files changed (135) hide show
  1. package/dist/array/index.cjs +230 -33
  2. package/dist/array/index.cjs.map +1 -1
  3. package/dist/array/index.d.cts +434 -32
  4. package/dist/array/index.d.cts.map +1 -1
  5. package/dist/array/index.d.mts +434 -32
  6. package/dist/array/index.d.mts.map +1 -1
  7. package/dist/array/index.mjs +216 -18
  8. package/dist/array/index.mjs.map +1 -1
  9. package/dist/function/index.cjs +4 -2
  10. package/dist/function/index.d.cts +128 -13
  11. package/dist/function/index.d.cts.map +1 -1
  12. package/dist/function/index.d.mts +128 -13
  13. package/dist/function/index.d.mts.map +1 -1
  14. package/dist/function/index.mjs +3 -3
  15. package/dist/{function-DnI2v0p3.mjs → function-CYHPhQCQ.mjs} +84 -6
  16. package/dist/function-CYHPhQCQ.mjs.map +1 -0
  17. package/dist/{function-CB82a2GS.cjs → function-DYPifnmg.cjs} +95 -5
  18. package/dist/function-DYPifnmg.cjs.map +1 -0
  19. package/dist/{get-yrs1Kqho.cjs → get-1kqkxPFX.cjs} +20 -8
  20. package/dist/get-1kqkxPFX.cjs.map +1 -0
  21. package/dist/{get-CWL_cu6G.mjs → get-Dv6ejLZg.mjs} +21 -3
  22. package/dist/get-Dv6ejLZg.mjs.map +1 -0
  23. package/dist/guard/index.cjs +5 -12
  24. package/dist/guard/index.cjs.map +1 -1
  25. package/dist/guard/index.d.cts +18 -17
  26. package/dist/guard/index.d.cts.map +1 -1
  27. package/dist/guard/index.d.mts +18 -17
  28. package/dist/guard/index.d.mts.map +1 -1
  29. package/dist/guard/index.mjs +4 -12
  30. package/dist/guard/index.mjs.map +1 -1
  31. package/dist/index-MbdqaUt1.d.cts +54 -0
  32. package/dist/index-MbdqaUt1.d.cts.map +1 -0
  33. package/dist/index-k-paNOu4.d.mts +54 -0
  34. package/dist/index-k-paNOu4.d.mts.map +1 -0
  35. package/dist/iterator/index.cjs +72 -26
  36. package/dist/iterator/index.cjs.map +1 -1
  37. package/dist/iterator/index.d.cts +157 -5
  38. package/dist/iterator/index.d.cts.map +1 -1
  39. package/dist/iterator/index.d.mts +157 -5
  40. package/dist/iterator/index.d.mts.map +1 -1
  41. package/dist/iterator/index.mjs +66 -24
  42. package/dist/iterator/index.mjs.map +1 -1
  43. package/dist/lens/index.cjs +3 -3
  44. package/dist/lens/index.cjs.map +1 -1
  45. package/dist/lens/index.mjs +3 -3
  46. package/dist/lens/index.mjs.map +1 -1
  47. package/dist/map/index.cjs +88 -1
  48. package/dist/map/index.cjs.map +1 -1
  49. package/dist/map/index.d.cts +130 -2
  50. package/dist/map/index.d.cts.map +1 -1
  51. package/dist/map/index.d.mts +130 -2
  52. package/dist/map/index.d.mts.map +1 -1
  53. package/dist/map/index.mjs +86 -2
  54. package/dist/map/index.mjs.map +1 -1
  55. package/dist/number/index.cjs +91 -18
  56. package/dist/number/index.cjs.map +1 -1
  57. package/dist/number/index.d.cts +134 -19
  58. package/dist/number/index.d.cts.map +1 -1
  59. package/dist/number/index.d.mts +134 -19
  60. package/dist/number/index.d.mts.map +1 -1
  61. package/dist/number/index.mjs +91 -18
  62. package/dist/number/index.mjs.map +1 -1
  63. package/dist/object/index.cjs +111 -7
  64. package/dist/object/index.cjs.map +1 -1
  65. package/dist/object/index.d.cts +186 -26
  66. package/dist/object/index.d.cts.map +1 -1
  67. package/dist/object/index.d.mts +186 -26
  68. package/dist/object/index.d.mts.map +1 -1
  69. package/dist/object/index.mjs +111 -7
  70. package/dist/object/index.mjs.map +1 -1
  71. package/dist/orNull-CJNrTjhQ.cjs +45 -0
  72. package/dist/orNull-CJNrTjhQ.cjs.map +1 -0
  73. package/dist/orNull-EeXiCxD4.mjs +34 -0
  74. package/dist/orNull-EeXiCxD4.mjs.map +1 -0
  75. package/dist/order/index.cjs +22 -1
  76. package/dist/order/index.cjs.map +1 -1
  77. package/dist/order/index.d.cts +2 -2
  78. package/dist/order/index.d.mts +2 -2
  79. package/dist/order/index.mjs +22 -1
  80. package/dist/order/index.mjs.map +1 -1
  81. package/dist/{order.constants-BWSCg3C7.d.cts → order.constants-DpGY-EDp.d.cts} +4 -1
  82. package/dist/order.constants-DpGY-EDp.d.cts.map +1 -0
  83. package/dist/{order.constants-BWSCg3C7.d.mts → order.constants-DpGY-EDp.d.mts} +4 -1
  84. package/dist/order.constants-DpGY-EDp.d.mts.map +1 -0
  85. package/dist/purry-DXnhXie9.mjs +22 -0
  86. package/dist/purry-DXnhXie9.mjs.map +1 -0
  87. package/dist/purry-Dqp_F64t.cjs +27 -0
  88. package/dist/purry-Dqp_F64t.cjs.map +1 -0
  89. package/dist/set/index.cjs +59 -1
  90. package/dist/set/index.cjs.map +1 -1
  91. package/dist/set/index.d.cts +151 -2
  92. package/dist/set/index.d.cts.map +1 -1
  93. package/dist/set/index.d.mts +151 -2
  94. package/dist/set/index.d.mts.map +1 -1
  95. package/dist/set/index.mjs +59 -2
  96. package/dist/set/index.mjs.map +1 -1
  97. package/dist/string/index.cjs +289 -15
  98. package/dist/string/index.cjs.map +1 -1
  99. package/dist/string/index.d.cts +406 -1
  100. package/dist/string/index.d.cts.map +1 -1
  101. package/dist/string/index.d.mts +406 -1
  102. package/dist/string/index.d.mts.map +1 -1
  103. package/dist/string/index.mjs +271 -4
  104. package/dist/string/index.mjs.map +1 -1
  105. package/dist/tuple/index.cjs +20 -21
  106. package/dist/tuple/index.cjs.map +1 -1
  107. package/dist/tuple/index.d.cts +27 -58
  108. package/dist/tuple/index.d.cts.map +1 -1
  109. package/dist/tuple/index.d.mts +27 -58
  110. package/dist/tuple/index.d.mts.map +1 -1
  111. package/dist/tuple/index.mjs +20 -22
  112. package/dist/tuple/index.mjs.map +1 -1
  113. package/package.json +5 -6
  114. package/dist/function-CB82a2GS.cjs.map +0 -1
  115. package/dist/function-DnI2v0p3.mjs.map +0 -1
  116. package/dist/get-CWL_cu6G.mjs.map +0 -1
  117. package/dist/get-yrs1Kqho.cjs.map +0 -1
  118. package/dist/index-BJlKyBJH.d.cts +0 -18
  119. package/dist/index-BJlKyBJH.d.cts.map +0 -1
  120. package/dist/index-DGrnGMDt.d.mts +0 -18
  121. package/dist/index-DGrnGMDt.d.mts.map +0 -1
  122. package/dist/isNotNil-DrF-ohem.cjs +0 -28
  123. package/dist/isNotNil-DrF-ohem.cjs.map +0 -1
  124. package/dist/isNotNil-R5f1hC53.mjs +0 -23
  125. package/dist/isNotNil-R5f1hC53.mjs.map +0 -1
  126. package/dist/orThrow-V91Jw2lF.mjs +0 -15
  127. package/dist/orThrow-V91Jw2lF.mjs.map +0 -1
  128. package/dist/orThrow-ejzcQYAI.cjs +0 -20
  129. package/dist/orThrow-ejzcQYAI.cjs.map +0 -1
  130. package/dist/order.constants-BWSCg3C7.d.cts.map +0 -1
  131. package/dist/order.constants-BWSCg3C7.d.mts.map +0 -1
  132. package/dist/purry-B2_0DGLV.cjs +0 -28
  133. package/dist/purry-B2_0DGLV.cjs.map +0 -1
  134. package/dist/purry-BOWmqwDB.mjs +0 -23
  135. package/dist/purry-BOWmqwDB.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_purry = require("../purry-B2_0DGLV.cjs");
2
+ const require_purry = require("../purry-Dqp_F64t.cjs");
3
3
  const require_errors = require("../errors-O-d_Vemi.cjs");
4
4
  //#region src/order/breakTie.ts
5
5
  function breakTieImplementation(order, other) {
@@ -19,11 +19,24 @@ function compare(...args) {
19
19
  }
20
20
  //#endregion
21
21
  //#region src/order/order.constants.ts
22
+ /** Order value indicating the left operand is less than the right. */
22
23
  const lt = -1;
24
+ /** Order value indicating the operands are equal. */
23
25
  const eq = 0;
26
+ /** Order value indicating the left operand is greater than the right. */
24
27
  const gt = 1;
25
28
  //#endregion
26
29
  //#region src/order/negate.ts
30
+ /**
31
+ * Flips an order value: less-than becomes greater-than and vice versa; equal stays equal.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * negate(-1); // 1
36
+ * negate(0); // 0
37
+ * negate(1); // -1
38
+ * ```
39
+ */
27
40
  function negate(order) {
28
41
  switch (order) {
29
42
  case -1: return 1;
@@ -34,6 +47,14 @@ function negate(order) {
34
47
  }
35
48
  //#endregion
36
49
  //#region src/order/reverse.ts
50
+ /**
51
+ * Reverses an orderer by negating its result.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * reverse((a, b) => (a < b ? -1 : a > b ? 1 : 0))(2, 1); // 1
56
+ * ```
57
+ */
37
58
  function reverse(orderer) {
38
59
  return (left, right) => negate(orderer(left, right));
39
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["purry","NotYetImplementedError","purry","Panic"],"sources":["../../src/order/breakTie.ts","../../src/order/compare.ts","../../src/order/order.constants.ts","../../src/order/negate.ts","../../src/order/reverse.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\nexport function breakTieImplementation(order: Order, other: Order): Order {\n if (order === 0) return other;\n return order;\n}\n\nexport function breakTie(other: Order): (order: Order) => Order;\nexport function breakTie(order: Order, other: Order): Order;\nexport function breakTie(...args: readonly unknown[]): unknown {\n return purry(breakTieImplementation, args);\n}\n","import { NotYetImplementedError } from '../errors';\nimport { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction compareImplementation(left: Order, right: Order): Order {\n throw new NotYetImplementedError('Order.compare not yet implemented');\n}\n\nexport function compare(left: Order, right: Order): Order;\nexport function compare(...args: readonly unknown[]): unknown {\n return purry(compareImplementation, args);\n}\n","export type Eq = 0;\nexport type Lt = -1;\nexport type Gt = 1;\n\nexport type Order = Eq | Gt | Lt;\n\nexport const lt: Lt = -1;\nexport const eq: Eq = 0;\nexport const gt: Gt = 1;\n","import { Panic } from '../errors';\n\nimport type { Order } from './order.constants';\nimport { eq, gt, lt } from './order.constants';\n\nexport function negate(order: Order): Order {\n switch (order) {\n case lt:\n return gt;\n case eq:\n return eq;\n case gt:\n return lt;\n default:\n throw new Panic('Ord.negate() received a number that was not -1, 0, or 1');\n }\n}\n","import { negate } from './negate';\nimport type { Order } from './order.constants';\n\nexport function reverse<T>(orderer: (left: T, right: T) => Order): (left: T, right: T) => Order {\n return (left: T, right: T) => negate(orderer(left, right));\n}\n"],"mappings":";;;;AAIA,SAAgB,uBAAuB,OAAc,OAAqB;CACxE,IAAI,UAAU,GAAG,OAAO;CACxB,OAAO;AACT;AAIA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAOA,cAAAA,MAAM,wBAAwB,IAAI;AAC3C;;;ACPA,SAAS,sBAAsB,MAAa,OAAqB;CAC/D,MAAM,IAAIC,eAAAA,uBAAuB,mCAAmC;AACtE;AAGA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACPA,MAAa,KAAS;AACtB,MAAa,KAAS;AACtB,MAAa,KAAS;;;ACHtB,SAAgB,OAAO,OAAqB;CAC1C,QAAQ,OAAR;EACE,KAAA,IACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,SACE,MAAM,IAAIC,eAAAA,MAAM,yDAAyD;CAC7E;AACF;;;ACbA,SAAgB,QAAW,SAAqE;CAC9F,QAAQ,MAAS,UAAa,OAAO,QAAQ,MAAM,KAAK,CAAC;AAC3D"}
1
+ {"version":3,"file":"index.cjs","names":["purry","NotYetImplementedError","purry","Panic"],"sources":["../../src/order/breakTie.ts","../../src/order/compare.ts","../../src/order/order.constants.ts","../../src/order/negate.ts","../../src/order/reverse.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\nexport function breakTieImplementation(order: Order, other: Order): Order {\n if (order === 0) return other;\n return order;\n}\n\n/**\n * Resolves a tie by returning `other` when `order` is equal; otherwise returns `order`.\n *\n * @example\n * ```ts\n * breakTie(0, 1); // 1\n * breakTie(-1, 1); // -1\n * breakTie(1)(0); // 1\n * ```\n */\nexport function breakTie(other: Order): (order: Order) => Order;\nexport function breakTie(order: Order, other: Order): Order;\nexport function breakTie(...args: readonly unknown[]): unknown {\n return purry(breakTieImplementation, args);\n}\n","import { NotYetImplementedError } from '../errors';\nimport { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction compareImplementation(left: Order, right: Order): Order {\n throw new NotYetImplementedError('Order.compare not yet implemented');\n}\n\n/**\n * Compares two order values and returns their relative ordering.\n *\n * @example\n * ```ts\n * compare(-1, 1); // throws NotYetImplementedError\n * ```\n */\nexport function compare(left: Order, right: Order): Order;\nexport function compare(...args: readonly unknown[]): unknown {\n return purry(compareImplementation, args);\n}\n","export type Eq = 0;\nexport type Lt = -1;\nexport type Gt = 1;\n\nexport type Order = Eq | Gt | Lt;\n\n/** Order value indicating the left operand is less than the right. */\nexport const lt: Lt = -1;\n\n/** Order value indicating the operands are equal. */\nexport const eq: Eq = 0;\n\n/** Order value indicating the left operand is greater than the right. */\nexport const gt: Gt = 1;\n","import { Panic } from '../errors';\n\nimport type { Order } from './order.constants';\nimport { eq, gt, lt } from './order.constants';\n\n/**\n * Flips an order value: less-than becomes greater-than and vice versa; equal stays equal.\n *\n * @example\n * ```ts\n * negate(-1); // 1\n * negate(0); // 0\n * negate(1); // -1\n * ```\n */\nexport function negate(order: Order): Order {\n switch (order) {\n case lt:\n return gt;\n case eq:\n return eq;\n case gt:\n return lt;\n default:\n throw new Panic('Ord.negate() received a number that was not -1, 0, or 1');\n }\n}\n","import { negate } from './negate';\nimport type { Order } from './order.constants';\n\n/**\n * Reverses an orderer by negating its result.\n *\n * @example\n * ```ts\n * reverse((a, b) => (a < b ? -1 : a > b ? 1 : 0))(2, 1); // 1\n * ```\n */\nexport function reverse<T>(orderer: (left: T, right: T) => Order): (left: T, right: T) => Order {\n return (left: T, right: T) => negate(orderer(left, right));\n}\n"],"mappings":";;;;AAIA,SAAgB,uBAAuB,OAAc,OAAqB;CACxE,IAAI,UAAU,GAAG,OAAO;CACxB,OAAO;AACT;AAcA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAOA,cAAAA,MAAM,wBAAwB,IAAI;AAC3C;;;ACjBA,SAAS,sBAAsB,MAAa,OAAqB;CAC/D,MAAM,IAAIC,eAAAA,uBAAuB,mCAAmC;AACtE;AAWA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;;ACdA,MAAa,KAAS;;AAGtB,MAAa,KAAS;;AAGtB,MAAa,KAAS;;;;;;;;;;;;;ACEtB,SAAgB,OAAO,OAAqB;CAC1C,QAAQ,OAAR;EACE,KAAA,IACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,SACE,MAAM,IAAIC,eAAAA,MAAM,yDAAyD;CAC7E;AACF;;;;;;;;;;;ACfA,SAAgB,QAAW,SAAqE;CAC9F,QAAQ,MAAS,UAAa,OAAO,QAAQ,MAAM,KAAK,CAAC;AAC3D"}
@@ -1,3 +1,3 @@
1
- import { a as eq, i as Order, n as Gt, o as gt, r as Lt, s as lt, t as Eq } from "../order.constants-BWSCg3C7.cjs";
2
- import { a as breakTieImplementation, i as breakTie, n as negate, r as compare, t as reverse } from "../index-BJlKyBJH.cjs";
1
+ import { a as eq, i as Order, n as Gt, o as gt, r as Lt, s as lt, t as Eq } from "../order.constants-DpGY-EDp.cjs";
2
+ import { a as breakTieImplementation, i as breakTie, n as negate, r as compare, t as reverse } from "../index-MbdqaUt1.cjs";
3
3
  export { Eq, Gt, Lt, Order, breakTie, breakTieImplementation, compare, eq, gt, lt, negate, reverse };
@@ -1,3 +1,3 @@
1
- import { a as eq, i as Order, n as Gt, o as gt, r as Lt, s as lt, t as Eq } from "../order.constants-BWSCg3C7.mjs";
2
- import { a as breakTieImplementation, i as breakTie, n as negate, r as compare, t as reverse } from "../index-DGrnGMDt.mjs";
1
+ import { a as eq, i as Order, n as Gt, o as gt, r as Lt, s as lt, t as Eq } from "../order.constants-DpGY-EDp.mjs";
2
+ import { a as breakTieImplementation, i as breakTie, n as negate, r as compare, t as reverse } from "../index-k-paNOu4.mjs";
3
3
  export { Eq, Gt, Lt, Order, breakTie, breakTieImplementation, compare, eq, gt, lt, negate, reverse };
@@ -1,4 +1,4 @@
1
- import { t as purry } from "../purry-BOWmqwDB.mjs";
1
+ import { t as purry } from "../purry-DXnhXie9.mjs";
2
2
  import { a as NotYetImplementedError, o as Panic } from "../errors-Dw1kitu_.mjs";
3
3
  //#region src/order/breakTie.ts
4
4
  function breakTieImplementation(order, other) {
@@ -18,11 +18,24 @@ function compare(...args) {
18
18
  }
19
19
  //#endregion
20
20
  //#region src/order/order.constants.ts
21
+ /** Order value indicating the left operand is less than the right. */
21
22
  const lt = -1;
23
+ /** Order value indicating the operands are equal. */
22
24
  const eq = 0;
25
+ /** Order value indicating the left operand is greater than the right. */
23
26
  const gt = 1;
24
27
  //#endregion
25
28
  //#region src/order/negate.ts
29
+ /**
30
+ * Flips an order value: less-than becomes greater-than and vice versa; equal stays equal.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * negate(-1); // 1
35
+ * negate(0); // 0
36
+ * negate(1); // -1
37
+ * ```
38
+ */
26
39
  function negate(order) {
27
40
  switch (order) {
28
41
  case -1: return 1;
@@ -33,6 +46,14 @@ function negate(order) {
33
46
  }
34
47
  //#endregion
35
48
  //#region src/order/reverse.ts
49
+ /**
50
+ * Reverses an orderer by negating its result.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * reverse((a, b) => (a < b ? -1 : a > b ? 1 : 0))(2, 1); // 1
55
+ * ```
56
+ */
36
57
  function reverse(orderer) {
37
58
  return (left, right) => negate(orderer(left, right));
38
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/order/breakTie.ts","../../src/order/compare.ts","../../src/order/order.constants.ts","../../src/order/negate.ts","../../src/order/reverse.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\nexport function breakTieImplementation(order: Order, other: Order): Order {\n if (order === 0) return other;\n return order;\n}\n\nexport function breakTie(other: Order): (order: Order) => Order;\nexport function breakTie(order: Order, other: Order): Order;\nexport function breakTie(...args: readonly unknown[]): unknown {\n return purry(breakTieImplementation, args);\n}\n","import { NotYetImplementedError } from '../errors';\nimport { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction compareImplementation(left: Order, right: Order): Order {\n throw new NotYetImplementedError('Order.compare not yet implemented');\n}\n\nexport function compare(left: Order, right: Order): Order;\nexport function compare(...args: readonly unknown[]): unknown {\n return purry(compareImplementation, args);\n}\n","export type Eq = 0;\nexport type Lt = -1;\nexport type Gt = 1;\n\nexport type Order = Eq | Gt | Lt;\n\nexport const lt: Lt = -1;\nexport const eq: Eq = 0;\nexport const gt: Gt = 1;\n","import { Panic } from '../errors';\n\nimport type { Order } from './order.constants';\nimport { eq, gt, lt } from './order.constants';\n\nexport function negate(order: Order): Order {\n switch (order) {\n case lt:\n return gt;\n case eq:\n return eq;\n case gt:\n return lt;\n default:\n throw new Panic('Ord.negate() received a number that was not -1, 0, or 1');\n }\n}\n","import { negate } from './negate';\nimport type { Order } from './order.constants';\n\nexport function reverse<T>(orderer: (left: T, right: T) => Order): (left: T, right: T) => Order {\n return (left: T, right: T) => negate(orderer(left, right));\n}\n"],"mappings":";;;AAIA,SAAgB,uBAAuB,OAAc,OAAqB;CACxE,IAAI,UAAU,GAAG,OAAO;CACxB,OAAO;AACT;AAIA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;ACPA,SAAS,sBAAsB,MAAa,OAAqB;CAC/D,MAAM,IAAI,uBAAuB,mCAAmC;AACtE;AAGA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAO,MAAM,uBAAuB,IAAI;AAC1C;;;ACPA,MAAa,KAAS;AACtB,MAAa,KAAS;AACtB,MAAa,KAAS;;;ACHtB,SAAgB,OAAO,OAAqB;CAC1C,QAAQ,OAAR;EACE,KAAA,IACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,SACE,MAAM,IAAI,MAAM,yDAAyD;CAC7E;AACF;;;ACbA,SAAgB,QAAW,SAAqE;CAC9F,QAAQ,MAAS,UAAa,OAAO,QAAQ,MAAM,KAAK,CAAC;AAC3D"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/order/breakTie.ts","../../src/order/compare.ts","../../src/order/order.constants.ts","../../src/order/negate.ts","../../src/order/reverse.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\nexport function breakTieImplementation(order: Order, other: Order): Order {\n if (order === 0) return other;\n return order;\n}\n\n/**\n * Resolves a tie by returning `other` when `order` is equal; otherwise returns `order`.\n *\n * @example\n * ```ts\n * breakTie(0, 1); // 1\n * breakTie(-1, 1); // -1\n * breakTie(1)(0); // 1\n * ```\n */\nexport function breakTie(other: Order): (order: Order) => Order;\nexport function breakTie(order: Order, other: Order): Order;\nexport function breakTie(...args: readonly unknown[]): unknown {\n return purry(breakTieImplementation, args);\n}\n","import { NotYetImplementedError } from '../errors';\nimport { purry } from '../function/purry';\n\nimport type { Order } from './order.constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction compareImplementation(left: Order, right: Order): Order {\n throw new NotYetImplementedError('Order.compare not yet implemented');\n}\n\n/**\n * Compares two order values and returns their relative ordering.\n *\n * @example\n * ```ts\n * compare(-1, 1); // throws NotYetImplementedError\n * ```\n */\nexport function compare(left: Order, right: Order): Order;\nexport function compare(...args: readonly unknown[]): unknown {\n return purry(compareImplementation, args);\n}\n","export type Eq = 0;\nexport type Lt = -1;\nexport type Gt = 1;\n\nexport type Order = Eq | Gt | Lt;\n\n/** Order value indicating the left operand is less than the right. */\nexport const lt: Lt = -1;\n\n/** Order value indicating the operands are equal. */\nexport const eq: Eq = 0;\n\n/** Order value indicating the left operand is greater than the right. */\nexport const gt: Gt = 1;\n","import { Panic } from '../errors';\n\nimport type { Order } from './order.constants';\nimport { eq, gt, lt } from './order.constants';\n\n/**\n * Flips an order value: less-than becomes greater-than and vice versa; equal stays equal.\n *\n * @example\n * ```ts\n * negate(-1); // 1\n * negate(0); // 0\n * negate(1); // -1\n * ```\n */\nexport function negate(order: Order): Order {\n switch (order) {\n case lt:\n return gt;\n case eq:\n return eq;\n case gt:\n return lt;\n default:\n throw new Panic('Ord.negate() received a number that was not -1, 0, or 1');\n }\n}\n","import { negate } from './negate';\nimport type { Order } from './order.constants';\n\n/**\n * Reverses an orderer by negating its result.\n *\n * @example\n * ```ts\n * reverse((a, b) => (a < b ? -1 : a > b ? 1 : 0))(2, 1); // 1\n * ```\n */\nexport function reverse<T>(orderer: (left: T, right: T) => Order): (left: T, right: T) => Order {\n return (left: T, right: T) => negate(orderer(left, right));\n}\n"],"mappings":";;;AAIA,SAAgB,uBAAuB,OAAc,OAAqB;CACxE,IAAI,UAAU,GAAG,OAAO;CACxB,OAAO;AACT;AAcA,SAAgB,SAAS,GAAG,MAAmC;CAC7D,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;ACjBA,SAAS,sBAAsB,MAAa,OAAqB;CAC/D,MAAM,IAAI,uBAAuB,mCAAmC;AACtE;AAWA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAO,MAAM,uBAAuB,IAAI;AAC1C;;;;ACdA,MAAa,KAAS;;AAGtB,MAAa,KAAS;;AAGtB,MAAa,KAAS;;;;;;;;;;;;;ACEtB,SAAgB,OAAO,OAAqB;CAC1C,QAAQ,OAAR;EACE,KAAA,IACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,KAAA,GACE,OAAA;EACF,SACE,MAAM,IAAI,MAAM,yDAAyD;CAC7E;AACF;;;;;;;;;;;ACfA,SAAgB,QAAW,SAAqE;CAC9F,QAAQ,MAAS,UAAa,OAAO,QAAQ,MAAM,KAAK,CAAC;AAC3D"}
@@ -3,9 +3,12 @@ type Eq = 0;
3
3
  type Lt = -1;
4
4
  type Gt = 1;
5
5
  type Order = Eq | Gt | Lt;
6
+ /** Order value indicating the left operand is less than the right. */
6
7
  declare const lt: Lt;
8
+ /** Order value indicating the operands are equal. */
7
9
  declare const eq: Eq;
10
+ /** Order value indicating the left operand is greater than the right. */
8
11
  declare const gt: Gt;
9
12
  //#endregion
10
13
  export { eq as a, Order as i, Gt as n, gt as o, Lt as r, lt as s, Eq as t };
11
- //# sourceMappingURL=order.constants-BWSCg3C7.d.cts.map
14
+ //# sourceMappingURL=order.constants-DpGY-EDp.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.constants-DpGY-EDp.d.cts","names":[],"sources":["../src/order/order.constants.ts"],"mappings":";KAAY,EAAA;AAAA,KACA,EAAA;AAAA,KACA,EAAA;AAAA,KAEA,KAAA,GAAQ,EAAA,GAAK,EAAA,GAAK,EAAA;;cAGjB,EAAA,EAAI,EAAO;AANxB;AAAA,cASa,EAAA,EAAI,EAAM;;cAGV,EAAA,EAAI,EAAM"}
@@ -3,9 +3,12 @@ type Eq = 0;
3
3
  type Lt = -1;
4
4
  type Gt = 1;
5
5
  type Order = Eq | Gt | Lt;
6
+ /** Order value indicating the left operand is less than the right. */
6
7
  declare const lt: Lt;
8
+ /** Order value indicating the operands are equal. */
7
9
  declare const eq: Eq;
10
+ /** Order value indicating the left operand is greater than the right. */
8
11
  declare const gt: Gt;
9
12
  //#endregion
10
13
  export { eq as a, Order as i, Gt as n, gt as o, Lt as r, lt as s, Eq as t };
11
- //# sourceMappingURL=order.constants-BWSCg3C7.d.mts.map
14
+ //# sourceMappingURL=order.constants-DpGY-EDp.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.constants-DpGY-EDp.d.mts","names":[],"sources":["../src/order/order.constants.ts"],"mappings":";KAAY,EAAA;AAAA,KACA,EAAA;AAAA,KACA,EAAA;AAAA,KAEA,KAAA,GAAQ,EAAA,GAAK,EAAA,GAAK,EAAA;;cAGjB,EAAA,EAAI,EAAO;AANxB;AAAA,cASa,EAAA,EAAI,EAAM;;cAGV,EAAA,EAAI,EAAM"}
@@ -0,0 +1,22 @@
1
+ //#region src/function/purry.ts
2
+ /**
3
+ * Enables pipe-style partial application for multi-argument functions.
4
+ * With all arguments, calls the function immediately; with one fewer, returns a function that accepts the remaining argument.
5
+ * Throws when called with any other number of arguments.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * purry((data, n) => data.slice(0, n), [2])([1, 2, 3]); // [1, 2]
10
+ * purry((data, n) => data.slice(0, n), [[1, 2, 3], 2]); // [1, 2]
11
+ * ```
12
+ */
13
+ function purry(fn, args) {
14
+ const diff = fn.length - args.length;
15
+ if (diff === 0) return fn(...args);
16
+ if (diff === 1) return (data) => fn(data, ...args);
17
+ throw new Error(`Attempt to call Purried function "${fn.name}" failed with wrong number of arguments. Received "${args.length}". It can accept either "${fn.length}" or "${fn.length - 1}" arguments.`);
18
+ }
19
+ //#endregion
20
+ export { purry as t };
21
+
22
+ //# sourceMappingURL=purry-DXnhXie9.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purry-DXnhXie9.mjs","names":[],"sources":["../src/function/purry.ts"],"sourcesContent":["/**\n * Enables pipe-style partial application for multi-argument functions.\n * With all arguments, calls the function immediately; with one fewer, returns a function that accepts the remaining argument.\n * Throws when called with any other number of arguments.\n *\n * @example\n * ```ts\n * purry((data, n) => data.slice(0, n), [2])([1, 2, 3]); // [1, 2]\n * purry((data, n) => data.slice(0, n), [[1, 2, 3], 2]); // [1, 2]\n * ```\n */\nexport function purry(fn: (...args: any) => unknown, args: readonly unknown[]): unknown {\n const diff = fn.length - args.length;\n if (diff === 0) {\n return fn(...args);\n }\n\n if (diff === 1) {\n return (data: unknown): unknown => fn(data, ...args);\n }\n\n throw new Error(\n `Attempt to call Purried function \"${fn.name}\" failed with wrong number of arguments. Received \"${args.length}\". It can accept either \"${fn.length}\" or \"${fn.length - 1}\" arguments.`,\n );\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,MAAM,IAA+B,MAAmC;CACtF,MAAM,OAAO,GAAG,SAAS,KAAK;CAC9B,IAAI,SAAS,GACX,OAAO,GAAG,GAAG,IAAI;CAGnB,IAAI,SAAS,GACX,QAAQ,SAA2B,GAAG,MAAM,GAAG,IAAI;CAGrD,MAAM,IAAI,MACR,qCAAqC,GAAG,KAAK,qDAAqD,KAAK,OAAO,2BAA2B,GAAG,OAAO,QAAQ,GAAG,SAAS,EAAE,aAC3K;AACF"}
@@ -0,0 +1,27 @@
1
+ //#region src/function/purry.ts
2
+ /**
3
+ * Enables pipe-style partial application for multi-argument functions.
4
+ * With all arguments, calls the function immediately; with one fewer, returns a function that accepts the remaining argument.
5
+ * Throws when called with any other number of arguments.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * purry((data, n) => data.slice(0, n), [2])([1, 2, 3]); // [1, 2]
10
+ * purry((data, n) => data.slice(0, n), [[1, 2, 3], 2]); // [1, 2]
11
+ * ```
12
+ */
13
+ function purry(fn, args) {
14
+ const diff = fn.length - args.length;
15
+ if (diff === 0) return fn(...args);
16
+ if (diff === 1) return (data) => fn(data, ...args);
17
+ throw new Error(`Attempt to call Purried function "${fn.name}" failed with wrong number of arguments. Received "${args.length}". It can accept either "${fn.length}" or "${fn.length - 1}" arguments.`);
18
+ }
19
+ //#endregion
20
+ Object.defineProperty(exports, "purry", {
21
+ enumerable: true,
22
+ get: function() {
23
+ return purry;
24
+ }
25
+ });
26
+
27
+ //# sourceMappingURL=purry-Dqp_F64t.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purry-Dqp_F64t.cjs","names":[],"sources":["../src/function/purry.ts"],"sourcesContent":["/**\n * Enables pipe-style partial application for multi-argument functions.\n * With all arguments, calls the function immediately; with one fewer, returns a function that accepts the remaining argument.\n * Throws when called with any other number of arguments.\n *\n * @example\n * ```ts\n * purry((data, n) => data.slice(0, n), [2])([1, 2, 3]); // [1, 2]\n * purry((data, n) => data.slice(0, n), [[1, 2, 3], 2]); // [1, 2]\n * ```\n */\nexport function purry(fn: (...args: any) => unknown, args: readonly unknown[]): unknown {\n const diff = fn.length - args.length;\n if (diff === 0) {\n return fn(...args);\n }\n\n if (diff === 1) {\n return (data: unknown): unknown => fn(data, ...args);\n }\n\n throw new Error(\n `Attempt to call Purried function \"${fn.name}\" failed with wrong number of arguments. Received \"${args.length}\". It can accept either \"${fn.length}\" or \"${fn.length - 1}\" arguments.`,\n );\n}\n"],"mappings":";;;;;;;;;;;;AAWA,SAAgB,MAAM,IAA+B,MAAmC;CACtF,MAAM,OAAO,GAAG,SAAS,KAAK;CAC9B,IAAI,SAAS,GACX,OAAO,GAAG,GAAG,IAAI;CAGnB,IAAI,SAAS,GACX,QAAQ,SAA2B,GAAG,MAAM,GAAG,IAAI;CAGrD,MAAM,IAAI,MACR,qCAAqC,GAAG,KAAK,qDAAqD,KAAK,OAAO,2BAA2B,GAAG,OAAO,QAAQ,GAAG,SAAS,EAAE,aAC3K;AACF"}
@@ -1,5 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_purry = require("../purry-B2_0DGLV.cjs");
2
+ const require_purry = require("../purry-Dqp_F64t.cjs");
3
+ //#region src/set/_globalAliases.ts
4
+ /**
5
+ * Alias of the built-in set constructor. `new Set() === new Set.Ctor()`
6
+ * @function
7
+ */
8
+ const Ctor = Set;
9
+ //#endregion
3
10
  //#region src/set/add.ts
4
11
  function addImplementation(data, value) {
5
12
  return data.add(value);
@@ -9,6 +16,14 @@ function add(...args) {
9
16
  }
10
17
  //#endregion
11
18
  //#region src/set/clear.ts
19
+ /**
20
+ * Removes all values from a set and returns the same set.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * clear(new Set([1, 2, 3])); // Set(0) {}
25
+ * ```
26
+ */
12
27
  function clear(data) {
13
28
  data.clear();
14
29
  return data;
@@ -23,6 +38,15 @@ function difference(...args) {
23
38
  }
24
39
  //#endregion
25
40
  //#region src/set/entries.ts
41
+ /**
42
+ * Returns an iterator of a set's value-key pairs.
43
+ * For sets, each entry repeats the same value as both key and value.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * [...entries(new Set([1, 2]))]; // [[1, 1], [2, 2]]
48
+ * ```
49
+ */
26
50
  function entries(data) {
27
51
  return data.entries();
28
52
  }
@@ -37,9 +61,25 @@ function forEach(...args) {
37
61
  }
38
62
  //#endregion
39
63
  //#region src/set/from.ts
64
+ /**
65
+ * Creates a set from an iterable of values.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * from([1, 2, 2, 3]); // Set(3) { 1, 2, 3 }
70
+ * ```
71
+ */
40
72
  function from(iterable) {
41
73
  return new Set(iterable);
42
74
  }
75
+ /**
76
+ * Creates an empty set.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * empty(); // Set(0) {}
81
+ * ```
82
+ */
43
83
  function empty() {
44
84
  return /* @__PURE__ */ new Set();
45
85
  }
@@ -77,6 +117,15 @@ function isSubsetOf(...args) {
77
117
  }
78
118
  //#endregion
79
119
  //#region src/set/keys.ts
120
+ /**
121
+ * Returns an iterator of a set's values.
122
+ * For sets, keys and values are the same.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * [...keys(new Set([1, 2, 3]))]; // [1, 2, 3]
127
+ * ```
128
+ */
80
129
  function keys(data) {
81
130
  return data.keys();
82
131
  }
@@ -107,10 +156,19 @@ function union(...args) {
107
156
  }
108
157
  //#endregion
109
158
  //#region src/set/values.ts
159
+ /**
160
+ * Returns an iterator of a set's values.
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * [...values(new Set([1, 2, 3]))]; // [1, 2, 3]
165
+ * ```
166
+ */
110
167
  function values(data) {
111
168
  return data.values();
112
169
  }
113
170
  //#endregion
171
+ exports.Ctor = Ctor;
114
172
  exports.add = add;
115
173
  exports.clear = clear;
116
174
  exports.difference = difference;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["purry","purry","purry","purry","purry","purry","purry","purry","purry","purry"],"sources":["../../src/set/add.ts","../../src/set/clear.ts","../../src/set/difference.ts","../../src/set/entries.ts","../../src/set/forEach.ts","../../src/set/from.ts","../../src/set/has.ts","../../src/set/intersection.ts","../../src/set/isDisjointFrom.ts","../../src/set/isSubsetOf.ts","../../src/set/keys.ts","../../src/set/remove.ts","../../src/set/symmetricDifference.ts","../../src/set/union.ts","../../src/set/values.ts"],"sourcesContent":["import { purry } from '../function/purry';\n\nfunction addImplementation<T>(data: Set<T>, value: T): Set<T> {\n return data.add(value);\n}\n\nexport function add<T>(value: T): (data: Set<T>) => Set<T>;\nexport function add<T>(data: Set<T>, value: T): Set<T>;\nexport function add(...args: readonly unknown[]): unknown {\n return purry(addImplementation, args);\n}\n","export function clear<T>(data: Set<T>): Set<T> {\n data.clear();\n return data;\n}\n","import { purry } from '../function/purry';\n\nfunction differenceImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T> {\n return data.difference(other);\n}\n\nexport function difference<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T>;\nexport function difference<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T>;\nexport function difference(...args: readonly unknown[]): unknown {\n return purry(differenceImplementation, args);\n}\n","export function entries<T>(data: Set<T>): SetIterator<[T, T]> {\n return data.entries();\n}\n","import { purry } from '../function/purry';\n\nfunction forEachImplementation<T>(data: Set<T>, callbackfn: (value: T, key: T, set: Set<T>) => void): Set<T> {\n data.forEach(callbackfn);\n return data;\n}\n\nexport function forEach<T>(callbackfn: (value: T, key: T, set: Set<T>) => void): (data: Set<T>) => Set<T>;\nexport function forEach<T>(data: Set<T>, callbackfn: (value: T, key: T, set: Set<T>) => void): Set<T>;\nexport function forEach(...args: readonly unknown[]): unknown {\n return purry(forEachImplementation, args);\n}\n","export function from<T>(iterable: Iterable<T> | readonly T[]): Set<T> {\n return new Set(iterable);\n}\n\nexport function empty<T>(): Set<T> {\n return new Set();\n}\n","import { purry } from '../function/purry';\n\nfunction hasImplementation<T>(data: Set<T>, value: T): boolean {\n return data.has(value);\n}\n\nexport function has<T>(value: T): (data: Set<T>) => Set<T>;\nexport function has<T>(data: Set<T>, value: T): Set<T>;\nexport function has(...args: readonly unknown[]): unknown {\n return purry(hasImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction intersectionImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T & U> {\n return data.intersection(other);\n}\n\nexport function intersection<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T & U>;\nexport function intersection<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T & U>;\nexport function intersection(...args: readonly unknown[]): unknown {\n return purry(intersectionImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction isDisjointFromImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean {\n return data.isDisjointFrom(other);\n}\n\nexport function isDisjointFrom<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => boolean;\nexport function isDisjointFrom<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean;\nexport function isDisjointFrom(...args: readonly unknown[]): unknown {\n return purry(isDisjointFromImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction isSubsetOfImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean {\n return data.isSubsetOf(other);\n}\n\nexport function isSubsetOf<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => boolean;\nexport function isSubsetOf<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean;\nexport function isSubsetOf(...args: readonly unknown[]): unknown {\n return purry(isSubsetOfImplementation, args);\n}\n","export function keys<T>(data: Set<T>): SetIterator<T> {\n return data.keys();\n}\n","import { purry } from '../function/purry';\n\nfunction removeImplementation<T>(data: Set<T>, value: T): Set<T> {\n data.delete(value);\n return data;\n}\n\n/**\n * TODO: should this return a tuple?\n */\nexport function remove<T>(value: T): (data: Set<T>) => Set<T>;\nexport function remove<T>(data: Set<T>, value: T): Set<T>;\nexport function remove(...args: readonly unknown[]): unknown {\n return purry(removeImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction symmetricDifferenceImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U> {\n return data.symmetricDifference(other);\n}\n\nexport function symmetricDifference<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T | U>;\nexport function symmetricDifference<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U>;\nexport function symmetricDifference(...args: readonly unknown[]): unknown {\n return purry(symmetricDifferenceImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction unionImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U> {\n return data.union(other);\n}\n\nexport function union<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T | U>;\nexport function union<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U>;\nexport function union(...args: readonly unknown[]): unknown {\n return purry(unionImplementation, args);\n}\n","export function values<T>(data: Set<T>): SetIterator<T> {\n return data.values();\n}\n"],"mappings":";;;AAEA,SAAS,kBAAqB,MAAc,OAAkB;CAC5D,OAAO,KAAK,IAAI,KAAK;AACvB;AAIA,SAAgB,IAAI,GAAG,MAAmC;CACxD,OAAOA,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;ACVA,SAAgB,MAAS,MAAsB;CAC7C,KAAK,MAAM;CACX,OAAO;AACT;;;ACDA,SAAS,yBAA+B,MAAc,OAAmC;CACvF,OAAO,KAAK,WAAW,KAAK;AAC9B;AAIA,SAAgB,WAAW,GAAG,MAAmC;CAC/D,OAAOC,cAAAA,MAAM,0BAA0B,IAAI;AAC7C;;;ACVA,SAAgB,QAAW,MAAmC;CAC5D,OAAO,KAAK,QAAQ;AACtB;;;ACAA,SAAS,sBAAyB,MAAc,YAA6D;CAC3G,KAAK,QAAQ,UAAU;CACvB,OAAO;AACT;AAIA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;ACXA,SAAgB,KAAQ,UAA8C;CACpE,OAAO,IAAI,IAAI,QAAQ;AACzB;AAEA,SAAgB,QAAmB;CACjC,uBAAO,IAAI,IAAI;AACjB;;;ACJA,SAAS,kBAAqB,MAAc,OAAmB;CAC7D,OAAO,KAAK,IAAI,KAAK;AACvB;AAIA,SAAgB,IAAI,GAAG,MAAmC;CACxD,OAAOC,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;ACRA,SAAS,2BAAiC,MAAc,OAAuC;CAC7F,OAAO,KAAK,aAAa,KAAK;AAChC;AAIA,SAAgB,aAAa,GAAG,MAAmC;CACjE,OAAOC,cAAAA,MAAM,4BAA4B,IAAI;AAC/C;;;ACRA,SAAS,6BAAmC,MAAc,OAAoC;CAC5F,OAAO,KAAK,eAAe,KAAK;AAClC;AAIA,SAAgB,eAAe,GAAG,MAAmC;CACnE,OAAOC,cAAAA,MAAM,8BAA8B,IAAI;AACjD;;;ACRA,SAAS,yBAA+B,MAAc,OAAoC;CACxF,OAAO,KAAK,WAAW,KAAK;AAC9B;AAIA,SAAgB,WAAW,GAAG,MAAmC;CAC/D,OAAOC,cAAAA,MAAM,0BAA0B,IAAI;AAC7C;;;ACVA,SAAgB,KAAQ,MAA8B;CACpD,OAAO,KAAK,KAAK;AACnB;;;ACAA,SAAS,qBAAwB,MAAc,OAAkB;CAC/D,KAAK,OAAO,KAAK;CACjB,OAAO;AACT;AAOA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;ACZA,SAAS,kCAAwC,MAAc,OAAuC;CACpG,OAAO,KAAK,oBAAoB,KAAK;AACvC;AAIA,SAAgB,oBAAoB,GAAG,MAAmC;CACxE,OAAOC,cAAAA,MAAM,mCAAmC,IAAI;AACtD;;;ACRA,SAAS,oBAA0B,MAAc,OAAuC;CACtF,OAAO,KAAK,MAAM,KAAK;AACzB;AAIA,SAAgB,MAAM,GAAG,MAAmC;CAC1D,OAAOC,cAAAA,MAAM,qBAAqB,IAAI;AACxC;;;ACVA,SAAgB,OAAU,MAA8B;CACtD,OAAO,KAAK,OAAO;AACrB"}
1
+ {"version":3,"file":"index.cjs","names":["purry","purry","purry","purry","purry","purry","purry","purry","purry","purry"],"sources":["../../src/set/_globalAliases.ts","../../src/set/add.ts","../../src/set/clear.ts","../../src/set/difference.ts","../../src/set/entries.ts","../../src/set/forEach.ts","../../src/set/from.ts","../../src/set/has.ts","../../src/set/intersection.ts","../../src/set/isDisjointFrom.ts","../../src/set/isSubsetOf.ts","../../src/set/keys.ts","../../src/set/remove.ts","../../src/set/symmetricDifference.ts","../../src/set/union.ts","../../src/set/values.ts"],"sourcesContent":["/**\n * Alias of the built-in set constructor. `new Set() === new Set.Ctor()`\n * @function\n */\nexport const Ctor = Set;\n","import { purry } from '../function/purry';\n\nfunction addImplementation<T>(data: Set<T>, value: T): Set<T> {\n return data.add(value);\n}\n\n/**\n * Adds a value to a set and returns the same set.\n *\n * @example\n * ```ts\n * add(new Set([1]), 2); // Set(2) { 1, 2 }\n * add(3)(new Set([1, 2])); // Set(3) { 1, 2, 3 }\n * ```\n */\nexport function add<T>(value: T): (data: Set<T>) => Set<T>;\nexport function add<T>(data: Set<T>, value: T): Set<T>;\nexport function add(...args: readonly unknown[]): unknown {\n return purry(addImplementation, args);\n}\n","/**\n * Removes all values from a set and returns the same set.\n *\n * @example\n * ```ts\n * clear(new Set([1, 2, 3])); // Set(0) {}\n * ```\n */\nexport function clear<T>(data: Set<T>): Set<T> {\n data.clear();\n return data;\n}\n","import { purry } from '../function/purry';\n\nfunction differenceImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T> {\n return data.difference(other);\n}\n\n/**\n * Returns a new set containing values in the first set but not the second.\n *\n * @example\n * ```ts\n * difference(new Set([1, 2, 3]), new Set([2, 3, 4])); // Set(1) { 1 }\n * difference(new Set([2, 3, 4]))(new Set([1, 2, 3])); // Set(1) { 1 }\n * ```\n */\nexport function difference<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T>;\nexport function difference<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T>;\nexport function difference(...args: readonly unknown[]): unknown {\n return purry(differenceImplementation, args);\n}\n","/**\n * Returns an iterator of a set's value-key pairs.\n * For sets, each entry repeats the same value as both key and value.\n *\n * @example\n * ```ts\n * [...entries(new Set([1, 2]))]; // [[1, 1], [2, 2]]\n * ```\n */\nexport function entries<T>(data: Set<T>): SetIterator<[T, T]> {\n return data.entries();\n}\n","import { purry } from '../function/purry';\n\nfunction forEachImplementation<T>(data: Set<T>, callbackfn: (value: T, key: T, set: Set<T>) => void): Set<T> {\n data.forEach(callbackfn);\n return data;\n}\n\n/**\n * Runs a callback for each set value and returns the same set.\n *\n * @example\n * ```ts\n * const set = new Set([1, 2, 3]);\n * forEach(set, value => console.log(value)); // set\n * forEach(value => console.log(value))(set); // set\n * ```\n */\nexport function forEach<T>(callbackfn: (value: T, key: T, set: Set<T>) => void): (data: Set<T>) => Set<T>;\nexport function forEach<T>(data: Set<T>, callbackfn: (value: T, key: T, set: Set<T>) => void): Set<T>;\nexport function forEach(...args: readonly unknown[]): unknown {\n return purry(forEachImplementation, args);\n}\n","/**\n * Creates a set from an iterable of values.\n *\n * @example\n * ```ts\n * from([1, 2, 2, 3]); // Set(3) { 1, 2, 3 }\n * ```\n */\nexport function from<T>(iterable: Iterable<T> | readonly T[]): Set<T> {\n return new Set(iterable);\n}\n\n/**\n * Creates an empty set.\n *\n * @example\n * ```ts\n * empty(); // Set(0) {}\n * ```\n */\nexport function empty<T>(): Set<T> {\n return new Set();\n}\n","import { purry } from '../function/purry';\n\nfunction hasImplementation<T>(data: Set<T>, value: T): boolean {\n return data.has(value);\n}\n\n/**\n * Returns whether a set contains a value.\n *\n * @example\n * ```ts\n * has(new Set([1, 2]), 1); // true\n * has(new Set([1, 2]), 3); // false\n * has(2)(new Set([1, 2])); // true\n * ```\n */\nexport function has<T>(value: T): (data: Set<T>) => Set<T>;\nexport function has<T>(data: Set<T>, value: T): Set<T>;\nexport function has(...args: readonly unknown[]): unknown {\n return purry(hasImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction intersectionImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T & U> {\n return data.intersection(other);\n}\n\n/**\n * Returns a new set containing values present in both sets.\n *\n * @example\n * ```ts\n * intersection(new Set([1, 2, 3]), new Set([2, 3, 4])); // Set(2) { 2, 3 }\n * intersection(new Set([2, 3, 4]))(new Set([1, 2, 3])); // Set(2) { 2, 3 }\n * ```\n */\nexport function intersection<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T & U>;\nexport function intersection<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T & U>;\nexport function intersection(...args: readonly unknown[]): unknown {\n return purry(intersectionImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction isDisjointFromImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean {\n return data.isDisjointFrom(other);\n}\n\n/**\n * Returns whether two sets share no values.\n *\n * @example\n * ```ts\n * isDisjointFrom(new Set([1, 2]), new Set([3, 4])); // true\n * isDisjointFrom(new Set([1, 2]), new Set([2, 3])); // false\n * isDisjointFrom(new Set([2, 3]))(new Set([1, 2])); // false\n * ```\n */\nexport function isDisjointFrom<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => boolean;\nexport function isDisjointFrom<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean;\nexport function isDisjointFrom(...args: readonly unknown[]): unknown {\n return purry(isDisjointFromImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction isSubsetOfImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean {\n return data.isSubsetOf(other);\n}\n\n/**\n * Returns whether every value in the first set is contained in the second.\n *\n * @example\n * ```ts\n * isSubsetOf(new Set([1, 2]), new Set([1, 2, 3])); // true\n * isSubsetOf(new Set([1, 4]), new Set([1, 2, 3])); // false\n * isSubsetOf(new Set([1, 2, 3]))(new Set([1, 2])); // true\n * ```\n */\nexport function isSubsetOf<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => boolean;\nexport function isSubsetOf<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean;\nexport function isSubsetOf(...args: readonly unknown[]): unknown {\n return purry(isSubsetOfImplementation, args);\n}\n","/**\n * Returns an iterator of a set's values.\n * For sets, keys and values are the same.\n *\n * @example\n * ```ts\n * [...keys(new Set([1, 2, 3]))]; // [1, 2, 3]\n * ```\n */\nexport function keys<T>(data: Set<T>): SetIterator<T> {\n return data.keys();\n}\n","import { purry } from '../function/purry';\n\nfunction removeImplementation<T>(data: Set<T>, value: T): Set<T> {\n data.delete(value);\n return data;\n}\n\n/**\n * Removes a value from a set and returns the same set.\n *\n * @example\n * ```ts\n * const set = new Set([1, 2, 3]);\n * remove(set, 2); // Set(2) { 1, 3 }\n * remove(3)(set); // Set(1) { 1 }\n * ```\n */\nexport function remove<T>(value: T): (data: Set<T>) => Set<T>;\nexport function remove<T>(data: Set<T>, value: T): Set<T>;\nexport function remove(...args: readonly unknown[]): unknown {\n return purry(removeImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction symmetricDifferenceImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U> {\n return data.symmetricDifference(other);\n}\n\n/**\n * Returns a new set containing values in either set but not both.\n *\n * @example\n * ```ts\n * symmetricDifference(new Set([1, 2, 3]), new Set([2, 3, 4])); // Set(2) { 1, 4 }\n * symmetricDifference(new Set([2, 3, 4]))(new Set([1, 2, 3])); // Set(2) { 1, 4 }\n * ```\n */\nexport function symmetricDifference<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T | U>;\nexport function symmetricDifference<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U>;\nexport function symmetricDifference(...args: readonly unknown[]): unknown {\n return purry(symmetricDifferenceImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction unionImplementation<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U> {\n return data.union(other);\n}\n\n/**\n * Returns a new set containing all values from both sets.\n *\n * @example\n * ```ts\n * union(new Set([1, 2]), new Set([2, 3])); // Set(3) { 1, 2, 3 }\n * union(new Set([2, 3]))(new Set([1, 2])); // Set(3) { 1, 2, 3 }\n * ```\n */\nexport function union<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T | U>;\nexport function union<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U>;\nexport function union(...args: readonly unknown[]): unknown {\n return purry(unionImplementation, args);\n}\n","/**\n * Returns an iterator of a set's values.\n *\n * @example\n * ```ts\n * [...values(new Set([1, 2, 3]))]; // [1, 2, 3]\n * ```\n */\nexport function values<T>(data: Set<T>): SetIterator<T> {\n return data.values();\n}\n"],"mappings":";;;;;;;AAIA,MAAa,OAAO;;;ACFpB,SAAS,kBAAqB,MAAc,OAAkB;CAC5D,OAAO,KAAK,IAAI,KAAK;AACvB;AAaA,SAAgB,IAAI,GAAG,MAAmC;CACxD,OAAOA,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;;;;;;;;;ACXA,SAAgB,MAAS,MAAsB;CAC7C,KAAK,MAAM;CACX,OAAO;AACT;;;ACTA,SAAS,yBAA+B,MAAc,OAAmC;CACvF,OAAO,KAAK,WAAW,KAAK;AAC9B;AAaA,SAAgB,WAAW,GAAG,MAAmC;CAC/D,OAAOC,cAAAA,MAAM,0BAA0B,IAAI;AAC7C;;;;;;;;;;;;ACVA,SAAgB,QAAW,MAAmC;CAC5D,OAAO,KAAK,QAAQ;AACtB;;;ACTA,SAAS,sBAAyB,MAAc,YAA6D;CAC3G,KAAK,QAAQ,UAAU;CACvB,OAAO;AACT;AAcA,SAAgB,QAAQ,GAAG,MAAmC;CAC5D,OAAOC,cAAAA,MAAM,uBAAuB,IAAI;AAC1C;;;;;;;;;;;ACbA,SAAgB,KAAQ,UAA8C;CACpE,OAAO,IAAI,IAAI,QAAQ;AACzB;;;;;;;;;AAUA,SAAgB,QAAmB;CACjC,uBAAO,IAAI,IAAI;AACjB;;;ACpBA,SAAS,kBAAqB,MAAc,OAAmB;CAC7D,OAAO,KAAK,IAAI,KAAK;AACvB;AAcA,SAAgB,IAAI,GAAG,MAAmC;CACxD,OAAOC,cAAAA,MAAM,mBAAmB,IAAI;AACtC;;;AClBA,SAAS,2BAAiC,MAAc,OAAuC;CAC7F,OAAO,KAAK,aAAa,KAAK;AAChC;AAaA,SAAgB,aAAa,GAAG,MAAmC;CACjE,OAAOC,cAAAA,MAAM,4BAA4B,IAAI;AAC/C;;;ACjBA,SAAS,6BAAmC,MAAc,OAAoC;CAC5F,OAAO,KAAK,eAAe,KAAK;AAClC;AAcA,SAAgB,eAAe,GAAG,MAAmC;CACnE,OAAOC,cAAAA,MAAM,8BAA8B,IAAI;AACjD;;;AClBA,SAAS,yBAA+B,MAAc,OAAoC;CACxF,OAAO,KAAK,WAAW,KAAK;AAC9B;AAcA,SAAgB,WAAW,GAAG,MAAmC;CAC/D,OAAOC,cAAAA,MAAM,0BAA0B,IAAI;AAC7C;;;;;;;;;;;;ACXA,SAAgB,KAAQ,MAA8B;CACpD,OAAO,KAAK,KAAK;AACnB;;;ACTA,SAAS,qBAAwB,MAAc,OAAkB;CAC/D,KAAK,OAAO,KAAK;CACjB,OAAO;AACT;AAcA,SAAgB,OAAO,GAAG,MAAmC;CAC3D,OAAOC,cAAAA,MAAM,sBAAsB,IAAI;AACzC;;;ACnBA,SAAS,kCAAwC,MAAc,OAAuC;CACpG,OAAO,KAAK,oBAAoB,KAAK;AACvC;AAaA,SAAgB,oBAAoB,GAAG,MAAmC;CACxE,OAAOC,cAAAA,MAAM,mCAAmC,IAAI;AACtD;;;ACjBA,SAAS,oBAA0B,MAAc,OAAuC;CACtF,OAAO,KAAK,MAAM,KAAK;AACzB;AAaA,SAAgB,MAAM,GAAG,MAAmC;CAC1D,OAAOC,cAAAA,MAAM,qBAAqB,IAAI;AACxC;;;;;;;;;;;ACXA,SAAgB,OAAU,MAA8B;CACtD,OAAO,KAAK,OAAO;AACrB"}
@@ -1,61 +1,210 @@
1
+ //#region src/set/_globalAliases.d.ts
2
+ /**
3
+ * Alias of the built-in set constructor. `new Set() === new Set.Ctor()`
4
+ * @function
5
+ */
6
+ declare const Ctor: SetConstructor;
7
+ //#endregion
1
8
  //#region src/set/add.d.ts
9
+ /**
10
+ * Adds a value to a set and returns the same set.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * add(new Set([1]), 2); // Set(2) { 1, 2 }
15
+ * add(3)(new Set([1, 2])); // Set(3) { 1, 2, 3 }
16
+ * ```
17
+ */
2
18
  declare function add<T>(value: T): (data: Set<T>) => Set<T>;
3
19
  declare function add<T>(data: Set<T>, value: T): Set<T>;
4
20
  //#endregion
5
21
  //#region src/set/clear.d.ts
22
+ /**
23
+ * Removes all values from a set and returns the same set.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * clear(new Set([1, 2, 3])); // Set(0) {}
28
+ * ```
29
+ */
6
30
  declare function clear<T>(data: Set<T>): Set<T>;
7
31
  //#endregion
8
32
  //#region src/set/difference.d.ts
33
+ /**
34
+ * Returns a new set containing values in the first set but not the second.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * difference(new Set([1, 2, 3]), new Set([2, 3, 4])); // Set(1) { 1 }
39
+ * difference(new Set([2, 3, 4]))(new Set([1, 2, 3])); // Set(1) { 1 }
40
+ * ```
41
+ */
9
42
  declare function difference<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T>;
10
43
  declare function difference<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T>;
11
44
  //#endregion
12
45
  //#region src/set/entries.d.ts
46
+ /**
47
+ * Returns an iterator of a set's value-key pairs.
48
+ * For sets, each entry repeats the same value as both key and value.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * [...entries(new Set([1, 2]))]; // [[1, 1], [2, 2]]
53
+ * ```
54
+ */
13
55
  declare function entries<T>(data: Set<T>): SetIterator<[T, T]>;
14
56
  //#endregion
15
57
  //#region src/set/forEach.d.ts
58
+ /**
59
+ * Runs a callback for each set value and returns the same set.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const set = new Set([1, 2, 3]);
64
+ * forEach(set, value => console.log(value)); // set
65
+ * forEach(value => console.log(value))(set); // set
66
+ * ```
67
+ */
16
68
  declare function forEach<T>(callbackfn: (value: T, key: T, set: Set<T>) => void): (data: Set<T>) => Set<T>;
17
69
  declare function forEach<T>(data: Set<T>, callbackfn: (value: T, key: T, set: Set<T>) => void): Set<T>;
18
70
  //#endregion
19
71
  //#region src/set/from.d.ts
72
+ /**
73
+ * Creates a set from an iterable of values.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * from([1, 2, 2, 3]); // Set(3) { 1, 2, 3 }
78
+ * ```
79
+ */
20
80
  declare function from<T>(iterable: Iterable<T> | readonly T[]): Set<T>;
81
+ /**
82
+ * Creates an empty set.
83
+ *
84
+ * @example
85
+ * ```ts
86
+ * empty(); // Set(0) {}
87
+ * ```
88
+ */
21
89
  declare function empty<T>(): Set<T>;
22
90
  //#endregion
23
91
  //#region src/set/has.d.ts
92
+ /**
93
+ * Returns whether a set contains a value.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * has(new Set([1, 2]), 1); // true
98
+ * has(new Set([1, 2]), 3); // false
99
+ * has(2)(new Set([1, 2])); // true
100
+ * ```
101
+ */
24
102
  declare function has<T>(value: T): (data: Set<T>) => Set<T>;
25
103
  declare function has<T>(data: Set<T>, value: T): Set<T>;
26
104
  //#endregion
27
105
  //#region src/set/intersection.d.ts
106
+ /**
107
+ * Returns a new set containing values present in both sets.
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * intersection(new Set([1, 2, 3]), new Set([2, 3, 4])); // Set(2) { 2, 3 }
112
+ * intersection(new Set([2, 3, 4]))(new Set([1, 2, 3])); // Set(2) { 2, 3 }
113
+ * ```
114
+ */
28
115
  declare function intersection<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T & U>;
29
116
  declare function intersection<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T & U>;
30
117
  //#endregion
31
118
  //#region src/set/isDisjointFrom.d.ts
119
+ /**
120
+ * Returns whether two sets share no values.
121
+ *
122
+ * @example
123
+ * ```ts
124
+ * isDisjointFrom(new Set([1, 2]), new Set([3, 4])); // true
125
+ * isDisjointFrom(new Set([1, 2]), new Set([2, 3])); // false
126
+ * isDisjointFrom(new Set([2, 3]))(new Set([1, 2])); // false
127
+ * ```
128
+ */
32
129
  declare function isDisjointFrom<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => boolean;
33
130
  declare function isDisjointFrom<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean;
34
131
  //#endregion
35
132
  //#region src/set/isSubsetOf.d.ts
133
+ /**
134
+ * Returns whether every value in the first set is contained in the second.
135
+ *
136
+ * @example
137
+ * ```ts
138
+ * isSubsetOf(new Set([1, 2]), new Set([1, 2, 3])); // true
139
+ * isSubsetOf(new Set([1, 4]), new Set([1, 2, 3])); // false
140
+ * isSubsetOf(new Set([1, 2, 3]))(new Set([1, 2])); // true
141
+ * ```
142
+ */
36
143
  declare function isSubsetOf<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => boolean;
37
144
  declare function isSubsetOf<T, U>(data: Set<T>, other: ReadonlySetLike<U>): boolean;
38
145
  //#endregion
39
146
  //#region src/set/keys.d.ts
147
+ /**
148
+ * Returns an iterator of a set's values.
149
+ * For sets, keys and values are the same.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * [...keys(new Set([1, 2, 3]))]; // [1, 2, 3]
154
+ * ```
155
+ */
40
156
  declare function keys<T>(data: Set<T>): SetIterator<T>;
41
157
  //#endregion
42
158
  //#region src/set/remove.d.ts
43
159
  /**
44
- * TODO: should this return a tuple?
160
+ * Removes a value from a set and returns the same set.
161
+ *
162
+ * @example
163
+ * ```ts
164
+ * const set = new Set([1, 2, 3]);
165
+ * remove(set, 2); // Set(2) { 1, 3 }
166
+ * remove(3)(set); // Set(1) { 1 }
167
+ * ```
45
168
  */
46
169
  declare function remove<T>(value: T): (data: Set<T>) => Set<T>;
47
170
  declare function remove<T>(data: Set<T>, value: T): Set<T>;
48
171
  //#endregion
49
172
  //#region src/set/symmetricDifference.d.ts
173
+ /**
174
+ * Returns a new set containing values in either set but not both.
175
+ *
176
+ * @example
177
+ * ```ts
178
+ * symmetricDifference(new Set([1, 2, 3]), new Set([2, 3, 4])); // Set(2) { 1, 4 }
179
+ * symmetricDifference(new Set([2, 3, 4]))(new Set([1, 2, 3])); // Set(2) { 1, 4 }
180
+ * ```
181
+ */
50
182
  declare function symmetricDifference<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T | U>;
51
183
  declare function symmetricDifference<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U>;
52
184
  //#endregion
53
185
  //#region src/set/union.d.ts
186
+ /**
187
+ * Returns a new set containing all values from both sets.
188
+ *
189
+ * @example
190
+ * ```ts
191
+ * union(new Set([1, 2]), new Set([2, 3])); // Set(3) { 1, 2, 3 }
192
+ * union(new Set([2, 3]))(new Set([1, 2])); // Set(3) { 1, 2, 3 }
193
+ * ```
194
+ */
54
195
  declare function union<U>(other: ReadonlySetLike<U>): <T>(data: Set<T>) => Set<T | U>;
55
196
  declare function union<T, U>(data: Set<T>, other: ReadonlySetLike<U>): Set<T | U>;
56
197
  //#endregion
57
198
  //#region src/set/values.d.ts
199
+ /**
200
+ * Returns an iterator of a set's values.
201
+ *
202
+ * @example
203
+ * ```ts
204
+ * [...values(new Set([1, 2, 3]))]; // [1, 2, 3]
205
+ * ```
206
+ */
58
207
  declare function values<T>(data: Set<T>): SetIterator<T>;
59
208
  //#endregion
60
- export { add, clear, difference, empty, entries, forEach, from, has, intersection, isDisjointFrom, isSubsetOf, keys, remove, symmetricDifference, union, values };
209
+ export { Ctor, add, clear, difference, empty, entries, forEach, from, has, intersection, isDisjointFrom, isSubsetOf, keys, remove, symmetricDifference, union, values };
61
210
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/set/add.ts","../../src/set/clear.ts","../../src/set/difference.ts","../../src/set/entries.ts","../../src/set/forEach.ts","../../src/set/from.ts","../../src/set/has.ts","../../src/set/intersection.ts","../../src/set/isDisjointFrom.ts","../../src/set/isSubsetOf.ts","../../src/set/keys.ts","../../src/set/remove.ts","../../src/set/symmetricDifference.ts","../../src/set/union.ts","../../src/set/values.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/set/_globalAliases.ts","../../src/set/add.ts","../../src/set/clear.ts","../../src/set/difference.ts","../../src/set/entries.ts","../../src/set/forEach.ts","../../src/set/from.ts","../../src/set/has.ts","../../src/set/intersection.ts","../../src/set/isDisjointFrom.ts","../../src/set/isSubsetOf.ts","../../src/set/keys.ts","../../src/set/remove.ts","../../src/set/symmetricDifference.ts","../../src/set/union.ts","../../src/set/values.ts"],"mappings":"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"}