@fncts/base 0.0.15 → 0.0.18

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 (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;