@fncts/base 0.0.15 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. package/_cjs/data/Environment/api.cjs +15 -25
  2. package/_cjs/data/Environment/api.cjs.map +1 -1
  3. package/_cjs/data/Environment/definition.cjs +1 -2
  4. package/_cjs/data/Environment/definition.cjs.map +1 -1
  5. package/_cjs/data/Patch/api.cjs +3 -3
  6. package/_cjs/data/Patch/api.cjs.map +1 -1
  7. package/_cjs/data/Tag/constructors.cjs +5 -2
  8. package/_cjs/data/Tag/constructors.cjs.map +1 -1
  9. package/_cjs/data/Tag/definition.cjs +3 -3
  10. package/_cjs/data/Tag/definition.cjs.map +1 -1
  11. package/_mjs/data/Environment/api.mjs +12 -21
  12. package/_mjs/data/Environment/api.mjs.map +1 -1
  13. package/_mjs/data/Environment/definition.mjs +1 -2
  14. package/_mjs/data/Environment/definition.mjs.map +1 -1
  15. package/_mjs/data/Patch/api.mjs +3 -3
  16. package/_mjs/data/Patch/api.mjs.map +1 -1
  17. package/_mjs/data/Tag/constructors.mjs +4 -2
  18. package/_mjs/data/Tag/constructors.mjs.map +1 -1
  19. package/_mjs/data/Tag/definition.mjs +3 -3
  20. package/_mjs/data/Tag/definition.mjs.map +1 -1
  21. package/_src/data/Environment/api.ts +8 -14
  22. package/_src/data/Environment/definition.ts +1 -2
  23. package/_src/data/Patch/api.ts +4 -4
  24. package/_src/data/Tag/constructors.ts +5 -2
  25. package/_src/data/Tag/definition.ts +3 -2
  26. package/collection/compat/Array/definition.d.ts +2 -2
  27. package/collection/immutable/Conc/definition.d.ts +1 -1
  28. package/collection/immutable/HashMap/definition.d.ts +1 -1
  29. package/collection/immutable/HashMap/internal.d.ts +3 -3
  30. package/collection/immutable/HashSet/definition.d.ts +1 -1
  31. package/collection/immutable/ImmutableArray/definition.d.ts +1 -1
  32. package/collection/immutable/List/definition.d.ts +1 -1
  33. package/collection/immutable/RoseTree/definition.d.ts +1 -1
  34. package/collection/immutable/SortedMap/node.d.ts +2 -2
  35. package/collection/immutable/Vector/definition.d.ts +1 -1
  36. package/collection/immutable/Vector/internal.d.ts +2 -2
  37. package/control/Eval/definition.d.ts +2 -2
  38. package/control/Z/definition.d.ts +3 -3
  39. package/data/Branded/definition.d.ts +1 -1
  40. package/data/Byte.d.ts +1 -1
  41. package/data/CaseClass.d.ts +1 -1
  42. package/data/Cause/definition.d.ts +2 -2
  43. package/data/Datum/definition.d.ts +2 -2
  44. package/data/DatumEither/definition.d.ts +1 -1
  45. package/data/DecodeError/definition.d.ts +1 -1
  46. package/data/Decoder/definition.d.ts +1 -1
  47. package/data/Duration/definition.d.ts +1 -1
  48. package/data/Either/definition.d.ts +1 -1
  49. package/data/EitherT/definition.d.ts +1 -1
  50. package/data/Environment/api.d.ts +1 -1
  51. package/data/Environment/definition.d.ts +3 -4
  52. package/data/ExecutionStrategy.d.ts +1 -1
  53. package/data/Exit/definition.d.ts +2 -2
  54. package/data/FiberId/definition.d.ts +3 -3
  55. package/data/Maybe/definition.d.ts +1 -1
  56. package/data/Patch/definition.d.ts +2 -2
  57. package/data/Struct/api.d.ts +5 -5
  58. package/data/Tag/constructors.d.ts +2 -1
  59. package/data/Tag/definition.d.ts +3 -2
  60. package/data/These/definition.d.ts +2 -2
  61. package/data/TraceElement/definition.d.ts +1 -1
  62. package/data/Zipped.d.ts +2 -2
  63. package/data/exceptions/InterruptedException.d.ts +1 -1
  64. package/json/EitherJson.d.ts +1 -1
  65. package/json/MaybeJson.d.ts +1 -1
  66. package/json/TheseJson.d.ts +1 -1
  67. package/optics/At/definition.d.ts +1 -1
  68. package/optics/Index/definition.d.ts +1 -1
  69. package/package.json +3 -2
  70. package/typeclass/Applicative.d.ts +1 -1
  71. package/typeclass/Apply.d.ts +2 -2
  72. package/typeclass/Equatable/fast-equals.d.ts +4 -4
  73. package/typeclass/Guard/definition.d.ts +1 -1
  74. package/typeclass/Has.d.ts +1 -1
  75. package/typeclass/HashEq.d.ts +1 -1
  76. package/typeclass/Monoid.d.ts +1 -1
  77. package/typeclass/Ordering.d.ts +1 -1
  78. package/typeclass/Showable/show.d.ts +4 -4
  79. package/typeclass/Showable/styles.d.ts +5 -5
  80. package/types/extractions.d.ts +8 -8
  81. package/types/utility.d.ts +4 -4
  82. package/util/PCGRandom.d.ts +2 -2
  83. package/util/predicates.d.ts +1 -1
  84. package/util/rand/distribution/Distribution.d.ts +1 -1
  85. package/util/rand/distribution/internals/ArrayInt.d.ts +2 -2
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.empty = exports.clean = exports.add = void 0;
6
+ exports.add = void 0;
7
+ exports.clean = clean;
8
+ exports.empty = void 0;
7
9
  exports.get = get;
8
10
  exports.getMaybe = getMaybe;
9
11
  exports.make = void 0;
@@ -17,17 +19,11 @@ var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require
17
19
 
18
20
  var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/function/api"));
19
21
 
20
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/number/instances"));
21
-
22
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/typeclass/Ord/api/contramap"));
23
-
24
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/List/api"));
22
+ var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/List/api/foldLeft"));
25
23
 
26
- var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/List/api/foldLeft"));
24
+ var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/typeclass/Equatable/api"));
27
25
 
28
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/typeclass/Equatable/api"));
29
-
30
- var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
26
+ var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
31
27
 
32
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
29
 
@@ -37,8 +33,6 @@ const add = add_1;
37
33
  exports.add = add;
38
34
  const make = make_1;
39
35
  exports.make = make;
40
- const clean = clean_1;
41
- exports.clean = clean;
42
36
  const unsafeGet = unsafeGet_1;
43
37
  /**
44
38
  * @tsplus fluent fncts.Environment add
@@ -47,8 +41,7 @@ const unsafeGet = unsafeGet_1;
47
41
  exports.unsafeGet = unsafeGet;
48
42
 
49
43
  function add_1(self, service, tag) {
50
- const self0 = self.index === Number.MAX_SAFE_INTEGER ? clean_1(self) : self;
51
- return new tsplus_module_1.Environment(tsplus_module_2.set_(self0.map, tag, [service, self0.index]), self0.index + 1);
44
+ return new tsplus_module_1.Environment(tsplus_module_2.set_(self.map, tag, service));
52
45
  }
53
46
  /**
54
47
  * @tsplus static fncts.EnvironmentOps empty
@@ -79,7 +72,7 @@ function getMaybe(self, tag) {
79
72
 
80
73
 
81
74
  function make_1() {
82
- return new tsplus_module_1.Environment(tsplus_module_2.makeDefault(), 0, tsplus_module_2.makeDefault());
75
+ return new tsplus_module_1.Environment(tsplus_module_2.makeDefault(), tsplus_module_2.makeDefault());
83
76
  }
84
77
  /**
85
78
  * @tsplus operator fncts.Environment +
@@ -88,17 +81,16 @@ function make_1() {
88
81
 
89
82
 
90
83
  function union(self, that) {
91
- const [self0, that0] = self.index + that.index < self.index ? [clean_1(self), clean_1(that)] : [self, that];
92
- return new tsplus_module_1.Environment(tsplus_module_2.union_(self0.map, tsplus_module_2.map_(that0.map, ([service, index]) => [service, self0.index + index])), self0.index + that0.index);
84
+ return new tsplus_module_1.Environment(tsplus_module_2.union_(self.map, that.map));
93
85
  }
94
86
  /**
95
87
  * @tsplus getter fncts.Environment clean
96
88
  */
97
89
 
98
90
 
