@thirstie/thirstieservices 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,44 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 0.9.0 (2025-01-31)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * improved session reloading ([99e996c](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/99e996c48b2457fb254bb9a2b26500394b907cb5))
12
+
13
+
14
+ ### Features
15
+
16
+ * add sandbox environment ([f0b55c5](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/f0b55c58304d9d28d704bee2b9c16a64ab6af5fe))
17
+ * allow restoring age gate settings ([2030773](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/2030773073df53b56a08a3dd5937afac63c87217))
18
+ * simplify saving session state ([fa0ba48](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/fa0ba48d29140961e7c035605a0bee82ac7f0b17))
19
+ * update user actions ([2f8cf07](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/2f8cf07f9bafbca4fd5d57435a37189541449ded))
20
+
21
+
22
+
23
+
24
+
25
+ # 0.8.0 (2025-01-17)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * improved session reloading ([e93e43d](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/e93e43dc9746f5b23c44daa7b3f81a3f9d65f5cd))
31
+
32
+
33
+ ### Features
34
+
35
+ * add sandbox environment ([f0b55c5](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/f0b55c58304d9d28d704bee2b9c16a64ab6af5fe))
36
+ * allow restoring age gate settings ([2030773](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/2030773073df53b56a08a3dd5937afac63c87217))
37
+ * simplify saving session state ([fa0ba48](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/fa0ba48d29140961e7c035605a0bee82ac7f0b17))
38
+ * update user actions ([2f8cf07](https://github.com/ThirstieAdmin/thirstiejs-monorepo/commit/2f8cf07f9bafbca4fd5d57435a37189541449ded))
39
+
40
+
41
+
42
+
43
+
6
44
  # 0.7.0 (2024-12-23)
7
45
 
8
46
 
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1734992013007" clover="3.2.0">
3
- <project timestamp="1734992013007" name="All files">
4
- <metrics statements="102" coveredstatements="48" conditionals="79" coveredconditionals="55" methods="22" coveredmethods="12" elements="203" coveredelements="115" complexity="0" loc="102" ncloc="102" packages="2" files="2" classes="2"/>
2
+ <coverage generated="1738362192712" clover="3.2.0">
3
+ <project timestamp="1738362192712" name="All files">
4
+ <metrics statements="119" coveredstatements="54" conditionals="87" coveredconditionals="58" methods="24" coveredmethods="13" elements="230" coveredelements="125" complexity="0" loc="119" ncloc="119" packages="2" files="3" classes="3"/>
5
5
  <package name="geoservice">
6
6
  <metrics statements="94" coveredstatements="40" conditionals="77" coveredconditionals="53" methods="21" coveredmethods="11"/>
7
7
  <file name="index.js" path="/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/geoservice/index.js">
@@ -103,7 +103,27 @@
103
103
  </file>
104
104
  </package>
105
105
  <package name="thirstieapi.utils">
106
- <metrics statements="8" coveredstatements="8" conditionals="2" coveredconditionals="2" methods="1" coveredmethods="1"/>
106
+ <metrics statements="25" coveredstatements="14" conditionals="10" coveredconditionals="5" methods="3" coveredmethods="2"/>
107
+ <file name="apirequest.js" path="/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/thirstieapi/utils/apirequest.js">
108
+ <metrics statements="17" coveredstatements="6" conditionals="8" coveredconditionals="3" methods="2" coveredmethods="1"/>
109
+ <line num="2" count="2" type="stmt"/>
110
+ <line num="3" count="2" type="cond" truecount="2" falsecount="0"/>
111
+ <line num="4" count="1" type="stmt"/>
112
+ <line num="5" count="1" type="stmt"/>
113
+ <line num="8" count="2" type="stmt"/>
114
+ <line num="10" count="2" type="stmt"/>
115
+ <line num="14" count="0" type="stmt"/>
116
+ <line num="20" count="0" type="stmt"/>
117
+ <line num="21" count="0" type="stmt"/>
118
+ <line num="23" count="0" type="stmt"/>
119
+ <line num="24" count="0" type="stmt"/>
120
+ <line num="25" count="0" type="cond" truecount="0" falsecount="3"/>
121
+ <line num="26" count="0" type="cond" truecount="0" falsecount="2"/>
122
+ <line num="27" count="0" type="stmt"/>
123
+ <line num="29" count="0" type="stmt"/>
124
+ <line num="37" count="0" type="stmt"/>
125
+ <line num="38" count="0" type="stmt"/>
126
+ </file>
107
127
  <file name="environment.js" path="/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/thirstieapi/utils/environment.js">
108
128
  <metrics statements="8" coveredstatements="8" conditionals="2" coveredconditionals="2" methods="1" coveredmethods="1"/>
109
129
  <line num="1" count="1" type="stmt"/>
@@ -1,3 +1,4 @@
1
1
  {"/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/geoservice/index.js": {"path":"/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/geoservice/index.js","statementMap":{"0":{"start":{"line":4,"column":20},"end":{"line":7,"column":2}},"1":{"start":{"line":5,"column":16},"end":{"line":5,"column":62}},"2":{"start":{"line":5,"column":25},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":2},"end":{"line":6,"column":52}},"4":{"start":{"line":8,"column":20},"end":{"line":8,"column":72}},"5":{"start":{"line":10,"column":43},"end":{"line":46,"column":1}},"6":{"start":{"line":11,"column":56},"end":{"line":11,"column":63}},"7":{"start":{"line":13,"column":28},"end":{"line":15,"column":3}},"8":{"start":{"line":14,"column":4},"end":{"line":14,"column":81}},"9":{"start":{"line":17,"column":26},"end":{"line":17,"column":30}},"10":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"11":{"start":{"line":19,"column":4},"end":{"line":19,"column":59}},"12":{"start":{"line":22,"column":2},"end":{"line":43,"column":28}},"13":{"start":{"line":23,"column":19},"end":{"line":26,"column":5}},"14":{"start":{"line":27,"column":22},"end":{"line":27,"column":110}},"15":{"start":{"line":27,"column":49},"end":{"line":27,"column":90}},"16":{"start":{"line":28,"column":23},"end":{"line":28,"column":113}},"17":{"start":{"line":28,"column":50},"end":{"line":28,"column":93}},"18":{"start":{"line":29,"column":21},"end":{"line":29,"column":115}},"19":{"start":{"line":29,"column":48},"end":{"line":29,"column":95}},"20":{"start":{"line":31,"column":4},"end":{"line":31,"column":53}},"21":{"start":{"line":32,"column":4},"end":{"line":32,"column":70}},"22":{"start":{"line":33,"column":4},"end":{"line":33,"column":74}},"23":{"start":{"line":35,"column":4},"end":{"line":35,"column":18}},"24":{"start":{"line":37,"column":11},"end":{"line":37,"column":49}},"25":{"start":{"line":39,"column":4},"end":{"line":41,"column":5}},"26":{"start":{"line":40,"column":6},"end":{"line":40,"column":15}},"27":{"start":{"line":42,"column":4},"end":{"line":42,"column":38}},"28":{"start":{"line":45,"column":2},"end":{"line":45,"column":27}},"29":{"start":{"line":48,"column":34},"end":{"line":98,"column":1}},"30":{"start":{"line":49,"column":22},"end":{"line":49,"column":63}},"31":{"start":{"line":50,"column":2},"end":{"line":52,"column":3}},"32":{"start":{"line":51,"column":4},"end":{"line":51,"column":14}},"33":{"start":{"line":54,"column":26},"end":{"line":54,"column":30}},"34":{"start":{"line":55,"column":2},"end":{"line":59,"column":3}},"35":{"start":{"line":56,"column":4},"end":{"line":56,"column":49}},"36":{"start":{"line":58,"column":4},"end":{"line":58,"column":55}},"37":{"start":{"line":61,"column":37},"end":{"line":61,"column":76}},"38":{"start":{"line":63,"column":27},"end":{"line":63,"column":56}},"39":{"start":{"line":65,"column":4},"end":{"line":69,"column":12}},"40":{"start":{"line":71,"column":4},"end":{"line":75,"column":12}},"41":{"start":{"line":77,"column":23},"end":{"line":77,"column":86}},"42":{"start":{"line":78,"column":22},"end":{"line":78,"column":76}},"43":{"start":{"line":80,"column":4},"end":{"line":80,"column":69}},"44":{"start":{"line":82,"column":18},"end":{"line":96,"column":3}},"45":{"start":{"line":97,"column":2},"end":{"line":97,"column":36}},"46":{"start":{"line":102,"column":4},"end":{"line":102,"column":27}},"47":{"start":{"line":106,"column":16},"end":{"line":108,"column":5}},"48":{"start":{"line":109,"column":21},"end":{"line":109,"column":37}},"49":{"start":{"line":110,"column":4},"end":{"line":110,"column":40}},"50":{"start":{"line":114,"column":16},"end":{"line":116,"column":5}},"51":{"start":{"line":117,"column":21},"end":{"line":117,"column":37}},"52":{"start":{"line":118,"column":4},"end":{"line":118,"column":40}},"53":{"start":{"line":122,"column":16},"end":{"line":124,"column":5}},"54":{"start":{"line":125,"column":21},"end":{"line":125,"column":37}},"55":{"start":{"line":126,"column":4},"end":{"line":126,"column":40}},"56":{"start":{"line":132,"column":16},"end":{"line":132,"column":89}},"57":{"start":{"line":133,"column":26},"end":{"line":139,"column":5}},"58":{"start":{"line":140,"column":20},"end":{"line":140,"column":51}},"59":{"start":{"line":141,"column":21},"end":{"line":141,"column":41}},"60":{"start":{"line":142,"column":25},"end":{"line":142,"column":42}},"61":{"start":{"line":143,"column":4},"end":{"line":143,"column":41}},"62":{"start":{"line":151,"column":51},"end":{"line":151,"column":58}},"63":{"start":{"line":152,"column":58},"end":{"line":152,"column":65}},"64":{"start":{"line":153,"column":21},"end":{"line":153,"column":76}},"65":{"start":{"line":155,"column":27},"end":{"line":155,"column":34}},"66":{"start":{"line":156,"column":4},"end":{"line":158,"column":5}},"67":{"start":{"line":157,"column":6},"end":{"line":157,"column":61}},"68":{"start":{"line":160,"column":19},"end":{"line":168,"column":6}},"69":{"start":{"line":170,"column":22},"end":{"line":170,"column":24}},"70":{"start":{"line":171,"column":4},"end":{"line":174,"column":5}},"71":{"start":{"line":172,"column":27},"end":{"line":172,"column":54}},"72":{"start":{"line":173,"column":6},"end":{"line":173,"column":44}},"73":{"start":{"line":176,"column":16},"end":{"line":176,"column":93}},"74":{"start":{"line":177,"column":26},"end":{"line":182,"column":5}},"75":{"start":{"line":183,"column":20},"end":{"line":183,"column":51}},"76":{"start":{"line":184,"column":21},"end":{"line":184,"column":41}},"77":{"start":{"line":186,"column":34},"end":{"line":186,"column":36}},"78":{"start":{"line":187,"column":4},"end":{"line":190,"column":5}},"79":{"start":{"line":188,"column":22},"end":{"line":188,"column":67}},"80":{"start":{"line":189,"column":6},"end":{"line":189,"column":91}},"81":{"start":{"line":191,"column":4},"end":{"line":191,"column":53}},"82":{"start":{"line":195,"column":38},"end":{"line":195,"column":45}},"83":{"start":{"line":197,"column":19},"end":{"line":201,"column":6}},"84":{"start":{"line":202,"column":22},"end":{"line":202,"column":24}},"85":{"start":{"line":203,"column":4},"end":{"line":206,"column":5}},"86":{"start":{"line":204,"column":27},"end":{"line":204,"column":54}},"87":{"start":{"line":205,"column":6},"end":{"line":205,"column":44}},"88":{"start":{"line":208,"column":16},"end":{"line":208,"column":88}},"89":{"start":{"line":209,"column":16},"end":{"line":209,"column":32}},"90":{"start":{"line":210,"column":21},"end":{"line":210,"column":37}},"91":{"start":{"line":211,"column":4},"end":{"line":211,"column":40}},"92":{"start":{"line":218,"column":24},"end":{"line":220,"column":5}},"93":{"start":{"line":219,"column":6},"end":{"line":219,"column":27}},"94":{"start":{"line":221,"column":4},"end":{"line":228,"column":66}},"95":{"start":{"line":223,"column":20},"end":{"line":223,"column":44}},"96":{"start":{"line":224,"column":20},"end":{"line":224,"column":45}},"97":{"start":{"line":225,"column":8},"end":{"line":225,"column":45}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":28},"end":{"line":4,"column":29}},"loc":{"start":{"line":4,"column":64},"end":{"line":7,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":17}},"loc":{"start":{"line":5,"column":25},"end":{"line":5,"column":62}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":43},"end":{"line":10,"column":44}},"loc":{"start":{"line":10,"column":74},"end":{"line":46,"column":1}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":28},"end":{"line":13,"column":29}},"loc":{"start":{"line":13,"column":44},"end":{"line":15,"column":3}},"line":13},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":38},"end":{"line":22,"column":39}},"loc":{"start":{"line":22,"column":47},"end":{"line":36,"column":3}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":39},"end":{"line":27,"column":40}},"loc":{"start":{"line":27,"column":49},"end":{"line":27,"column":90}},"line":27},"6":{"name":"(anonymous_6)","decl":{"start":{"line":28,"column":40},"end":{"line":28,"column":41}},"loc":{"start":{"line":28,"column":50},"end":{"line":28,"column":93}},"line":28},"7":{"name":"(anonymous_7)","decl":{"start":{"line":29,"column":38},"end":{"line":29,"column":39}},"loc":{"start":{"line":29,"column":48},"end":{"line":29,"column":95}},"line":29},"8":{"name":"(anonymous_8)","decl":{"start":{"line":37,"column":4},"end":{"line":37,"column":5}},"loc":{"start":{"line":37,"column":11},"end":{"line":37,"column":49}},"line":37},"9":{"name":"(anonymous_9)","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":10}},"loc":{"start":{"line":38,"column":19},"end":{"line":43,"column":3}},"line":38},"10":{"name":"(anonymous_10)","decl":{"start":{"line":48,"column":34},"end":{"line":48,"column":35}},"loc":{"start":{"line":48,"column":43},"end":{"line":98,"column":1}},"line":48},"11":{"name":"(anonymous_11)","decl":{"start":{"line":101,"column":2},"end":{"line":101,"column":3}},"loc":{"start":{"line":101,"column":24},"end":{"line":103,"column":3}},"line":101},"12":{"name":"(anonymous_12)","decl":{"start":{"line":105,"column":2},"end":{"line":105,"column":3}},"loc":{"start":{"line":105,"column":26},"end":{"line":111,"column":3}},"line":105},"13":{"name":"(anonymous_13)","decl":{"start":{"line":113,"column":2},"end":{"line":113,"column":3}},"loc":{"start":{"line":113,"column":29},"end":{"line":119,"column":3}},"line":113},"14":{"name":"(anonymous_14)","decl":{"start":{"line":121,"column":2},"end":{"line":121,"column":3}},"loc":{"start":{"line":121,"column":34},"end":{"line":127,"column":3}},"line":121},"15":{"name":"(anonymous_15)","decl":{"start":{"line":129,"column":2},"end":{"line":129,"column":3}},"loc":{"start":{"line":129,"column":21},"end":{"line":144,"column":3}},"line":129},"16":{"name":"(anonymous_16)","decl":{"start":{"line":146,"column":2},"end":{"line":146,"column":3}},"loc":{"start":{"line":146,"column":41},"end":{"line":192,"column":3}},"line":146},"17":{"name":"(anonymous_17)","decl":{"start":{"line":194,"column":2},"end":{"line":194,"column":3}},"loc":{"start":{"line":194,"column":29},"end":{"line":212,"column":3}},"line":194},"18":{"name":"(anonymous_18)","decl":{"start":{"line":214,"column":2},"end":{"line":214,"column":3}},"loc":{"start":{"line":214,"column":32},"end":{"line":229,"column":3}},"line":214},"19":{"name":"(anonymous_19)","decl":{"start":{"line":218,"column":24},"end":{"line":218,"column":25}},"loc":{"start":{"line":218,"column":35},"end":{"line":220,"column":5}},"line":218},"20":{"name":"(anonymous_20)","decl":{"start":{"line":222,"column":6},"end":{"line":222,"column":7}},"loc":{"start":{"line":222,"column":20},"end":{"line":226,"column":7}},"line":222}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":57},"end":{"line":10,"column":69}},"type":"default-arg","locations":[{"start":{"line":10,"column":67},"end":{"line":10,"column":69}}],"line":10},"1":{"loc":{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},"type":"if","locations":[{"start":{"line":18,"column":2},"end":{"line":20,"column":3}},{"start":{},"end":{}}],"line":18},"2":{"loc":{"start":{"line":18,"column":8},"end":{"line":18,"column":53}},"type":"binary-expr","locations":[{"start":{"line":18,"column":8},"end":{"line":18,"column":19}},{"start":{"line":18,"column":23},"end":{"line":18,"column":35}},{"start":{"line":18,"column":39},"end":{"line":18,"column":53}}],"line":18},"3":{"loc":{"start":{"line":27,"column":22},"end":{"line":27,"column":110}},"type":"cond-expr","locations":[{"start":{"line":27,"column":105},"end":{"line":27,"column":106}},{"start":{"line":27,"column":109},"end":{"line":27,"column":110}}],"line":27},"4":{"loc":{"start":{"line":27,"column":49},"end":{"line":27,"column":90}},"type":"binary-expr","locations":[{"start":{"line":27,"column":49},"end":{"line":27,"column":60}},{"start":{"line":27,"column":64},"end":{"line":27,"column":90}}],"line":27},"5":{"loc":{"start":{"line":28,"column":23},"end":{"line":28,"column":113}},"type":"cond-expr","locations":[{"start":{"line":28,"column":108},"end":{"line":28,"column":109}},{"start":{"line":28,"column":112},"end":{"line":28,"column":113}}],"line":28},"6":{"loc":{"start":{"line":28,"column":50},"end":{"line":28,"column":93}},"type":"binary-expr","locations":[{"start":{"line":28,"column":50},"end":{"line":28,"column":62}},{"start":{"line":28,"column":66},"end":{"line":28,"column":93}}],"line":28},"7":{"loc":{"start":{"line":29,"column":21},"end":{"line":29,"column":115}},"type":"cond-expr","locations":[{"start":{"line":29,"column":110},"end":{"line":29,"column":111}},{"start":{"line":29,"column":114},"end":{"line":29,"column":115}}],"line":29},"8":{"loc":{"start":{"line":29,"column":48},"end":{"line":29,"column":95}},"type":"binary-expr","locations":[{"start":{"line":29,"column":48},"end":{"line":29,"column":62}},{"start":{"line":29,"column":66},"end":{"line":29,"column":95}}],"line":29},"9":{"loc":{"start":{"line":32,"column":24},"end":{"line":32,"column":69}},"type":"binary-expr","locations":[{"start":{"line":32,"column":24},"end":{"line":32,"column":37}},{"start":{"line":32,"column":42},"end":{"line":32,"column":54}},{"start":{"line":32,"column":58},"end":{"line":32,"column":68}}],"line":32},"10":{"loc":{"start":{"line":33,"column":26},"end":{"line":33,"column":73}},"type":"binary-expr","locations":[{"start":{"line":33,"column":26},"end":{"line":33,"column":41}},{"start":{"line":33,"column":46},"end":{"line":33,"column":60}},{"start":{"line":33,"column":64},"end":{"line":33,"column":72}}],"line":33},"11":{"loc":{"start":{"line":37,"column":11},"end":{"line":37,"column":49}},"type":"binary-expr","locations":[{"start":{"line":37,"column":11},"end":{"line":37,"column":27}},{"start":{"line":37,"column":31},"end":{"line":37,"column":49}}],"line":37},"12":{"loc":{"start":{"line":39,"column":4},"end":{"line":41,"column":5}},"type":"if","locations":[{"start":{"line":39,"column":4},"end":{"line":41,"column":5}},{"start":{},"end":{}}],"line":39},"13":{"loc":{"start":{"line":42,"column":11},"end":{"line":42,"column":37}},"type":"cond-expr","locations":[{"start":{"line":42,"column":31},"end":{"line":42,"column":32}},{"start":{"line":42,"column":35},"end":{"line":42,"column":37}}],"line":42},"14":{"loc":{"start":{"line":49,"column":22},"end":{"line":49,"column":63}},"type":"cond-expr","locations":[{"start":{"line":49,"column":36},"end":{"line":49,"column":50}},{"start":{"line":49,"column":53},"end":{"line":49,"column":63}}],"line":49},"15":{"loc":{"start":{"line":50,"column":2},"end":{"line":52,"column":3}},"type":"if","locations":[{"start":{"line":50,"column":2},"end":{"line":52,"column":3}},{"start":{},"end":{}}],"line":50},"16":{"loc":{"start":{"line":50,"column":6},"end":{"line":50,"column":44}},"type":"binary-expr","locations":[{"start":{"line":50,"column":6},"end":{"line":50,"column":18}},{"start":{"line":50,"column":22},"end":{"line":50,"column":44}}],"line":50},"17":{"loc":{"start":{"line":55,"column":2},"end":{"line":59,"column":3}},"type":"if","locations":[{"start":{"line":55,"column":2},"end":{"line":59,"column":3}},{"start":{"line":57,"column":9},"end":{"line":59,"column":3}}],"line":55},"18":{"loc":{"start":{"line":65,"column":4},"end":{"line":69,"column":12}},"type":"cond-expr","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":41}},{"start":{"line":69,"column":8},"end":{"line":69,"column":12}}],"line":65},"19":{"loc":{"start":{"line":65,"column":4},"end":{"line":67,"column":37}},"type":"binary-expr","locations":[{"start":{"line":65,"column":4},"end":{"line":65,"column":24}},{"start":{"line":66,"column":4},"end":{"line":66,"column":33}},{"start":{"line":67,"column":4},"end":{"line":67,"column":37}}],"line":65},"20":{"loc":{"start":{"line":71,"column":4},"end":{"line":75,"column":12}},"type":"cond-expr","locations":[{"start":{"line":74,"column":8},"end":{"line":74,"column":41}},{"start":{"line":75,"column":8},"end":{"line":75,"column":12}}],"line":71},"21":{"loc":{"start":{"line":71,"column":4},"end":{"line":73,"column":37}},"type":"binary-expr","locations":[{"start":{"line":71,"column":4},"end":{"line":71,"column":24}},{"start":{"line":72,"column":4},"end":{"line":72,"column":33}},{"start":{"line":73,"column":4},"end":{"line":73,"column":37}}],"line":71},"22":{"loc":{"start":{"line":77,"column":23},"end":{"line":77,"column":86}},"type":"binary-expr","locations":[{"start":{"line":77,"column":23},"end":{"line":77,"column":80}},{"start":{"line":77,"column":84},"end":{"line":77,"column":86}}],"line":77},"23":{"loc":{"start":{"line":78,"column":22},"end":{"line":78,"column":76}},"type":"binary-expr","locations":[{"start":{"line":78,"column":22},"end":{"line":78,"column":70}},{"start":{"line":78,"column":74},"end":{"line":78,"column":76}}],"line":78},"24":{"loc":{"start":{"line":80,"column":4},"end":{"line":80,"column":69}},"type":"binary-expr","locations":[{"start":{"line":80,"column":5},"end":{"line":80,"column":17}},{"start":{"line":80,"column":21},"end":{"line":80,"column":32}},{"start":{"line":80,"column":37},"end":{"line":80,"column":69}}],"line":80},"25":{"loc":{"start":{"line":85,"column":6},"end":{"line":89,"column":77}},"type":"binary-expr","locations":[{"start":{"line":85,"column":6},"end":{"line":85,"column":58}},{"start":{"line":86,"column":6},"end":{"line":86,"column":61}},{"start":{"line":87,"column":6},"end":{"line":87,"column":61}},{"start":{"line":88,"column":6},"end":{"line":88,"column":76}},{"start":{"line":89,"column":6},"end":{"line":89,"column":77}}],"line":85},"26":{"loc":{"start":{"line":93,"column":14},"end":{"line":93,"column":42}},"type":"binary-expr","locations":[{"start":{"line":93,"column":14},"end":{"line":93,"column":22}},{"start":{"line":93,"column":26},"end":{"line":93,"column":42}}],"line":93},"27":{"loc":{"start":{"line":94,"column":15},"end":{"line":94,"column":45}},"type":"binary-expr","locations":[{"start":{"line":94,"column":15},"end":{"line":94,"column":24}},{"start":{"line":94,"column":28},"end":{"line":94,"column":45}}],"line":94},"28":{"loc":{"start":{"line":156,"column":4},"end":{"line":158,"column":5}},"type":"if","locations":[{"start":{"line":156,"column":4},"end":{"line":158,"column":5}},{"start":{},"end":{}}],"line":156},"29":{"loc":{"start":{"line":171,"column":4},"end":{"line":174,"column":5}},"type":"if","locations":[{"start":{"line":171,"column":4},"end":{"line":174,"column":5}},{"start":{},"end":{}}],"line":171},"30":{"loc":{"start":{"line":187,"column":4},"end":{"line":190,"column":5}},"type":"if","locations":[{"start":{"line":187,"column":4},"end":{"line":190,"column":5}},{"start":{},"end":{}}],"line":187},"31":{"loc":{"start":{"line":187,"column":8},"end":{"line":187,"column":56}},"type":"binary-expr","locations":[{"start":{"line":187,"column":8},"end":{"line":187,"column":28}},{"start":{"line":187,"column":32},"end":{"line":187,"column":56}}],"line":187},"32":{"loc":{"start":{"line":203,"column":4},"end":{"line":206,"column":5}},"type":"if","locations":[{"start":{"line":203,"column":4},"end":{"line":206,"column":5}},{"start":{},"end":{}}],"line":203},"33":{"loc":{"start":{"line":221,"column":4},"end":{"line":228,"column":65}},"type":"binary-expr","locations":[{"start":{"line":221,"column":5},"end":{"line":221,"column":26}},{"start":{"line":221,"column":30},"end":{"line":228,"column":5}},{"start":{"line":228,"column":10},"end":{"line":228,"column":65}}],"line":221}},"s":{"0":1,"1":25,"2":110,"3":25,"4":1,"5":1,"6":3,"7":3,"8":13,"9":3,"10":3,"11":1,"12":3,"13":11,"14":11,"15":56,"16":11,"17":56,"18":11,"19":56,"20":11,"21":11,"22":11,"23":11,"24":11,"25":5,"26":5,"27":0,"28":3,"29":1,"30":4,"31":4,"32":0,"33":4,"34":4,"35":3,"36":1,"37":4,"38":4,"39":4,"40":4,"41":4,"42":4,"43":4,"44":4,"45":4,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0},"f":{"0":25,"1":110,"2":3,"3":13,"4":11,"5":56,"6":56,"7":56,"8":11,"9":5,"10":4,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0},"b":{"0":[1],"1":[1,2],"2":[3,3,2],"3":[0,11],"4":[56,0],"5":[2,9],"6":[56,25],"7":[1,10],"8":[56,6],"9":[11,5,5],"10":[11,1,1],"11":[11,8],"12":[5,0],"13":[0,0],"14":[3,1],"15":[0,4],"16":[4,4],"17":[3,1],"18":[4,0],"19":[4,4,4],"20":[4,0],"21":[4,4,4],"22":[4,2],"23":[4,2],"24":[4,2,2],"25":[4,1,0,0,0],"26":[4,4],"27":[4,4],"28":[0,0],"29":[0,0],"30":[0,0],"31":[0,0],"32":[0,0],"33":[0,0,0]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ebd8b1772048c0d74308e98b6f5f0825d25171bd"}
2
+ ,"/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/thirstieapi/utils/apirequest.js": {"path":"/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/thirstieapi/utils/apirequest.js","statementMap":{"0":{"start":{"line":2,"column":20},"end":{"line":2,"column":22}},"1":{"start":{"line":3,"column":2},"end":{"line":6,"column":3}},"2":{"start":{"line":4,"column":25},"end":{"line":4,"column":52}},"3":{"start":{"line":5,"column":4},"end":{"line":5,"column":48}},"4":{"start":{"line":8,"column":21},"end":{"line":8,"column":61}},"5":{"start":{"line":10,"column":2},"end":{"line":10,"column":37}},"6":{"start":{"line":14,"column":22},"end":{"line":19,"column":3}},"7":{"start":{"line":20,"column":2},"end":{"line":45,"column":3}},"8":{"start":{"line":21,"column":21},"end":{"line":21,"column":52}},"9":{"start":{"line":23,"column":23},"end":{"line":23,"column":25}},"10":{"start":{"line":24,"column":20},"end":{"line":24,"column":36}},"11":{"start":{"line":25,"column":20},"end":{"line":25,"column":139}},"12":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"13":{"start":{"line":27,"column":6},"end":{"line":27,"column":43}},"14":{"start":{"line":29,"column":4},"end":{"line":35,"column":7}},"15":{"start":{"line":37,"column":4},"end":{"line":37,"column":47}},"16":{"start":{"line":38,"column":4},"end":{"line":44,"column":7}}},"fnMap":{"0":{"name":"buildURL","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":24}},"loc":{"start":{"line":1,"column":63},"end":{"line":11,"column":1}},"line":1},"1":{"name":"apiRequest","decl":{"start":{"line":13,"column":22},"end":{"line":13,"column":32}},"loc":{"start":{"line":13,"column":54},"end":{"line":46,"column":1}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":48},"end":{"line":1,"column":61}},"type":"default-arg","locations":[{"start":{"line":1,"column":57},"end":{"line":1,"column":61}}],"line":1},"1":{"loc":{"start":{"line":3,"column":2},"end":{"line":6,"column":3}},"type":"if","locations":[{"start":{"line":3,"column":2},"end":{"line":6,"column":3}},{"start":{},"end":{}}],"line":3},"2":{"loc":{"start":{"line":25,"column":20},"end":{"line":25,"column":139}},"type":"binary-expr","locations":[{"start":{"line":25,"column":20},"end":{"line":25,"column":27}},{"start":{"line":25,"column":31},"end":{"line":25,"column":92}},{"start":{"line":25,"column":96},"end":{"line":25,"column":139}}],"line":25},"3":{"loc":{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},"type":"if","locations":[{"start":{"line":26,"column":4},"end":{"line":28,"column":5}},{"start":{},"end":{}}],"line":26}},"s":{"0":2,"1":2,"2":1,"3":1,"4":2,"5":2,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},"f":{"0":2,"1":0},"b":{"0":[1],"1":[1,1],"2":[0,0,0],"3":[0,0]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"2b5b378f99162279e046856ef3883b45ea266c1c"}
2
3
  ,"/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/thirstieapi/utils/environment.js": {"path":"/home/circleci/thirstiejs-monorepo/packages/thirstieservices/src/thirstieapi/utils/environment.js","statementMap":{"0":{"start":{"line":1,"column":27},"end":{"line":12,"column":1}},"1":{"start":{"line":2,"column":12},"end":{"line":2,"column":43}},"2":{"start":{"line":3,"column":2},"end":{"line":10,"column":3}},"3":{"start":{"line":5,"column":6},"end":{"line":5,"column":39}},"4":{"start":{"line":6,"column":6},"end":{"line":6,"column":12}},"5":{"start":{"line":8,"column":6},"end":{"line":8,"column":47}},"6":{"start":{"line":9,"column":6},"end":{"line":9,"column":12}},"7":{"start":{"line":11,"column":2},"end":{"line":11,"column":13}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":27},"end":{"line":1,"column":28}},"loc":{"start":{"line":1,"column":40},"end":{"line":12,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":2},"end":{"line":10,"column":3}},"type":"switch","locations":[{"start":{"line":4,"column":4},"end":{"line":6,"column":12}},{"start":{"line":7,"column":4},"end":{"line":9,"column":12}}],"line":3}},"s":{"0":1,"1":4,"2":4,"3":1,"4":1,"5":1,"6":1,"7":4},"f":{"0":4},"b":{"0":[1,1]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5bac7341ec785d445836181fee7c3c10f5e7d4e4"}
3
4
  }
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2024-12-23T22:13:32.998Z
104
+ at 2025-01-31T22:23:12.702Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -766,7 +766,7 @@ export default GeoService;
766
766
  <div class='footer quiet pad2 space-top1 center small'>
767
767
  Code coverage generated by
768
768
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
769
- at 2024-12-23T22:13:32.998Z
769
+ at 2025-01-31T22:23:12.702Z
770
770
  </div>
771
771
  <script src="../prettify.js"></script>
772
772
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">49.05% </span>
26
+ <span class="strong">47.15% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>52/106</span>
28
+ <span class='fraction'>58/123</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">69.62% </span>
33
+ <span class="strong">66.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>55/79</span>
35
+ <span class='fraction'>58/87</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">54.54% </span>
40
+ <span class="strong">54.16% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/22</span>
42
+ <span class='fraction'>13/24</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">47.05% </span>
47
+ <span class="strong">45.37% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>48/102</span>
49
+ <span class='fraction'>54/119</span>
50
50
  </div>
51
51
 
52
52
 
@@ -94,18 +94,18 @@
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file high" data-value="thirstieapi/utils"><a href="thirstieapi/utils/index.html">thirstieapi/utils</a></td>
98
- <td data-value="100" class="pic high">
99
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
97
+ <td class="file medium" data-value="thirstieapi/utils"><a href="thirstieapi/utils/index.html">thirstieapi/utils</a></td>
98
+ <td data-value="56" class="pic medium">
99
+ <div class="chart"><div class="cover-fill" style="width: 56%"></div><div class="cover-empty" style="width: 44%"></div></div>
100
100
  </td>
101
- <td data-value="100" class="pct high">100%</td>
102
- <td data-value="8" class="abs high">8/8</td>
103
- <td data-value="100" class="pct high">100%</td>
104
- <td data-value="2" class="abs high">2/2</td>
105
- <td data-value="100" class="pct high">100%</td>
106
- <td data-value="1" class="abs high">1/1</td>
107
- <td data-value="100" class="pct high">100%</td>
108
- <td data-value="8" class="abs high">8/8</td>
101
+ <td data-value="56" class="pct medium">56%</td>
102
+ <td data-value="25" class="abs medium">14/25</td>
103
+ <td data-value="50" class="pct medium">50%</td>
104
+ <td data-value="10" class="abs medium">5/10</td>
105
+ <td data-value="66.66" class="pct medium">66.66%</td>
106
+ <td data-value="3" class="abs medium">2/3</td>
107
+ <td data-value="56" class="pct medium">56%</td>
108
+ <td data-value="25" class="abs medium">14/25</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2024-12-23T22:13:32.998Z
119
+ at 2025-01-31T22:23:12.702Z
120
120
  </div>
121
121
  <script src="prettify.js"></script>
122
122
  <script>
@@ -0,0 +1,223 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for thirstieapi/utils/apirequest.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">thirstieapi/utils</a> apirequest.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">35.29% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>6/17</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">37.5% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/8</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">50% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>1/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">35.29% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>6/17</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
113
+ <span class="cline-any cline-yes">2x</span>
114
+ <span class="cline-any cline-yes">2x</span>
115
+ <span class="cline-any cline-yes">1x</span>
116
+ <span class="cline-any cline-yes">1x</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-yes">2x</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-yes">2x</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-no">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-no">&nbsp;</span>
132
+ <span class="cline-any cline-no">&nbsp;</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-no">&nbsp;</span>
135
+ <span class="cline-any cline-no">&nbsp;</span>
136
+ <span class="cline-any cline-no">&nbsp;</span>
137
+ <span class="cline-any cline-no">&nbsp;</span>
138
+ <span class="cline-any cline-no">&nbsp;</span>
139
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-no">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-no">&nbsp;</span>
149
+ <span class="cline-any cline-no">&nbsp;</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export function buildURL (baseUrl, endpointUrl, params = null) {
159
+ let queryString = '';
160
+ if (params) {
161
+ const searchParams = new URLSearchParams(params);
162
+ queryString = '?' + searchParams.toString();
163
+ }
164
+ &nbsp;
165
+ const requestUrl = `${baseUrl}${endpointUrl}${queryString}`;
166
+ &nbsp;
167
+ return { requestUrl, queryString };
168
+ }
169
+ &nbsp;
170
+ export async function <span class="fstat-no" title="function not covered" >apiRequest </span>(url, requestConfig) {
171
+ const apiResponse = <span class="cstat-no" title="statement not covered" >{</span>
172
+ ok: null,
173
+ status: null,
174
+ statusText: null,
175
+ data: {}
176
+ };
177
+ <span class="cstat-no" title="statement not covered" > try {</span>
178
+ const response = <span class="cstat-no" title="statement not covered" >await fetch(url, requestConfig);</span>
179
+ &nbsp;
180
+ let responseBody = <span class="cstat-no" title="statement not covered" >{};</span>
181
+ const headers = <span class="cstat-no" title="statement not covered" >response.headers;</span>
182
+ const hasBody = <span class="cstat-no" title="statement not covered" >headers &amp;&amp; headers.get('content-type')?.indexOf('application/json') &gt; -1 &amp;&amp; parseInt(headers.get('content-length')) &gt; 0;</span>
183
+ <span class="cstat-no" title="statement not covered" > if (hasBody) {</span>
184
+ <span class="cstat-no" title="statement not covered" > responseBody = await response.json();</span>
185
+ }
186
+ <span class="cstat-no" title="statement not covered" > return Object.assign(apiResponse, {</span>
187
+ ok: response.ok,
188
+ status: response.status,
189
+ statusText: response.statusText,
190
+ data: responseBody,
191
+ url
192
+ });
193
+ } catch (error) {
194
+ <span class="cstat-no" title="statement not covered" > console.error('apiRequest error: ', error);</span>
195
+ <span class="cstat-no" title="statement not covered" > return Object.assign(apiResponse, {</span>
196
+ ok: false,
197
+ status: 500,
198
+ statusText: 'ERROR',
199
+ data: { message: 'Network error', error },
200
+ url
201
+ });
202
+ }
203
+ }
204
+ &nbsp;</pre></td></tr></table></pre>
205
+
206
+ <div class='push'></div><!-- for sticky footer -->
207
+ </div><!-- /wrapper -->
208
+ <div class='footer quiet pad2 space-top1 center small'>
209
+ Code coverage generated by
210
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
211
+ at 2025-01-31T22:23:12.702Z
212
+ </div>
213
+ <script src="../../prettify.js"></script>
214
+ <script>
215
+ window.onload = function () {
216
+ prettyPrint();
217
+ };
218
+ </script>
219
+ <script src="../../sorter.js"></script>
220
+ <script src="../../block-navigation.js"></script>
221
+ </body>
222
+ </html>
223
+
@@ -118,7 +118,7 @@ export {
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at 2024-12-23T22:13:32.998Z
121
+ at 2025-01-31T22:23:12.702Z
122
122
  </div>
123
123
  <script src="../../prettify.js"></script>
124
124
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">56% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/8</span>
28
+ <span class='fraction'>14/25</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>5/10</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">66.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>2/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">56% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/8</span>
49
+ <span class='fraction'>14/25</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,6 +79,21 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
+ <td class="file low" data-value="apirequest.js"><a href="apirequest.js.html">apirequest.js</a></td>
83
+ <td data-value="35.29" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 35%"></div><div class="cover-empty" style="width: 65%"></div></div>
85
+ </td>
86
+ <td data-value="35.29" class="pct low">35.29%</td>
87
+ <td data-value="17" class="abs low">6/17</td>
88
+ <td data-value="37.5" class="pct low">37.5%</td>
89
+ <td data-value="8" class="abs low">3/8</td>
90
+ <td data-value="50" class="pct medium">50%</td>
91
+ <td data-value="2" class="abs medium">1/2</td>
92
+ <td data-value="35.29" class="pct low">35.29%</td>
93
+ <td data-value="17" class="abs low">6/17</td>
94
+ </tr>
95
+
96
+ <tr>
82
97
  <td class="file high" data-value="environment.js"><a href="environment.js.html">environment.js</a></td>
83
98
  <td data-value="100" class="pic high">
84
99
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
@@ -101,7 +116,7 @@
101
116
  <div class='footer quiet pad2 space-top1 center small'>
102
117
  Code coverage generated by
103
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2024-12-23T22:13:32.998Z
119
+ at 2025-01-31T22:23:12.702Z
105
120
  </div>
106
121
  <script src="../../prettify.js"></script>
107
122
  <script>
@@ -221,6 +221,44 @@ BRF:77
221
221
  BRH:53
222
222
  end_of_record
223
223
  TN:
224
+ SF:src/thirstieapi/utils/apirequest.js
225
+ FN:1,buildURL
226
+ FN:13,apiRequest
227
+ FNF:2
228
+ FNH:1
229
+ FNDA:2,buildURL
230
+ FNDA:0,apiRequest
231
+ DA:2,2
232
+ DA:3,2
233
+ DA:4,1
234
+ DA:5,1
235
+ DA:8,2
236
+ DA:10,2
237
+ DA:14,0
238
+ DA:20,0
239
+ DA:21,0
240
+ DA:23,0
241
+ DA:24,0
242
+ DA:25,0
243
+ DA:26,0
244
+ DA:27,0
245
+ DA:29,0
246
+ DA:37,0
247
+ DA:38,0
248
+ LF:17
249
+ LH:6
250
+ BRDA:1,0,0,1
251
+ BRDA:3,1,0,1
252
+ BRDA:3,1,1,1
253
+ BRDA:25,2,0,0
254
+ BRDA:25,2,1,0
255
+ BRDA:25,2,2,0
256
+ BRDA:26,3,0,0
257
+ BRDA:26,3,1,0
258
+ BRF:8
259
+ BRH:3
260
+ end_of_record
261
+ TN:
224
262
  SF:src/thirstieapi/utils/environment.js
225
263
  FN:1,(anonymous_0)
226
264
  FNF:1
package/dist/bundle.cjs CHANGED
@@ -1,5 +1,17 @@
1
1
  'use strict';
2
2
 
3
+ function buildURL (baseUrl, endpointUrl, params = null) {
4
+ let queryString = '';
5
+ if (params) {
6
+ const searchParams = new URLSearchParams(params);
7
+ queryString = '?' + searchParams.toString();
8
+ }
9
+
10
+ const requestUrl = `${baseUrl}${endpointUrl}${queryString}`;
11
+
12
+ return { requestUrl, queryString };
13
+ }
14
+
3
15
  async function apiRequest (url, requestConfig) {
4
16
  const apiResponse = {
5
17
  ok: null,
@@ -82,9 +94,9 @@ class ThirstieAPI {
82
94
  this.#thirstieApiBaseUrl = thirstieAPIBaseUrl(env);
83
95
 
84
96
  this.#_apiState = Object.seal(this.#emptyState);
85
- const { sessionToken, application, applicationRef, sessionRef, userRef } = initState || {};
86
- if (sessionToken || application || applicationRef || sessionRef || userRef) {
87
- const apiInitState = { sessionToken, application, applicationRef, sessionRef, userRef };
97
+ const { sessionToken, application, applicationRef, sessionRef } = initState || {};
98
+ if (sessionToken && application && applicationRef && sessionRef) {
99
+ const apiInitState = { sessionToken, application, applicationRef, sessionRef };
88
100
  this.apiState = apiInitState;
89
101
  }
90
102
  }
@@ -145,8 +157,8 @@ class ThirstieAPI {
145
157
  sessionToken: data.token,
146
158
  sessionRef: data.session_uuid
147
159
  };
160
+ sessionData.userRef = data.user?.id;
148
161
  if (data.user) {
149
- sessionData.userRef = data.user.id;
150
162
  const {
151
163
  birthday, email, prefix, guest,
152
164
  first_name: firstName, last_name: lastName, phone_number: phoneNumber,
@@ -161,7 +173,7 @@ class ThirstieAPI {
161
173
 
162
174
  #handleSessionError (err) {
163
175
  this.apiState = this.#emptyState;
164
- console.log('session error', err);
176
+ console.error('session error', err);
165
177
  }
166
178
 
167
179
  /**
@@ -338,11 +350,7 @@ class ThirstieAPI {
338
350
  if ([ 'POST', 'PUT', 'PATCH' ].includes(method) && !!data) {
339
351
  requestConfig.body = JSON.stringify(data);
340
352
  }
341
- let queryString = '';
342
- if (params) {
343
- const searchParams = new URLSearchParams(params);
344
- queryString = searchParams.toString();
345
- }
353
+ const { requestUrl, queryString } = buildURL(this.#thirstieApiBaseUrl, url, params);
346
354
 
347
355
  const telemetryContext = {
348
356
  environment: this.#environment,
@@ -354,7 +362,6 @@ class ThirstieAPI {
354
362
  queryString,
355
363
  url
356
364
  };
357
- const requestUrl = `${this.#thirstieApiBaseUrl}${url}${queryString}`;
358
365
  try {
359
366
  const response = await apiRequest(requestUrl, requestConfig);
360
367
  if (response) {
@@ -1 +1 @@
1
- var thirstieclient=function(t){"use strict";function e(t){return null!=t&&"object"==typeof t&&!0===t["@@functional/placeholder"]}function n(t){return function n(r){return 0===arguments.length||e(r)?n:t.apply(this,arguments)}}function r(t){return function r(o,a){switch(arguments.length){case 0:return r;case 1:return e(o)?r:n((function(e){return t(o,e)}));default:return e(o)&&e(a)?r:e(o)?n((function(e){return t(e,a)})):e(a)?n((function(e){return t(o,e)})):t(o,a)}}}function o(t,e){switch(t){case 0:return function(){return e.apply(this,arguments)};case 1:return function(t){return e.apply(this,arguments)};case 2:return function(t,n){return e.apply(this,arguments)};case 3:return function(t,n,r){return e.apply(this,arguments)};case 4:return function(t,n,r,o){return e.apply(this,arguments)};case 5:return function(t,n,r,o,a){return e.apply(this,arguments)};case 6:return function(t,n,r,o,a,s){return e.apply(this,arguments)};case 7:return function(t,n,r,o,a,s,i){return e.apply(this,arguments)};case 8:return function(t,n,r,o,a,s,i,u){return e.apply(this,arguments)};case 9:return function(t,n,r,o,a,s,i,u,c){return e.apply(this,arguments)};case 10:return function(t,n,r,o,a,s,i,u,c,l){return e.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}function a(t,n,r){return function(){for(var s=[],i=0,u=t,c=0,l=!1;c<n.length||i<arguments.length;){var f;c<n.length&&(!e(n[c])||i>=arguments.length)?f=n[c]:(f=arguments[i],i+=1),s[c]=f,e(f)?l=!0:u-=1,c+=1}return!l&&u<=0?r.apply(this,s):o(Math.max(0,u),a(t,s,r))}}var s=r((function(t,e){return 1===t?n(e):o(t,a(t,[],e))}));function i(t){return function o(a,s,i){switch(arguments.length){case 0:return o;case 1:return e(a)?o:r((function(e,n){return t(a,e,n)}));case 2:return e(a)&&e(s)?o:e(a)?r((function(e,n){return t(e,s,n)})):e(s)?r((function(e,n){return t(a,e,n)})):n((function(e){return t(a,s,e)}));default:return e(a)&&e(s)&&e(i)?o:e(a)&&e(s)?r((function(e,n){return t(e,n,i)})):e(a)&&e(i)?r((function(e,n){return t(e,s,n)})):e(s)&&e(i)?r((function(e,n){return t(a,e,n)})):e(a)?n((function(e){return t(e,s,i)})):e(s)?n((function(e){return t(a,e,i)})):e(i)?n((function(e){return t(a,s,e)})):t(a,s,i)}}}var u=Array.isArray||function(t){return null!=t&&t.length>=0&&"[object Array]"===Object.prototype.toString.call(t)};function c(t,e,n){return function(){if(0===arguments.length)return n();var r=arguments[arguments.length-1];if(!u(r)){for(var o=0;o<t.length;){if("function"==typeof r[t[o]])return r[t[o]].apply(r,Array.prototype.slice.call(arguments,0,-1));o+=1}if(function(t){return null!=t&&"function"==typeof t["@@transducer/step"]}(r))return e.apply(null,Array.prototype.slice.call(arguments,0,-1))(r)}return n.apply(this,arguments)}}var l=function(){return this.xf["@@transducer/init"]()},f=function(t){return this.xf["@@transducer/result"](t)};function p(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}function h(t,e,n){for(var r=0,o=n.length;r<o;){if(t(e,n[r]))return!0;r+=1}return!1}function y(t,e){return Object.prototype.hasOwnProperty.call(e,t)}var d="function"==typeof Object.is?Object.is:function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e},g=Object.prototype.toString,m=function(){return"[object Arguments]"===g.call(arguments)?function(t){return"[object Arguments]"===g.call(t)}:function(t){return y("callee",t)}}(),v=!{toString:null}.propertyIsEnumerable("toString"),b=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],S=function(){return arguments.propertyIsEnumerable("length")}(),j=function(t,e){for(var n=0;n<t.length;){if(t[n]===e)return!0;n+=1}return!1},w="function"!=typeof Object.keys||S?n((function(t){if(Object(t)!==t)return[];var e,n,r=[],o=S&&m(t);for(e in t)!y(e,t)||o&&"length"===e||(r[r.length]=e);if(v)for(n=b.length-1;n>=0;)y(e=b[n],t)&&!j(r,e)&&(r[r.length]=e),n-=1;return r})):n((function(t){return Object(t)!==t?[]:Object.keys(t)})),A=n((function(t){return null===t?"Null":void 0===t?"Undefined":Object.prototype.toString.call(t).slice(8,-1)}));function _(t,e,n,r){var o=p(t);function a(t,e){return k(t,e,n.slice(),r.slice())}return!h((function(t,e){return!h(a,e,t)}),p(e),o)}function k(t,e,n,r){if(d(t,e))return!0;var o,a,s=A(t);if(s!==A(e))return!1;if("function"==typeof t["fantasy-land/equals"]||"function"==typeof e["fantasy-land/equals"])return"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e)&&"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t);if("function"==typeof t.equals||"function"==typeof e.equals)return"function"==typeof t.equals&&t.equals(e)&&"function"==typeof e.equals&&e.equals(t);switch(s){case"Arguments":case"Array":case"Object":if("function"==typeof t.constructor&&"Promise"===(o=t.constructor,null==(a=String(o).match(/^function (\w*)/))?"":a[1]))return t===e;break;case"Boolean":case"Number":case"String":if(typeof t!=typeof e||!d(t.valueOf(),e.valueOf()))return!1;break;case"Date":if(!d(t.valueOf(),e.valueOf()))return!1;break;case"Error":return t.name===e.name&&t.message===e.message;case"RegExp":if(t.source!==e.source||t.global!==e.global||t.ignoreCase!==e.ignoreCase||t.multiline!==e.multiline||t.sticky!==e.sticky||t.unicode!==e.unicode)return!1}for(var i=n.length-1;i>=0;){if(n[i]===t)return r[i]===e;i-=1}switch(s){case"Map":return t.size===e.size&&_(t.entries(),e.entries(),n.concat([t]),r.concat([e]));case"Set":return t.size===e.size&&_(t.values(),e.values(),n.concat([t]),r.concat([e]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var u=w(t);if(u.length!==w(e).length)return!1;var c=n.concat([t]),l=r.concat([e]);for(i=u.length-1;i>=0;){var f=u[i];if(!y(f,e)||!k(e[f],t[f],c,l))return!1;i-=1}return!0}var O=r((function(t,e){return k(t,e,[],[])}));function T(t,e){return function(t,e,n){var r,o;if("function"==typeof t.indexOf)switch(typeof e){case"number":if(0===e){for(r=1/e;n<t.length;){if(0===(o=t[n])&&1/o===r)return n;n+=1}return-1}if(e!=e){for(;n<t.length;){if("number"==typeof(o=t[n])&&o!=o)return n;n+=1}return-1}return t.indexOf(e,n);case"string":case"boolean":case"function":case"undefined":return t.indexOf(e,n);case"object":if(null===e)return t.indexOf(e,n)}for(;n<t.length;){if(O(t[n],e))return n;n+=1}return-1}(e,t,0)>=0}function R(t,e){for(var n=0,r=e.length,o=Array(r);n<r;)o[n]=t(e[n]),n+=1;return o}function x(t){return'"'+t.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var U=function(t){return(t<10?"0":"")+t},C="function"==typeof Date.prototype.toISOString?function(t){return t.toISOString()}:function(t){return t.getUTCFullYear()+"-"+U(t.getUTCMonth()+1)+"-"+U(t.getUTCDate())+"T"+U(t.getUTCHours())+":"+U(t.getUTCMinutes())+":"+U(t.getUTCSeconds())+"."+(t.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function N(t,e,n){for(var r=0,o=n.length;r<o;)e=t(e,n[r]),r+=1;return e}function q(t){return"[object Object]"===Object.prototype.toString.call(t)}var E=function(){function t(t,e){this.xf=e,this.f=t}return t.prototype["@@transducer/init"]=l,t.prototype["@@transducer/result"]=f,t.prototype["@@transducer/step"]=function(t,e){return this.f(e)?this.xf["@@transducer/step"](t,e):t},t}();function I(t){return function(e){return new E(t,e)}}var P=r(c(["fantasy-land/filter","filter"],I,(function(t,e){return q(e)?N((function(n,r){return t(e[r])&&(n[r]=e[r]),n}),{},w(e)):function(t,e){for(var n=0,r=e.length,o=[];n<r;)t(e[n])&&(o[o.length]=e[n]),n+=1;return o}(t,e)}))),$=r((function(t,e){return P((n=t,function(){return!n.apply(this,arguments)}),e);var n}));function B(t,e){var n=function(n){var r=e.concat([t]);return T(n,r)?"<Circular>":B(n,r)},r=function(t,e){return R((function(e){return x(e)+": "+n(t[e])}),e.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+R(n,t).join(", ")+"))";case"[object Array]":return"["+R(n,t).concat(r(t,$((function(t){return/^\d+$/.test(t)}),w(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+n(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?n(NaN):x(C(t)))+")";case"[object Map]":return"new Map("+n(Array.from(t))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+n(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object Set]":return"new Set("+n(Array.from(t).sort())+")";case"[object String]":return"object"==typeof t?"new String("+n(t.valueOf())+")":x(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var o=t.toString();if("[object Object]"!==o)return o}return"{"+r(t,w(t)).join(", ")+"}"}}var F=n((function(t){return B(t,[])})),K=function(){function t(t,e){this.xf=e,this.f=t}return t.prototype["@@transducer/init"]=l,t.prototype["@@transducer/result"]=f,t.prototype["@@transducer/step"]=function(t,e){return this.xf["@@transducer/step"](t,this.f(e))},t}(),M=r(c(["fantasy-land/map","map"],(function(t){return function(e){return new K(t,e)}}),(function(t,e){switch(Object.prototype.toString.call(e)){case"[object Function]":return s(e.length,(function(){return t.call(this,e.apply(this,arguments))}));case"[object Object]":return N((function(n,r){return n[r]=t(e[r]),n}),{},w(e));default:return R(t,e)}}))),z=Number.isInteger||function(t){return(t|0)===t};function G(t){return"[object String]"===Object.prototype.toString.call(t)}var L=r((function(t,e){var n=t<0?e.length+t:t;return G(e)?e.charAt(n):e[n]})),D=r((function(t,e){if(null!=e)return z(t)?L(t,e):e[t]})),Z=n((function(t){return!!u(t)||!!t&&("object"==typeof t&&(!G(t)&&(0===t.length||t.length>0&&(t.hasOwnProperty(0)&&t.hasOwnProperty(t.length-1)))))})),H="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function J(t,e,n){return function(r,o,a){if(Z(a))return t(r,o,a);if(null==a)return o;if("function"==typeof a["fantasy-land/reduce"])return e(r,o,a,"fantasy-land/reduce");if(null!=a[H])return n(r,o,a[H]());if("function"==typeof a.next)return n(r,o,a);if("function"==typeof a.reduce)return e(r,o,a,"reduce");throw new TypeError("reduce: list must be array or iterable")}}function W(t,e,n){for(var r=0,o=n.length;r<o;){if((e=t["@@transducer/step"](e,n[r]))&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}r+=1}return t["@@transducer/result"](e)}var X=r((function(t,e){return o(t.length,(function(){return t.apply(e,arguments)}))}));function Y(t,e,n){for(var r=n.next();!r.done;){if((e=t["@@transducer/step"](e,r.value))&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}r=n.next()}return t["@@transducer/result"](e)}function Q(t,e,n,r){return t["@@transducer/result"](n[r](X(t["@@transducer/step"],t),e))}var V=J(W,Q,Y),tt=function(){function t(t){this.f=t}return t.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},t.prototype["@@transducer/result"]=function(t){return t},t.prototype["@@transducer/step"]=function(t,e){return this.f(t,e)},t}();var et=i((function(t,e,n){return V("function"==typeof t?new tt(t):t,e,n)}));var nt=n((function(t){return null==t})),rt=i((function t(e,n,r){if(0===e.length)return n;var o=e[0];if(e.length>1){var a=!nt(r)&&y(o,r)&&"object"==typeof r[o]?r[o]:z(e[1])?[]:{};n=t(Array.prototype.slice.call(e,1),n,a)}return function(t,e,n){if(z(t)&&u(n)){var r=[].concat(n);return r[t]=e,r}var o={};for(var a in n)o[a]=n[a];return o[t]=e,o}(o,n,r)}));function ot(t,e){return function(){return e.call(this,t.apply(this,arguments))}}function at(t,e){return function(){var n=arguments.length;if(0===n)return e();var r=arguments[n-1];return u(r)||"function"!=typeof r[t]?e.apply(this,arguments):r[t].apply(r,Array.prototype.slice.call(arguments,0,n-1))}}var st=n(at("tail",i(at("slice",(function(t,e,n){return Array.prototype.slice.call(n,t,e)})))(1,1/0)));function it(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return o(arguments[0].length,et(ot,arguments[0],st(arguments)))}var ut=n((function(t){return G(t)?t.split("").reverse().join(""):Array.prototype.slice.call(t,0).reverse()}));function ct(){if(0===arguments.length)throw new Error("compose requires at least one argument");return it.apply(this,ut(arguments))}var lt=n((function(t){return s(t.length,t)}));var ft=n((function(t){return null!=t&&"function"==typeof t["fantasy-land/empty"]?t["fantasy-land/empty"]():null!=t&&null!=t.constructor&&"function"==typeof t.constructor["fantasy-land/empty"]?t.constructor["fantasy-land/empty"]():null!=t&&"function"==typeof t.empty?t.empty():null!=t&&null!=t.constructor&&"function"==typeof t.constructor.empty?t.constructor.empty():u(t)?[]:G(t)?"":q(t)?{}:m(t)?function(){return arguments}():function(t){var e=Object.prototype.toString.call(t);return"[object Uint8ClampedArray]"===e||"[object Int8Array]"===e||"[object Uint8Array]"===e||"[object Int16Array]"===e||"[object Uint16Array]"===e||"[object Int32Array]"===e||"[object Uint32Array]"===e||"[object Float32Array]"===e||"[object Float64Array]"===e||"[object BigInt64Array]"===e||"[object BigUint64Array]"===e}(t)?t.constructor.from(""):void 0})),pt=function(){function t(t,e){this.xf=e,this.f=t,this.found=!1}return t.prototype["@@transducer/init"]=l,t.prototype["@@transducer/result"]=function(t){return this.found||(t=this.xf["@@transducer/step"](t,void 0)),this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,e){var n;return this.f(e)&&(this.found=!0,t=(n=this.xf["@@transducer/step"](t,e))&&n["@@transducer/reduced"]?n:{"@@transducer/value":n,"@@transducer/reduced":!0}),t},t}();function ht(t){return function(e){return new pt(t,e)}}var yt=r(c(["find"],ht,(function(t,e){for(var n=0,r=e.length;n<r;){if(t(e[n]))return e[n];n+=1}}))),dt=r(T),gt=r((function(t,e){return s(t+1,(function(){var n=arguments[t];if(null!=n&&function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e||"[object AsyncFunction]"===e||"[object GeneratorFunction]"===e||"[object AsyncGeneratorFunction]"===e}(n[e]))return n[e].apply(n,Array.prototype.slice.call(arguments,0,t));throw new TypeError(F(n)+' does not have a method named "'+e+'"')}))})),mt=n((function(t){return null!=t&&O(t,ft(t))})),vt=gt(1,"join"),bt=r((function(t,e){return function(n){return function(r){return M((function(t){return e(t,r)}),n(t(r)))}}})),St=r((function(t,e){return t.map((function(t){for(var n,r=e,o=0;o<t.length;){if(null==r)return;n=t[o],r=z(n)?L(n,r):r[n],o+=1}return r}))})),jt=r((function(t,e){return St([t],e)[0]})),wt=n((function(t){return bt(jt(t),rt(t))})),At=function(t){return{value:t,"fantasy-land/map":function(){return this}}},_t=r((function(t,e){return t(At)(e).value}));const kt=lt(((t,e,n,r)=>ct(D(r),yt((t=>dt(n,t[e]))))(t))),Ot=wt(["results","0","address_components"]),Tt=t=>{const e=t.results?t.results[0]:t.result;if(!e||mt(e))return{};let n=null;n=t.results?_t(Ot)(t):e.address_components;const r=kt(n,"types"),o=e.formatted_address,a=e.geometry&&e.geometry.location&&e.geometry.location.lat?e.geometry.location.lat:null,s=e.geometry&&e.geometry.location&&e.geometry.location.lng?e.geometry.location.lng:null,i=r("street_number","short_name")||"",u=r("route","long_name")||"",c=(i||u)&&`${i} ${u}`,l={state:r("administrative_area_level_1","short_name"),city:r("locality","short_name")||r("sublocality","short_name")||r("neighborhood","long_name")||r("administrative_area_level_3","long_name")||r("administrative_area_level_2","short_name"),street_1:c.trim(),country:r("country","short_name"),zipcode:r("postal_code","long_name"),latitude:a&&Number(a),longitude:s&&Number(s),formattedAddress:o};return P(Boolean)(l)};return t.GeoService=class{constructor(t){this.mapsKey=t}async geocode(t){const e=await fetch(`https://maps.googleapis.com/maps/api/geocode/json?address=${t}&key=${this.mapsKey}`),n=await e.json();return Tt(n)}async geocodeZip(t){const e=await fetch(`https://maps.googleapis.com/maps/api/geocode/json?components=country:US|postal_code:${t}&key=${this.mapsKey}`),n=await e.json();return Tt(n)}async reverseGeocode(t,e){const n=await fetch(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${t},${e}&key=${this.mapsKey}`),r=await n.json();return Tt(r)}async geoLocate(){const t=`https://www.googleapis.com/geolocation/v1/geolocate?key=${this.mapsKey}`,e=await fetch(t,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}}),n=await e.json(),{lat:r,lng:o}=n.location;return this.reverseGeocode(r,o)}async getLocationSuggestions(t){const{input:e,latitude:n,longitude:r,radius:o}=t,{requestCity:a,requestState:s,requestZipcode:i}=t,u=vt(",",P(Boolean,[n,r]));let{sessiontoken:c}=t;c||(c=crypto.randomUUID().replaceAll("-",""));const l=P(Boolean,{input:e,sessiontoken:c,location:u,radius:o,components:"country:US",types:"address",key:this.mapsKey});let f="";if(l){f=new URLSearchParams(l).toString()}const p=`https://maps.googleapis.com/maps/api/place/autocomplete/json?${f}`,h=await fetch(p,{method:"GET",headers:{Accept:"application/json"}}),y=await h.json();let d=[];if(y.predictions&&"OK"===y.status){const t={requestCity:a,requestState:s,requestZipcode:i};d=((t,e={})=>{const{requestCity:n,requestState:r,requestZipcode:o}=e,a=t=>({description:t.description,placeId:t.place_id});let s=null;return n||r||o||(s=t.map(a)),s=t.map((t=>{const e={description:t.description,place_id:t.place_id},a=t.terms.filter((t=>n&&t.value===n)).length>0?1:0,s=t.terms.filter((t=>r&&t.value===r)).length>0?1:0,i=t.terms.filter((t=>o&&t.value===o)).length>0?1:0;return e.score=a+s+i,e.stateMatch=!r||r&&s,e.zipCodeMatch=!o||o&&i,e})).filter((t=>!!t.stateMatch&&!!t.zipCodeMatch)).sort(((t,e)=>t.score===e.score?0:t.score<e.score?1:-1)).map(a),s})(y.predictions,t)}return{autocompletePredictions:d,sessiontoken:c}}async getPlaceId(t){const{placeId:e,sessiontoken:n}=t,r=P(Boolean,{place_id:e,sessiontoken:n,key:this.mapsKey});let o="";if(r){o=new URLSearchParams(r).toString()}const a=`https://maps.googleapis.com/maps/api/place/details/json?${o}`,s=await fetch(a),i=await s.json();return Tt(i)}async getNavigatorPosition(){const t=t=>{console.error(t)};navigator.geolocation&&navigator.geolocation.getCurrentPosition((t=>{const e=t.coords.latitude,n=t.coords.longitude;return this.reverseGeocode(e,n)}),t)||t({message:"geolocation is not enabled."})}},t.ThirstieAPI=class{#t;#e;#n;#r;#o;constructor(t,e={}){const{env:n,initState:r}=e;this.#o=n,this.#r={sessionToken:null,application:null,applicationRef:null,sessionRef:null,userRef:null,user:{},message:null},this.#t=t,this.#e=(t=>{let e="https://api.next.thirstie.com";switch(t?.toLowerCase()){case"prod":e="https://api.thirstie.com";break;case"sandbox":e="https://api.sandbox.thirstie.com"}return e})(n),this.#n=Object.seal(this.#r);const{sessionToken:o,application:a,applicationRef:s,sessionRef:i,userRef:u}=r||{};if(o||a||s||i||u){const t={sessionToken:o,application:a,applicationRef:s,sessionRef:i,userRef:u};this.apiState=t}}get sessionToken(){return this.#n.sessionToken}get sessionRef(){return this.#n.sessionRef}get userRef(){return this.#n.userRef}get applicationRef(){return this.#n.applicationRef}get application(){return this.#n.application}get sessionState(){const{sessionToken:t,application:e,applicationRef:n,sessionRef:r,userRef:o}=this.#n;return{sessionToken:t,application:e,applicationRef:n,sessionRef:r,userRef:o}}get apiState(){return this.#n}set apiState(t){try{return Object.assign(this.#n,t)}catch(t){return console.error("set apiState",t),this.#n}}#a(t){const e={application:t.application_name,applicationRef:t.uuid,sessionToken:t.token,sessionRef:t.session_uuid};if(t.user){e.userRef=t.user.id;const{birthday:n,email:r,prefix:o,guest:a,first_name:s,last_name:i,phone_number:u,last_login:c}=t.user;e.user={email:r,birthday:n,prefix:o,firstName:s,lastName:i,phoneNumber:u,guest:a,lastLogin:c}}this.apiState=e}#s(t){this.apiState=this.#r,console.log("session error",t)}async getNewSession(t={},e=!0){const{email:n,password:r}=t,o={basicAuth:e};n&&r&&(o.data={email:n,password:r});const a=await this.apiCaller("POST","/a/v2/sessions",o);return a&&a.ok&&a.data?a.data:{code:a.status,message:a.message||"unknown error",response:a}}async validateSession(t){if(t&&(this.apiState={sessionToken:t}),!this.sessionToken)return{};const e=await this.apiCaller("GET","/a/v2/sessions");return e&&e.ok&&e.data?e.data:await this.getNewSession()}async fetchSession(t=null){let e={};return e=this.sessionToken||t?await this.validateSession(t):await this.getNewSession(),e.token?this.#a(e):this.#s(e),this.apiState}async loginUser(t){const{email:e,password:n}=t,r=!this.sessionToken;if(!e||!n)throw new Error("Invalid credential payload");const o=await this.getNewSession(t,r);if(o.token)this.#a(o);else{this.#s(o);const{response:t}=o,{data:e}=t;e?.message&&(this.apiState.message=e?.message)}return this.apiState}async createUser(t,e=null){const n={},{email:r,password:o}=t,{birthday:a,prefix:s,firstName:i,lastName:u,phoneNumber:c,guestCheck:l,emailOptIn:f}=t,p={email:r,birthday:a,prefix:s,first_name:i,last_name:u,phone_number:c,guest_check:!!l};f&&(p.aux_data={thirstieaccess_email_opt_in:f});const h=!this.sessionToken;r&&o?p.password=o:p.guest=!0,n.data=p,n.basicAuth=h;const y=await this.apiCaller("POST","/a/v2/users",n,e);return y.data.token?this.#a(y.data):this.#s(y),this.apiState}async apiCaller(t,e,n={},r=null){const{data:o,params:a,basicAuth:s}=n,{sessionRef:i,application:u,applicationRef:c,userRef:l}=this.apiState;if(!this.sessionToken&&!s)throw new Error("Invalid Authorization");const f={method:t,headers:{Authorization:this.sessionToken&&!s?`Bearer ${this.sessionToken}`:`Basic ${btoa(this.#t)}`,Accept:"application/json","Content-Type":"application/json"}};["POST","PUT","PATCH"].includes(t)&&o&&(f.body=JSON.stringify(o));let p="";if(a){p=new URLSearchParams(a).toString()}const h={environment:this.#o,sessionRef:i,application:u,applicationRef:c,userRef:l,data:o,queryString:p,url:e},y=`${this.#e}${e}${p}`;try{const t=await async function(t,e){const n={ok:null,status:null,statusText:null,data:{}};try{const r=await fetch(t,e);let o={};const a=r.headers;return a&&a.get("content-type")?.indexOf("application/json")>-1&&parseInt(a.get("content-length"))>0&&(o=await r.json()),Object.assign(n,{ok:r.ok,status:r.status,statusText:r.statusText,data:o,url:t})}catch(e){return console.error("apiRequest error: ",e),Object.assign(n,{ok:!1,status:500,statusText:"ERROR",data:{message:"Network error",error:e},url:t})}}(y,f);if(t)return!t.ok&&r&&r({code:t.status,message:t.statusText||"unknown error",response:t,telemetryContext:h}),t}catch(t){return r&&r({code:500,message:"unknown error",error:t,telemetryContext:h}),t}}},t}({});
1
+ var thirstieclient=function(t){"use strict";function e(t){return null!=t&&"object"==typeof t&&!0===t["@@functional/placeholder"]}function n(t){return function n(r){return 0===arguments.length||e(r)?n:t.apply(this,arguments)}}function r(t){return function r(o,a){switch(arguments.length){case 0:return r;case 1:return e(o)?r:n((function(e){return t(o,e)}));default:return e(o)&&e(a)?r:e(o)?n((function(e){return t(e,a)})):e(a)?n((function(e){return t(o,e)})):t(o,a)}}}function o(t,e){switch(t){case 0:return function(){return e.apply(this,arguments)};case 1:return function(t){return e.apply(this,arguments)};case 2:return function(t,n){return e.apply(this,arguments)};case 3:return function(t,n,r){return e.apply(this,arguments)};case 4:return function(t,n,r,o){return e.apply(this,arguments)};case 5:return function(t,n,r,o,a){return e.apply(this,arguments)};case 6:return function(t,n,r,o,a,s){return e.apply(this,arguments)};case 7:return function(t,n,r,o,a,s,i){return e.apply(this,arguments)};case 8:return function(t,n,r,o,a,s,i,u){return e.apply(this,arguments)};case 9:return function(t,n,r,o,a,s,i,u,c){return e.apply(this,arguments)};case 10:return function(t,n,r,o,a,s,i,u,c,l){return e.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}function a(t,n,r){return function(){for(var s=[],i=0,u=t,c=0,l=!1;c<n.length||i<arguments.length;){var f;c<n.length&&(!e(n[c])||i>=arguments.length)?f=n[c]:(f=arguments[i],i+=1),s[c]=f,e(f)?l=!0:u-=1,c+=1}return!l&&u<=0?r.apply(this,s):o(Math.max(0,u),a(t,s,r))}}var s=r((function(t,e){return 1===t?n(e):o(t,a(t,[],e))}));function i(t){return function o(a,s,i){switch(arguments.length){case 0:return o;case 1:return e(a)?o:r((function(e,n){return t(a,e,n)}));case 2:return e(a)&&e(s)?o:e(a)?r((function(e,n){return t(e,s,n)})):e(s)?r((function(e,n){return t(a,e,n)})):n((function(e){return t(a,s,e)}));default:return e(a)&&e(s)&&e(i)?o:e(a)&&e(s)?r((function(e,n){return t(e,n,i)})):e(a)&&e(i)?r((function(e,n){return t(e,s,n)})):e(s)&&e(i)?r((function(e,n){return t(a,e,n)})):e(a)?n((function(e){return t(e,s,i)})):e(s)?n((function(e){return t(a,e,i)})):e(i)?n((function(e){return t(a,s,e)})):t(a,s,i)}}}var u=Array.isArray||function(t){return null!=t&&t.length>=0&&"[object Array]"===Object.prototype.toString.call(t)};function c(t,e,n){return function(){if(0===arguments.length)return n();var r=arguments[arguments.length-1];if(!u(r)){for(var o=0;o<t.length;){if("function"==typeof r[t[o]])return r[t[o]].apply(r,Array.prototype.slice.call(arguments,0,-1));o+=1}if(function(t){return null!=t&&"function"==typeof t["@@transducer/step"]}(r))return e.apply(null,Array.prototype.slice.call(arguments,0,-1))(r)}return n.apply(this,arguments)}}var l=function(){return this.xf["@@transducer/init"]()},f=function(t){return this.xf["@@transducer/result"](t)};function p(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}function h(t,e,n){for(var r=0,o=n.length;r<o;){if(t(e,n[r]))return!0;r+=1}return!1}function y(t,e){return Object.prototype.hasOwnProperty.call(e,t)}var d="function"==typeof Object.is?Object.is:function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e},g=Object.prototype.toString,m=function(){return"[object Arguments]"===g.call(arguments)?function(t){return"[object Arguments]"===g.call(t)}:function(t){return y("callee",t)}}(),v=!{toString:null}.propertyIsEnumerable("toString"),b=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],S=function(){return arguments.propertyIsEnumerable("length")}(),j=function(t,e){for(var n=0;n<t.length;){if(t[n]===e)return!0;n+=1}return!1},w="function"!=typeof Object.keys||S?n((function(t){if(Object(t)!==t)return[];var e,n,r=[],o=S&&m(t);for(e in t)!y(e,t)||o&&"length"===e||(r[r.length]=e);if(v)for(n=b.length-1;n>=0;)y(e=b[n],t)&&!j(r,e)&&(r[r.length]=e),n-=1;return r})):n((function(t){return Object(t)!==t?[]:Object.keys(t)})),A=n((function(t){return null===t?"Null":void 0===t?"Undefined":Object.prototype.toString.call(t).slice(8,-1)}));function _(t,e,n,r){var o=p(t);function a(t,e){return k(t,e,n.slice(),r.slice())}return!h((function(t,e){return!h(a,e,t)}),p(e),o)}function k(t,e,n,r){if(d(t,e))return!0;var o,a,s=A(t);if(s!==A(e))return!1;if("function"==typeof t["fantasy-land/equals"]||"function"==typeof e["fantasy-land/equals"])return"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e)&&"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t);if("function"==typeof t.equals||"function"==typeof e.equals)return"function"==typeof t.equals&&t.equals(e)&&"function"==typeof e.equals&&e.equals(t);switch(s){case"Arguments":case"Array":case"Object":if("function"==typeof t.constructor&&"Promise"===(o=t.constructor,null==(a=String(o).match(/^function (\w*)/))?"":a[1]))return t===e;break;case"Boolean":case"Number":case"String":if(typeof t!=typeof e||!d(t.valueOf(),e.valueOf()))return!1;break;case"Date":if(!d(t.valueOf(),e.valueOf()))return!1;break;case"Error":return t.name===e.name&&t.message===e.message;case"RegExp":if(t.source!==e.source||t.global!==e.global||t.ignoreCase!==e.ignoreCase||t.multiline!==e.multiline||t.sticky!==e.sticky||t.unicode!==e.unicode)return!1}for(var i=n.length-1;i>=0;){if(n[i]===t)return r[i]===e;i-=1}switch(s){case"Map":return t.size===e.size&&_(t.entries(),e.entries(),n.concat([t]),r.concat([e]));case"Set":return t.size===e.size&&_(t.values(),e.values(),n.concat([t]),r.concat([e]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var u=w(t);if(u.length!==w(e).length)return!1;var c=n.concat([t]),l=r.concat([e]);for(i=u.length-1;i>=0;){var f=u[i];if(!y(f,e)||!k(e[f],t[f],c,l))return!1;i-=1}return!0}var O=r((function(t,e){return k(t,e,[],[])}));function T(t,e){return function(t,e,n){var r,o;if("function"==typeof t.indexOf)switch(typeof e){case"number":if(0===e){for(r=1/e;n<t.length;){if(0===(o=t[n])&&1/o===r)return n;n+=1}return-1}if(e!=e){for(;n<t.length;){if("number"==typeof(o=t[n])&&o!=o)return n;n+=1}return-1}return t.indexOf(e,n);case"string":case"boolean":case"function":case"undefined":return t.indexOf(e,n);case"object":if(null===e)return t.indexOf(e,n)}for(;n<t.length;){if(O(t[n],e))return n;n+=1}return-1}(e,t,0)>=0}function x(t,e){for(var n=0,r=e.length,o=Array(r);n<r;)o[n]=t(e[n]),n+=1;return o}function R(t){return'"'+t.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var U=function(t){return(t<10?"0":"")+t},q="function"==typeof Date.prototype.toISOString?function(t){return t.toISOString()}:function(t){return t.getUTCFullYear()+"-"+U(t.getUTCMonth()+1)+"-"+U(t.getUTCDate())+"T"+U(t.getUTCHours())+":"+U(t.getUTCMinutes())+":"+U(t.getUTCSeconds())+"."+(t.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function C(t,e,n){for(var r=0,o=n.length;r<o;)e=t(e,n[r]),r+=1;return e}function N(t){return"[object Object]"===Object.prototype.toString.call(t)}var E=function(){function t(t,e){this.xf=e,this.f=t}return t.prototype["@@transducer/init"]=l,t.prototype["@@transducer/result"]=f,t.prototype["@@transducer/step"]=function(t,e){return this.f(e)?this.xf["@@transducer/step"](t,e):t},t}();function I(t){return function(e){return new E(t,e)}}var P=r(c(["fantasy-land/filter","filter"],I,(function(t,e){return N(e)?C((function(n,r){return t(e[r])&&(n[r]=e[r]),n}),{},w(e)):function(t,e){for(var n=0,r=e.length,o=[];n<r;)t(e[n])&&(o[o.length]=e[n]),n+=1;return o}(t,e)}))),$=r((function(t,e){return P((n=t,function(){return!n.apply(this,arguments)}),e);var n}));function B(t,e){var n=function(n){var r=e.concat([t]);return T(n,r)?"<Circular>":B(n,r)},r=function(t,e){return x((function(e){return R(e)+": "+n(t[e])}),e.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+x(n,t).join(", ")+"))";case"[object Array]":return"["+x(n,t).concat(r(t,$((function(t){return/^\d+$/.test(t)}),w(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+n(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?n(NaN):R(q(t)))+")";case"[object Map]":return"new Map("+n(Array.from(t))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+n(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object Set]":return"new Set("+n(Array.from(t).sort())+")";case"[object String]":return"object"==typeof t?"new String("+n(t.valueOf())+")":R(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var o=t.toString();if("[object Object]"!==o)return o}return"{"+r(t,w(t)).join(", ")+"}"}}var F=n((function(t){return B(t,[])})),K=function(){function t(t,e){this.xf=e,this.f=t}return t.prototype["@@transducer/init"]=l,t.prototype["@@transducer/result"]=f,t.prototype["@@transducer/step"]=function(t,e){return this.xf["@@transducer/step"](t,this.f(e))},t}(),M=r(c(["fantasy-land/map","map"],(function(t){return function(e){return new K(t,e)}}),(function(t,e){switch(Object.prototype.toString.call(e)){case"[object Function]":return s(e.length,(function(){return t.call(this,e.apply(this,arguments))}));case"[object Object]":return C((function(n,r){return n[r]=t(e[r]),n}),{},w(e));default:return x(t,e)}}))),z=Number.isInteger||function(t){return(t|0)===t};function G(t){return"[object String]"===Object.prototype.toString.call(t)}var L=r((function(t,e){var n=t<0?e.length+t:t;return G(e)?e.charAt(n):e[n]})),D=r((function(t,e){if(null!=e)return z(t)?L(t,e):e[t]})),Z=n((function(t){return!!u(t)||!!t&&("object"==typeof t&&(!G(t)&&(0===t.length||t.length>0&&(t.hasOwnProperty(0)&&t.hasOwnProperty(t.length-1)))))})),H="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function J(t,e,n){return function(r,o,a){if(Z(a))return t(r,o,a);if(null==a)return o;if("function"==typeof a["fantasy-land/reduce"])return e(r,o,a,"fantasy-land/reduce");if(null!=a[H])return n(r,o,a[H]());if("function"==typeof a.next)return n(r,o,a);if("function"==typeof a.reduce)return e(r,o,a,"reduce");throw new TypeError("reduce: list must be array or iterable")}}function W(t,e,n){for(var r=0,o=n.length;r<o;){if((e=t["@@transducer/step"](e,n[r]))&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}r+=1}return t["@@transducer/result"](e)}var X=r((function(t,e){return o(t.length,(function(){return t.apply(e,arguments)}))}));function Y(t,e,n){for(var r=n.next();!r.done;){if((e=t["@@transducer/step"](e,r.value))&&e["@@transducer/reduced"]){e=e["@@transducer/value"];break}r=n.next()}return t["@@transducer/result"](e)}function Q(t,e,n,r){return t["@@transducer/result"](n[r](X(t["@@transducer/step"],t),e))}var V=J(W,Q,Y),tt=function(){function t(t){this.f=t}return t.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},t.prototype["@@transducer/result"]=function(t){return t},t.prototype["@@transducer/step"]=function(t,e){return this.f(t,e)},t}();var et=i((function(t,e,n){return V("function"==typeof t?new tt(t):t,e,n)}));var nt=n((function(t){return null==t})),rt=i((function t(e,n,r){if(0===e.length)return n;var o=e[0];if(e.length>1){var a=!nt(r)&&y(o,r)&&"object"==typeof r[o]?r[o]:z(e[1])?[]:{};n=t(Array.prototype.slice.call(e,1),n,a)}return function(t,e,n){if(z(t)&&u(n)){var r=[].concat(n);return r[t]=e,r}var o={};for(var a in n)o[a]=n[a];return o[t]=e,o}(o,n,r)}));function ot(t,e){return function(){return e.call(this,t.apply(this,arguments))}}function at(t,e){return function(){var n=arguments.length;if(0===n)return e();var r=arguments[n-1];return u(r)||"function"!=typeof r[t]?e.apply(this,arguments):r[t].apply(r,Array.prototype.slice.call(arguments,0,n-1))}}var st=n(at("tail",i(at("slice",(function(t,e,n){return Array.prototype.slice.call(n,t,e)})))(1,1/0)));function it(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return o(arguments[0].length,et(ot,arguments[0],st(arguments)))}var ut=n((function(t){return G(t)?t.split("").reverse().join(""):Array.prototype.slice.call(t,0).reverse()}));function ct(){if(0===arguments.length)throw new Error("compose requires at least one argument");return it.apply(this,ut(arguments))}var lt=n((function(t){return s(t.length,t)}));var ft=n((function(t){return null!=t&&"function"==typeof t["fantasy-land/empty"]?t["fantasy-land/empty"]():null!=t&&null!=t.constructor&&"function"==typeof t.constructor["fantasy-land/empty"]?t.constructor["fantasy-land/empty"]():null!=t&&"function"==typeof t.empty?t.empty():null!=t&&null!=t.constructor&&"function"==typeof t.constructor.empty?t.constructor.empty():u(t)?[]:G(t)?"":N(t)?{}:m(t)?function(){return arguments}():function(t){var e=Object.prototype.toString.call(t);return"[object Uint8ClampedArray]"===e||"[object Int8Array]"===e||"[object Uint8Array]"===e||"[object Int16Array]"===e||"[object Uint16Array]"===e||"[object Int32Array]"===e||"[object Uint32Array]"===e||"[object Float32Array]"===e||"[object Float64Array]"===e||"[object BigInt64Array]"===e||"[object BigUint64Array]"===e}(t)?t.constructor.from(""):void 0})),pt=function(){function t(t,e){this.xf=e,this.f=t,this.found=!1}return t.prototype["@@transducer/init"]=l,t.prototype["@@transducer/result"]=function(t){return this.found||(t=this.xf["@@transducer/step"](t,void 0)),this.xf["@@transducer/result"](t)},t.prototype["@@transducer/step"]=function(t,e){var n;return this.f(e)&&(this.found=!0,t=(n=this.xf["@@transducer/step"](t,e))&&n["@@transducer/reduced"]?n:{"@@transducer/value":n,"@@transducer/reduced":!0}),t},t}();function ht(t){return function(e){return new pt(t,e)}}var yt=r(c(["find"],ht,(function(t,e){for(var n=0,r=e.length;n<r;){if(t(e[n]))return e[n];n+=1}}))),dt=r(T),gt=r((function(t,e){return s(t+1,(function(){var n=arguments[t];if(null!=n&&function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e||"[object AsyncFunction]"===e||"[object GeneratorFunction]"===e||"[object AsyncGeneratorFunction]"===e}(n[e]))return n[e].apply(n,Array.prototype.slice.call(arguments,0,t));throw new TypeError(F(n)+' does not have a method named "'+e+'"')}))})),mt=n((function(t){return null!=t&&O(t,ft(t))})),vt=gt(1,"join"),bt=r((function(t,e){return function(n){return function(r){return M((function(t){return e(t,r)}),n(t(r)))}}})),St=r((function(t,e){return t.map((function(t){for(var n,r=e,o=0;o<t.length;){if(null==r)return;n=t[o],r=z(n)?L(n,r):r[n],o+=1}return r}))})),jt=r((function(t,e){return St([t],e)[0]})),wt=n((function(t){return bt(jt(t),rt(t))})),At=function(t){return{value:t,"fantasy-land/map":function(){return this}}},_t=r((function(t,e){return t(At)(e).value}));const kt=lt(((t,e,n,r)=>ct(D(r),yt((t=>dt(n,t[e]))))(t))),Ot=wt(["results","0","address_components"]),Tt=t=>{const e=t.results?t.results[0]:t.result;if(!e||mt(e))return{};let n=null;n=t.results?_t(Ot)(t):e.address_components;const r=kt(n,"types"),o=e.formatted_address,a=e.geometry&&e.geometry.location&&e.geometry.location.lat?e.geometry.location.lat:null,s=e.geometry&&e.geometry.location&&e.geometry.location.lng?e.geometry.location.lng:null,i=r("street_number","short_name")||"",u=r("route","long_name")||"",c=(i||u)&&`${i} ${u}`,l={state:r("administrative_area_level_1","short_name"),city:r("locality","short_name")||r("sublocality","short_name")||r("neighborhood","long_name")||r("administrative_area_level_3","long_name")||r("administrative_area_level_2","short_name"),street_1:c.trim(),country:r("country","short_name"),zipcode:r("postal_code","long_name"),latitude:a&&Number(a),longitude:s&&Number(s),formattedAddress:o};return P(Boolean)(l)};return t.GeoService=class{constructor(t){this.mapsKey=t}async geocode(t){const e=await fetch(`https://maps.googleapis.com/maps/api/geocode/json?address=${t}&key=${this.mapsKey}`),n=await e.json();return Tt(n)}async geocodeZip(t){const e=await fetch(`https://maps.googleapis.com/maps/api/geocode/json?components=country:US|postal_code:${t}&key=${this.mapsKey}`),n=await e.json();return Tt(n)}async reverseGeocode(t,e){const n=await fetch(`https://maps.googleapis.com/maps/api/geocode/json?latlng=${t},${e}&key=${this.mapsKey}`),r=await n.json();return Tt(r)}async geoLocate(){const t=`https://www.googleapis.com/geolocation/v1/geolocate?key=${this.mapsKey}`,e=await fetch(t,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}}),n=await e.json(),{lat:r,lng:o}=n.location;return this.reverseGeocode(r,o)}async getLocationSuggestions(t){const{input:e,latitude:n,longitude:r,radius:o}=t,{requestCity:a,requestState:s,requestZipcode:i}=t,u=vt(",",P(Boolean,[n,r]));let{sessiontoken:c}=t;c||(c=crypto.randomUUID().replaceAll("-",""));const l=P(Boolean,{input:e,sessiontoken:c,location:u,radius:o,components:"country:US",types:"address",key:this.mapsKey});let f="";if(l){f=new URLSearchParams(l).toString()}const p=`https://maps.googleapis.com/maps/api/place/autocomplete/json?${f}`,h=await fetch(p,{method:"GET",headers:{Accept:"application/json"}}),y=await h.json();let d=[];if(y.predictions&&"OK"===y.status){const t={requestCity:a,requestState:s,requestZipcode:i};d=((t,e={})=>{const{requestCity:n,requestState:r,requestZipcode:o}=e,a=t=>({description:t.description,placeId:t.place_id});let s=null;return n||r||o||(s=t.map(a)),s=t.map((t=>{const e={description:t.description,place_id:t.place_id},a=t.terms.filter((t=>n&&t.value===n)).length>0?1:0,s=t.terms.filter((t=>r&&t.value===r)).length>0?1:0,i=t.terms.filter((t=>o&&t.value===o)).length>0?1:0;return e.score=a+s+i,e.stateMatch=!r||r&&s,e.zipCodeMatch=!o||o&&i,e})).filter((t=>!!t.stateMatch&&!!t.zipCodeMatch)).sort(((t,e)=>t.score===e.score?0:t.score<e.score?1:-1)).map(a),s})(y.predictions,t)}return{autocompletePredictions:d,sessiontoken:c}}async getPlaceId(t){const{placeId:e,sessiontoken:n}=t,r=P(Boolean,{place_id:e,sessiontoken:n,key:this.mapsKey});let o="";if(r){o=new URLSearchParams(r).toString()}const a=`https://maps.googleapis.com/maps/api/place/details/json?${o}`,s=await fetch(a),i=await s.json();return Tt(i)}async getNavigatorPosition(){const t=t=>{console.error(t)};navigator.geolocation&&navigator.geolocation.getCurrentPosition((t=>{const e=t.coords.latitude,n=t.coords.longitude;return this.reverseGeocode(e,n)}),t)||t({message:"geolocation is not enabled."})}},t.ThirstieAPI=class{#t;#e;#n;#r;#o;constructor(t,e={}){const{env:n,initState:r}=e;this.#o=n,this.#r={sessionToken:null,application:null,applicationRef:null,sessionRef:null,userRef:null,user:{},message:null},this.#t=t,this.#e=(t=>{let e="https://api.next.thirstie.com";switch(t?.toLowerCase()){case"prod":e="https://api.thirstie.com";break;case"sandbox":e="https://api.sandbox.thirstie.com"}return e})(n),this.#n=Object.seal(this.#r);const{sessionToken:o,application:a,applicationRef:s,sessionRef:i}=r||{};if(o&&a&&s&&i){const t={sessionToken:o,application:a,applicationRef:s,sessionRef:i};this.apiState=t}}get sessionToken(){return this.#n.sessionToken}get sessionRef(){return this.#n.sessionRef}get userRef(){return this.#n.userRef}get applicationRef(){return this.#n.applicationRef}get application(){return this.#n.application}get sessionState(){const{sessionToken:t,application:e,applicationRef:n,sessionRef:r,userRef:o}=this.#n;return{sessionToken:t,application:e,applicationRef:n,sessionRef:r,userRef:o}}get apiState(){return this.#n}set apiState(t){try{return Object.assign(this.#n,t)}catch(t){return console.error("set apiState",t),this.#n}}#a(t){const e={application:t.application_name,applicationRef:t.uuid,sessionToken:t.token,sessionRef:t.session_uuid};if(e.userRef=t.user?.id,t.user){const{birthday:n,email:r,prefix:o,guest:a,first_name:s,last_name:i,phone_number:u,last_login:c}=t.user;e.user={email:r,birthday:n,prefix:o,firstName:s,lastName:i,phoneNumber:u,guest:a,lastLogin:c}}this.apiState=e}#s(t){this.apiState=this.#r,console.error("session error",t)}async getNewSession(t={},e=!0){const{email:n,password:r}=t,o={basicAuth:e};n&&r&&(o.data={email:n,password:r});const a=await this.apiCaller("POST","/a/v2/sessions",o);return a&&a.ok&&a.data?a.data:{code:a.status,message:a.message||"unknown error",response:a}}async validateSession(t){if(t&&(this.apiState={sessionToken:t}),!this.sessionToken)return{};const e=await this.apiCaller("GET","/a/v2/sessions");return e&&e.ok&&e.data?e.data:await this.getNewSession()}async fetchSession(t=null){let e={};return e=this.sessionToken||t?await this.validateSession(t):await this.getNewSession(),e.token?this.#a(e):this.#s(e),this.apiState}async loginUser(t){const{email:e,password:n}=t,r=!this.sessionToken;if(!e||!n)throw new Error("Invalid credential payload");const o=await this.getNewSession(t,r);if(o.token)this.#a(o);else{this.#s(o);const{response:t}=o,{data:e}=t;e?.message&&(this.apiState.message=e?.message)}return this.apiState}async createUser(t,e=null){const n={},{email:r,password:o}=t,{birthday:a,prefix:s,firstName:i,lastName:u,phoneNumber:c,guestCheck:l,emailOptIn:f}=t,p={email:r,birthday:a,prefix:s,first_name:i,last_name:u,phone_number:c,guest_check:!!l};f&&(p.aux_data={thirstieaccess_email_opt_in:f});const h=!this.sessionToken;r&&o?p.password=o:p.guest=!0,n.data=p,n.basicAuth=h;const y=await this.apiCaller("POST","/a/v2/users",n,e);return y.data.token?this.#a(y.data):this.#s(y),this.apiState}async apiCaller(t,e,n={},r=null){const{data:o,params:a,basicAuth:s}=n,{sessionRef:i,application:u,applicationRef:c,userRef:l}=this.apiState;if(!this.sessionToken&&!s)throw new Error("Invalid Authorization");const f={method:t,headers:{Authorization:this.sessionToken&&!s?`Bearer ${this.sessionToken}`:`Basic ${btoa(this.#t)}`,Accept:"application/json","Content-Type":"application/json"}};["POST","PUT","PATCH"].includes(t)&&o&&(f.body=JSON.stringify(o));const{requestUrl:p,queryString:h}=function(t,e,n=null){let r="";n&&(r="?"+new URLSearchParams(n).toString());return{requestUrl:`${t}${e}${r}`,queryString:r}}(this.#e,e,a),y={environment:this.#o,sessionRef:i,application:u,applicationRef:c,userRef:l,data:o,queryString:h,url:e};try{const t=await async function(t,e){const n={ok:null,status:null,statusText:null,data:{}};try{const r=await fetch(t,e);let o={};const a=r.headers;return a&&a.get("content-type")?.indexOf("application/json")>-1&&parseInt(a.get("content-length"))>0&&(o=await r.json()),Object.assign(n,{ok:r.ok,status:r.status,statusText:r.statusText,data:o,url:t})}catch(e){return console.error("apiRequest error: ",e),Object.assign(n,{ok:!1,status:500,statusText:"ERROR",data:{message:"Network error",error:e},url:t})}}(p,f);if(t)return!t.ok&&r&&r({code:t.status,message:t.statusText||"unknown error",response:t,telemetryContext:y}),t}catch(t){return r&&r({code:500,message:"unknown error",error:t,telemetryContext:y}),t}}},t}({});
package/dist/bundle.mjs CHANGED
@@ -1,3 +1,15 @@
1
+ function buildURL (baseUrl, endpointUrl, params = null) {
2
+ let queryString = '';
3
+ if (params) {
4
+ const searchParams = new URLSearchParams(params);
5
+ queryString = '?' + searchParams.toString();
6
+ }
7
+
8
+ const requestUrl = `${baseUrl}${endpointUrl}${queryString}`;
9
+
10
+ return { requestUrl, queryString };
11
+ }
12
+
1
13
  async function apiRequest (url, requestConfig) {
2
14
  const apiResponse = {
3
15
  ok: null,
@@ -80,9 +92,9 @@ class ThirstieAPI {
80
92
  this.#thirstieApiBaseUrl = thirstieAPIBaseUrl(env);
81
93
 
82
94
  this.#_apiState = Object.seal(this.#emptyState);
83
- const { sessionToken, application, applicationRef, sessionRef, userRef } = initState || {};
84
- if (sessionToken || application || applicationRef || sessionRef || userRef) {
85
- const apiInitState = { sessionToken, application, applicationRef, sessionRef, userRef };
95
+ const { sessionToken, application, applicationRef, sessionRef } = initState || {};
96
+ if (sessionToken && application && applicationRef && sessionRef) {
97
+ const apiInitState = { sessionToken, application, applicationRef, sessionRef };
86
98
  this.apiState = apiInitState;
87
99
  }
88
100
  }
@@ -143,8 +155,8 @@ class ThirstieAPI {
143
155
  sessionToken: data.token,
144
156
  sessionRef: data.session_uuid
145
157
  };
158
+ sessionData.userRef = data.user?.id;
146
159
  if (data.user) {
147
- sessionData.userRef = data.user.id;
148
160
  const {
149
161
  birthday, email, prefix, guest,
150
162
  first_name: firstName, last_name: lastName, phone_number: phoneNumber,
@@ -159,7 +171,7 @@ class ThirstieAPI {
159
171
 
160
172
  #handleSessionError (err) {
161
173
  this.apiState = this.#emptyState;
162
- console.log('session error', err);
174
+ console.error('session error', err);
163
175
  }
164
176
 
165
177
  /**
@@ -336,11 +348,7 @@ class ThirstieAPI {
336
348
  if ([ 'POST', 'PUT', 'PATCH' ].includes(method) && !!data) {
337
349
  requestConfig.body = JSON.stringify(data);
338
350
  }
339
- let queryString = '';
340
- if (params) {
341
- const searchParams = new URLSearchParams(params);
342
- queryString = searchParams.toString();
343
- }
351
+ const { requestUrl, queryString } = buildURL(this.#thirstieApiBaseUrl, url, params);
344
352
 
345
353
  const telemetryContext = {
346
354
  environment: this.#environment,
@@ -352,7 +360,6 @@ class ThirstieAPI {
352
360
  queryString,
353
361
  url
354
362
  };
355
- const requestUrl = `${this.#thirstieApiBaseUrl}${url}${queryString}`;
356
363
  try {
357
364
  const response = await apiRequest(requestUrl, requestConfig);
358
365
  if (response) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thirstie/thirstieservices",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Service layer for Thirstie ecommerce API",
5
5
  "author": "Thirstie, Inc. <technology@thirstie.com>",
6
6
  "license": "MIT",
@@ -33,5 +33,5 @@
33
33
  "testEnvironment": "jsdom",
34
34
  "transform": {}
35
35
  },
36
- "gitHead": "1676676862a2eb082ed01edc64871d710b902b09"
36
+ "gitHead": "876723c80b0e0b3a64191bb034e6d95dcfe74df3"
37
37
  }
@@ -1,4 +1,4 @@
1
- import apiRequest from './utils/apirequest.js';
1
+ import { apiRequest, buildURL } from './utils/apirequest.js';
2
2
  import { thirstieAPIBaseUrl } from './utils/environment.js';
3
3
 
4
4
  /**
@@ -35,9 +35,9 @@ export default class ThirstieAPI {
35
35
  this.#thirstieApiBaseUrl = thirstieAPIBaseUrl(env);
36
36
 
37
37
  this.#_apiState = Object.seal(this.#emptyState);
38
- const { sessionToken, application, applicationRef, sessionRef, userRef } = initState || {};
39
- if (sessionToken || application || applicationRef || sessionRef || userRef) {
40
- const apiInitState = { sessionToken, application, applicationRef, sessionRef, userRef };
38
+ const { sessionToken, application, applicationRef, sessionRef } = initState || {};
39
+ if (sessionToken && application && applicationRef && sessionRef) {
40
+ const apiInitState = { sessionToken, application, applicationRef, sessionRef };
41
41
  this.apiState = apiInitState;
42
42
  }
43
43
  }
@@ -98,8 +98,8 @@ export default class ThirstieAPI {
98
98
  sessionToken: data.token,
99
99
  sessionRef: data.session_uuid
100
100
  };
101
+ sessionData.userRef = data.user?.id;
101
102
  if (data.user) {
102
- sessionData.userRef = data.user.id;
103
103
  const {
104
104
  birthday, email, prefix, guest,
105
105
  first_name: firstName, last_name: lastName, phone_number: phoneNumber,
@@ -114,7 +114,7 @@ export default class ThirstieAPI {
114
114
 
115
115
  #handleSessionError (err) {
116
116
  this.apiState = this.#emptyState;
117
- console.log('session error', err);
117
+ console.error('session error', err);
118
118
  }
119
119
 
120
120
  /**
@@ -294,11 +294,7 @@ export default class ThirstieAPI {
294
294
  if ([ 'POST', 'PUT', 'PATCH' ].includes(method) && !!data) {
295
295
  requestConfig.body = JSON.stringify(data);
296
296
  }
297
- let queryString = '';
298
- if (params) {
299
- const searchParams = new URLSearchParams(params);
300
- queryString = searchParams.toString();
301
- }
297
+ const { requestUrl, queryString } = buildURL(this.#thirstieApiBaseUrl, url, params);
302
298
 
303
299
  const telemetryContext = {
304
300
  environment: this.#environment,
@@ -310,7 +306,6 @@ export default class ThirstieAPI {
310
306
  queryString,
311
307
  url
312
308
  };
313
- const requestUrl = `${this.#thirstieApiBaseUrl}${url}${queryString}`;
314
309
  try {
315
310
  const response = await apiRequest(requestUrl, requestConfig);
316
311
  if (response) {
@@ -1,4 +1,16 @@
1
- export default async function apiRequest (url, requestConfig) {
1
+ export function buildURL (baseUrl, endpointUrl, params = null) {
2
+ let queryString = '';
3
+ if (params) {
4
+ const searchParams = new URLSearchParams(params);
5
+ queryString = '?' + searchParams.toString();
6
+ }
7
+
8
+ const requestUrl = `${baseUrl}${endpointUrl}${queryString}`;
9
+
10
+ return { requestUrl, queryString };
11
+ }
12
+
13
+ export async function apiRequest (url, requestConfig) {
2
14
  const apiResponse = {
3
15
  ok: null,
4
16
  status: null,
@@ -6,7 +6,7 @@
6
6
  * - this test suite does not test integration with ThirstieAPI
7
7
  */
8
8
 
9
- import apiRequest from '../../src/thirstieapi/utils/apirequest';
9
+ import { apiRequest } from '../../src/thirstieapi/utils/apirequest';
10
10
 
11
11
  describe('apiRequest', () => {
12
12
  it('should work with get method', async () => {
@@ -1,4 +1,5 @@
1
1
  import { thirstieAPIBaseUrl } from '../../src/thirstieapi/utils/environment.js';
2
+ import { buildURL } from '../../src/thirstieapi/utils/apirequest.js';
2
3
 
3
4
  describe('thirstieAPIBaseUrl', () => {
4
5
  it('should return the correct url for env', () => {
@@ -14,3 +15,37 @@ describe('thirstieAPIBaseUrl', () => {
14
15
  });
15
16
  });
16
17
  });
18
+
19
+ describe('buildURL', () => {
20
+ it('should return a valid URL', () => {
21
+ const baseUrl = 'https://example.com';
22
+ const endpoint = '/resources';
23
+
24
+ const { requestUrl, queryString } = buildURL(baseUrl, endpoint);
25
+ const parsedUrl = new URL(requestUrl);
26
+
27
+ expect(parsedUrl.protocol).toBe('https:');
28
+ expect(parsedUrl.host).toBe('example.com');
29
+ expect(parsedUrl.pathname).toBe(endpoint);
30
+ expect(queryString).toBeFalsy();
31
+ expect(parsedUrl.search).toBe(queryString);
32
+ expect(parsedUrl.searchParams.get('qp1')).toBe(null);
33
+ });
34
+
35
+ it('should add query parameters and return a valid URL', () => {
36
+ const baseUrl = 'https://example.com';
37
+ const endpoint = '/resources';
38
+ const params = { qp1: 'one', qp2: 'two' };
39
+
40
+ const { requestUrl, queryString } = buildURL(baseUrl, endpoint, params);
41
+ const parsedUrl = new URL(requestUrl);
42
+
43
+ expect(parsedUrl.protocol).toBe('https:');
44
+ expect(parsedUrl.host).toBe('example.com');
45
+ expect(parsedUrl.pathname).toBe(endpoint);
46
+ expect(parsedUrl.search).toBe(queryString);
47
+ expect(parsedUrl.searchParams.get('qp1')).toBe(params.qp1);
48
+ expect(parsedUrl.searchParams.get('qp2')).toBe(params.qp2);
49
+ expect(parsedUrl.searchParams.get('qp3')).toBe(null);
50
+ });
51
+ });