@fncts/base 0.0.15 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGgBA,GAAG;;MA6BHC,IAAI;;MAmBJC,KAAK;;MAcLC,SAAS;AAjEzB;;;;;;AAGA,eAA2CC,IAA3C,EAAiEC,OAAjE,EAA6EC,GAA7E,EAAwF;EACtF,MAAMC,KAAK,GAAGH,IAAI,CAACI,KAAL,KAAeC,MAAM,CAACC,gBAAtB,GAAwCC,QAACP,IAAD,CAAxC,GAAsDA,IAApE;EACA,OAAO,oBAAIQ,WAAJ,CAAgBC,0BAAK,CAACC,GAAN,EAAcR,GAAd,EAAmB,CAACD,OAAD,EAAUE,KAAK,CAACC,KAAhB,CAAnB,CAAhB,EAA4DD,KAAK,CAACC,KAAN,GAAc,CAA1E,CAAP;AACD;AAED;;;;;AAGO,MAAMO,KAAK,gBAAGC,QAAd;AAIP;;;;;;AAGM,SAAUC,GAAV,CAAoCb,IAApC,EAA0DE,GAA1D,EAAgE;EACpE,OAAoBY,kBAAeZ,GAAf,CAApB;AACD;AAED;;;;;AAGM,SAAUa,QAAV,CAAwCf,IAAxC,EAA8DE,GAA9D,EAAyE;EAC7E,OAAOO,yBAAI,CAACO,KAAL,EAAed,GAAf,CAAP;AACD;AAED;;;;;AAGA;EACE,OAAO,oBAAIM,WAAJ,CAAgBC,6BAAhB,EAAuC,CAAvC,EAA0CA,6BAA1C,CAAP;AACD;AAED;;;;;;AAIM,SAAUQ,KAAV,CAAuBjB,IAAvB,EAA6CkB,IAA7C,EAAkE;EACtE,MAAM,CAACf,KAAD,EAAQgB,KAAR,IAAiBnB,IAAI,CAACI,KAAL,GAAac,IAAI,CAACd,KAAlB,GAA0BJ,IAAI,CAACI,KAA/B,GAAuC,SAACJ,IAAD,GAAKO,QAAQW,IAAR,CAAL,CAAvC,GAAkE,CAAClB,IAAD,EAAOkB,IAAP,CAAzF;EACA,OAAO,oBAAIV,WAAJ,CACLC,4BAAK,CAACC,GAAN,EAAgBD,0BAAK,CAACC,GAAN,EAAc,CAAC,CAACT,OAAD,EAAUG,KAAV,CAAD,KAAsB,CAACH,OAAD,EAAUE,KAAK,CAACC,KAAN,GAAcA,KAAxB,CAApC,CAAhB,CADK,EAELD,KAAK,CAACC,KAAN,GAAce,KAAK,CAACf,KAFf,CAAP;AAID;AAED;;;;;AAGA,iBAAyBJ,IAAzB,EAA6C;EAC3C,MAAM,CAACU,GAAD,EAAMN,KAAN,IAAegB,0EAAI,CAACV,GAAL,GACbW,+CAAqB,CAAC,GAAG,GAAGC,GAAH,CAAH,CAAD,KAAiBA,GAAtC,CADa,GAGjB,CAACb,6BAAD,EAAkE,CAAlE,CAHiB,EAIjB,CAAC,CAACC,GAAD,EAAMN,KAAN,CAAD,EAAe,CAACF,GAAD,EAAM,CAACD,OAAD,CAAN,CAAf,KAAoC,CAACQ,0BAAQP,GAAR,EAAa,CAACD,OAAD,EAAUG,KAAV,CAAb,CAAD,EAA0CA,KAAK,GAAG,CAAlD,CAJnB,CAArB;EAOA,OAAO,oBAAII,WAAJ,CAAgBE,GAAhB,EAAqBN,KAArB,CAAP;AACD;AAED;;;;;AAGA,qBAAgCJ,IAAhC,EAAsDE,GAAtD,EAAiE;EAC/D,OAAOqB,gDAAI,CAACP,KAAL,EAAed,GAAf,GACL,MAAK;IACH,IAAIE,KAAK,GAAQ,CAAC,CAAlB;IACA,MAAMoB,QAAQ,GAAGxB,IAAI,CAACU,GAAL,CAASe,MAAM,CAACD,QAAhB,GAAjB;IACA,IAAIvB,OAAO,GAAM,IAAjB;IACA,IAAIyB,CAAJ;;IACA,OAAO,CAAC,CAACA,CAAC,GAAGF,QAAQ,CAACG,IAAT,EAAL,EAAsBC,IAA9B,EAAoC;MAClC,MAAM,CAACC,MAAD,EAAS,CAACC,UAAD,EAAaC,QAAb,CAAT,IAAmCL,CAAC,CAACM,KAA3C;;MACA,IAAIC,qCAAU/B,GAAV,KAAiB6B,QAAQ,GAAG3B,KAAhC,EAAuC;QACrCA,KAAK,GAAK2B,QAAV;QACA9B,OAAO,GAAG6B,UAAV;MACD;IACF;;IACD,IAAI7B,OAAO,KAAK,IAAhB,EAAsB,MAAM,IAAIiC,KAAJ,CAAU,kDAAV,CAAN,CAAtB,KACK;MACHlC,IAAI,CAACgB,KAAL,GAAaP,yBAAI,CAACO,KAAL,EAAed,GAAf,EAAoBD,OAApB,CAAb;MACA,OAAOA,OAAP;IACD;EACF,CAlBI,EAmBJkC,CAAD,IAAOA,CAnBF,CAAP;AAqBD;AAED;;;;;AAGM,SAAUC,MAAV,CAAiCpC,IAAjC,EAAuDqC,CAAvD,EAAuEnC,GAAvE,EAAkF;EACtF,OAAOoC,YAASD,CAAC,CAACvB,kBAAeZ,GAAf,CAAD,CAAV,EAAiCA,GAAjC,CAAP;AACD","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]}
@@ -14,7 +14,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
14
14
  /**
15
15
  * @tsplus static fncts.TagOps __call
16
16
  */