99
- function clean_1(self) {
100
- const [map, index] = tsplus_module_7.foldLeft_(tsplus_module_6.sort(tsplus_module_2.toList(self.map), tsplus_module_5.contramap(tsplus_module_4.Ord, ([, [, idx]]) => idx)), [tsplus_module_2.makeDefault(), 0], ([map, index], [tag, [service]]) => [tsplus_module_2.set_(map, tag, [service, index]), index + 1]);
101
- return new tsplus_module_1.Environment(map, index);
91
+ function clean(self) {
92
+ const [map, index] = tsplus_module_4.foldLeft_(tsplus_module_2.toList(self.map), [tsplus_module_2.makeDefault(), 0], ([map, index], [tag, service]) => [tsplus_module_2.set_(map, tag, [service, index]), index + 1]);
93
+ return new tsplus_module_1.Environment(map);
102
94
  }
103
95
  /**
104
96
  * @tsplus fluent fncts.Environment unsafeGet
@@ -106,17 +98,15 @@ function clean_1(self) {
106
98
 
107
99
 
108
100
  function unsafeGet_1(self, tag) {
109
- return tsplus_module_9.match_(tsplus_module_2.get_(self.cache, tag), () => {
110
- let index = -1;
101
+ return tsplus_module_6.match_(tsplus_module_2.get_(self.cache, tag), () => {
111
102
  const iterator = self.map[Symbol.iterator]();
112
103
  let service = null;
113
104
  let r;
114
105
 
115
106
  while (!(r = iterator.next()).done) {
116
- const [curTag, [curService, curIndex]] = r.value;
107
+ const [curTag, curService] = r.value;
117
108
 
118
- if (tsplus_module_8.strictEquals(curTag, tag) && curIndex > index) {
119
- index = curIndex;
109
+ if (tsplus_module_5.strictEquals(curTag, tag)) {
120
110
  service = curService;
121
111
  }
122
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.cjs","mappings":"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","names":["add","make","clean","unsafeGet","self","service","tag","self0","index","Number","MAX_SAFE_INTEGER","clean_1","Environment","tsplus_module_2","map","empty","make_1","get","unsafeGet_1","getMaybe","cache","union","that","that0","tsplus_module_7","tsplus_module_5","idx","tsplus_module_9","iterator","Symbol","r","next","done","curTag","curService","curIndex","value","tsplus_module_8","Error","a","update","f","add_1"],"sourceRoot":"","sources":["../../../_src/data/Environment/api.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"api.cjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGgBA,GAAG;;MA4BHC,IAAI;;MA8BJC,SAAS;AA7DzB;;;;;;AAGA,eAA2CC,IAA3C,EAAiEC,OAAjE,EAA6EC,GAA7E,EAAwF;EACtF,OAAO,oBAAIC,WAAJ,CAAgBC,yBAAI,CAACC,GAAL,EAAaH,GAAb,EAAkBD,OAAlB,CAAhB,CAAP;AACD;AAED;;;;;AAGO,MAAMK,KAAK,gBAAGC,QAAd;AAIP;;;;;;AAGM,SAAUC,GAAV,CAAoCR,IAApC,EAA0DE,GAA1D,EAAgE;EACpE,OAAoBO,kBAAeP,GAAf,CAApB;AACD;AAED;;;;;AAGM,SAAUQ,QAAV,CAAwCV,IAAxC,EAA8DE,GAA9D,EAAyE;EAC7E,OAAOE,yBAAI,CAACO,KAAL,EAAeT,GAAf,CAAP;AACD;AAED;;;;;AAGA;EACE,OAAO,oBAAIC,WAAJ,CAAgBC,6BAAhB,EAAuCA,6BAAvC,CAAP;AACD;AAED;;;;;;AAIM,SAAUQ,KAAV,CAAuBZ,IAAvB,EAA6Ca,IAA7C,EAAkE;EACtE,OAAO,oBAAIV,WAAJ,CACLC,2BAAI,CAACC,GAAL,EAAeQ,IAAI,CAACR,GAApB,CADK,CAAP;AAGD;AAED;;;;;AAGM,SAAUS,KAAV,CAAmBd,IAAnB,EAAuC;EAC3C,MAAM,CAACK,GAAD,EAAMU,KAAN,IAAeC,qDAAI,CAACX,GAAL,GAEjB,CAACD,6BAAD,EAAkE,CAAlE,CAFiB,EAGjB,CAAC,CAACC,GAAD,EAAMU,KAAN,CAAD,EAAe,CAACb,GAAD,EAAMD,OAAN,CAAf,KAAkC,CAACG,0BAAQF,GAAR,EAAa,CAACD,OAAD,EAAUc,KAAV,CAAb,CAAD,EAA0CA,KAAK,GAAG,CAAlD,CAHjB,CAArB;EAMA,OAAO,oBAAIZ,WAAJ,CAAgBE,GAAhB,CAAP;AACD;AAED;;;;;AAGA,qBAAgCL,IAAhC,EAAsDE,GAAtD,EAAiE;EAC/D,OAAOe,gDAAI,CAACN,KAAL,EAAeT,GAAf,GACL,MAAK;IACH,MAAMgB,QAAQ,GAAGlB,IAAI,CAACK,GAAL,CAASc,MAAM,CAACD,QAAhB,GAAjB;IACA,IAAIjB,OAAO,GAAM,IAAjB;IACA,IAAImB,CAAJ;;IACA,OAAO,CAAC,CAACA,CAAC,GAAGF,QAAQ,CAACG,IAAT,EAAL,EAAsBC,IAA9B,EAAoC;MAClC,MAAM,CAACC,MAAD,EAASC,UAAT,IAAuBJ,CAAC,CAACK,KAA/B;;MACA,iCAAIF,MAAJ,EAAcrB,GAAd,GAAmB;QACjBD,OAAO,GAAGuB,UAAV;MACD;IACF;;IACD,IAAIvB,OAAO,KAAK,IAAhB,EAAsB,MAAM,IAAIyB,KAAJ,CAAU,kDAAV,CAAN,CAAtB,KACK;MACH1B,IAAI,CAACW,KAAL,GAAaP,yBAAI,CAACO,KAAL,EAAeT,GAAf,EAAoBD,OAApB,CAAb;MACA,OAAOA,OAAP;IACD;EACF,CAhBI,EAiBJ0B,CAAD,IAAOA,CAjBF,CAAP;AAmBD;AAED;;;;;AAGM,SAAUC,MAAV,CAAiC5B,IAAjC,EAAuD6B,CAAvD,EAAuE3B,GAAvE,EAAkF;EACtF,OAAO4B,YAASD,CAAC,CAACpB,kBAAeP,GAAf,CAAD,CAAV,EAAiCA,GAAjC,CAAP;AACD","names":["add","make","unsafeGet","self","service","tag","Environment","tsplus_module_2","map","empty","make_1","get","unsafeGet_1","getMaybe","cache","union","that","clean","index","tsplus_module_4","tsplus_module_6","iterator","Symbol","r","next","done","curTag","curService","value","Error","a","update","f","add_1"],"sourceRoot":"","sources":["../../../_src/data/Environment/api.ts"],"sourcesContent":[null]}
@@ -35,9 +35,8 @@ const EnvSymbol = EnvSymbol_1;
35
35
  exports.EnvSymbol = EnvSymbol;
36
36
 
37
37
  class Environment {
38
- constructor(map, index, cache = tsplus_module_1.makeDefault()) {
38
+ constructor(map, cache = tsplus_module_1.makeDefault()) {
39
39
  this.map = map;
40
- this.index = index;
41
40
  this.cache = cache;
42
41
  this._typeId = EnvSymbol_1;
43
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"definition.cjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGO,MAAMA,2BAAYC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;MAAMC,SAAS;AAItB;;;;;;;AAIM,MAAOC,WAAP,CAAkB;EAGtBC,YACWC,GADX,EAEWC,KAFX,EAGSC,QAAoCC,6BAH7C,EAGkE;IAFvD;IACA;IACF;IALA,eAAOT,WAAP;EAML;;EAEA,mCAAa;IACf,OAAOU,4BAAiB,KAAKF,KAAtB,CAAP;EACD;;EAED,+BAAgBG,IAAhB,EAA6B;IAC3B,OAAOC,aAAa,CAACD,IAAD,CAAb,GAAqBE,6BAAC,KAAKP,GAAN,EAAaK,IAAI,CAACL,GAAlB,CAArB,GAA6C,KAApD;EACD;;AAfqB;;;;AAkBlB,SAAUM,aAAV,CAAwBE,CAAxB,EAAkC;EACtC,OAAOC,0BAAUD,CAAV,EAAWd,WAAX,CAAP;AACD","names":["EnvSymbol_1","Symbol","for","EnvSymbol","Environment","constructor","map","index","cache","tsplus_module_1","tsplus_module_3","that","isEnvironment","tsplus_module_5","u","tsplus_module_6"],"sourceRoot":"","sources":["../../../_src/data/Environment/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.cjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGO,MAAMA,2BAAYC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;MAAMC,SAAS;AAItB;;;;;;;AAIM,MAAOC,WAAP,CAAkB;EAGtBC,YACWC,GADX,EAESC,QAAoCC,6BAF7C,EAEkE;IADvD;IACF;IAJA,eAAOR,WAAP;EAKL;;EAEA,mCAAa;IACf,OAAOS,4BAAiB,KAAKF,KAAtB,CAAP;EACD;;EAED,+BAAgBG,IAAhB,EAA6B;IAC3B,OAAOC,aAAa,CAACD,IAAD,CAAb,GAAqBE,6BAAC,KAAKN,GAAN,EAAaI,IAAI,CAACJ,GAAlB,CAArB,GAA6C,KAApD;EACD;;AAdqB;;;;AAiBlB,SAAUK,aAAV,CAAwBE,CAAxB,EAAkC;EACtC,OAAOC,0BAAUD,CAAV,EAAWb,WAAX,CAAP;AACD","names":["EnvSymbol_1","Symbol","for","EnvSymbol","Environment","constructor","map","cache","tsplus_module_1","tsplus_module_3","that","isEnvironment","tsplus_module_5","u","tsplus_module_6"],"sourceRoot":"","sources":["../../../_src/data/Environment/definition.ts"],"sourcesContent":[null]}
@@ -118,9 +118,9 @@ const OrdEnvironmentMap = /*#__PURE__*/tsplus_module_5.contramap(tsplus_module_4
118
118
  */
119
119
 
120
120
  function diff(oldValue, newValue) {
121
- const sorted = tsplus_module_6.toArray(newValue.map).sort(OrdEnvironmentMap.compare);
122
- const [missingServices, patch] = tsplus_module_8.foldLeft(sorted, [tsplus_module_6.beginMutation(oldValue.map), empty_1()], ([map, patch], [tag, [newService, newIndex]]) => tsplus_module_7.match_(tsplus_module_6.get_(map, tag), () => [tsplus_module_6.remove_(map, tag), compose_1(patch, new _Patch.AddService(newService, tag))], ([oldService, oldIndex]) => {
123
- if (oldService === newService && oldIndex === newIndex) {
121
+ const sorted = tsplus_module_6.toArray(newValue.map);
122
+ const [missingServices, patch] = tsplus_module_8.foldLeft(sorted, [tsplus_module_6.beginMutation(oldValue.map), empty_1()], ([map, patch], [tag, newService]) => tsplus_module_7.match_(tsplus_module_6.get_(map, tag), () => [tsplus_module_6.remove_(map, tag), compose_1(patch, new _Patch.AddService(newService, tag))], oldService => {
123
+ if (oldService === newService) {
124
124
  return [tsplus_module_6.remove_(map, tag), patch];
125
125
  } else {
126
126
  return [tsplus_module_6.remove_(map, tag), compose_1(patch, new _Patch.UpdateService(_ => newService, tag))];
@@ -1 +1 @@
1
- {"version":3,"file":"api.cjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;MAsCgBA,OAAO;;MA+BPC,KAAK;;;AAjErB;;;AAGA,SAASC,SAAT,CAAmBC,WAAnB,EAAkDC,OAAlD,EAAgF;sBAA7DD;MAAAE,YAA+BD;sBAA/BD;MAAAG,YAA+BF;;YAAkD;IAClG,IAAIG,kCAAJ,EAAuB;MACrB;IACD;;IACD,MAAMC,IAAI,GAAGH,UAAQG,IAArB;IACA,MAAMC,IAAI,GAAGJ,UAAQI,IAArB;IACA;;IACA,QAAQD,IAAI,CAACE,IAAb;MACE,KAAK,YAAL;wBACmBC,mCAAgBH,IAAI,CAACI,OAArB,EAA8BJ,IAAI,CAACK,GAAnC;oBAAyCJ;;;;;MAC5D,KAAK,SAAL;;oBACgCK,qBAAKN,IAAI,CAACO,KAAV,EAAiBD,qBAAKN,IAAI,CAACQ,MAAV,EAAkBP,IAAlB,CAAjB;;;;;MAChC,KAAK,OAAL;;oBACgCA;;;;;MAChC,KAAK,eAAL;;oBACgCA;;;;;MAChC,KAAK,eAAL;wBACmBE,sCAAmBH,IAAI,CAACS,MAAxB,EAAgCT,IAAI,CAACK,GAArC;oBAA2CJ;;;;IAVhE;EAYD;AAAA;AAED;;;;;AAGM,SAAUS,KAAV,CAAyBC,KAAzB,EAAgDhB,WAAhD,EAA4E;EAChF,OAAOD,SAAS,CAACC,WAAD,EAAcW,qBAAKK,KAAL,CAAd,CAAhB;AACD;AAED;;;;;AAGA,mBAAuCC,IAAvC,EAA6DC,IAA7D,EAAmF;EACjF,OAAO,IAAIC,oBAAJ,CAAYF,IAAZ,EAAkBC,IAAlB,CAAP;AACD;;AAED,MAAME,iBAAiB,gBAAGC,+CAAsBC,CAAD,IAA4DA,CAAC,CAAC,CAAD,CAAD,CAAK,CAAL,CAAjF,CAA1B;AAEA;;;;AAGM,SAAUC,IAAV,CAAwBC,QAAxB,EAAmDC,QAAnD,EAA6E;EACjF,MAAMC,MAAM,GAAqBC,gCAAQ,CAACC,GAAT,EAAqBC,IAArB,CAA0BT,iBAAiB,CAACU,OAA5C,CAAjC;EACA,MAAM,CAACC,eAAD,EAAkBf,KAAlB,IAA2BgB,iCAC/B,+BAACR,QAAQ,CAACI,GAAV,GAA6BK,SAA7B,CAD+B,EAE/B,CAAC,CAACL,GAAD,EAAMZ,KAAN,CAAD,EAAe,CAACN,GAAD,EAAM,CAACwB,UAAD,EAAaC,QAAb,CAAN,CAAf,KACEC,iDAAQ1B,GAAR,GACE,MAAM,CAACiB,6BAAWjB,GAAX,CAAD,EAAkB2B,iBAAc,IAAIC,iBAAJ,CAAeJ,UAAf,EAA2BxB,GAA3B,CAAd,CAAlB,CADR,EAEE,CAAC,CAAC6B,UAAD,EAAaC,QAAb,CAAD,KAA2B;IACzB,IAAID,UAAU,KAAKL,UAAf,IAA6BM,QAAQ,KAAKL,QAA9C,EAAwD;MACtD,OAAO,CAACR,6BAAWjB,GAAX,CAAD,EAAkBM,KAAlB,CAAP;IACD,CAFD,MAEO;MACL,OAAO,CAACW,6BAAWjB,GAAX,CAAD,EAAkB2B,iBAAc,IAAII,oBAAJ,CAAmBnB,CAAD,IAAYY,UAA9B,EAA0CxB,GAA1C,CAAd,CAAlB,CAAP;IACD;EACF,CARH,CAH6B,CAAjC;EAcA,OAAOiB,oDAAkCX,KAAlC,EAAyC,CAACN,GAAD,EAAMM,KAAN,KAAgBqB,iBAAc,IAAIK,oBAAJ,CAAkBhC,GAAlB,CAAd,CAAzD,CAAP;AACD;AAED;;;;;AAGA;EACE,OAAO,IAAIiC,kBAAJ,EAAP;AACD","names":["compose","empty","applyLoop","environment","patches","patches_1","patches_2","tsplus_module_1","head","tail","_tag","tsplus_module_2","service","tag","tsplus_module_3","first","second","update","apply","patch","self","that","Compose","OrdEnvironmentMap","tsplus_module_5","_","diff","oldValue","newValue","sorted","tsplus_module_6","map","sort","compare","missingServices","tsplus_module_8","empty_1","newService","newIndex","tsplus_module_7","compose_1","AddService","oldService","oldIndex","UpdateService","RemoveService","Empty"],"sourceRoot":"","sources":["../../../_src/data/Patch/api.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"api.cjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;MAsCgBA,OAAO;;MA+BPC,KAAK;;;AAjErB;;;AAGA,SAASC,SAAT,CAAmBC,WAAnB,EAAkDC,OAAlD,EAAgF;sBAA7DD;MAAAE,YAA+BD;sBAA/BD;MAAAG,YAA+BF;;YAAkD;IAClG,IAAIG,kCAAJ,EAAuB;MACrB;IACD;;IACD,MAAMC,IAAI,GAAGH,UAAQG,IAArB;IACA,MAAMC,IAAI,GAAGJ,UAAQI,IAArB;IACA;;IACA,QAAQD,IAAI,CAACE,IAAb;MACE,KAAK,YAAL;wBACmBC,mCAAgBH,IAAI,CAACI,OAArB,EAA8BJ,IAAI,CAACK,GAAnC;oBAAyCJ;;;;;MAC5D,KAAK,SAAL;;oBACgCK,qBAAKN,IAAI,CAACO,KAAV,EAAiBD,qBAAKN,IAAI,CAACQ,MAAV,EAAkBP,IAAlB,CAAjB;;;;;MAChC,KAAK,OAAL;;oBACgCA;;;;;MAChC,KAAK,eAAL;;oBACgCA;;;;;MAChC,KAAK,eAAL;wBACmBE,sCAAmBH,IAAI,CAACS,MAAxB,EAAgCT,IAAI,CAACK,GAArC;oBAA2CJ;;;;IAVhE;EAYD;AAAA;AAED;;;;;AAGM,SAAUS,KAAV,CAAyBC,KAAzB,EAAgDhB,WAAhD,EAA4E;EAChF,OAAOD,SAAS,CAACC,WAAD,EAAcW,qBAAKK,KAAL,CAAd,CAAhB;AACD;AAED;;;;;AAGA,mBAAuCC,IAAvC,EAA6DC,IAA7D,EAAmF;EACjF,OAAO,IAAIC,oBAAJ,CAAYF,IAAZ,EAAkBC,IAAlB,CAAP;AACD;;AAED,MAAME,iBAAiB,gBAAGC,+CAAsBC,CAAD,IAA4DA,CAAC,CAAC,CAAD,CAAD,CAAK,CAAL,CAAjF,CAA1B;AAEA;;;;AAGM,SAAUC,IAAV,CAAwBC,QAAxB,EAAmDC,QAAnD,EAA6E;EACjF,MAAMC,MAAM,2BAAqBD,QAAQ,CAACE,GAA9B,CAAZ;EACA,MAAM,CAACC,eAAD,EAAkBZ,KAAlB,IAA2Ba,iCAC/B,+BAACL,QAAQ,CAACG,GAAV,GAA6BG,SAA7B,CAD+B,EAE/B,CAAC,CAACH,GAAD,EAAMX,KAAN,CAAD,EAAe,CAACN,GAAD,EAAMqB,UAAN,CAAf,KACEC,iDAAQtB,GAAR,GACE,MAAM,CAACuB,6BAAWvB,GAAX,CAAD,EAAkBwB,iBAAc,IAAIC,iBAAJ,CAAeJ,UAAf,EAA2BrB,GAA3B,CAAd,CAAlB,CADR,EAEG0B,UAAD,IAAe;IACb,IAAIA,UAAU,KAAKL,UAAnB,EAA+B;MAC7B,OAAO,CAACE,6BAAWvB,GAAX,CAAD,EAAkBM,KAAlB,CAAP;IACD,CAFD,MAEO;MACL,OAAO,CAACiB,6BAAWvB,GAAX,CAAD,EAAkBwB,iBAAc,IAAIG,oBAAJ,CAAmBf,CAAD,IAAYS,UAA9B,EAA0CrB,GAA1C,CAAd,CAAlB,CAAP;IACD;EACF,CARH,CAH6B,CAAjC;EAcA,OAAOuB,oDAAkCjB,KAAlC,EAAyC,CAACN,GAAD,EAAMM,KAAN,KAAgBkB,iBAAc,IAAII,oBAAJ,CAAkB5B,GAAlB,CAAd,CAAzD,CAAP;AACD;AAED;;;;;AAGA;EACE,OAAO,IAAI6B,kBAAJ,EAAP;AACD","names":["compose","empty","applyLoop","environment","patches","patches_1","patches_2","tsplus_module_1","head","tail","_tag","tsplus_module_2","service","tag","tsplus_module_3","first","second","update","apply","patch","self","that","Compose","OrdEnvironmentMap","tsplus_module_5","_","diff","oldValue","newValue","sorted","map","missingServices","tsplus_module_8","empty_1","newService","tsplus_module_7","tsplus_module_6","compose_1","AddService","oldService","UpdateService","RemoveService","Empty"],"sourceRoot":"","sources":["../../../_src/data/Patch/api.ts"],"sourcesContent":[null]}
@@ -7,14 +7,17 @@ exports.makeTag = makeTag;
7
7
 
8
8
  var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Tag/definition"));
9
9
 
10
+ var _uuid = /*#__PURE__*/require("uuid");
11
+
10
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
13
 
12
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
15
 
14
16
  /**
15
17
  * @tsplus static fncts.TagOps __call
18
+ * @fncts tag
16
19
  */
17
- function makeTag() {
18
- return new tsplus_module_1.Tag();
20
+ function makeTag(id = (0, _uuid.v4)()) {
21
+ return new tsplus_module_1.Tag(id);
19
22
  }
20
23
  //# sourceMappingURL=constructors.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constructors.cjs","mappings":";;;;;;;;;;;;;AAAA;;;AAGM,SAAUA,OAAV,GAAiB;EACrB,OAAO,oBAAIC,GAAJ,EAAP;AACD","names":["makeTag","Tag"],"sourceRoot":"","sources":["../../../_src/data/Tag/constructors.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"constructors.cjs","mappings":";;;;;;;;;AAAA;;;;;;AAEA;;;;AAIM,SAAUA,OAAV,CAAqBC,KAAa,eAAlC,EAAsC;EAC1C,OAAO,oBAAIC,GAAJ,CAAQD,EAAR,CAAP;AACD","names":["makeTag","id","Tag"],"sourceRoot":"","sources":["../../../_src/data/Tag/constructors.ts"],"sourcesContent":[null]}
@@ -33,13 +33,13 @@ const _tagHash = /*#__PURE__*/tsplus_module_1.hashString("fncts.Tag");
33
33
 
34
34
 
35
35
  class Tag {
36
- constructor() {
36
+ constructor(id) {
37
+ this.id = id;
37
38
  this._typeId = TagTypeId;
38
- this.id = Tag.counter.getAndIncrement();
39
39
  }
40
40
 
41
41
  get [tsplus_module_2.hashSymbol]() {
42
- return tsplus_module_1.combineHash(_tagHash, tsplus_module_1.hashNumber(this.id));
42
+ return tsplus_module_1.combineHash(_tagHash, tsplus_module_1.hashString(this.id));
43
43
  }
44
44
 
45
45
  [tsplus_module_3.equalsSymbol](that) {
@@ -1 +1 @@
1
- {"version":3,"file":"definition.cjs","mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;AAEO,MAAMA,SAAS,gBAAGC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;;;AAGP,MAAMC,QAAQ,gBAAGC,2BAAgB,WAAhB,CAAjB;AAEA;;;;;;;;AAMM,MAAOC,GAAP,CAAU;EAAhBC;IAEW,eAAqBN,SAArB;IAEA,UAAqBK,GAAG,CAACE,OAAJ,CAAYC,eAAZ,EAArB;EASV;;EAPK,mCAAa;IACf,OAAOJ,4BAAiBD,QAAjB,EAA2BC,2BAAgB,KAAKK,EAArB,CAA3B,CAAP;EACD;;EAED,+BAAgBC,IAAhB,EAA6B;IAC3B,OAAOC,KAAK,CAACD,IAAD,CAAL,IAAe,KAAKD,EAAL,KAAYC,IAAI,CAACD,EAAvC;EACD;;AAZa;;;AAGCJ,2BAAe,IAAIO,0BAAJ,CAAiB,CAAjB,CAAf;;AAYX,SAAUD,KAAV,CAAgBE,CAAhB,EAA0B;EAC9B,OAAOC,0BAAUD,CAAV,EAAab,SAAb,CAAP;AACD","names":["TagTypeId","Symbol","for","_tagHash","tsplus_module_1","Tag","constructor","counter","getAndIncrement","id","that","isTag","AtomicNumber","u","tsplus_module_4"],"sourceRoot":"","sources":["../../../_src/data/Tag/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.cjs","mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;AAEO,MAAMA,SAAS,gBAAGC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;;;AAGP,MAAMC,QAAQ,gBAAGC,2BAAgB,WAAhB,CAAjB;AAEA;;;;;;;;AAMM,MAAOC,GAAP,CAAU;EAKdC,YAAqBC,EAArB,EAA+B;IAAV;IAHZ,eAAqBP,SAArB;EAG0B;;EAE/B,mCAAa;IACf,OAAOI,4BAAiBD,QAAjB,EAA2BC,2BAAgB,KAAKG,EAArB,CAA3B,CAAP;EACD;;EAED,+BAAgBC,IAAhB,EAA6B;IAC3B,OAAOC,KAAK,CAACD,IAAD,CAAL,IAAe,KAAKD,EAAL,KAAYC,IAAI,CAACD,EAAvC;EACD;;AAba;;;AAGCF,2BAAe,IAAIK,0BAAJ,CAAiB,CAAjB,CAAf;;AAaX,SAAUD,KAAV,CAAgBE,CAAhB,EAA0B;EAC9B,OAAOC,0BAAUD,CAAV,EAAaX,SAAb,CAAP;AACD","names":["TagTypeId","Symbol","for","_tagHash","tsplus_module_1","Tag","constructor","id","that","isTag","AtomicNumber","u","tsplus_module_4"],"sourceRoot":"","sources":["../../../_src/data/Tag/definition.ts"],"sourcesContent":[null]}
@@ -1,23 +1,18 @@
1
1
  import * as tsplus_module_1 from "@fncts/base/data/Environment/definition";
2
2
  import * as tsplus_module_2 from "@fncts/base/collection/immutable/HashMap/api";
3
3
  import * as tsplus_module_3 from "@fncts/base/data/function/api";
4
- import * as tsplus_module_4 from "@fncts/base/data/number/instances";
5
- import * as tsplus_module_5 from "@fncts/base/typeclass/Ord/api/contramap";
6
- import * as tsplus_module_6 from "@fncts/base/collection/immutable/List/api";
7
- import * as tsplus_module_7 from "@fncts/base/collection/immutable/List/api/foldLeft";
8
- import * as tsplus_module_8 from "@fncts/base/typeclass/Equatable/api";
9
- import * as tsplus_module_9 from "@fncts/base/data/Maybe/destructors";
4
+ import * as tsplus_module_4 from "@fncts/base/collection/immutable/List/api/foldLeft";
5
+ import * as tsplus_module_5 from "@fncts/base/typeclass/Equatable/api";
6
+ import * as tsplus_module_6 from "@fncts/base/data/Maybe/destructors";
10
7
  export const add = add_1;
11
8
  export const make = make_1;
12
- export const clean = clean_1;
13
9
  export const unsafeGet = unsafeGet_1;
14
10
  /**
15
11
  * @tsplus fluent fncts.Environment add
16
12
  */
17
13
 
18
14
  function add_1(self, service, tag) {
19
- const self0 = self.index === Number.MAX_SAFE_INTEGER ? clean_1(self) : self;
20
- return new tsplus_module_1.Environment(tsplus_module_2.set_(self0.map, tag, [service, self0.index]), self0.index + 1);
15
+ return new tsplus_module_1.Environment(tsplus_module_2.set_(self.map, tag, service));
21
16
  }
22
17
  /**
23
18
  * @tsplus static fncts.EnvironmentOps empty
@@ -44,7 +39,7 @@ export function getMaybe(self, tag) {
44
39
  */
45
40
 
46
41
  function make_1() {
47
- return new tsplus_module_1.Environment(tsplus_module_2.makeDefault(), 0, tsplus_module_2.makeDefault());
42
+ return new tsplus_module_1.Environment(tsplus_module_2.makeDefault(), tsplus_module_2.makeDefault());
48
43
  }
49
44
  /**
50
45
  * @tsplus operator fncts.Environment +
@@ -53,34 +48,30 @@ function make_1() {
53
48
 
54
49
 
55
50
  export function union(self, that) {
56
- const [self0, that0] = self.index + that.index < self.index ? [clean_1(self), clean_1(that)] : [self, that];
57
- return new tsplus_module_1.Environment(tsplus_module_2.union_(self0.map, tsplus_module_2.map_(that0.map, ([service, index]) => [service, self0.index + index])), self0.index + that0.index);
51
+ return new tsplus_module_1.Environment(tsplus_module_2.union_(self.map, that.map));
58
52
  }
59
53
  /**
60
54
  * @tsplus getter fncts.Environment clean
61
55
  */
62
56
 
63
- function clean_1(self) {
64
- const [map, index] = tsplus_module_7.foldLeft_(tsplus_module_6.sort(tsplus_module_2.toList(self.map), tsplus_module_5.contramap(tsplus_module_4.Ord, ([, [, idx]]) => idx)), [tsplus_module_2.makeDefault(), 0], ([map, index], [tag, [service]]) => [tsplus_module_2.set_(map, tag, [service, index]), index + 1]);
65
- return new tsplus_module_1.Environment(map, index);
57
+ export function clean(self) {
58
+ const [map, index] = tsplus_module_4.foldLeft_(tsplus_module_2.toList(self.map), [tsplus_module_2.makeDefault(), 0], ([map, index], [tag, service]) => [tsplus_module_2.set_(map, tag, [service, index]), index + 1]);
59
+ return new tsplus_module_1.Environment(map);
66
60
  }
67
61
  /**
68
62
  * @tsplus fluent fncts.Environment unsafeGet
69
63
  */
70
64
 
71
-
72
65
  function unsafeGet_1(self, tag) {
73
- return tsplus_module_9.match_(tsplus_module_2.get_(self.cache, tag), () => {
74
- let index = -1;
66
+ return tsplus_module_6.match_(tsplus_module_2.get_(self.cache, tag), () => {
75
67
  const iterator = self.map[Symbol.iterator]();
76
68
  let service = null;
77
69
  let r;
78
70
 
79
71
  while (!(r = iterator.next()).done) {
80
- const [curTag, [curService, curIndex]] = r.value;
72
+ const [curTag, curService] = r.value;
81
73
 
82
- if (tsplus_module_8.strictEquals(curTag, tag) && curIndex > index) {
83
- index = curIndex;
74
+ if (tsplus_module_5.strictEquals(curTag, tag)) {
84
75
  service = curService;
85
76
  }
86
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","mappings":"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","names":["add","make","clean","unsafeGet","self","service","tag","self0","index","Number","MAX_SAFE_INTEGER","clean_1","Environment","tsplus_module_2","map","empty","make_1","get","unsafeGet_1","getMaybe","cache","union","that","that0","tsplus_module_7","tsplus_module_5","idx","tsplus_module_9","iterator","Symbol","r","next","done","curTag","curService","curIndex","value","tsplus_module_8","Error","a","update","f","add_1"],"sourceRoot":"","sources":["../../../_src/data/Environment/api.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"api.mjs","mappings":";;;;;;aAGgBA,GAAG;aA4BHC,IAAI;aA8BJC,SAAS;AA7DzB;;;;AAGA,eAA2CC,IAA3C,EAAiEC,OAAjE,EAA6EC,GAA7E,EAAwF;EACtF,OAAO,oBAAIC,WAAJ,CAAgBC,yBAAI,CAACC,GAAL,EAAaH,GAAb,EAAkBD,OAAlB,CAAhB,CAAP;AACD;AAED;;;;;AAGA,OAAO,MAAMK,KAAK,gBAAGC,QAAd;AAIP;;;;AAGA,OAAM,SAAUC,GAAV,CAAoCR,IAApC,EAA0DE,GAA1D,EAAgE;EACpE,OAAoBO,kBAAeP,GAAf,CAApB;AACD;AAED;;;;AAGA,OAAM,SAAUQ,QAAV,CAAwCV,IAAxC,EAA8DE,GAA9D,EAAyE;EAC7E,OAAOE,yBAAI,CAACO,KAAL,EAAeT,GAAf,CAAP;AACD;AAED;;;;AAGA;EACE,OAAO,oBAAIC,WAAJ,CAAgBC,6BAAhB,EAAuCA,6BAAvC,CAAP;AACD;AAED;;;;;;AAIA,OAAM,SAAUQ,KAAV,CAAuBZ,IAAvB,EAA6Ca,IAA7C,EAAkE;EACtE,OAAO,oBAAIV,WAAJ,CACLC,2BAAI,CAACC,GAAL,EAAeQ,IAAI,CAACR,GAApB,CADK,CAAP;AAGD;AAED;;;;AAGA,OAAM,SAAUS,KAAV,CAAmBd,IAAnB,EAAuC;EAC3C,MAAM,CAACK,GAAD,EAAMU,KAAN,IAAeC,qDAAI,CAACX,GAAL,GAEjB,CAACD,6BAAD,EAAkE,CAAlE,CAFiB,EAGjB,CAAC,CAACC,GAAD,EAAMU,KAAN,CAAD,EAAe,CAACb,GAAD,EAAMD,OAAN,CAAf,KAAkC,CAACG,0BAAQF,GAAR,EAAa,CAACD,OAAD,EAAUc,KAAV,CAAb,CAAD,EAA0CA,KAAK,GAAG,CAAlD,CAHjB,CAArB;EAMA,OAAO,oBAAIZ,WAAJ,CAAgBE,GAAhB,CAAP;AACD;AAED;;;;AAGA,qBAAgCL,IAAhC,EAAsDE,GAAtD,EAAiE;EAC/D,OAAOe,gDAAI,CAACN,KAAL,EAAeT,GAAf,GACL,MAAK;IACH,MAAMgB,QAAQ,GAAGlB,IAAI,CAACK,GAAL,CAASc,MAAM,CAACD,QAAhB,GAAjB;IACA,IAAIjB,OAAO,GAAM,IAAjB;IACA,IAAImB,CAAJ;;IACA,OAAO,CAAC,CAACA,CAAC,GAAGF,QAAQ,CAACG,IAAT,EAAL,EAAsBC,IAA9B,EAAoC;MAClC,MAAM,CAACC,MAAD,EAASC,UAAT,IAAuBJ,CAAC,CAACK,KAA/B;;MACA,iCAAIF,MAAJ,EAAcrB,GAAd,GAAmB;QACjBD,OAAO,GAAGuB,UAAV;MACD;IACF;;IACD,IAAIvB,OAAO,KAAK,IAAhB,EAAsB,MAAM,IAAIyB,KAAJ,CAAU,kDAAV,CAAN,CAAtB,KACK;MACH1B,IAAI,CAACW,KAAL,GAAaP,yBAAI,CAACO,KAAL,EAAeT,GAAf,EAAoBD,OAApB,CAAb;MACA,OAAOA,OAAP;IACD;EACF,CAhBI,EAiBJ0B,CAAD,IAAOA,CAjBF,CAAP;AAmBD;AAED;;;;;AAGA,OAAM,SAAUC,MAAV,CAAiC5B,IAAjC,EAAuD6B,CAAvD,EAAuE3B,GAAvE,EAAkF;EACtF,OAAO4B,YAASD,CAAC,CAACpB,kBAAeP,GAAf,CAAD,CAAV,EAAiCA,GAAjC,CAAP;AACD","names":["add","make","unsafeGet","self","service","tag","Environment","tsplus_module_2","map","empty","make_1","get","unsafeGet_1","getMaybe","cache","union","that","clean","index","tsplus_module_4","tsplus_module_6","iterator","Symbol","r","next","done","curTag","curService","value","Error","a","update","f","add_1"],"sourceRoot":"","sources":["../../../_src/data/Environment/api.ts"],"sourcesContent":[null]}
@@ -16,9 +16,8 @@ export const EnvSymbol = EnvSymbol_1;
16
16
  */
17
17
 
18
18
  export class Environment {
19
- constructor(map, index, cache = tsplus_module_1.makeDefault()) {
19
+ constructor(map, cache = tsplus_module_1.makeDefault()) {
20
20
  this.map = map;
21
- this.index = index;
22
21
  this.cache = cache;
23
22
  this._typeId = EnvSymbol_1;
24
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","mappings":";;;;;;AAAA;;;;AAGO,MAAMA,2BAAYC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;aAAMC,SAAS;AAItB;;;;;AAIA,OAAM,MAAOC,WAAP,CAAkB;EAGtBC,YACWC,GADX,EAEWC,KAFX,EAGSC,QAAoCC,6BAH7C,EAGkE;IAFvD;IACA;IACF;IALA,eAAOT,WAAP;EAML;;EAEA,mCAAa;IACf,OAAOU,4BAAiB,KAAKF,KAAtB,CAAP;EACD;;EAED,+BAAgBG,IAAhB,EAA6B;IAC3B,OAAOC,aAAa,CAACD,IAAD,CAAb,GAAqBE,6BAAC,KAAKP,GAAN,EAAaK,IAAI,CAACL,GAAlB,CAArB,GAA6C,KAApD;EACD;;AAfqB;AAkBxB,OAAM,SAAUM,aAAV,CAAwBE,CAAxB,EAAkC;EACtC,OAAOC,0BAAUD,CAAV,EAAWd,WAAX,CAAP;AACD","names":["EnvSymbol_1","Symbol","for","EnvSymbol","Environment","constructor","map","index","cache","tsplus_module_1","tsplus_module_3","that","isEnvironment","tsplus_module_5","u","tsplus_module_6"],"sourceRoot":"","sources":["../../../_src/data/Environment/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.mjs","mappings":";;;;;;AAAA;;;;AAGO,MAAMA,2BAAYC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;aAAMC,SAAS;AAItB;;;;;AAIA,OAAM,MAAOC,WAAP,CAAkB;EAGtBC,YACWC,GADX,EAESC,QAAoCC,6BAF7C,EAEkE;IADvD;IACF;IAJA,eAAOR,WAAP;EAKL;;EAEA,mCAAa;IACf,OAAOS,4BAAiB,KAAKF,KAAtB,CAAP;EACD;;EAED,+BAAgBG,IAAhB,EAA6B;IAC3B,OAAOC,aAAa,CAACD,IAAD,CAAb,GAAqBE,6BAAC,KAAKN,GAAN,EAAaI,IAAI,CAACJ,GAAlB,CAArB,GAA6C,KAApD;EACD;;AAdqB;AAiBxB,OAAM,SAAUK,aAAV,CAAwBE,CAAxB,EAAkC;EACtC,OAAOC,0BAAUD,CAAV,EAAWb,WAAX,CAAP;AACD","names":["EnvSymbol_1","Symbol","for","EnvSymbol","Environment","constructor","map","cache","tsplus_module_1","tsplus_module_3","that","isEnvironment","tsplus_module_5","u","tsplus_module_6"],"sourceRoot":"","sources":["../../../_src/data/Environment/definition.ts"],"sourcesContent":[null]}
@@ -92,9 +92,9 @@ const OrdEnvironmentMap = /*#__PURE__*/tsplus_module_5.contramap(tsplus_module_4
92
92
  */
93
93
 
94
94
  export function diff(oldValue, newValue) {
95
- const sorted = tsplus_module_6.toArray(newValue.map).sort(OrdEnvironmentMap.compare);
96
- const [missingServices, patch] = tsplus_module_8.foldLeft(sorted, [tsplus_module_6.beginMutation(oldValue.map), empty_1()], ([map, patch], [tag, [newService, newIndex]]) => tsplus_module_7.match_(tsplus_module_6.get_(map, tag), () => [tsplus_module_6.remove_(map, tag), compose_1(patch, new AddService(newService, tag))], ([oldService, oldIndex]) => {
97
- if (oldService === newService && oldIndex === newIndex) {
95
+ const sorted = tsplus_module_6.toArray(newValue.map);
96
+ const [missingServices, patch] = tsplus_module_8.foldLeft(sorted, [tsplus_module_6.beginMutation(oldValue.map), empty_1()], ([map, patch], [tag, newService]) => tsplus_module_7.match_(tsplus_module_6.get_(map, tag), () => [tsplus_module_6.remove_(map, tag), compose_1(patch, new AddService(newService, tag))], oldService => {
97
+ if (oldService === newService) {
98
98
  return [tsplus_module_6.remove_(map, tag), patch];
99
99
  } else {
100
100
  return [tsplus_module_6.remove_(map, tag), compose_1(patch, new UpdateService(_ => newService, tag))];
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","mappings":"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","names":["compose","empty","Cons","AddService","RemoveService","UpdateService","Empty","Compose","concrete","applyLoop","environment","patches","patches_1","patches_2","tsplus_module_1","head","tail","_tag","tsplus_module_2","service","tag","tsplus_module_3","first","second","update","apply","patch","self","that","OrdEnvironmentMap","tsplus_module_5","_","diff","oldValue","newValue","sorted","tsplus_module_6","map","sort","compare","missingServices","tsplus_module_8","empty_1","newService","newIndex","tsplus_module_7","compose_1","oldService","oldIndex"],"sourceRoot":"","sources":["../../../_src/data/Patch/api.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"api.mjs","mappings":";;;;;;;;aAyCgBA,OAAO;aA+BPC,KAAK;AAxErB,SAASC,IAAT,QAAqB,uCAArB;AACA,SAASC,UAAT,EAAqBC,aAArB,EAAoCC,aAApC,QAAyD,wBAAzD;AAEA,SAASC,KAAT,QAAsB,mCAAtB;AACA,SAASC,OAAT,QAAwB,mCAAxB;AACA,SAASC,QAAT,QAAyB,mCAAzB;AAEA;;;;AAGA,SAASC,SAAT,CAAmBC,WAAnB,EAAkDC,OAAlD,EAAgF;sBAA7DD;MAAAE,YAA+BD;sBAA/BD;MAAAG,YAA+BF;;YAAkD;IAClG,IAAIG,kCAAJ,EAAuB;MACrB;IACD;;IACD,MAAMC,IAAI,GAAGH,UAAQG,IAArB;IACA,MAAMC,IAAI,GAAGJ,UAAQI,IAArB;IACA;;IACA,QAAQD,IAAI,CAACE,IAAb;MACE,KAAK,YAAL;wBACmBC,mCAAgBH,IAAI,CAACI,OAArB,EAA8BJ,IAAI,CAACK,GAAnC;oBAAyCJ;;;;;MAC5D,KAAK,SAAL;;oBACgCK,qBAAKN,IAAI,CAACO,KAAV,EAAiBD,qBAAKN,IAAI,CAACQ,MAAV,EAAkBP,IAAlB,CAAjB;;;;;MAChC,KAAK,OAAL;;oBACgCA;;;;;MAChC,KAAK,eAAL;;oBACgCA;;;;;MAChC,KAAK,eAAL;wBACmBE,sCAAmBH,IAAI,CAACS,MAAxB,EAAgCT,IAAI,CAACK,GAArC;oBAA2CJ;;;;IAVhE;EAYD;AAAA;AAED;;;;;AAGA,OAAM,SAAUS,KAAV,CAAyBC,KAAzB,EAAgDhB,WAAhD,EAA4E;EAChF,OAAOD,SAAS,CAACC,WAAD,EAAcW,qBAAKK,KAAL,CAAd,CAAhB;AACD;AAED;;;;AAGA,mBAAuCC,IAAvC,EAA6DC,IAA7D,EAAmF;EACjF,OAAO,IAAIrB,OAAJ,CAAYoB,IAAZ,EAAkBC,IAAlB,CAAP;AACD;;AAED,MAAMC,iBAAiB,gBAAGC,+CAAsBC,CAAD,IAA4DA,CAAC,CAAC,CAAD,CAAD,CAAK,CAAL,CAAjF,CAA1B;AAEA;;;;AAGA,OAAM,SAAUC,IAAV,CAAwBC,QAAxB,EAAmDC,QAAnD,EAA6E;EACjF,MAAMC,MAAM,2BAAqBD,QAAQ,CAACE,GAA9B,CAAZ;EACA,MAAM,CAACC,eAAD,EAAkBX,KAAlB,IAA2BY,iCAC/B,+BAACL,QAAQ,CAACG,GAAV,GAA6BG,SAA7B,CAD+B,EAE/B,CAAC,CAACH,GAAD,EAAMV,KAAN,CAAD,EAAe,CAACN,GAAD,EAAMoB,UAAN,CAAf,KACEC,iDAAQrB,GAAR,GACE,MAAM,CAACsB,6BAAWtB,GAAX,CAAD,EAAkBuB,iBAAc,IAAIxC,UAAJ,CAAeqC,UAAf,EAA2BpB,GAA3B,CAAd,CAAlB,CADR,EAEGwB,UAAD,IAAe;IACb,IAAIA,UAAU,KAAKJ,UAAnB,EAA+B;MAC7B,OAAO,CAACE,6BAAWtB,GAAX,CAAD,EAAkBM,KAAlB,CAAP;IACD,CAFD,MAEO;MACL,OAAO,CAACgB,6BAAWtB,GAAX,CAAD,EAAkBuB,iBAAc,IAAItC,aAAJ,CAAmB0B,CAAD,IAAYS,UAA9B,EAA0CpB,GAA1C,CAAd,CAAlB,CAAP;IACD;EACF,CARH,CAH6B,CAAjC;EAcA,OAAOsB,oDAAkChB,KAAlC,EAAyC,CAACN,GAAD,EAAMM,KAAN,KAAgBiB,iBAAc,IAAIvC,aAAJ,CAAkBgB,GAAlB,CAAd,CAAzD,CAAP;AACD;AAED;;;;AAGA;EACE,OAAO,IAAId,KAAJ,EAAP;AACD","names":["compose","empty","Cons","AddService","RemoveService","UpdateService","Empty","Compose","concrete","applyLoop","environment","patches","patches_1","patches_2","tsplus_module_1","head","tail","_tag","tsplus_module_2","service","tag","tsplus_module_3","first","second","update","apply","patch","self","that","OrdEnvironmentMap","tsplus_module_5","_","diff","oldValue","newValue","sorted","map","missingServices","tsplus_module_8","empty_1","newService","tsplus_module_7","tsplus_module_6","compose_1","oldService"],"sourceRoot":"","sources":["../../../_src/data/Patch/api.ts"],"sourcesContent":[null]}
@@ -1,9 +1,11 @@
1
1
  import * as tsplus_module_1 from "@fncts/base/data/Tag/definition";
2
+ import { v4 } from "uuid";
2
3
  /**
3
4
  * @tsplus static fncts.TagOps __call
5
+ * @fncts tag
4
6
  */
5
7
 
6
- export function makeTag() {
7
- return new tsplus_module_1.Tag();
8
+ export function makeTag(id = v4()) {
9
+ return new tsplus_module_1.Tag(id);
8
10
  }
9
11
  //# sourceMappingURL=constructors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constructors.mjs","mappings":";AAAA;;;;AAGA,OAAM,SAAUA,OAAV,GAAiB;EACrB,OAAO,oBAAIC,GAAJ,EAAP;AACD","names":["makeTag","Tag"],"sourceRoot":"","sources":["../../../_src/data/Tag/constructors.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"constructors.mjs","mappings":";AAAA,SAASA,EAAT,QAAmB,MAAnB;AAEA;;;;;AAIA,OAAM,SAAUC,OAAV,CAAqBC,KAAaF,EAAE,EAApC,EAAsC;EAC1C,OAAO,oBAAIG,GAAJ,CAAQD,EAAR,CAAP;AACD","names":["v4","makeTag","id","Tag"],"sourceRoot":"","sources":["../../../_src/data/Tag/constructors.ts"],"sourcesContent":[null]}
@@ -15,13 +15,13 @@ const _tagHash = /*#__PURE__*/tsplus_module_1.hashString("fncts.Tag");
15
15
 
16
16
 
17
17
  export class Tag {
18
- constructor() {
18
+ constructor(id) {
19
+ this.id = id;
19
20
  this._typeId = TagTypeId;
20
- this.id = Tag.counter.getAndIncrement();
21
21
  }
22
22
 
23
23
  get [tsplus_module_2.hashSymbol]() {
24
- return tsplus_module_1.combineHash(_tagHash, tsplus_module_1.hashNumber(this.id));
24
+ return tsplus_module_1.combineHash(_tagHash, tsplus_module_1.hashString(this.id));
25
25
  }
26
26
 
27
27
  [tsplus_module_3.equalsSymbol](that) {
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","mappings":";;;;AAAA,SAASA,YAAT,QAA6B,mCAA7B;AAEA,OAAO,MAAMC,SAAS,gBAAGC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;;AAGP,MAAMC,QAAQ,gBAAGC,2BAAgB,WAAhB,CAAjB;AAEA;;;;;;;;AAMA,OAAM,MAAOC,GAAP,CAAU;EAAhBC;IAEW,eAAqBN,SAArB;IAEA,UAAqBK,GAAG,CAACE,OAAJ,CAAYC,eAAZ,EAArB;EASV;;EAPK,mCAAa;IACf,OAAOJ,4BAAiBD,QAAjB,EAA2BC,2BAAgB,KAAKK,EAArB,CAA3B,CAAP;EACD;;EAED,+BAAgBC,IAAhB,EAA6B;IAC3B,OAAOC,KAAK,CAACD,IAAD,CAAL,IAAe,KAAKD,EAAL,KAAYC,IAAI,CAACD,EAAvC;EACD;;AAZa;AAGCJ,2BAAe,IAAIN,YAAJ,CAAiB,CAAjB,CAAf;AAYjB,OAAM,SAAUY,KAAV,CAAgBC,CAAhB,EAA0B;EAC9B,OAAOC,0BAAUD,CAAV,EAAaZ,SAAb,CAAP;AACD","names":["AtomicNumber","TagTypeId","Symbol","for","_tagHash","tsplus_module_1","Tag","constructor","counter","getAndIncrement","id","that","isTag","u","tsplus_module_4"],"sourceRoot":"","sources":["../../../_src/data/Tag/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.mjs","mappings":";;;;AAAA,SAASA,YAAT,QAA6B,mCAA7B;AAEA,OAAO,MAAMC,SAAS,gBAAGC,MAAM,CAACC,GAAP,CAAW,WAAX,CAAlB;;AAGP,MAAMC,QAAQ,gBAAGC,2BAAgB,WAAhB,CAAjB;AAEA;;;;;;;;AAMA,OAAM,MAAOC,GAAP,CAAU;EAKdC,YAAqBC,EAArB,EAA+B;IAAV;IAHZ,eAAqBP,SAArB;EAG0B;;EAE/B,mCAAa;IACf,OAAOI,4BAAiBD,QAAjB,EAA2BC,2BAAgB,KAAKG,EAArB,CAA3B,CAAP;EACD;;EAED,+BAAgBC,IAAhB,EAA6B;IAC3B,OAAOC,KAAK,CAACD,IAAD,CAAL,IAAe,KAAKD,EAAL,KAAYC,IAAI,CAACD,EAAvC;EACD;;AAba;AAGCF,2BAAe,IAAIN,YAAJ,CAAiB,CAAjB,CAAf;AAajB,OAAM,SAAUU,KAAV,CAAgBC,CAAhB,EAA0B;EAC9B,OAAOC,0BAAUD,CAAV,EAAaV,SAAb,CAAP;AACD","names":["AtomicNumber","TagTypeId","Symbol","for","_tagHash","tsplus_module_1","Tag","constructor","id","that","isTag","u","tsplus_module_4"],"sourceRoot":"","sources":["../../../_src/data/Tag/definition.ts"],"sourcesContent":[null]}
@@ -2,8 +2,7 @@
2
2
  * @tsplus fluent fncts.Environment add
3
3
  */
4
4
  export function add<R, H extends S, S = H>(self: Environment<R>, service: H, tag: Tag<S>): Environment<R | S> {
5
- const self0 = self.index === Number.MAX_SAFE_INTEGER ? self.clean : self;
6
- return new Environment(self0.map.set(tag, [service, self0.index]), self0.index + 1);
5
+ return new Environment(self.map.set(tag, service));
7
6
  }
8
7
 
9
8
  /**
@@ -31,7 +30,7 @@ export function getMaybe<R extends Has<S>, S>(self: Environment<R>, tag: Tag<S>)
31
30
  * @tsplus static fncts.EnvironmentOps __call
32
31
  */
33
32
  export function make(): Environment<never> {
34
- return new Environment(HashMap.makeDefault(), 0, HashMap.makeDefault());
33
+ return new Environment(HashMap.makeDefault(), HashMap.makeDefault());
35
34
  }
36
35
 
37
36
  /**
@@ -39,10 +38,8 @@ export function make(): Environment<never> {
39
38
  * @tsplus fluent fncts.Environment union
40
39
  */
41
40
  export function union<R, R1>(self: Environment<R>, that: Environment<R1>): Environment<R & R1> {
42
- const [self0, that0] = self.index + that.index < self.index ? [self.clean, that.clean] : [self, that];
43
41
  return new Environment(
44
- self0.map.union(that0.map.map(([service, index]) => [service, self0.index + index] as const)),
45
- self0.index + that0.index,
42
+ self.map.union(that.map),
46
43
  );
47
44
  }
48
45
 
@@ -51,13 +48,12 @@ export function union<R, R1>(self: Environment<R>, that: Environment<R1>): Envir
51
48
  */
52
49
  export function clean<R>(self: Environment<R>): Environment<R> {
53
50
  const [map, index] = self.map.toList
54
- .sort(Number.Ord.contramap(([, [, idx]]) => idx))
55
51
  .foldLeft(
56
52
  [HashMap.makeDefault<Tag<unknown>, readonly [unknown, number]>(), 0],
57
- ([map, index], [tag, [service]]) => [map.set(tag, [service, index] as const), index + 1],
53
+ ([map, index], [tag, service]) => [map.set(tag, [service, index] as const), index + 1],
58
54
  );
59
55
 
60
- return new Environment(map, index);
56
+ return new Environment(map);
61
57
  }
62
58
 
63
59
  /**
@@ -66,14 +62,12 @@ export function clean<R>(self: Environment<R>): Environment<R> {
66
62
  export function unsafeGet<R, S>(self: Environment<R>, tag: Tag<S>): S {
67
63
  return self.cache.get(tag).match(
68
64
  () => {
69
- let index = -1;
70
65
  const iterator = self.map[Symbol.iterator]();
71
66
  let service: S = null!;
72
- let r: IteratorResult<readonly [Tag<unknown>, readonly [unknown, number]]>;
67
+ let r: IteratorResult<readonly [Tag<unknown>, unknown]>;
73
68
  while (!(r = iterator.next()).done) {
74
- const [curTag, [curService, curIndex]] = r.value;
75
- if (curTag == tag && curIndex > index) {
76
- index = curIndex;
69
+ const [curTag, curService] = r.value;
70
+ if (curTag == tag) {
77
71
  service = curService as S;
78
72
  }
79
73
  }
@@ -13,8 +13,7 @@ export class Environment<R> implements Hashable, Equatable {
13
13
  readonly _typeId: EnvSymbol = EnvSymbol;
14
14
  readonly [EnvSymbol]!: (_: never) => R;
15
15
  constructor(
16
- readonly map: HashMap<Tag<any>, readonly [unknown, number]>,
17
- readonly index: number,
16
+ readonly map: HashMap<Tag<any>, unknown>,
18
17
  public cache: HashMap<Tag<any>, unknown> = HashMap.makeDefault(),
19
18
  ) {}
20
19
 
@@ -49,14 +49,14 @@ const OrdEnvironmentMap = Number.Ord.contramap((_: readonly [Tag<unknown>, reado
49
49
  * @tsplus static fncts.Environment.PatchOps diff
50
50
  */
51
51
  export function diff<In, Out>(oldValue: Environment<In>, newValue: Environment<Out>): Patch<In, Out> {
52
- const sorted = newValue.map.toArray.sort(OrdEnvironmentMap.compare);
52
+ const sorted = newValue.map.toArray;
53
53
  const [missingServices, patch] = sorted.foldLeft(
54
54
  [oldValue.map.beginMutation, Patch.empty() as Patch<any, any>],
55
- ([map, patch], [tag, [newService, newIndex]]) =>
55
+ ([map, patch], [tag, newService]) =>
56
56
  map.get(tag).match(
57
57
  () => [map.remove(tag), patch.compose(new AddService(newService, tag))],
58
- ([oldService, oldIndex]) => {
59
- if (oldService === newService && oldIndex === newIndex) {
58
+ (oldService) => {
59
+ if (oldService === newService) {
60
60
  return [map.remove(tag), patch];
61
61
  } else {
62
62
  return [map.remove(tag), patch.compose(new UpdateService((_: any) => newService, tag))];
@@ -1,6 +1,9 @@
1
+ import { v4 } from "uuid";
2
+
1
3
  /**
2
4
  * @tsplus static fncts.TagOps __call
5
+ * @fncts tag
3
6
  */
4
- export function makeTag<T>(): Tag<T> {
5
- return new Tag();
7
+ export function makeTag<T>(id: string = v4()): Tag<T> {
8
+ return new Tag(id);
6
9
  }
@@ -15,10 +15,11 @@ export class Tag<in out T> implements Hashable, Equatable {
15
15
  declare _T: (_: T) => T;
16
16
  readonly _typeId: TagTypeId = TagTypeId;
17
17
  private static counter = new AtomicNumber(0);
18
- readonly id = Tag.counter.getAndIncrement();
18
+
19
+ constructor(readonly id: string) {}
19
20
 
20
21
  get [Symbol.hash](): number {
21
- return Hashable.combine(_tagHash, Hashable.number(this.id));
22
+ return Hashable.combine(_tagHash, Hashable.string(this.id));
22
23
  }
23
24
 
24
25
  [Symbol.equals](that: unknown): boolean {
@@ -15,6 +15,6 @@ declare global {
15
15
  export interface ArrayConstructor {
16
16
  }
17
17
  }
18
- export declare type ESArray<A> = globalThis.Array<A>;
19
- export declare type ESReadonlyArray<A> = globalThis.ReadonlyArray<A>;
18
+ export type ESArray<A> = globalThis.Array<A>;
19
+ export type ESReadonlyArray<A> = globalThis.ReadonlyArray<A>;
20
20
  export declare const ESArray: ArrayConstructor;
@@ -7,7 +7,7 @@ import { unsafeCoerce } from "@fncts/base/data/function/api";
7
7
  export declare const BUFFER_SIZE = 64;
8
8
  export declare const UPDATE_BUFFER_SIZE = 256;
9
9
  export declare const ConcTypeId: unique symbol;
10
- export declare type ConcTypeId = typeof ConcTypeId;
10
+ export type ConcTypeId = typeof ConcTypeId;
11
11
  export declare const enum ConcTag {
12
12
  Empty = "Empty",
13
13
  Concat = "Concat",
@@ -37,7 +37,7 @@ export declare class HashMapIterator<K, V, T> implements IterableIterator<T> {
37
37
  next(): IteratorResult<T>;
38
38
  [Symbol.iterator](): IterableIterator<T>;
39
39
  }
40
- declare type Cont<K, V, A> = [len: number, children: Node<K, V>[], i: number, f: (node: readonly [K, V]) => A, cont: Cont<K, V, A>] | undefined;
40
+ type Cont<K, V, A> = [len: number, children: Node<K, V>[], i: number, f: (node: readonly [K, V]) => A, cont: Cont<K, V, A>] | undefined;
41
41
  interface VisitResult<K, V, A> {
42
42
  value: A;
43
43
  cont: Cont<K, V, A>;
@@ -17,7 +17,7 @@ export declare function popcount(x: number): number;
17
17
  export declare function hashFragment(shift: number, h: number): number;
18
18
  export declare function toBitmap(x: number): number;
19
19
  export declare function fromBitmap(bitmap: number, bit: number): number;
20
- export declare type Node<K, V> = LeafNode<K, V> | CollisionNode<K, V> | IndexedNode<K, V> | ArrayNode<K, V> | EmptyNode<K, V>;
20
+ export type Node<K, V> = LeafNode<K, V> | CollisionNode<K, V> | IndexedNode<K, V> | ArrayNode<K, V> | EmptyNode<K, V>;
21
21
  export interface SizeRef {
22
22
  value: number;
23
23
  }
@@ -29,8 +29,8 @@ export declare const _EmptyNode: EmptyNode<never, never>;
29
29
  export declare function isEmptyNode(a: unknown): a is EmptyNode<unknown, unknown>;
30
30
  export declare function isLeaf<K, V>(node: Node<K, V>): node is EmptyNode<K, V> | LeafNode<K, V> | CollisionNode<K, V>;
31
31
  export declare function canEditNode<K, V>(edit: number, node: Node<K, V>): boolean;
32
- export declare type KeyEq<K> = Eq<K>["equals"];
33
- export declare type UpdateFn<V> = (v: Maybe<V>) => Maybe<V>;
32
+ export type KeyEq<K> = Eq<K>["equals"];
33
+ export type UpdateFn<V> = (v: Maybe<V>) => Maybe<V>;
34
34
  export declare class LeafNode<K, V> {
35
35
  readonly edit: number;
36
36
  readonly hash: number;