17
- function makeTag() {
18
- return new tsplus_module_1.Tag();
17
+ function makeTag(id) {
18
+ return new tsplus_module_1.Tag(id);
19
19
  }
20
20
  //# 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;;;AAGM,SAAUA,OAAV,CAAqBC,EAArB,EAA+B;EACnC,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]}
@@ -3,7 +3,7 @@ import * as tsplus_module_1 from "@fncts/base/data/Tag/definition";
3
3
  * @tsplus static fncts.TagOps __call
4
4
  */
5
5
 
6
- export function makeTag() {
7
- return new tsplus_module_1.Tag();
6
+ export function makeTag(id) {
7
+ return new tsplus_module_1.Tag(id);
8
8
  }
9
9
  //# 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;;;;AAGA,OAAM,SAAUA,OAAV,CAAqBC,EAArB,EAA+B;EACnC,OAAO,oBAAIC,GAAJ,CAAQD,EAAR,CAAP;AACD","names":["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,6 @@
1
1
  /**
2
2
  * @tsplus static fncts.TagOps __call
3
3
  */
4
- export function makeTag<T>(): Tag<T> {
5
- return new Tag();
4
+ export function makeTag<T>(id: string): Tag<T> {
5
+ return new Tag(id);
6
6
  }
@@ -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 {
@@ -13,12 +13,11 @@ export declare type EnvSymbol = typeof EnvSymbol;
13
13
  * @tsplus companion fncts.EnvironmentOps
14
14
  */
15
15
  export declare class Environment<R> implements Hashable, Equatable {
16
- readonly map: HashMap<Tag<any>, readonly [unknown, number]>;
17
- readonly index: number;
16
+ readonly map: HashMap<Tag<any>, unknown>;
18
17
  cache: HashMap<Tag<any>, unknown>;
19
18
  readonly _typeId: EnvSymbol;
20
19
  readonly [EnvSymbol]: (_: never) => R;
21
- constructor(map: HashMap<Tag<any>, readonly [unknown, number]>, index: number, cache?: HashMap<Tag<any>, unknown>);
20
+ constructor(map: HashMap<Tag<any>, unknown>, cache?: HashMap<Tag<any>, unknown>);
22
21
  get [Symbol.hash](): number;
23
22
  [Symbol.equals](that: unknown): boolean;
24
23
  }
@@ -3,4 +3,4 @@ import { Tag } from "@fncts/base/data/Tag/definition";
3
3
  * @tsplus static fncts.TagOps __call
4
4
  * @tsplus location "@fncts/base/data/Tag/constructors"
5
5
  */
6
- export declare function makeTag<T>(): Tag<T>;
6
+ export declare function makeTag<T>(id: string): Tag<T>;
@@ -9,10 +9,11 @@ export declare type TagTypeId = typeof TagTypeId;
9
9
  * @tsplus companion fncts.TagOps
10
10
  */
11
11
  export declare class Tag<in out T> implements Hashable, Equatable {
12
+ readonly id: string;
12
13
  _T: (_: T) => T;
13
14
  readonly _typeId: TagTypeId;
14
15
  private static counter;
15
- readonly id: number;
16
+ constructor(id: string);
16
17
  get [Symbol.hash](): number;
17
18
  [Symbol.equals](that: unknown): boolean;
18
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fncts/base",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "dependencies": {
5
5
  "@fncts/typelevel": "0.0.12"
6
6
  },