@gorgonjs/gorgon 1.5.0 → 1.6.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
@@ -7,16 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.6.0] - 2026-03-22
11
+
12
+ ### Fixed
13
+
14
+ - Added nested types exports for newer versions of TypeScript (moduleResolution: bundler/node16/nodenext)
15
+
16
+ ## [1.5.1] - 2024-01-15
17
+
18
+ ### Fixed
19
+
20
+ - Updated the gorgon website for 1.5.1
21
+
22
+ ## [1.5.0] - 2023-09-11
23
+
24
+ ### Added
25
+
26
+ - Added a hook system to the cache
27
+
10
28
  ## [1.4.0] - 2022-11-19
11
29
 
12
30
  ### Added
31
+
13
32
  - added a file provider at @gorgon/file-provider
33
+
14
34
  ### Fixed
35
+
15
36
  - fixed a bug where when you cached something permanently (false) with the non default cache it would use the default provider
16
37
 
17
38
  ## [1.3.1] - 2022-11-14
18
39
 
19
40
  ### Added
41
+
20
42
  - added more library type support for older require syntax
21
43
 
22
44
  ## [1.3.0] - 2022-11-13
@@ -34,5 +56,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
34
56
  ## [1.2.0] - 2022-11-12
35
57
 
36
58
  ### Added
59
+
37
60
  - initial release to the public; migrated from @mikevalstar/gorgon
38
61
  - code is based off of medusa.js
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Gorgon
2
2
  ![coverage](https://img.shields.io/badge/coverage-97%25-brightgreen)
3
- ![size](https://img.shields.io/badge/size-5.67KB-brightgreen)
4
- ![version](https://img.shields.io/badge/version-1.5.0-blue)
3
+ ![size](https://img.shields.io/badge/size-5.71KB-brightgreen)
4
+ ![version](https://img.shields.io/badge/version-1.6.0-blue)
5
5
  ![license](https://img.shields.io/badge/license-MIT-blue)
6
6
 
7
7
  A typescript async based caching library for node or the browser.
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1694043745065" clover="3.2.0">
3
- <project timestamp="1694043745065" name="All files">
2
+ <coverage generated="1774200116869" clover="3.2.0">
3
+ <project timestamp="1774200116869" name="All files">
4
4
  <metrics statements="415" coveredstatements="408" conditionals="86" coveredconditionals="80" methods="17" coveredmethods="17" elements="518" coveredelements="505" complexity="0" loc="415" ncloc="415" packages="2" files="2" classes="2"/>
5
5
  <package name="library">
6
6
  <metrics statements="317" coveredstatements="310" conditionals="66" coveredconditionals="60" methods="10" coveredmethods="10"/>
@@ -1,3 +1,3 @@
1
- {"/Users/mikevalstar/projects/gorgon/library/index.ts": {"path":"/Users/mikevalstar/projects/gorgon/library/index.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":44}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":61}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":27}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":14}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":17}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":9}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":11}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":14}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":15}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":9}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":17}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":81}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":30}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":17}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":26}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":16}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":2}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":35}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":18}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":27}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":17}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":2}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":28}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":32}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":19}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":2}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":61}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":37}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":25}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":19}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":2}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":36}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":12}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":12}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":15}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":3}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":39}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":28}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":37}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":79}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":44}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":32}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":1}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":0}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":23}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":70}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":42}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":0}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":20}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":17}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":30}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":16}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":22}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":0}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":64}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":23}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":20}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":41}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":31}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":0}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":60}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":21}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":23}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":5}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":0}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":35}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":36}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":25}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":0}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":79}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":67}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":45}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":88}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":14}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":44}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":7}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":68}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":47}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":68}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":47}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":35}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":5}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":0}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":52}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":91}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":0}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":21}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":4}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":0}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":22}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":34}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":61}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":0}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":12}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":54}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":0}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":68}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":44}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":46}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":63}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":17}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":59}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":25}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":71}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":13}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":11}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":9}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":7}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":6}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":0}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":46}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":54}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":25}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":24}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":7}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":0}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":99}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":0}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":63}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":0}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":22}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":6}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":0}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":35}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":76}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":45}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":35}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":7}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":0}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":32}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":67}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":14}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":41}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":7}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":6}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":0}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":21}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":68}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":96}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":44}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":0}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":63}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":6}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":0}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":35}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":86}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":35}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":55}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":0}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":66}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":0}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":55}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":6}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":0}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":42}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":54}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":76}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":0}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":56}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":0}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":43}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":41}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":49}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":59}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":79}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":13}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":0}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":61}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":87}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":0}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":46}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":44}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":11}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":7}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":0}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":28}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":29}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":6}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":0}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":41}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":44}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":76}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":0}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":54}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":0}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":26}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":6}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":0}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":54}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":93}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":11}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":47}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":0}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":81}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":0}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":76}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":0}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":19}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":19}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":16}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":7}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":6}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":0}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":64}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":96}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":35}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":57}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":0}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":117}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":0}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":59}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":37}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":29}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":73}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":9}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":0}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":108}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":0}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":26}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":7}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":0}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":58}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":108}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":91}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":29}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":0}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":42}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":84}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":28}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":11}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":9}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":0}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":35}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":24}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":31}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":102}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":11}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":0}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":86}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":36}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":27}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":26}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":33}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":15}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":13}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":0}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":109}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":0}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":27}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":9}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":14}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":73}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":53}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":7}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":0}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":11}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":29}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":74}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":9}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":0}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":35}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":37}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":0}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":107}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":0}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":49}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":44}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":0}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":29}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":91}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":9}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":0}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":81}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":0}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":42}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":44}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":43}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":35}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":88}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":15}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":0}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":44}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":13}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":11}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":0}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":33}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":35}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":9}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":0}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":19}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":19}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":42}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":44}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":43}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":42}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":13}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":11}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":0}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":109}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":0}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":33}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":35}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":9}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":0}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":16}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":7}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":6}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":4}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":0}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":95}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":0}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":20}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":5}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":0}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":23}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":22}}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":6,"47":6,"48":6,"49":6,"50":6,"51":6,"52":6,"53":6,"54":6,"55":6,"56":112,"57":112,"58":112,"59":112,"60":112,"61":112,"62":112,"63":5,"64":5,"65":107,"66":107,"67":112,"68":1,"69":1,"70":1,"71":112,"72":62,"73":0,"74":62,"75":62,"76":62,"77":62,"78":106,"79":18,"80":44,"81":26,"82":26,"83":107,"84":107,"85":112,"86":112,"87":112,"88":112,"89":6,"90":6,"91":6,"92":6,"93":6,"94":6,"95":6,"96":6,"97":6,"98":86,"99":13,"100":16,"101":16,"102":16,"103":16,"104":1,"105":1,"106":16,"107":16,"108":13,"109":86,"110":6,"111":6,"112":6,"113":9,"114":1,"115":1,"116":8,"117":8,"118":8,"119":8,"120":8,"121":8,"122":9,"123":6,"124":6,"125":6,"126":10,"127":8,"128":8,"129":10,"130":10,"131":1,"132":10,"133":9,"134":9,"135":10,"136":6,"137":6,"138":6,"139":7,"140":7,"141":7,"142":7,"143":7,"144":6,"145":6,"146":6,"147":27,"148":27,"149":27,"150":27,"151":27,"152":27,"153":27,"154":6,"155":6,"156":6,"157":4,"158":4,"159":4,"160":4,"161":4,"162":4,"163":1,"164":1,"165":2,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":3,"176":3,"177":3,"178":4,"179":6,"180":6,"181":6,"182":3,"183":3,"184":3,"185":3,"186":3,"187":3,"188":6,"189":6,"190":6,"191":2,"192":2,"193":2,"194":2,"195":2,"196":2,"197":2,"198":2,"199":2,"200":0,"201":0,"202":2,"203":6,"204":6,"205":6,"206":32,"207":32,"208":32,"209":32,"210":32,"211":32,"212":32,"213":2,"214":0,"215":0,"216":2,"217":2,"218":2,"219":2,"220":2,"221":30,"222":30,"223":32,"224":3,"225":3,"226":3,"227":3,"228":3,"229":0,"230":0,"231":3,"232":3,"233":3,"234":3,"235":3,"236":1,"237":1,"238":3,"239":3,"240":3,"241":3,"242":3,"243":3,"244":3,"245":3,"246":3,"247":3,"248":3,"249":3,"250":3,"251":32,"252":27,"253":27,"254":27,"255":27,"256":27,"257":31,"258":4,"259":4,"260":27,"261":27,"262":27,"263":27,"264":27,"265":27,"266":27,"267":27,"268":24,"269":30,"270":3,"271":3,"272":24,"273":24,"274":24,"275":24,"276":24,"277":26,"278":2,"279":1,"280":1,"281":2,"282":2,"283":2,"284":26,"285":24,"286":24,"287":24,"288":24,"289":24,"290":24,"291":28,"292":3,"293":3,"294":4,"295":1,"296":1,"297":4,"298":3,"299":3,"300":3,"301":3,"302":3,"303":3,"304":3,"305":3,"306":3,"307":32,"308":6,"309":6,"310":6,"311":6,"312":6,"313":1,"314":1,"315":1,"316":1},"branchMap":{"0":{"type":"branch","line":46,"loc":{"start":{"line":46,"column":16},"end":{"line":314,"column":3}},"locations":[{"start":{"line":46,"column":16},"end":{"line":314,"column":3}}]},"1":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":22},"end":{"line":89,"column":4}},"locations":[{"start":{"line":56,"column":22},"end":{"line":89,"column":4}}]},"2":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":20},"end":{"line":65,"column":5}},"locations":[{"start":{"line":63,"column":20},"end":{"line":65,"column":5}}]},"3":{"type":"branch","line":65,"loc":{"start":{"line":65,"column":4},"end":{"line":68,"column":35}},"locations":[{"start":{"line":65,"column":4},"end":{"line":68,"column":35}}]},"4":{"type":"branch","line":68,"loc":{"start":{"line":68,"column":35},"end":{"line":72,"column":15}},"locations":[{"start":{"line":68,"column":35},"end":{"line":72,"column":15}}]},"5":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":4},"end":{"line":83,"column":5}},"locations":[{"start":{"line":72,"column":4},"end":{"line":83,"column":5}}]},"6":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":36},"end":{"line":72,"column":66}},"locations":[{"start":{"line":72,"column":36},"end":{"line":72,"column":66}}]},"7":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":66},"end":{"line":79,"column":15}},"locations":[{"start":{"line":72,"column":66},"end":{"line":79,"column":15}}]},"8":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":44},"end":{"line":75,"column":13}},"locations":[{"start":{"line":73,"column":44},"end":{"line":75,"column":13}}]},"9":{"type":"branch","line":78,"loc":{"start":{"line":78,"column":37},"end":{"line":78,"column":68}},"locations":[{"start":{"line":78,"column":37},"end":{"line":78,"column":68}}]},"10":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":4},"end":{"line":83,"column":5}},"locations":[{"start":{"line":79,"column":4},"end":{"line":83,"column":5}}]},"11":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":46},"end":{"line":81,"column":15}},"locations":[{"start":{"line":79,"column":46},"end":{"line":81,"column":15}}]},"12":{"type":"branch","line":80,"loc":{"start":{"line":80,"column":37},"end":{"line":80,"column":68}},"locations":[{"start":{"line":80,"column":37},"end":{"line":80,"column":68}}]},"13":{"type":"branch","line":81,"loc":{"start":{"line":81,"column":4},"end":{"line":83,"column":5}},"locations":[{"start":{"line":81,"column":4},"end":{"line":83,"column":5}}]},"14":{"type":"branch","line":83,"loc":{"start":{"line":83,"column":4},"end":{"line":86,"column":43}},"locations":[{"start":{"line":83,"column":4},"end":{"line":86,"column":43}}]},"15":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":33},"end":{"line":86,"column":66}},"locations":[{"start":{"line":86,"column":33},"end":{"line":86,"column":66}}]},"16":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":62},"end":{"line":86,"column":85}},"locations":[{"start":{"line":86,"column":62},"end":{"line":86,"column":85}}]},"17":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":76},"end":{"line":86,"column":91}},"locations":[{"start":{"line":86,"column":76},"end":{"line":86,"column":91}}]},"18":{"type":"branch","line":98,"loc":{"start":{"line":98,"column":16},"end":{"line":110,"column":6}},"locations":[{"start":{"line":98,"column":16},"end":{"line":110,"column":6}}]},"19":{"type":"branch","line":99,"loc":{"start":{"line":99,"column":43},"end":{"line":109,"column":7}},"locations":[{"start":{"line":99,"column":43},"end":{"line":109,"column":7}}]},"20":{"type":"branch","line":100,"loc":{"start":{"line":100,"column":45},"end":{"line":108,"column":9}},"locations":[{"start":{"line":100,"column":45},"end":{"line":108,"column":9}}]},"21":{"type":"branch","line":104,"loc":{"start":{"line":104,"column":12},"end":{"line":106,"column":13}},"locations":[{"start":{"line":104,"column":12},"end":{"line":106,"column":13}}]},"22":{"type":"branch","line":113,"loc":{"start":{"line":113,"column":14},"end":{"line":123,"column":6}},"locations":[{"start":{"line":113,"column":14},"end":{"line":123,"column":6}}]},"23":{"type":"branch","line":114,"loc":{"start":{"line":114,"column":24},"end":{"line":116,"column":7}},"locations":[{"start":{"line":114,"column":24},"end":{"line":116,"column":7}}]},"24":{"type":"branch","line":116,"loc":{"start":{"line":116,"column":6},"end":{"line":122,"column":22}},"locations":[{"start":{"line":116,"column":6},"end":{"line":122,"column":22}}]},"25":{"type":"branch","line":126,"loc":{"start":{"line":126,"column":13},"end":{"line":136,"column":6}},"locations":[{"start":{"line":126,"column":13},"end":{"line":136,"column":6}}]},"26":{"type":"branch","line":127,"loc":{"start":{"line":127,"column":44},"end":{"line":129,"column":7}},"locations":[{"start":{"line":127,"column":44},"end":{"line":129,"column":7}}]},"27":{"type":"branch","line":131,"loc":{"start":{"line":131,"column":31},"end":{"line":133,"column":13}},"locations":[{"start":{"line":131,"column":31},"end":{"line":133,"column":13}}]},"28":{"type":"branch","line":133,"loc":{"start":{"line":133,"column":6},"end":{"line":135,"column":7}},"locations":[{"start":{"line":133,"column":6},"end":{"line":135,"column":7}}]},"29":{"type":"branch","line":139,"loc":{"start":{"line":139,"column":17},"end":{"line":144,"column":6}},"locations":[{"start":{"line":139,"column":17},"end":{"line":144,"column":6}}]},"30":{"type":"branch","line":147,"loc":{"start":{"line":147,"column":9},"end":{"line":154,"column":6}},"locations":[{"start":{"line":147,"column":9},"end":{"line":154,"column":6}}]},"31":{"type":"branch","line":157,"loc":{"start":{"line":157,"column":11},"end":{"line":179,"column":6}},"locations":[{"start":{"line":157,"column":11},"end":{"line":179,"column":6}}]},"32":{"type":"branch","line":163,"loc":{"start":{"line":163,"column":10},"end":{"line":163,"column":40}},"locations":[{"start":{"line":163,"column":10},"end":{"line":163,"column":40}}]},"33":{"type":"branch","line":163,"loc":{"start":{"line":163,"column":40},"end":{"line":175,"column":7}},"locations":[{"start":{"line":163,"column":40},"end":{"line":175,"column":7}}]},"34":{"type":"branch","line":175,"loc":{"start":{"line":175,"column":6},"end":{"line":178,"column":29}},"locations":[{"start":{"line":175,"column":6},"end":{"line":178,"column":29}}]},"35":{"type":"branch","line":164,"loc":{"start":{"line":164,"column":32},"end":{"line":174,"column":9}},"locations":[{"start":{"line":164,"column":32},"end":{"line":174,"column":9}}]},"36":{"type":"branch","line":165,"loc":{"start":{"line":165,"column":43},"end":{"line":167,"column":11}},"locations":[{"start":{"line":165,"column":43},"end":{"line":167,"column":11}}]},"37":{"type":"branch","line":182,"loc":{"start":{"line":182,"column":14},"end":{"line":188,"column":6}},"locations":[{"start":{"line":182,"column":14},"end":{"line":188,"column":6}}]},"38":{"type":"branch","line":191,"loc":{"start":{"line":191,"column":15},"end":{"line":203,"column":6}},"locations":[{"start":{"line":191,"column":15},"end":{"line":203,"column":6}}]},"39":{"type":"branch","line":200,"loc":{"start":{"line":200,"column":6},"end":{"line":202,"column":7}},"locations":[{"start":{"line":200,"column":6},"end":{"line":202,"column":7}}]},"40":{"type":"branch","line":206,"loc":{"start":{"line":206,"column":9},"end":{"line":308,"column":6}},"locations":[{"start":{"line":206,"column":9},"end":{"line":308,"column":6}}]},"41":{"type":"branch","line":213,"loc":{"start":{"line":213,"column":36},"end":{"line":221,"column":7}},"locations":[{"start":{"line":213,"column":36},"end":{"line":221,"column":7}}]},"42":{"type":"branch","line":214,"loc":{"start":{"line":214,"column":28},"end":{"line":216,"column":9}},"locations":[{"start":{"line":214,"column":28},"end":{"line":216,"column":9}}]},"43":{"type":"branch","line":221,"loc":{"start":{"line":221,"column":6},"end":{"line":224,"column":41}},"locations":[{"start":{"line":221,"column":6},"end":{"line":224,"column":41}}]},"44":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":36},"end":{"line":224,"column":77}},"locations":[{"start":{"line":224,"column":36},"end":{"line":224,"column":77}}]},"45":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":72},"end":{"line":224,"column":107}},"locations":[{"start":{"line":224,"column":72},"end":{"line":224,"column":107}}]},"46":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":107},"end":{"line":252,"column":13}},"locations":[{"start":{"line":224,"column":107},"end":{"line":252,"column":13}}]},"47":{"type":"branch","line":229,"loc":{"start":{"line":229,"column":83},"end":{"line":231,"column":11}},"locations":[{"start":{"line":229,"column":83},"end":{"line":231,"column":11}}]},"48":{"type":"branch","line":236,"loc":{"start":{"line":236,"column":30},"end":{"line":238,"column":11}},"locations":[{"start":{"line":236,"column":30},"end":{"line":238,"column":11}}]},"49":{"type":"branch","line":252,"loc":{"start":{"line":252,"column":6},"end":{"line":289,"column":9}},"locations":[{"start":{"line":252,"column":6},"end":{"line":289,"column":9}}]},"50":{"type":"branch","line":252,"loc":{"start":{"line":252,"column":6},"end":{"line":258,"column":28}},"locations":[{"start":{"line":252,"column":6},"end":{"line":258,"column":28}}]},"51":{"type":"branch","line":258,"loc":{"start":{"line":258,"column":28},"end":{"line":260,"column":9}},"locations":[{"start":{"line":258,"column":28},"end":{"line":260,"column":9}}]},"52":{"type":"branch","line":260,"loc":{"start":{"line":260,"column":8},"end":{"line":268,"column":44}},"locations":[{"start":{"line":260,"column":8},"end":{"line":268,"column":44}}]},"53":{"type":"branch","line":268,"loc":{"start":{"line":268,"column":35},"end":{"line":289,"column":9}},"locations":[{"start":{"line":268,"column":35},"end":{"line":289,"column":9}}]},"54":{"type":"branch","line":268,"loc":{"start":{"line":268,"column":35},"end":{"line":270,"column":28}},"locations":[{"start":{"line":268,"column":35},"end":{"line":270,"column":28}}]},"55":{"type":"branch","line":270,"loc":{"start":{"line":270,"column":28},"end":{"line":272,"column":9}},"locations":[{"start":{"line":270,"column":28},"end":{"line":272,"column":9}}]},"56":{"type":"branch","line":272,"loc":{"start":{"line":272,"column":8},"end":{"line":289,"column":9}},"locations":[{"start":{"line":272,"column":8},"end":{"line":289,"column":9}}]},"57":{"type":"branch","line":277,"loc":{"start":{"line":277,"column":43},"end":{"line":285,"column":11}},"locations":[{"start":{"line":277,"column":43},"end":{"line":285,"column":11}}]},"58":{"type":"branch","line":278,"loc":{"start":{"line":278,"column":42},"end":{"line":284,"column":13}},"locations":[{"start":{"line":278,"column":42},"end":{"line":284,"column":13}}]},"59":{"type":"branch","line":279,"loc":{"start":{"line":279,"column":34},"end":{"line":281,"column":15}},"locations":[{"start":{"line":279,"column":34},"end":{"line":281,"column":15}}]},"60":{"type":"branch","line":289,"loc":{"start":{"line":289,"column":8},"end":{"line":307,"column":7}},"locations":[{"start":{"line":289,"column":8},"end":{"line":307,"column":7}}]},"61":{"type":"branch","line":289,"loc":{"start":{"line":289,"column":8},"end":{"line":292,"column":15}},"locations":[{"start":{"line":289,"column":8},"end":{"line":292,"column":15}}]},"62":{"type":"branch","line":292,"loc":{"start":{"line":292,"column":6},"end":{"line":307,"column":7}},"locations":[{"start":{"line":292,"column":6},"end":{"line":307,"column":7}}]},"63":{"type":"branch","line":294,"loc":{"start":{"line":294,"column":43},"end":{"line":298,"column":11}},"locations":[{"start":{"line":294,"column":43},"end":{"line":298,"column":11}}]},"64":{"type":"branch","line":295,"loc":{"start":{"line":295,"column":42},"end":{"line":297,"column":13}},"locations":[{"start":{"line":295,"column":42},"end":{"line":297,"column":13}}]},"65":{"type":"branch","line":240,"loc":{"start":{"line":240,"column":38},"end":{"line":246,"column":11}},"locations":[{"start":{"line":240,"column":38},"end":{"line":246,"column":11}}]}},"b":{"0":[6],"1":[112],"2":[5],"3":[107],"4":[1],"5":[106],"6":[80],"7":[62],"8":[0],"9":[0],"10":[44],"11":[18],"12":[0],"13":[26],"14":[107],"15":[89],"16":[89],"17":[18],"18":[86],"19":[13],"20":[16],"21":[1],"22":[9],"23":[1],"24":[8],"25":[10],"26":[8],"27":[1],"28":[9],"29":[7],"30":[27],"31":[4],"32":[3],"33":[1],"34":[3],"35":[1],"36":[2],"37":[3],"38":[2],"39":[0],"40":[32],"41":[2],"42":[0],"43":[30],"44":[3],"45":[3],"46":[3],"47":[0],"48":[1],"49":[31],"50":[27],"51":[4],"52":[27],"53":[30],"54":[24],"55":[3],"56":[24],"57":[26],"58":[2],"59":[1],"60":[28],"61":[24],"62":[3],"63":[4],"64":[1],"65":[3]},"fnMap":{"0":{"name":"policyMaker","decl":{"start":{"line":56,"column":22},"end":{"line":89,"column":4}},"loc":{"start":{"line":56,"column":22},"end":{"line":89,"column":4}},"line":56},"1":{"name":"_callHooks","decl":{"start":{"line":98,"column":16},"end":{"line":110,"column":6}},"loc":{"start":{"line":98,"column":16},"end":{"line":110,"column":6}},"line":98},"2":{"name":"settings","decl":{"start":{"line":113,"column":14},"end":{"line":123,"column":6}},"loc":{"start":{"line":113,"column":14},"end":{"line":123,"column":6}},"line":113},"3":{"name":"addHook","decl":{"start":{"line":126,"column":13},"end":{"line":136,"column":6}},"loc":{"start":{"line":126,"column":13},"end":{"line":136,"column":6}},"line":126},"4":{"name":"addProvider","decl":{"start":{"line":139,"column":17},"end":{"line":144,"column":6}},"loc":{"start":{"line":139,"column":17},"end":{"line":144,"column":6}},"line":139},"5":{"name":"put","decl":{"start":{"line":147,"column":9},"end":{"line":154,"column":6}},"loc":{"start":{"line":147,"column":9},"end":{"line":154,"column":6}},"line":147},"6":{"name":"clear","decl":{"start":{"line":157,"column":11},"end":{"line":179,"column":6}},"loc":{"start":{"line":157,"column":11},"end":{"line":179,"column":6}},"line":157},"7":{"name":"clearAll","decl":{"start":{"line":182,"column":14},"end":{"line":188,"column":6}},"loc":{"start":{"line":182,"column":14},"end":{"line":188,"column":6}},"line":182},"8":{"name":"overwrite","decl":{"start":{"line":191,"column":15},"end":{"line":203,"column":6}},"loc":{"start":{"line":191,"column":15},"end":{"line":203,"column":6}},"line":191},"9":{"name":"get","decl":{"start":{"line":206,"column":9},"end":{"line":308,"column":6}},"loc":{"start":{"line":206,"column":9},"end":{"line":308,"column":6}},"line":206}},"f":{"0":112,"1":86,"2":9,"3":10,"4":7,"5":27,"6":4,"7":3,"8":2,"9":32}}
1
+ {"/Users/mikevalstar/projects/gorgon/library/index.ts": {"path":"/Users/mikevalstar/projects/gorgon/library/index.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":44}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":61}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":27}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":14}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":17}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":9}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":11}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":14}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":15}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":9}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":17}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":81}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":30}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":17}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":26}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":16}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":2}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":35}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":18}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":27}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":17}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":2}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":28}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":32}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":19}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":2}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":61}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":37}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":25}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":19}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":2}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":36}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":12}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":12}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":15}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":3}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":39}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":28}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":37}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":79}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":44}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":32}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":1}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":0}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":23}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":70}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":42}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":0}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":20}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":17}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":30}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":16}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":22}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":0}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":64}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":23}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":20}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":41}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":31}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":0}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":60}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":21}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":23}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":5}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":0}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":35}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":36}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":25}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":0}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":79}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":67}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":45}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":88}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":14}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":44}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":7}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":68}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":47}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":68}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":47}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":35}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":5}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":0}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":52}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":91}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":0}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":21}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":4}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":0}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":22}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":34}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":61}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":0}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":12}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":54}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":0}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":68}},"98":{"start":{"line":99,"column":0},"end":{"line":99,"column":44}},"99":{"start":{"line":100,"column":0},"end":{"line":100,"column":46}},"100":{"start":{"line":101,"column":0},"end":{"line":101,"column":63}},"101":{"start":{"line":102,"column":0},"end":{"line":102,"column":17}},"102":{"start":{"line":103,"column":0},"end":{"line":103,"column":59}},"103":{"start":{"line":104,"column":0},"end":{"line":104,"column":25}},"104":{"start":{"line":105,"column":0},"end":{"line":105,"column":71}},"105":{"start":{"line":106,"column":0},"end":{"line":106,"column":13}},"106":{"start":{"line":107,"column":0},"end":{"line":107,"column":11}},"107":{"start":{"line":108,"column":0},"end":{"line":108,"column":9}},"108":{"start":{"line":109,"column":0},"end":{"line":109,"column":7}},"109":{"start":{"line":110,"column":0},"end":{"line":110,"column":6}},"110":{"start":{"line":111,"column":0},"end":{"line":111,"column":0}},"111":{"start":{"line":112,"column":0},"end":{"line":112,"column":46}},"112":{"start":{"line":113,"column":0},"end":{"line":113,"column":54}},"113":{"start":{"line":114,"column":0},"end":{"line":114,"column":25}},"114":{"start":{"line":115,"column":0},"end":{"line":115,"column":24}},"115":{"start":{"line":116,"column":0},"end":{"line":116,"column":7}},"116":{"start":{"line":117,"column":0},"end":{"line":117,"column":0}},"117":{"start":{"line":118,"column":0},"end":{"line":118,"column":99}},"118":{"start":{"line":119,"column":0},"end":{"line":119,"column":0}},"119":{"start":{"line":120,"column":0},"end":{"line":120,"column":63}},"120":{"start":{"line":121,"column":0},"end":{"line":121,"column":0}},"121":{"start":{"line":122,"column":0},"end":{"line":122,"column":22}},"122":{"start":{"line":123,"column":0},"end":{"line":123,"column":6}},"123":{"start":{"line":124,"column":0},"end":{"line":124,"column":0}},"124":{"start":{"line":125,"column":0},"end":{"line":125,"column":35}},"125":{"start":{"line":126,"column":0},"end":{"line":126,"column":76}},"126":{"start":{"line":127,"column":0},"end":{"line":127,"column":45}},"127":{"start":{"line":128,"column":0},"end":{"line":128,"column":35}},"128":{"start":{"line":129,"column":0},"end":{"line":129,"column":7}},"129":{"start":{"line":130,"column":0},"end":{"line":130,"column":0}},"130":{"start":{"line":131,"column":0},"end":{"line":131,"column":32}},"131":{"start":{"line":132,"column":0},"end":{"line":132,"column":67}},"132":{"start":{"line":133,"column":0},"end":{"line":133,"column":14}},"133":{"start":{"line":134,"column":0},"end":{"line":134,"column":41}},"134":{"start":{"line":135,"column":0},"end":{"line":135,"column":7}},"135":{"start":{"line":136,"column":0},"end":{"line":136,"column":6}},"136":{"start":{"line":137,"column":0},"end":{"line":137,"column":0}},"137":{"start":{"line":138,"column":0},"end":{"line":138,"column":21}},"138":{"start":{"line":139,"column":0},"end":{"line":139,"column":68}},"139":{"start":{"line":140,"column":0},"end":{"line":140,"column":96}},"140":{"start":{"line":141,"column":0},"end":{"line":141,"column":44}},"141":{"start":{"line":142,"column":0},"end":{"line":142,"column":0}},"142":{"start":{"line":143,"column":0},"end":{"line":143,"column":63}},"143":{"start":{"line":144,"column":0},"end":{"line":144,"column":6}},"144":{"start":{"line":145,"column":0},"end":{"line":145,"column":0}},"145":{"start":{"line":146,"column":0},"end":{"line":146,"column":35}},"146":{"start":{"line":147,"column":0},"end":{"line":147,"column":86}},"147":{"start":{"line":148,"column":0},"end":{"line":148,"column":35}},"148":{"start":{"line":149,"column":0},"end":{"line":149,"column":55}},"149":{"start":{"line":150,"column":0},"end":{"line":150,"column":0}},"150":{"start":{"line":151,"column":0},"end":{"line":151,"column":66}},"151":{"start":{"line":152,"column":0},"end":{"line":152,"column":0}},"152":{"start":{"line":153,"column":0},"end":{"line":153,"column":55}},"153":{"start":{"line":154,"column":0},"end":{"line":154,"column":6}},"154":{"start":{"line":155,"column":0},"end":{"line":155,"column":0}},"155":{"start":{"line":156,"column":0},"end":{"line":156,"column":42}},"156":{"start":{"line":157,"column":0},"end":{"line":157,"column":79}},"157":{"start":{"line":158,"column":0},"end":{"line":158,"column":76}},"158":{"start":{"line":159,"column":0},"end":{"line":159,"column":0}},"159":{"start":{"line":160,"column":0},"end":{"line":160,"column":84}},"160":{"start":{"line":161,"column":0},"end":{"line":161,"column":0}},"161":{"start":{"line":162,"column":0},"end":{"line":162,"column":43}},"162":{"start":{"line":163,"column":0},"end":{"line":163,"column":41}},"163":{"start":{"line":164,"column":0},"end":{"line":164,"column":49}},"164":{"start":{"line":165,"column":0},"end":{"line":165,"column":59}},"165":{"start":{"line":166,"column":0},"end":{"line":166,"column":79}},"166":{"start":{"line":167,"column":0},"end":{"line":167,"column":13}},"167":{"start":{"line":168,"column":0},"end":{"line":168,"column":0}},"168":{"start":{"line":169,"column":0},"end":{"line":169,"column":61}},"169":{"start":{"line":170,"column":0},"end":{"line":170,"column":87}},"170":{"start":{"line":171,"column":0},"end":{"line":171,"column":0}},"171":{"start":{"line":172,"column":0},"end":{"line":172,"column":46}},"172":{"start":{"line":173,"column":0},"end":{"line":173,"column":44}},"173":{"start":{"line":174,"column":0},"end":{"line":174,"column":11}},"174":{"start":{"line":175,"column":0},"end":{"line":175,"column":7}},"175":{"start":{"line":176,"column":0},"end":{"line":176,"column":0}},"176":{"start":{"line":177,"column":0},"end":{"line":177,"column":28}},"177":{"start":{"line":178,"column":0},"end":{"line":178,"column":29}},"178":{"start":{"line":179,"column":0},"end":{"line":179,"column":6}},"179":{"start":{"line":180,"column":0},"end":{"line":180,"column":0}},"180":{"start":{"line":181,"column":0},"end":{"line":181,"column":41}},"181":{"start":{"line":182,"column":0},"end":{"line":182,"column":69}},"182":{"start":{"line":183,"column":0},"end":{"line":183,"column":76}},"183":{"start":{"line":184,"column":0},"end":{"line":184,"column":0}},"184":{"start":{"line":185,"column":0},"end":{"line":185,"column":82}},"185":{"start":{"line":186,"column":0},"end":{"line":186,"column":0}},"186":{"start":{"line":187,"column":0},"end":{"line":187,"column":26}},"187":{"start":{"line":188,"column":0},"end":{"line":188,"column":6}},"188":{"start":{"line":189,"column":0},"end":{"line":189,"column":0}},"189":{"start":{"line":190,"column":0},"end":{"line":190,"column":54}},"190":{"start":{"line":191,"column":0},"end":{"line":191,"column":93}},"191":{"start":{"line":192,"column":0},"end":{"line":192,"column":11}},"192":{"start":{"line":193,"column":0},"end":{"line":193,"column":47}},"193":{"start":{"line":194,"column":0},"end":{"line":194,"column":0}},"194":{"start":{"line":195,"column":0},"end":{"line":195,"column":81}},"195":{"start":{"line":196,"column":0},"end":{"line":196,"column":0}},"196":{"start":{"line":197,"column":0},"end":{"line":197,"column":76}},"197":{"start":{"line":198,"column":0},"end":{"line":198,"column":0}},"198":{"start":{"line":199,"column":0},"end":{"line":199,"column":19}},"199":{"start":{"line":200,"column":0},"end":{"line":200,"column":19}},"200":{"start":{"line":201,"column":0},"end":{"line":201,"column":16}},"201":{"start":{"line":202,"column":0},"end":{"line":202,"column":7}},"202":{"start":{"line":203,"column":0},"end":{"line":203,"column":6}},"203":{"start":{"line":204,"column":0},"end":{"line":204,"column":0}},"204":{"start":{"line":205,"column":0},"end":{"line":205,"column":64}},"205":{"start":{"line":206,"column":0},"end":{"line":206,"column":96}},"206":{"start":{"line":207,"column":0},"end":{"line":207,"column":35}},"207":{"start":{"line":208,"column":0},"end":{"line":208,"column":57}},"208":{"start":{"line":209,"column":0},"end":{"line":209,"column":0}},"209":{"start":{"line":210,"column":0},"end":{"line":210,"column":117}},"210":{"start":{"line":211,"column":0},"end":{"line":211,"column":0}},"211":{"start":{"line":212,"column":0},"end":{"line":212,"column":59}},"212":{"start":{"line":213,"column":0},"end":{"line":213,"column":37}},"213":{"start":{"line":214,"column":0},"end":{"line":214,"column":29}},"214":{"start":{"line":215,"column":0},"end":{"line":215,"column":73}},"215":{"start":{"line":216,"column":0},"end":{"line":216,"column":9}},"216":{"start":{"line":217,"column":0},"end":{"line":217,"column":0}},"217":{"start":{"line":218,"column":0},"end":{"line":218,"column":108}},"218":{"start":{"line":219,"column":0},"end":{"line":219,"column":0}},"219":{"start":{"line":220,"column":0},"end":{"line":220,"column":26}},"220":{"start":{"line":221,"column":0},"end":{"line":221,"column":7}},"221":{"start":{"line":222,"column":0},"end":{"line":222,"column":0}},"222":{"start":{"line":223,"column":0},"end":{"line":223,"column":58}},"223":{"start":{"line":224,"column":0},"end":{"line":224,"column":108}},"224":{"start":{"line":225,"column":0},"end":{"line":225,"column":91}},"225":{"start":{"line":226,"column":0},"end":{"line":226,"column":29}},"226":{"start":{"line":227,"column":0},"end":{"line":227,"column":0}},"227":{"start":{"line":228,"column":0},"end":{"line":228,"column":42}},"228":{"start":{"line":229,"column":0},"end":{"line":229,"column":84}},"229":{"start":{"line":230,"column":0},"end":{"line":230,"column":28}},"230":{"start":{"line":231,"column":0},"end":{"line":231,"column":11}},"231":{"start":{"line":232,"column":0},"end":{"line":232,"column":9}},"232":{"start":{"line":233,"column":0},"end":{"line":233,"column":0}},"233":{"start":{"line":234,"column":0},"end":{"line":234,"column":35}},"234":{"start":{"line":235,"column":0},"end":{"line":235,"column":24}},"235":{"start":{"line":236,"column":0},"end":{"line":236,"column":31}},"236":{"start":{"line":237,"column":0},"end":{"line":237,"column":102}},"237":{"start":{"line":238,"column":0},"end":{"line":238,"column":11}},"238":{"start":{"line":239,"column":0},"end":{"line":239,"column":0}},"239":{"start":{"line":240,"column":0},"end":{"line":240,"column":86}},"240":{"start":{"line":241,"column":0},"end":{"line":241,"column":36}},"241":{"start":{"line":242,"column":0},"end":{"line":242,"column":27}},"242":{"start":{"line":243,"column":0},"end":{"line":243,"column":26}},"243":{"start":{"line":244,"column":0},"end":{"line":244,"column":33}},"244":{"start":{"line":245,"column":0},"end":{"line":245,"column":15}},"245":{"start":{"line":246,"column":0},"end":{"line":246,"column":13}},"246":{"start":{"line":247,"column":0},"end":{"line":247,"column":0}},"247":{"start":{"line":248,"column":0},"end":{"line":248,"column":109}},"248":{"start":{"line":249,"column":0},"end":{"line":249,"column":0}},"249":{"start":{"line":250,"column":0},"end":{"line":250,"column":27}},"250":{"start":{"line":251,"column":0},"end":{"line":251,"column":9}},"251":{"start":{"line":252,"column":0},"end":{"line":252,"column":14}},"252":{"start":{"line":253,"column":0},"end":{"line":253,"column":73}},"253":{"start":{"line":254,"column":0},"end":{"line":254,"column":53}},"254":{"start":{"line":255,"column":0},"end":{"line":255,"column":7}},"255":{"start":{"line":256,"column":0},"end":{"line":256,"column":0}},"256":{"start":{"line":257,"column":0},"end":{"line":257,"column":11}},"257":{"start":{"line":258,"column":0},"end":{"line":258,"column":29}},"258":{"start":{"line":259,"column":0},"end":{"line":259,"column":74}},"259":{"start":{"line":260,"column":0},"end":{"line":260,"column":9}},"260":{"start":{"line":261,"column":0},"end":{"line":261,"column":0}},"261":{"start":{"line":262,"column":0},"end":{"line":262,"column":35}},"262":{"start":{"line":263,"column":0},"end":{"line":263,"column":37}},"263":{"start":{"line":264,"column":0},"end":{"line":264,"column":0}},"264":{"start":{"line":265,"column":0},"end":{"line":265,"column":107}},"265":{"start":{"line":266,"column":0},"end":{"line":266,"column":0}},"266":{"start":{"line":267,"column":0},"end":{"line":267,"column":49}},"267":{"start":{"line":268,"column":0},"end":{"line":268,"column":44}},"268":{"start":{"line":269,"column":0},"end":{"line":269,"column":0}},"269":{"start":{"line":270,"column":0},"end":{"line":270,"column":29}},"270":{"start":{"line":271,"column":0},"end":{"line":271,"column":91}},"271":{"start":{"line":272,"column":0},"end":{"line":272,"column":9}},"272":{"start":{"line":273,"column":0},"end":{"line":273,"column":0}},"273":{"start":{"line":274,"column":0},"end":{"line":274,"column":81}},"274":{"start":{"line":275,"column":0},"end":{"line":275,"column":0}},"275":{"start":{"line":276,"column":0},"end":{"line":276,"column":42}},"276":{"start":{"line":277,"column":0},"end":{"line":277,"column":44}},"277":{"start":{"line":278,"column":0},"end":{"line":278,"column":43}},"278":{"start":{"line":279,"column":0},"end":{"line":279,"column":35}},"279":{"start":{"line":280,"column":0},"end":{"line":280,"column":88}},"280":{"start":{"line":281,"column":0},"end":{"line":281,"column":15}},"281":{"start":{"line":282,"column":0},"end":{"line":282,"column":0}},"282":{"start":{"line":283,"column":0},"end":{"line":283,"column":44}},"283":{"start":{"line":284,"column":0},"end":{"line":284,"column":13}},"284":{"start":{"line":285,"column":0},"end":{"line":285,"column":11}},"285":{"start":{"line":286,"column":0},"end":{"line":286,"column":0}},"286":{"start":{"line":287,"column":0},"end":{"line":287,"column":33}},"287":{"start":{"line":288,"column":0},"end":{"line":288,"column":35}},"288":{"start":{"line":289,"column":0},"end":{"line":289,"column":9}},"289":{"start":{"line":290,"column":0},"end":{"line":290,"column":0}},"290":{"start":{"line":291,"column":0},"end":{"line":291,"column":19}},"291":{"start":{"line":292,"column":0},"end":{"line":292,"column":19}},"292":{"start":{"line":293,"column":0},"end":{"line":293,"column":42}},"293":{"start":{"line":294,"column":0},"end":{"line":294,"column":44}},"294":{"start":{"line":295,"column":0},"end":{"line":295,"column":43}},"295":{"start":{"line":296,"column":0},"end":{"line":296,"column":42}},"296":{"start":{"line":297,"column":0},"end":{"line":297,"column":13}},"297":{"start":{"line":298,"column":0},"end":{"line":298,"column":11}},"298":{"start":{"line":299,"column":0},"end":{"line":299,"column":0}},"299":{"start":{"line":300,"column":0},"end":{"line":300,"column":109}},"300":{"start":{"line":301,"column":0},"end":{"line":301,"column":0}},"301":{"start":{"line":302,"column":0},"end":{"line":302,"column":33}},"302":{"start":{"line":303,"column":0},"end":{"line":303,"column":35}},"303":{"start":{"line":304,"column":0},"end":{"line":304,"column":9}},"304":{"start":{"line":305,"column":0},"end":{"line":305,"column":0}},"305":{"start":{"line":306,"column":0},"end":{"line":306,"column":16}},"306":{"start":{"line":307,"column":0},"end":{"line":307,"column":7}},"307":{"start":{"line":308,"column":0},"end":{"line":308,"column":6}},"308":{"start":{"line":309,"column":0},"end":{"line":309,"column":4}},"309":{"start":{"line":310,"column":0},"end":{"line":310,"column":0}},"310":{"start":{"line":311,"column":0},"end":{"line":311,"column":95}},"311":{"start":{"line":312,"column":0},"end":{"line":312,"column":0}},"312":{"start":{"line":313,"column":0},"end":{"line":313,"column":20}},"313":{"start":{"line":314,"column":0},"end":{"line":314,"column":5}},"314":{"start":{"line":315,"column":0},"end":{"line":315,"column":0}},"315":{"start":{"line":316,"column":0},"end":{"line":316,"column":23}},"316":{"start":{"line":317,"column":0},"end":{"line":317,"column":22}}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":6,"47":6,"48":6,"49":6,"50":6,"51":6,"52":6,"53":6,"54":6,"55":6,"56":112,"57":112,"58":112,"59":112,"60":112,"61":112,"62":112,"63":5,"64":5,"65":107,"66":107,"67":112,"68":1,"69":1,"70":1,"71":112,"72":62,"73":0,"74":62,"75":62,"76":62,"77":62,"78":106,"79":18,"80":44,"81":26,"82":26,"83":107,"84":107,"85":112,"86":112,"87":112,"88":112,"89":6,"90":6,"91":6,"92":6,"93":6,"94":6,"95":6,"96":6,"97":6,"98":86,"99":13,"100":16,"101":16,"102":16,"103":16,"104":1,"105":1,"106":16,"107":16,"108":13,"109":86,"110":6,"111":6,"112":6,"113":9,"114":1,"115":1,"116":8,"117":8,"118":8,"119":8,"120":8,"121":8,"122":9,"123":6,"124":6,"125":6,"126":10,"127":8,"128":8,"129":10,"130":10,"131":1,"132":10,"133":9,"134":9,"135":10,"136":6,"137":6,"138":6,"139":7,"140":7,"141":7,"142":7,"143":7,"144":6,"145":6,"146":6,"147":27,"148":27,"149":27,"150":27,"151":27,"152":27,"153":27,"154":6,"155":6,"156":6,"157":4,"158":4,"159":4,"160":4,"161":4,"162":4,"163":1,"164":1,"165":2,"166":1,"167":1,"168":1,"169":1,"170":1,"171":1,"172":1,"173":1,"174":1,"175":3,"176":3,"177":3,"178":4,"179":6,"180":6,"181":6,"182":3,"183":3,"184":3,"185":3,"186":3,"187":3,"188":6,"189":6,"190":6,"191":2,"192":2,"193":2,"194":2,"195":2,"196":2,"197":2,"198":2,"199":2,"200":0,"201":0,"202":2,"203":6,"204":6,"205":6,"206":32,"207":32,"208":32,"209":32,"210":32,"211":32,"212":32,"213":2,"214":0,"215":0,"216":2,"217":2,"218":2,"219":2,"220":2,"221":30,"222":30,"223":32,"224":3,"225":3,"226":3,"227":3,"228":3,"229":0,"230":0,"231":3,"232":3,"233":3,"234":3,"235":3,"236":1,"237":1,"238":3,"239":3,"240":3,"241":3,"242":3,"243":3,"244":3,"245":3,"246":3,"247":3,"248":3,"249":3,"250":3,"251":32,"252":27,"253":27,"254":27,"255":27,"256":27,"257":31,"258":4,"259":4,"260":27,"261":27,"262":27,"263":27,"264":27,"265":27,"266":27,"267":27,"268":24,"269":30,"270":3,"271":3,"272":24,"273":24,"274":24,"275":24,"276":24,"277":26,"278":2,"279":1,"280":1,"281":2,"282":2,"283":2,"284":26,"285":24,"286":24,"287":24,"288":24,"289":24,"290":24,"291":28,"292":3,"293":3,"294":4,"295":1,"296":1,"297":4,"298":3,"299":3,"300":3,"301":3,"302":3,"303":3,"304":3,"305":3,"306":3,"307":32,"308":6,"309":6,"310":6,"311":6,"312":6,"313":1,"314":1,"315":1,"316":1},"branchMap":{"0":{"type":"branch","line":46,"loc":{"start":{"line":46,"column":16},"end":{"line":314,"column":3}},"locations":[{"start":{"line":46,"column":16},"end":{"line":314,"column":3}}]},"1":{"type":"branch","line":56,"loc":{"start":{"line":56,"column":22},"end":{"line":89,"column":4}},"locations":[{"start":{"line":56,"column":22},"end":{"line":89,"column":4}}]},"2":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":20},"end":{"line":65,"column":5}},"locations":[{"start":{"line":63,"column":20},"end":{"line":65,"column":5}}]},"3":{"type":"branch","line":65,"loc":{"start":{"line":65,"column":4},"end":{"line":68,"column":35}},"locations":[{"start":{"line":65,"column":4},"end":{"line":68,"column":35}}]},"4":{"type":"branch","line":68,"loc":{"start":{"line":68,"column":35},"end":{"line":72,"column":15}},"locations":[{"start":{"line":68,"column":35},"end":{"line":72,"column":15}}]},"5":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":4},"end":{"line":83,"column":5}},"locations":[{"start":{"line":72,"column":4},"end":{"line":83,"column":5}}]},"6":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":36},"end":{"line":72,"column":66}},"locations":[{"start":{"line":72,"column":36},"end":{"line":72,"column":66}}]},"7":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":66},"end":{"line":79,"column":15}},"locations":[{"start":{"line":72,"column":66},"end":{"line":79,"column":15}}]},"8":{"type":"branch","line":73,"loc":{"start":{"line":73,"column":44},"end":{"line":75,"column":13}},"locations":[{"start":{"line":73,"column":44},"end":{"line":75,"column":13}}]},"9":{"type":"branch","line":78,"loc":{"start":{"line":78,"column":37},"end":{"line":78,"column":68}},"locations":[{"start":{"line":78,"column":37},"end":{"line":78,"column":68}}]},"10":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":4},"end":{"line":83,"column":5}},"locations":[{"start":{"line":79,"column":4},"end":{"line":83,"column":5}}]},"11":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":46},"end":{"line":81,"column":15}},"locations":[{"start":{"line":79,"column":46},"end":{"line":81,"column":15}}]},"12":{"type":"branch","line":80,"loc":{"start":{"line":80,"column":37},"end":{"line":80,"column":68}},"locations":[{"start":{"line":80,"column":37},"end":{"line":80,"column":68}}]},"13":{"type":"branch","line":81,"loc":{"start":{"line":81,"column":4},"end":{"line":83,"column":5}},"locations":[{"start":{"line":81,"column":4},"end":{"line":83,"column":5}}]},"14":{"type":"branch","line":83,"loc":{"start":{"line":83,"column":4},"end":{"line":86,"column":43}},"locations":[{"start":{"line":83,"column":4},"end":{"line":86,"column":43}}]},"15":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":33},"end":{"line":86,"column":66}},"locations":[{"start":{"line":86,"column":33},"end":{"line":86,"column":66}}]},"16":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":62},"end":{"line":86,"column":85}},"locations":[{"start":{"line":86,"column":62},"end":{"line":86,"column":85}}]},"17":{"type":"branch","line":86,"loc":{"start":{"line":86,"column":76},"end":{"line":86,"column":91}},"locations":[{"start":{"line":86,"column":76},"end":{"line":86,"column":91}}]},"18":{"type":"branch","line":98,"loc":{"start":{"line":98,"column":16},"end":{"line":110,"column":6}},"locations":[{"start":{"line":98,"column":16},"end":{"line":110,"column":6}}]},"19":{"type":"branch","line":99,"loc":{"start":{"line":99,"column":43},"end":{"line":109,"column":7}},"locations":[{"start":{"line":99,"column":43},"end":{"line":109,"column":7}}]},"20":{"type":"branch","line":100,"loc":{"start":{"line":100,"column":45},"end":{"line":108,"column":9}},"locations":[{"start":{"line":100,"column":45},"end":{"line":108,"column":9}}]},"21":{"type":"branch","line":104,"loc":{"start":{"line":104,"column":12},"end":{"line":106,"column":13}},"locations":[{"start":{"line":104,"column":12},"end":{"line":106,"column":13}}]},"22":{"type":"branch","line":113,"loc":{"start":{"line":113,"column":14},"end":{"line":123,"column":6}},"locations":[{"start":{"line":113,"column":14},"end":{"line":123,"column":6}}]},"23":{"type":"branch","line":114,"loc":{"start":{"line":114,"column":24},"end":{"line":116,"column":7}},"locations":[{"start":{"line":114,"column":24},"end":{"line":116,"column":7}}]},"24":{"type":"branch","line":116,"loc":{"start":{"line":116,"column":6},"end":{"line":122,"column":22}},"locations":[{"start":{"line":116,"column":6},"end":{"line":122,"column":22}}]},"25":{"type":"branch","line":126,"loc":{"start":{"line":126,"column":13},"end":{"line":136,"column":6}},"locations":[{"start":{"line":126,"column":13},"end":{"line":136,"column":6}}]},"26":{"type":"branch","line":127,"loc":{"start":{"line":127,"column":44},"end":{"line":129,"column":7}},"locations":[{"start":{"line":127,"column":44},"end":{"line":129,"column":7}}]},"27":{"type":"branch","line":131,"loc":{"start":{"line":131,"column":31},"end":{"line":133,"column":13}},"locations":[{"start":{"line":131,"column":31},"end":{"line":133,"column":13}}]},"28":{"type":"branch","line":133,"loc":{"start":{"line":133,"column":6},"end":{"line":135,"column":7}},"locations":[{"start":{"line":133,"column":6},"end":{"line":135,"column":7}}]},"29":{"type":"branch","line":139,"loc":{"start":{"line":139,"column":17},"end":{"line":144,"column":6}},"locations":[{"start":{"line":139,"column":17},"end":{"line":144,"column":6}}]},"30":{"type":"branch","line":147,"loc":{"start":{"line":147,"column":9},"end":{"line":154,"column":6}},"locations":[{"start":{"line":147,"column":9},"end":{"line":154,"column":6}}]},"31":{"type":"branch","line":157,"loc":{"start":{"line":157,"column":11},"end":{"line":179,"column":6}},"locations":[{"start":{"line":157,"column":11},"end":{"line":179,"column":6}}]},"32":{"type":"branch","line":163,"loc":{"start":{"line":163,"column":10},"end":{"line":163,"column":40}},"locations":[{"start":{"line":163,"column":10},"end":{"line":163,"column":40}}]},"33":{"type":"branch","line":163,"loc":{"start":{"line":163,"column":40},"end":{"line":175,"column":7}},"locations":[{"start":{"line":163,"column":40},"end":{"line":175,"column":7}}]},"34":{"type":"branch","line":175,"loc":{"start":{"line":175,"column":6},"end":{"line":178,"column":29}},"locations":[{"start":{"line":175,"column":6},"end":{"line":178,"column":29}}]},"35":{"type":"branch","line":164,"loc":{"start":{"line":164,"column":32},"end":{"line":174,"column":9}},"locations":[{"start":{"line":164,"column":32},"end":{"line":174,"column":9}}]},"36":{"type":"branch","line":165,"loc":{"start":{"line":165,"column":43},"end":{"line":167,"column":11}},"locations":[{"start":{"line":165,"column":43},"end":{"line":167,"column":11}}]},"37":{"type":"branch","line":182,"loc":{"start":{"line":182,"column":14},"end":{"line":188,"column":6}},"locations":[{"start":{"line":182,"column":14},"end":{"line":188,"column":6}}]},"38":{"type":"branch","line":191,"loc":{"start":{"line":191,"column":15},"end":{"line":203,"column":6}},"locations":[{"start":{"line":191,"column":15},"end":{"line":203,"column":6}}]},"39":{"type":"branch","line":200,"loc":{"start":{"line":200,"column":6},"end":{"line":202,"column":7}},"locations":[{"start":{"line":200,"column":6},"end":{"line":202,"column":7}}]},"40":{"type":"branch","line":206,"loc":{"start":{"line":206,"column":9},"end":{"line":308,"column":6}},"locations":[{"start":{"line":206,"column":9},"end":{"line":308,"column":6}}]},"41":{"type":"branch","line":213,"loc":{"start":{"line":213,"column":36},"end":{"line":221,"column":7}},"locations":[{"start":{"line":213,"column":36},"end":{"line":221,"column":7}}]},"42":{"type":"branch","line":214,"loc":{"start":{"line":214,"column":28},"end":{"line":216,"column":9}},"locations":[{"start":{"line":214,"column":28},"end":{"line":216,"column":9}}]},"43":{"type":"branch","line":221,"loc":{"start":{"line":221,"column":6},"end":{"line":224,"column":41}},"locations":[{"start":{"line":221,"column":6},"end":{"line":224,"column":41}}]},"44":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":36},"end":{"line":224,"column":77}},"locations":[{"start":{"line":224,"column":36},"end":{"line":224,"column":77}}]},"45":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":72},"end":{"line":224,"column":107}},"locations":[{"start":{"line":224,"column":72},"end":{"line":224,"column":107}}]},"46":{"type":"branch","line":224,"loc":{"start":{"line":224,"column":107},"end":{"line":252,"column":13}},"locations":[{"start":{"line":224,"column":107},"end":{"line":252,"column":13}}]},"47":{"type":"branch","line":229,"loc":{"start":{"line":229,"column":83},"end":{"line":231,"column":11}},"locations":[{"start":{"line":229,"column":83},"end":{"line":231,"column":11}}]},"48":{"type":"branch","line":236,"loc":{"start":{"line":236,"column":30},"end":{"line":238,"column":11}},"locations":[{"start":{"line":236,"column":30},"end":{"line":238,"column":11}}]},"49":{"type":"branch","line":252,"loc":{"start":{"line":252,"column":6},"end":{"line":289,"column":9}},"locations":[{"start":{"line":252,"column":6},"end":{"line":289,"column":9}}]},"50":{"type":"branch","line":252,"loc":{"start":{"line":252,"column":6},"end":{"line":258,"column":28}},"locations":[{"start":{"line":252,"column":6},"end":{"line":258,"column":28}}]},"51":{"type":"branch","line":258,"loc":{"start":{"line":258,"column":28},"end":{"line":260,"column":9}},"locations":[{"start":{"line":258,"column":28},"end":{"line":260,"column":9}}]},"52":{"type":"branch","line":260,"loc":{"start":{"line":260,"column":8},"end":{"line":268,"column":44}},"locations":[{"start":{"line":260,"column":8},"end":{"line":268,"column":44}}]},"53":{"type":"branch","line":268,"loc":{"start":{"line":268,"column":35},"end":{"line":289,"column":9}},"locations":[{"start":{"line":268,"column":35},"end":{"line":289,"column":9}}]},"54":{"type":"branch","line":268,"loc":{"start":{"line":268,"column":35},"end":{"line":270,"column":28}},"locations":[{"start":{"line":268,"column":35},"end":{"line":270,"column":28}}]},"55":{"type":"branch","line":270,"loc":{"start":{"line":270,"column":28},"end":{"line":272,"column":9}},"locations":[{"start":{"line":270,"column":28},"end":{"line":272,"column":9}}]},"56":{"type":"branch","line":272,"loc":{"start":{"line":272,"column":8},"end":{"line":289,"column":9}},"locations":[{"start":{"line":272,"column":8},"end":{"line":289,"column":9}}]},"57":{"type":"branch","line":277,"loc":{"start":{"line":277,"column":43},"end":{"line":285,"column":11}},"locations":[{"start":{"line":277,"column":43},"end":{"line":285,"column":11}}]},"58":{"type":"branch","line":278,"loc":{"start":{"line":278,"column":42},"end":{"line":284,"column":13}},"locations":[{"start":{"line":278,"column":42},"end":{"line":284,"column":13}}]},"59":{"type":"branch","line":279,"loc":{"start":{"line":279,"column":34},"end":{"line":281,"column":15}},"locations":[{"start":{"line":279,"column":34},"end":{"line":281,"column":15}}]},"60":{"type":"branch","line":289,"loc":{"start":{"line":289,"column":8},"end":{"line":307,"column":7}},"locations":[{"start":{"line":289,"column":8},"end":{"line":307,"column":7}}]},"61":{"type":"branch","line":289,"loc":{"start":{"line":289,"column":8},"end":{"line":292,"column":15}},"locations":[{"start":{"line":289,"column":8},"end":{"line":292,"column":15}}]},"62":{"type":"branch","line":292,"loc":{"start":{"line":292,"column":6},"end":{"line":307,"column":7}},"locations":[{"start":{"line":292,"column":6},"end":{"line":307,"column":7}}]},"63":{"type":"branch","line":294,"loc":{"start":{"line":294,"column":43},"end":{"line":298,"column":11}},"locations":[{"start":{"line":294,"column":43},"end":{"line":298,"column":11}}]},"64":{"type":"branch","line":295,"loc":{"start":{"line":295,"column":42},"end":{"line":297,"column":13}},"locations":[{"start":{"line":295,"column":42},"end":{"line":297,"column":13}}]},"65":{"type":"branch","line":240,"loc":{"start":{"line":240,"column":38},"end":{"line":246,"column":11}},"locations":[{"start":{"line":240,"column":38},"end":{"line":246,"column":11}}]}},"b":{"0":[6],"1":[112],"2":[5],"3":[107],"4":[1],"5":[106],"6":[80],"7":[62],"8":[0],"9":[0],"10":[44],"11":[18],"12":[0],"13":[26],"14":[107],"15":[89],"16":[89],"17":[18],"18":[86],"19":[13],"20":[16],"21":[1],"22":[9],"23":[1],"24":[8],"25":[10],"26":[8],"27":[1],"28":[9],"29":[7],"30":[27],"31":[4],"32":[3],"33":[1],"34":[3],"35":[1],"36":[2],"37":[3],"38":[2],"39":[0],"40":[32],"41":[2],"42":[0],"43":[30],"44":[3],"45":[3],"46":[3],"47":[0],"48":[1],"49":[31],"50":[27],"51":[4],"52":[27],"53":[30],"54":[24],"55":[3],"56":[24],"57":[26],"58":[2],"59":[1],"60":[28],"61":[24],"62":[3],"63":[4],"64":[1],"65":[3]},"fnMap":{"0":{"name":"policyMaker","decl":{"start":{"line":56,"column":22},"end":{"line":89,"column":4}},"loc":{"start":{"line":56,"column":22},"end":{"line":89,"column":4}},"line":56},"1":{"name":"_callHooks","decl":{"start":{"line":98,"column":16},"end":{"line":110,"column":6}},"loc":{"start":{"line":98,"column":16},"end":{"line":110,"column":6}},"line":98},"2":{"name":"settings","decl":{"start":{"line":113,"column":14},"end":{"line":123,"column":6}},"loc":{"start":{"line":113,"column":14},"end":{"line":123,"column":6}},"line":113},"3":{"name":"addHook","decl":{"start":{"line":126,"column":13},"end":{"line":136,"column":6}},"loc":{"start":{"line":126,"column":13},"end":{"line":136,"column":6}},"line":126},"4":{"name":"addProvider","decl":{"start":{"line":139,"column":17},"end":{"line":144,"column":6}},"loc":{"start":{"line":139,"column":17},"end":{"line":144,"column":6}},"line":139},"5":{"name":"put","decl":{"start":{"line":147,"column":9},"end":{"line":154,"column":6}},"loc":{"start":{"line":147,"column":9},"end":{"line":154,"column":6}},"line":147},"6":{"name":"clear","decl":{"start":{"line":157,"column":11},"end":{"line":179,"column":6}},"loc":{"start":{"line":157,"column":11},"end":{"line":179,"column":6}},"line":157},"7":{"name":"clearAll","decl":{"start":{"line":182,"column":14},"end":{"line":188,"column":6}},"loc":{"start":{"line":182,"column":14},"end":{"line":188,"column":6}},"line":182},"8":{"name":"overwrite","decl":{"start":{"line":191,"column":15},"end":{"line":203,"column":6}},"loc":{"start":{"line":191,"column":15},"end":{"line":203,"column":6}},"line":191},"9":{"name":"get","decl":{"start":{"line":206,"column":9},"end":{"line":308,"column":6}},"loc":{"start":{"line":206,"column":9},"end":{"line":308,"column":6}},"line":206}},"f":{"0":112,"1":86,"2":9,"3":10,"4":7,"5":27,"6":4,"7":3,"8":2,"9":32}}
2
2
  ,"/Users/mikevalstar/projects/gorgon/library/provider/memory.ts": {"path":"/Users/mikevalstar/projects/gorgon/library/provider/memory.ts","all":false,"statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":69}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":0}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":67}},"3":{"start":{"line":4,"column":0},"end":{"line":4,"column":34}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":1}},"5":{"start":{"line":6,"column":0},"end":{"line":6,"column":0}},"6":{"start":{"line":7,"column":0},"end":{"line":7,"column":87}},"7":{"start":{"line":8,"column":0},"end":{"line":8,"column":60}},"8":{"start":{"line":9,"column":0},"end":{"line":9,"column":0}},"9":{"start":{"line":10,"column":0},"end":{"line":10,"column":19}},"10":{"start":{"line":11,"column":0},"end":{"line":11,"column":35}},"11":{"start":{"line":12,"column":0},"end":{"line":12,"column":0}},"12":{"start":{"line":13,"column":0},"end":{"line":13,"column":74}},"13":{"start":{"line":14,"column":0},"end":{"line":14,"column":23}},"14":{"start":{"line":15,"column":0},"end":{"line":15,"column":0}},"15":{"start":{"line":16,"column":0},"end":{"line":16,"column":22}},"16":{"start":{"line":17,"column":0},"end":{"line":17,"column":55}},"17":{"start":{"line":18,"column":0},"end":{"line":18,"column":52}},"18":{"start":{"line":19,"column":0},"end":{"line":19,"column":13}},"19":{"start":{"line":20,"column":0},"end":{"line":20,"column":6}},"20":{"start":{"line":21,"column":0},"end":{"line":21,"column":0}},"21":{"start":{"line":22,"column":0},"end":{"line":22,"column":31}},"22":{"start":{"line":23,"column":0},"end":{"line":23,"column":0}},"23":{"start":{"line":24,"column":0},"end":{"line":24,"column":51}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":42}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":30}},"26":{"start":{"line":27,"column":0},"end":{"line":27,"column":14}},"27":{"start":{"line":28,"column":0},"end":{"line":28,"column":46}},"28":{"start":{"line":29,"column":0},"end":{"line":29,"column":25}},"29":{"start":{"line":30,"column":0},"end":{"line":30,"column":7}},"30":{"start":{"line":31,"column":0},"end":{"line":31,"column":0}},"31":{"start":{"line":32,"column":0},"end":{"line":32,"column":6}},"32":{"start":{"line":33,"column":0},"end":{"line":33,"column":0}},"33":{"start":{"line":34,"column":0},"end":{"line":34,"column":73}},"34":{"start":{"line":35,"column":0},"end":{"line":35,"column":0}},"35":{"start":{"line":36,"column":0},"end":{"line":36,"column":30}},"36":{"start":{"line":37,"column":0},"end":{"line":37,"column":36}},"37":{"start":{"line":38,"column":0},"end":{"line":38,"column":0}},"38":{"start":{"line":39,"column":0},"end":{"line":39,"column":64}},"39":{"start":{"line":40,"column":0},"end":{"line":40,"column":41}},"40":{"start":{"line":41,"column":0},"end":{"line":41,"column":0}},"41":{"start":{"line":42,"column":0},"end":{"line":42,"column":57}},"42":{"start":{"line":43,"column":0},"end":{"line":43,"column":36}},"43":{"start":{"line":44,"column":0},"end":{"line":44,"column":33}},"44":{"start":{"line":45,"column":0},"end":{"line":45,"column":26}},"45":{"start":{"line":46,"column":0},"end":{"line":46,"column":7}},"46":{"start":{"line":47,"column":0},"end":{"line":47,"column":0}},"47":{"start":{"line":48,"column":0},"end":{"line":48,"column":28}},"48":{"start":{"line":49,"column":0},"end":{"line":49,"column":20}},"49":{"start":{"line":50,"column":0},"end":{"line":50,"column":23}},"50":{"start":{"line":51,"column":0},"end":{"line":51,"column":19}},"51":{"start":{"line":52,"column":0},"end":{"line":52,"column":15}},"52":{"start":{"line":53,"column":0},"end":{"line":53,"column":8}},"53":{"start":{"line":54,"column":0},"end":{"line":54,"column":0}},"54":{"start":{"line":55,"column":0},"end":{"line":55,"column":19}},"55":{"start":{"line":56,"column":0},"end":{"line":56,"column":0}},"56":{"start":{"line":57,"column":0},"end":{"line":57,"column":6}},"57":{"start":{"line":58,"column":0},"end":{"line":58,"column":0}},"58":{"start":{"line":59,"column":0},"end":{"line":59,"column":22}},"59":{"start":{"line":60,"column":0},"end":{"line":60,"column":32}},"60":{"start":{"line":61,"column":0},"end":{"line":61,"column":6}},"61":{"start":{"line":62,"column":0},"end":{"line":62,"column":0}},"62":{"start":{"line":63,"column":0},"end":{"line":63,"column":34}},"63":{"start":{"line":64,"column":0},"end":{"line":64,"column":0}},"64":{"start":{"line":65,"column":0},"end":{"line":65,"column":53}},"65":{"start":{"line":66,"column":0},"end":{"line":66,"column":35}},"66":{"start":{"line":67,"column":0},"end":{"line":67,"column":17}},"67":{"start":{"line":68,"column":0},"end":{"line":68,"column":30}},"68":{"start":{"line":69,"column":0},"end":{"line":69,"column":32}},"69":{"start":{"line":70,"column":0},"end":{"line":70,"column":9}},"70":{"start":{"line":71,"column":0},"end":{"line":71,"column":20}},"71":{"start":{"line":72,"column":0},"end":{"line":72,"column":7}},"72":{"start":{"line":73,"column":0},"end":{"line":73,"column":0}},"73":{"start":{"line":74,"column":0},"end":{"line":74,"column":37}},"74":{"start":{"line":75,"column":0},"end":{"line":75,"column":6}},"75":{"start":{"line":76,"column":0},"end":{"line":76,"column":0}},"76":{"start":{"line":77,"column":0},"end":{"line":77,"column":29}},"77":{"start":{"line":78,"column":0},"end":{"line":78,"column":67}},"78":{"start":{"line":79,"column":0},"end":{"line":79,"column":33}},"79":{"start":{"line":80,"column":0},"end":{"line":80,"column":28}},"80":{"start":{"line":81,"column":0},"end":{"line":81,"column":38}},"81":{"start":{"line":82,"column":0},"end":{"line":82,"column":9}},"82":{"start":{"line":83,"column":0},"end":{"line":83,"column":0}},"83":{"start":{"line":84,"column":0},"end":{"line":84,"column":26}},"84":{"start":{"line":85,"column":0},"end":{"line":85,"column":26}},"85":{"start":{"line":86,"column":0},"end":{"line":86,"column":20}},"86":{"start":{"line":87,"column":0},"end":{"line":87,"column":7}},"87":{"start":{"line":88,"column":0},"end":{"line":88,"column":0}},"88":{"start":{"line":89,"column":0},"end":{"line":89,"column":19}},"89":{"start":{"line":90,"column":0},"end":{"line":90,"column":6}},"90":{"start":{"line":91,"column":0},"end":{"line":91,"column":0}},"91":{"start":{"line":92,"column":0},"end":{"line":92,"column":4}},"92":{"start":{"line":93,"column":0},"end":{"line":93,"column":0}},"93":{"start":{"line":94,"column":0},"end":{"line":94,"column":21}},"94":{"start":{"line":95,"column":0},"end":{"line":95,"column":0}},"95":{"start":{"line":96,"column":0},"end":{"line":96,"column":1}},"96":{"start":{"line":97,"column":0},"end":{"line":97,"column":0}},"97":{"start":{"line":98,"column":0},"end":{"line":98,"column":34}}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":6,"9":6,"10":6,"11":6,"12":6,"13":6,"14":6,"15":6,"16":6,"17":6,"18":6,"19":6,"20":6,"21":6,"22":32,"23":32,"24":2,"25":2,"26":32,"27":30,"28":30,"29":30,"30":32,"31":32,"32":6,"33":6,"34":27,"35":27,"36":27,"37":27,"38":27,"39":27,"40":27,"41":27,"42":21,"43":6,"44":21,"45":21,"46":27,"47":27,"48":27,"49":27,"50":27,"51":27,"52":27,"53":27,"54":27,"55":27,"56":27,"57":6,"58":6,"59":2,"60":2,"61":6,"62":6,"63":42,"64":42,"65":42,"66":42,"67":4,"68":9,"69":9,"70":4,"71":4,"72":38,"73":38,"74":42,"75":6,"76":6,"77":47,"78":47,"79":20,"80":18,"81":18,"82":20,"83":20,"84":20,"85":20,"86":20,"87":27,"88":27,"89":47,"90":6,"91":6,"92":6,"93":6,"94":6,"95":6,"96":1,"97":1},"branchMap":{"0":{"type":"branch","line":8,"loc":{"start":{"line":8,"column":27},"end":{"line":96,"column":1}},"locations":[{"start":{"line":8,"column":27},"end":{"line":96,"column":1}}]},"1":{"type":"branch","line":16,"loc":{"start":{"line":16,"column":10},"end":{"line":20,"column":6}},"locations":[{"start":{"line":16,"column":10},"end":{"line":20,"column":6}}]},"2":{"type":"branch","line":22,"loc":{"start":{"line":22,"column":9},"end":{"line":32,"column":6}},"locations":[{"start":{"line":22,"column":9},"end":{"line":32,"column":6}}]},"3":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":29},"end":{"line":24,"column":50}},"locations":[{"start":{"line":24,"column":29},"end":{"line":24,"column":50}}]},"4":{"type":"branch","line":24,"loc":{"start":{"line":24,"column":50},"end":{"line":27,"column":13}},"locations":[{"start":{"line":24,"column":50},"end":{"line":27,"column":13}}]},"5":{"type":"branch","line":27,"loc":{"start":{"line":27,"column":6},"end":{"line":30,"column":7}},"locations":[{"start":{"line":27,"column":6},"end":{"line":30,"column":7}}]},"6":{"type":"branch","line":34,"loc":{"start":{"line":34,"column":9},"end":{"line":57,"column":6}},"locations":[{"start":{"line":34,"column":9},"end":{"line":57,"column":6}}]},"7":{"type":"branch","line":42,"loc":{"start":{"line":42,"column":27},"end":{"line":42,"column":56}},"locations":[{"start":{"line":42,"column":27},"end":{"line":42,"column":56}}]},"8":{"type":"branch","line":42,"loc":{"start":{"line":42,"column":56},"end":{"line":46,"column":7}},"locations":[{"start":{"line":42,"column":56},"end":{"line":46,"column":7}}]},"9":{"type":"branch","line":43,"loc":{"start":{"line":43,"column":24},"end":{"line":45,"column":11}},"locations":[{"start":{"line":43,"column":24},"end":{"line":45,"column":11}}]},"10":{"type":"branch","line":59,"loc":{"start":{"line":59,"column":10},"end":{"line":61,"column":6}},"locations":[{"start":{"line":59,"column":10},"end":{"line":61,"column":6}}]},"11":{"type":"branch","line":63,"loc":{"start":{"line":63,"column":11},"end":{"line":75,"column":6}},"locations":[{"start":{"line":63,"column":11},"end":{"line":75,"column":6}}]},"12":{"type":"branch","line":67,"loc":{"start":{"line":67,"column":16},"end":{"line":72,"column":7}},"locations":[{"start":{"line":67,"column":16},"end":{"line":72,"column":7}}]},"13":{"type":"branch","line":68,"loc":{"start":{"line":68,"column":29},"end":{"line":70,"column":9}},"locations":[{"start":{"line":68,"column":29},"end":{"line":70,"column":9}}]},"14":{"type":"branch","line":72,"loc":{"start":{"line":72,"column":6},"end":{"line":74,"column":37}},"locations":[{"start":{"line":72,"column":6},"end":{"line":74,"column":37}}]},"15":{"type":"branch","line":77,"loc":{"start":{"line":77,"column":12},"end":{"line":90,"column":6}},"locations":[{"start":{"line":77,"column":12},"end":{"line":90,"column":6}}]},"16":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":32},"end":{"line":89,"column":19}},"locations":[{"start":{"line":79,"column":32},"end":{"line":89,"column":19}}]},"17":{"type":"branch","line":79,"loc":{"start":{"line":79,"column":32},"end":{"line":87,"column":7}},"locations":[{"start":{"line":79,"column":32},"end":{"line":87,"column":7}}]},"18":{"type":"branch","line":80,"loc":{"start":{"line":80,"column":27},"end":{"line":82,"column":9}},"locations":[{"start":{"line":80,"column":27},"end":{"line":82,"column":9}}]},"19":{"type":"branch","line":87,"loc":{"start":{"line":87,"column":6},"end":{"line":89,"column":19}},"locations":[{"start":{"line":87,"column":6},"end":{"line":89,"column":19}}]}},"b":{"0":[6],"1":[6],"2":[32],"3":[2],"4":[2],"5":[30],"6":[27],"7":[21],"8":[21],"9":[6],"10":[2],"11":[42],"12":[4],"13":[9],"14":[38],"15":[47],"16":[46],"17":[20],"18":[18],"19":[27]},"fnMap":{"0":{"name":"MemoryCacheCreator","decl":{"start":{"line":8,"column":27},"end":{"line":96,"column":1}},"loc":{"start":{"line":8,"column":27},"end":{"line":96,"column":1}},"line":8},"1":{"name":"init","decl":{"start":{"line":16,"column":10},"end":{"line":20,"column":6}},"loc":{"start":{"line":16,"column":10},"end":{"line":20,"column":6}},"line":16},"2":{"name":"get","decl":{"start":{"line":22,"column":9},"end":{"line":32,"column":6}},"loc":{"start":{"line":22,"column":9},"end":{"line":32,"column":6}},"line":22},"3":{"name":"set","decl":{"start":{"line":34,"column":9},"end":{"line":57,"column":6}},"loc":{"start":{"line":34,"column":9},"end":{"line":57,"column":6}},"line":34},"4":{"name":"keys","decl":{"start":{"line":59,"column":10},"end":{"line":61,"column":6}},"loc":{"start":{"line":59,"column":10},"end":{"line":61,"column":6}},"line":59},"5":{"name":"clear","decl":{"start":{"line":63,"column":11},"end":{"line":75,"column":6}},"loc":{"start":{"line":63,"column":11},"end":{"line":75,"column":6}},"line":63},"6":{"name":"_clear","decl":{"start":{"line":77,"column":12},"end":{"line":90,"column":6}},"loc":{"start":{"line":77,"column":12},"end":{"line":90,"column":6}},"line":77}},"f":{"0":6,"1":6,"2":32,"3":27,"4":2,"5":42,"6":47}}
3
3
  }
@@ -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 2023-09-06T23:42:25.059Z
119
+ at 2026-03-22T17:21:56.863Z
120
120
  </div>
121
121
  <script src="prettify.js"></script>
122
122
  <script>
@@ -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 2023-09-06T23:42:25.059Z
104
+ at 2026-03-22T17:21:56.863Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -853,10 +853,10 @@ const Gorgon = (() =&gt; {
853
853
  },
854
854
  &nbsp;
855
855
  // Clear one or all items in the cache
856
- clear: async (key: string, provider?: string) =&gt; {
856
+ clear: async (key: string, provider?: string, hookIdentifier?: string) =&gt; {
857
857
  var prov = gorgonCore.providers[provider || settings.defaultProvider];
858
858
  &nbsp;
859
- gorgonCore._callHooks('clear', { key, provider });
859
+ gorgonCore._callHooks('clear', { key, provider, identifier: hookIdentifier });
860
860
  &nbsp;
861
861
  // Clear a wildcard search of objects
862
862
  if (key &amp;&amp; key.indexOf('*') &gt; -1) {
@@ -878,10 +878,10 @@ const Gorgon = (() =&gt; {
878
878
  },
879
879
  &nbsp;
880
880
  // Clear all keys/values in the cache
881
- clearAll: async (provider?: string) =&gt; {
881
+ clearAll: async (provider?: string, hookIdentifier?: string) =&gt; {
882
882
  var prov = gorgonCore.providers[provider || settings.defaultProvider];
883
883
  &nbsp;
884
- gorgonCore._callHooks('clearAll', { provider });
884
+ gorgonCore._callHooks('clearAll', { provider, identifier: hookIdentifier });
885
885
  &nbsp;
886
886
  return prov.clear();
887
887
  },
@@ -1021,7 +1021,7 @@ export default Gorgon;
1021
1021
  <div class='footer quiet pad2 space-top1 center small'>
1022
1022
  Code coverage generated by
1023
1023
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1024
- at 2023-09-06T23:42:25.059Z
1024
+ at 2026-03-22T17:21:56.863Z
1025
1025
  </div>
1026
1026
  <script src="../prettify.js"></script>
1027
1027
  <script>
@@ -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 2023-09-06T23:42:25.059Z
104
+ at 2026-03-22T17:21:56.863Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -364,7 +364,7 @@ export default MemoryCacheCreator;
364
364
  <div class='footer quiet pad2 space-top1 center small'>
365
365
  Code coverage generated by
366
366
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
367
- at 2023-09-06T23:42:25.059Z
367
+ at 2026-03-22T17:21:56.863Z
368
368
  </div>
369
369
  <script src="../../prettify.js"></script>
370
370
  <script>
package/dist/index.d.ts CHANGED
@@ -40,8 +40,8 @@ declare const Gorgon: {
40
40
  addHook: (key: GorgonHookKey, hook: GorgonHook | Array<GorgonHook>) => void;
41
41
  addProvider: (name: string, provider: IGorgonCacheProvider) => void;
42
42
  put: <R>(key: string, value: R, policy?: GorgonPolicyInput) => Promise<R>;
43
- clear: (key: string, provider?: string) => Promise<boolean | boolean[]>;
44
- clearAll: (provider?: string) => Promise<boolean>;
43
+ clear: (key: string, provider?: string, hookIdentifier?: string) => Promise<boolean | boolean[]>;
44
+ clearAll: (provider?: string, hookIdentifier?: string) => Promise<boolean>;
45
45
  overwrite: (key: string, asyncFunc: asyncFunction, policy?: GorgonPolicyInput) => Promise<any>;
46
46
  get: <R_1>(key: string, asyncFunc: () => R_1, policy?: GorgonPolicyInput) => Promise<R_1>;
47
47
  };
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  const g = () => {
2
- const o = {}, u = o.hasOwnProperty, n = {
2
+ const o = {}, u = o.hasOwnProperty, i = {
3
3
  init: async () => {
4
4
  },
5
5
  get: async (s) => {
@@ -7,10 +7,10 @@ const g = () => {
7
7
  return o[s].val;
8
8
  },
9
9
  set: async (s, t, r) => {
10
- await n.clear(s);
10
+ await i.clear(s);
11
11
  var e = !1;
12
12
  return r && r.expiry && r.expiry > 0 && (e = setTimeout(function() {
13
- n.clear(s);
13
+ i.clear(s);
14
14
  }, r.expiry)), o[s] = {
15
15
  policy: r,
16
16
  val: t,
@@ -21,23 +21,23 @@ const g = () => {
21
21
  clear: async (s) => {
22
22
  if (!s) {
23
23
  for (var t in o)
24
- n._clear(t);
24
+ i._clear(t);
25
25
  return !0;
26
26
  }
27
- return n._clear(s);
27
+ return i._clear(s);
28
28
  },
29
29
  _clear: (s) => u.call(o, s) ? (o[s].to && clearTimeout(o[s].to), o[s] = null, delete o[s], !0) : !1
30
30
  };
31
- return n;
31
+ return i;
32
32
  }, m = (() => {
33
- const o = {}, u = o.hasOwnProperty, n = {
33
+ const o = {}, u = o.hasOwnProperty, i = {
34
34
  debug: !1,
35
35
  defaultProvider: "memory",
36
36
  retry: 5e3
37
37
  }, s = function(r) {
38
38
  const e = {
39
39
  expiry: !1,
40
- provider: n.defaultProvider
40
+ provider: i.defaultProvider
41
41
  };
42
42
  if (!r)
43
43
  return e;
@@ -54,17 +54,17 @@ const g = () => {
54
54
  hooks: {},
55
55
  _callHooks: (r, e, a) => {
56
56
  if (u.call(t.hooks, r)) {
57
- for (var i in t.hooks[r])
58
- if (typeof t.hooks[r][i] == "function")
57
+ for (var n in t.hooks[r])
58
+ if (typeof t.hooks[r][n] == "function")
59
59
  try {
60
- t.hooks[r][i](r, e, a);
60
+ t.hooks[r][n](r, e, a);
61
61
  } catch (l) {
62
62
  console.error("[Gorgon] Hook error for hook: " + r, l);
63
63
  }
64
64
  }
65
65
  },
66
66
  // Allows for settings on the gorgon cache
67
- settings: (r) => (r && (Object.assign(n, r), t._callHooks("settings", r, n)), n),
67
+ settings: (r) => (r && (Object.assign(i, r), t._callHooks("settings", r, i)), i),
68
68
  // add a hook or array of hooks
69
69
  addHook: (r, e) => {
70
70
  u.call(t.hooks, r) || (t.hooks[r] = []), Array.isArray(e) ? t.hooks[r] = t.hooks[r].concat(e) : t.hooks[r].push(e);
@@ -76,31 +76,31 @@ const g = () => {
76
76
  // Place an item into the cache
77
77
  put: async (r, e, a) => {
78
78
  a = s(a);
79
- var i = t.providers[a.provider];
80
- return t._callHooks("put", { key: r, value: e, policy: a }, e), i.set(r, e, s(a));
79
+ var n = t.providers[a.provider];
80
+ return t._callHooks("put", { key: r, value: e, policy: a }, e), n.set(r, e, s(a));
81
81
  },
82
82
  // Clear one or all items in the cache
83
- clear: async (r, e) => {
84
- var a = t.providers[e || n.defaultProvider];
85
- return t._callHooks("clear", { key: r, provider: e }), r && r.indexOf("*") > -1 ? a.keys().then(function(i) {
86
- var l = i.filter(function(f) {
87
- return new RegExp("^" + r.split("*").join(".*") + "$").test(f);
88
- }), d = l.map(a.clear);
89
- return d.push(a.clear(r)), Promise.all(d);
90
- }) : a.clear(r);
83
+ clear: async (r, e, a) => {
84
+ var n = t.providers[e || i.defaultProvider];
85
+ return t._callHooks("clear", { key: r, provider: e, identifier: a }), r && r.indexOf("*") > -1 ? n.keys().then(function(l) {
86
+ var v = l.filter(function(h) {
87
+ return new RegExp("^" + r.split("*").join(".*") + "$").test(h);
88
+ }), f = v.map(n.clear);
89
+ return f.push(n.clear(r)), Promise.all(f);
90
+ }) : n.clear(r);
91
91
  },
92
92
  // Clear all keys/values in the cache
93
- clearAll: async (r) => {
94
- var e = t.providers[r || n.defaultProvider];
95
- return t._callHooks("clearAll", { provider: r }), e.clear();
93
+ clearAll: async (r, e) => {
94
+ var a = t.providers[r || i.defaultProvider];
95
+ return t._callHooks("clearAll", { provider: r, identifier: e }), a.clear();
96
96
  },
97
97
  // Allows you to instantly overwite a cache object
98
98
  overwrite: async (r, e, a) => {
99
99
  try {
100
- const i = await e(), l = await t.put(r, i, s(a));
100
+ const n = await e(), l = await t.put(r, n, s(a));
101
101
  return t._callHooks("overwrite", { key: r, asyncFunc: e, policy: a }, l), l;
102
- } catch (i) {
103
- throw i;
102
+ } catch (n) {
103
+ throw n;
104
104
  }
105
105
  },
106
106
  // Allows you to get from the cache or pull from the promise
@@ -108,17 +108,17 @@ const g = () => {
108
108
  a = s(a);
109
109
  const l = await t.providers[a.provider].get(r);
110
110
  if (l !== void 0)
111
- return n.debug && console.info("[Gorgon] Cache hit for key: " + r, l), t._callHooks("get", { key: r, asyncFunc: e, policy: a, cacheHit: !0, queued: !1 }, l), l;
111
+ return i.debug && console.info("[Gorgon] Cache hit for key: " + r, l), t._callHooks("get", { key: r, asyncFunc: e, policy: a, cacheHit: !0, queued: !1 }, l), l;
112
112
  if (u.call(o, r) && Array.isArray(o[r]) && o[r].length > 0) {
113
- var d = !1;
113
+ var v = !1;
114
114
  for (var f in o[r])
115
- o[r][f].queued < new Date(Date.now() - n.retry) && (d = !0);
116
- if (!d) {
117
- n.debug && console.info("[Gorgon] Cache miss, in progress, adding to current queue for key: " + r);
118
- var h = new Promise(function(c, v) {
115
+ o[r][f].queued < new Date(Date.now() - i.retry) && (v = !0);
116
+ if (!v) {
117
+ i.debug && console.info("[Gorgon] Cache miss, in progress, adding to current queue for key: " + r);
118
+ var h = new Promise(function(c, d) {
119
119
  o[r].push({
120
120
  res: c,
121
- rej: v,
121
+ rej: d,
122
122
  queued: /* @__PURE__ */ new Date()
123
123
  });
124
124
  });
@@ -127,15 +127,15 @@ const g = () => {
127
127
  } else
128
128
  o[r] = [{ queued: /* @__PURE__ */ new Date() }];
129
129
  try {
130
- n.debug && console.info("[Gorgon] Cache miss, resolving item for: " + r);
130
+ i.debug && console.info("[Gorgon] Cache miss, resolving item for: " + r);
131
131
  const c = e();
132
132
  t._callHooks("get", { key: r, asyncFunc: e, policy: a, cacheHit: !1, queued: !1 }, c);
133
- const v = await c;
134
- n.debug && console.info("[Gorgon] Cache resolved, resolved item for: " + r, v);
135
- const p = await t.put(r, v, s(a));
133
+ const d = await c;
134
+ i.debug && console.info("[Gorgon] Cache resolved, resolved item for: " + r, d);
135
+ const p = await t.put(r, d, s(a));
136
136
  if (u.call(o, r)) {
137
137
  for (var f in o[r])
138
- o[r][f].res && (n.debug && console.info("[Gorgon] Cache queue resolved for: " + r, v), o[r][f].res(p));
138
+ o[r][f].res && (i.debug && console.info("[Gorgon] Cache queue resolved for: " + r, d), o[r][f].res(p));
139
139
  o[r] = [], delete o[r];
140
140
  }
141
141
  return p;
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../provider/memory.ts","../index.ts"],"sourcesContent":["import {IGorgonCacheProvider, GorgonPolicySanitized} from '../index';\n\ninterface IGorgonMemoryCacheProvider extends IGorgonCacheProvider {\n _clear: (key:string) => boolean;\n}\n\n// Created as a function to allow for multiple instances of the memory cache, if needed\nconst MemoryCacheCreator = ():IGorgonMemoryCacheProvider =>{\n\n const cache = {};\n const hOP = cache.hasOwnProperty;\n\n// Memory cache is about the simplist cache possible, use it as an example\n const memoryCache = {\n\n init: async() => {\n // This should be used to update the cache on boot,\n // memory cache will be blank on boot by default\n return;\n },\n\n get: async(key:string) => {\n\n if (hOP.call(cache, key) && cache[key].val) {\n // The cached item exists, return it\n return cache[key].val;\n } else {\n // The cached item does not exist reject\n return undefined;\n }\n\n },\n\n set: async(key:string, value:any, policy: GorgonPolicySanitized) => {\n\n // Clear in case it exists\n await memoryCache.clear(key);\n\n // Set a timemout to self-remove from the cache if in policy\n var to = false as boolean | number;\n\n if (policy && policy.expiry && policy.expiry > 0) {\n to = setTimeout(function() {\n memoryCache.clear(key);\n }, policy.expiry);\n }\n\n // Store the cached item\n cache[key] = {\n policy: policy,\n val: value,\n to: to,\n };\n\n return value;\n\n },\n\n keys: async() => {\n return Object.keys(cache);\n },\n\n clear: async(key?:string) => {\n\n // Clears a single key or complete clear on empty\n // Clear all items in the cache\n if (!key) {\n for (var i in cache) {\n memoryCache._clear(i);\n }\n return true;\n }\n\n return memoryCache._clear(key);\n },\n\n _clear: (key:string) => {\n // Clear a single item, making sure to remove the extra timeout\n if (hOP.call(cache, key)) {\n if (cache[key].to) {\n clearTimeout(cache[key].to);\n }\n\n cache[key] = null;\n delete cache[key];\n return true;\n }\n\n return false;\n },\n\n };\n\n return memoryCache;\n\n}\n\nexport default MemoryCacheCreator;\n","import MemoryCache from './provider/memory';\n\nexport type asyncFunction = () => Promise<any> | (() => any);\nexport type GorgonHookKey =\n | 'settings'\n | 'addProvider'\n | 'put'\n | 'clear'\n | 'clearAll'\n | 'overwrite'\n | 'get'\n | 'valueError';\nexport type GorgonHook = (key: GorgonHookKey, input?: any, output?: any) => void;\nexport type GorgonSettings = {\n debug: boolean;\n defaultProvider: string;\n retry: number;\n};\nexport type GorgonSettingsInput = {\n debug?: boolean;\n defaultProvider?: string;\n retry?: number;\n};\nexport type GorgonPolicy = {\n expiry: number | Date | false;\n provider: string;\n};\nexport type GorgonPolicyInput = GorgonPolicy | number | Date;\nexport type GorgonPolicySanitized = {\n expiry: number | false;\n provider: string;\n};\ntype GorgonCurrentTaskItem = Array<{\n res?: any;\n rej?: any;\n queued: Date;\n}>;\nexport interface IGorgonCacheProvider {\n init: () => Promise<void>;\n get: (key: string) => Promise<any>;\n set: <R>(key: string, value: R, policy: GorgonPolicySanitized) => Promise<R>;\n clear: (key?: string) => Promise<boolean>;\n keys: () => Promise<string[]>;\n}\n\nconst Gorgon = (() => {\n const currentTasks = {} as { [key: string]: GorgonCurrentTaskItem };\n const hOP = currentTasks.hasOwnProperty;\n\n const settings = {\n debug: false,\n defaultProvider: 'memory',\n retry: 5000,\n } as GorgonSettings;\n\n const policyMaker = function (incPolicy?: GorgonPolicyInput) {\n const outPolicy = {\n expiry: false,\n provider: settings.defaultProvider,\n } as GorgonPolicySanitized;\n\n // Blank policy, false, or no policy. lets store forever\n if (!incPolicy) {\n return outPolicy;\n }\n\n // Type is a full policy object\n if (incPolicy instanceof Date) {\n var d = new Date();\n\n outPolicy.expiry = Math.ceil((incPolicy.getTime() - d.getTime()) / 1000);\n } else if (typeof incPolicy === 'object' && incPolicy.expiry) {\n if (incPolicy.expiry instanceof Date) {\n outPolicy.expiry = Math.ceil((incPolicy.expiry.getTime() - d.getTime()) / 1000);\n } else {\n outPolicy.expiry = incPolicy.expiry;\n }\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'object') {\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'number') {\n outPolicy.expiry = incPolicy;\n }\n\n // Number is too small, negative or not a number\n outPolicy.expiry = outPolicy.expiry && outPolicy.expiry > 0 ? outPolicy.expiry : false;\n\n return outPolicy;\n };\n\n const gorgonCore = {\n // Providers available for use\n providers: {} as { [key: string]: IGorgonCacheProvider },\n\n // Hooks\n hooks: {} as { [key: string]: Array<GorgonHook> },\n\n _callHooks: (key: GorgonHookKey, input?: any, output?: any) => {\n if (hOP.call(gorgonCore.hooks, key)) {\n for (var i in gorgonCore.hooks[key]) {\n if (typeof gorgonCore.hooks[key][i] === 'function') {\n try {\n gorgonCore.hooks[key][i](key, input, output);\n } catch (e) {\n console.error('[Gorgon] Hook error for hook: ' + key, e);\n }\n }\n }\n }\n },\n\n // Allows for settings on the gorgon cache\n settings: (newSettings?: GorgonSettingsInput) => {\n if (!newSettings) {\n return settings;\n }\n\n Object.assign(settings, newSettings); // only overwrite ones sent in; keep others at existing\n\n gorgonCore._callHooks('settings', newSettings, settings);\n\n return settings;\n },\n\n // add a hook or array of hooks\n addHook: (key: GorgonHookKey, hook: GorgonHook | Array<GorgonHook>) => {\n if (!hOP.call(gorgonCore.hooks, key)) {\n gorgonCore.hooks[key] = [];\n }\n\n if (Array.isArray(hook)) {\n gorgonCore.hooks[key] = gorgonCore.hooks[key].concat(hook);\n } else {\n gorgonCore.hooks[key].push(hook);\n }\n },\n\n // Add a provider\n addProvider: (name: string, provider: IGorgonCacheProvider) => {\n provider.init(); // Trigger for provider to clear any old cache items or any other cleanup\n gorgonCore.providers[name] = provider;\n\n gorgonCore._callHooks('addProvider', { name, provider });\n },\n\n // Place an item into the cache\n put: async <R>(key: string, value: R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n var prov = gorgonCore.providers[policy.provider];\n\n gorgonCore._callHooks('put', { key, value, policy }, value);\n\n return prov.set(key, value, policyMaker(policy));\n },\n\n // Clear one or all items in the cache\n clear: async (key: string, provider?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clear', { key, provider });\n\n // Clear a wildcard search of objects\n if (key && key.indexOf('*') > -1) {\n return prov.keys().then(function (keys) {\n var cacheMatchKeys = keys.filter(function (str) {\n return new RegExp('^' + key.split('*').join('.*') + '$').test(str);\n });\n\n var clearPromises = cacheMatchKeys.map(prov.clear);\n // Incase someone somehow used a wildcard in their cached key (don't do this)\n\n clearPromises.push(prov.clear(key));\n return Promise.all(clearPromises);\n });\n }\n\n // Not a special clear\n return prov.clear(key);\n },\n\n // Clear all keys/values in the cache\n clearAll: async (provider?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clearAll', { provider });\n\n return prov.clear();\n },\n\n // Allows you to instantly overwite a cache object\n overwrite: async (key: string, asyncFunc: asyncFunction, policy?: GorgonPolicyInput) => {\n try {\n const resolvedData = await asyncFunc();\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n gorgonCore._callHooks('overwrite', { key, asyncFunc, policy }, val);\n\n return val;\n } catch (e) {\n throw e;\n }\n },\n\n // Allows you to get from the cache or pull from the promise\n get: async <R>(key: string, asyncFunc: () => R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n const prov = gorgonCore.providers[policy.provider];\n\n const currentVal = await prov.get(key); // Most providers will only lookup by key and return false on not found\n\n // If we have a current value sent it out; cache hit!\n if (currentVal !== undefined) {\n if (settings.debug) {\n console.info('[Gorgon] Cache hit for key: ' + key, currentVal);\n }\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: true, queued: false }, currentVal);\n\n return currentVal;\n }\n\n // Are we currently already running this cache item?\n if (hOP.call(currentTasks, key) && Array.isArray(currentTasks[key]) && currentTasks[key].length > 0) {\n // Add to the current task, but ignore if any items is below retry anyway threshold\n var oldQueue = false;\n\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].queued < new Date(Date.now() - settings.retry)) {\n oldQueue = true;\n }\n }\n\n // Add to the current queue\n if (!oldQueue) {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, in progress, adding to current queue for key: ' + key);\n }\n\n var concurent = new Promise(function (resolve: (value: R) => void, reject) {\n currentTasks[key].push({\n res: resolve,\n rej: reject,\n queued: new Date(),\n });\n });\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: true }, concurent);\n\n return concurent;\n }\n } else {\n // Add current task to list, this is the first one so the primary\n currentTasks[key] = [{ queued: new Date() }];\n }\n\n try {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, resolving item for: ' + key);\n }\n\n // This is the primary item\n const resolver = asyncFunc();\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: false }, resolver);\n\n // wait for it to finish then push it out\n const resolvedData = await resolver;\n\n if (settings.debug) {\n console.info('[Gorgon] Cache resolved, resolved item for: ' + key, resolvedData);\n }\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].res) {\n if (settings.debug) {\n console.info('[Gorgon] Cache queue resolved for: ' + key, resolvedData);\n }\n\n currentTasks[key][i].res(val);\n }\n }\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n return val;\n } catch (e) {\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].rej) {\n currentTasks[key][i].rej(e);\n }\n }\n\n gorgonCore._callHooks('valueError', { key, asyncFunc, policy, cacheHit: false, queued: false }, e);\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n throw e;\n }\n },\n };\n\n gorgonCore.addProvider('memory', MemoryCache()); // Default provider, light weight and simple\n\n return gorgonCore;\n})();\n\nexport { MemoryCache };\nexport default Gorgon;\n"],"names":["MemoryCacheCreator","cache","hOP","memoryCache","key","value","policy","to","i","Gorgon","currentTasks","settings","policyMaker","incPolicy","outPolicy","d","gorgonCore","input","output","e","newSettings","hook","name","provider","prov","keys","cacheMatchKeys","str","clearPromises","asyncFunc","resolvedData","val","currentVal","oldQueue","concurent","resolve","reject","resolver","MemoryCache"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../provider/memory.ts","../index.ts"],"sourcesContent":["import {IGorgonCacheProvider, GorgonPolicySanitized} from '../index';\n\ninterface IGorgonMemoryCacheProvider extends IGorgonCacheProvider {\n _clear: (key:string) => boolean;\n}\n\n// Created as a function to allow for multiple instances of the memory cache, if needed\nconst MemoryCacheCreator = ():IGorgonMemoryCacheProvider =>{\n\n const cache = {};\n const hOP = cache.hasOwnProperty;\n\n// Memory cache is about the simplist cache possible, use it as an example\n const memoryCache = {\n\n init: async() => {\n // This should be used to update the cache on boot,\n // memory cache will be blank on boot by default\n return;\n },\n\n get: async(key:string) => {\n\n if (hOP.call(cache, key) && cache[key].val) {\n // The cached item exists, return it\n return cache[key].val;\n } else {\n // The cached item does not exist reject\n return undefined;\n }\n\n },\n\n set: async(key:string, value:any, policy: GorgonPolicySanitized) => {\n\n // Clear in case it exists\n await memoryCache.clear(key);\n\n // Set a timemout to self-remove from the cache if in policy\n var to = false as boolean | number;\n\n if (policy && policy.expiry && policy.expiry > 0) {\n to = setTimeout(function() {\n memoryCache.clear(key);\n }, policy.expiry);\n }\n\n // Store the cached item\n cache[key] = {\n policy: policy,\n val: value,\n to: to,\n };\n\n return value;\n\n },\n\n keys: async() => {\n return Object.keys(cache);\n },\n\n clear: async(key?:string) => {\n\n // Clears a single key or complete clear on empty\n // Clear all items in the cache\n if (!key) {\n for (var i in cache) {\n memoryCache._clear(i);\n }\n return true;\n }\n\n return memoryCache._clear(key);\n },\n\n _clear: (key:string) => {\n // Clear a single item, making sure to remove the extra timeout\n if (hOP.call(cache, key)) {\n if (cache[key].to) {\n clearTimeout(cache[key].to);\n }\n\n cache[key] = null;\n delete cache[key];\n return true;\n }\n\n return false;\n },\n\n };\n\n return memoryCache;\n\n}\n\nexport default MemoryCacheCreator;\n","import MemoryCache from './provider/memory';\n\nexport type asyncFunction = () => Promise<any> | (() => any);\nexport type GorgonHookKey =\n | 'settings'\n | 'addProvider'\n | 'put'\n | 'clear'\n | 'clearAll'\n | 'overwrite'\n | 'get'\n | 'valueError';\nexport type GorgonHook = (key: GorgonHookKey, input?: any, output?: any) => void;\nexport type GorgonSettings = {\n debug: boolean;\n defaultProvider: string;\n retry: number;\n};\nexport type GorgonSettingsInput = {\n debug?: boolean;\n defaultProvider?: string;\n retry?: number;\n};\nexport type GorgonPolicy = {\n expiry: number | Date | false;\n provider: string;\n};\nexport type GorgonPolicyInput = GorgonPolicy | number | Date;\nexport type GorgonPolicySanitized = {\n expiry: number | false;\n provider: string;\n};\ntype GorgonCurrentTaskItem = Array<{\n res?: any;\n rej?: any;\n queued: Date;\n}>;\nexport interface IGorgonCacheProvider {\n init: () => Promise<void>;\n get: (key: string) => Promise<any>;\n set: <R>(key: string, value: R, policy: GorgonPolicySanitized) => Promise<R>;\n clear: (key?: string) => Promise<boolean>;\n keys: () => Promise<string[]>;\n}\n\nconst Gorgon = (() => {\n const currentTasks = {} as { [key: string]: GorgonCurrentTaskItem };\n const hOP = currentTasks.hasOwnProperty;\n\n const settings = {\n debug: false,\n defaultProvider: 'memory',\n retry: 5000,\n } as GorgonSettings;\n\n const policyMaker = function (incPolicy?: GorgonPolicyInput) {\n const outPolicy = {\n expiry: false,\n provider: settings.defaultProvider,\n } as GorgonPolicySanitized;\n\n // Blank policy, false, or no policy. lets store forever\n if (!incPolicy) {\n return outPolicy;\n }\n\n // Type is a full policy object\n if (incPolicy instanceof Date) {\n var d = new Date();\n\n outPolicy.expiry = Math.ceil((incPolicy.getTime() - d.getTime()) / 1000);\n } else if (typeof incPolicy === 'object' && incPolicy.expiry) {\n if (incPolicy.expiry instanceof Date) {\n outPolicy.expiry = Math.ceil((incPolicy.expiry.getTime() - d.getTime()) / 1000);\n } else {\n outPolicy.expiry = incPolicy.expiry;\n }\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'object') {\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'number') {\n outPolicy.expiry = incPolicy;\n }\n\n // Number is too small, negative or not a number\n outPolicy.expiry = outPolicy.expiry && outPolicy.expiry > 0 ? outPolicy.expiry : false;\n\n return outPolicy;\n };\n\n const gorgonCore = {\n // Providers available for use\n providers: {} as { [key: string]: IGorgonCacheProvider },\n\n // Hooks\n hooks: {} as { [key: string]: Array<GorgonHook> },\n\n _callHooks: (key: GorgonHookKey, input?: any, output?: any) => {\n if (hOP.call(gorgonCore.hooks, key)) {\n for (var i in gorgonCore.hooks[key]) {\n if (typeof gorgonCore.hooks[key][i] === 'function') {\n try {\n gorgonCore.hooks[key][i](key, input, output);\n } catch (e) {\n console.error('[Gorgon] Hook error for hook: ' + key, e);\n }\n }\n }\n }\n },\n\n // Allows for settings on the gorgon cache\n settings: (newSettings?: GorgonSettingsInput) => {\n if (!newSettings) {\n return settings;\n }\n\n Object.assign(settings, newSettings); // only overwrite ones sent in; keep others at existing\n\n gorgonCore._callHooks('settings', newSettings, settings);\n\n return settings;\n },\n\n // add a hook or array of hooks\n addHook: (key: GorgonHookKey, hook: GorgonHook | Array<GorgonHook>) => {\n if (!hOP.call(gorgonCore.hooks, key)) {\n gorgonCore.hooks[key] = [];\n }\n\n if (Array.isArray(hook)) {\n gorgonCore.hooks[key] = gorgonCore.hooks[key].concat(hook);\n } else {\n gorgonCore.hooks[key].push(hook);\n }\n },\n\n // Add a provider\n addProvider: (name: string, provider: IGorgonCacheProvider) => {\n provider.init(); // Trigger for provider to clear any old cache items or any other cleanup\n gorgonCore.providers[name] = provider;\n\n gorgonCore._callHooks('addProvider', { name, provider });\n },\n\n // Place an item into the cache\n put: async <R>(key: string, value: R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n var prov = gorgonCore.providers[policy.provider];\n\n gorgonCore._callHooks('put', { key, value, policy }, value);\n\n return prov.set(key, value, policyMaker(policy));\n },\n\n // Clear one or all items in the cache\n clear: async (key: string, provider?: string, hookIdentifier?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clear', { key, provider, identifier: hookIdentifier });\n\n // Clear a wildcard search of objects\n if (key && key.indexOf('*') > -1) {\n return prov.keys().then(function (keys) {\n var cacheMatchKeys = keys.filter(function (str) {\n return new RegExp('^' + key.split('*').join('.*') + '$').test(str);\n });\n\n var clearPromises = cacheMatchKeys.map(prov.clear);\n // Incase someone somehow used a wildcard in their cached key (don't do this)\n\n clearPromises.push(prov.clear(key));\n return Promise.all(clearPromises);\n });\n }\n\n // Not a special clear\n return prov.clear(key);\n },\n\n // Clear all keys/values in the cache\n clearAll: async (provider?: string, hookIdentifier?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clearAll', { provider, identifier: hookIdentifier });\n\n return prov.clear();\n },\n\n // Allows you to instantly overwite a cache object\n overwrite: async (key: string, asyncFunc: asyncFunction, policy?: GorgonPolicyInput) => {\n try {\n const resolvedData = await asyncFunc();\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n gorgonCore._callHooks('overwrite', { key, asyncFunc, policy }, val);\n\n return val;\n } catch (e) {\n throw e;\n }\n },\n\n // Allows you to get from the cache or pull from the promise\n get: async <R>(key: string, asyncFunc: () => R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n const prov = gorgonCore.providers[policy.provider];\n\n const currentVal = await prov.get(key); // Most providers will only lookup by key and return false on not found\n\n // If we have a current value sent it out; cache hit!\n if (currentVal !== undefined) {\n if (settings.debug) {\n console.info('[Gorgon] Cache hit for key: ' + key, currentVal);\n }\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: true, queued: false }, currentVal);\n\n return currentVal;\n }\n\n // Are we currently already running this cache item?\n if (hOP.call(currentTasks, key) && Array.isArray(currentTasks[key]) && currentTasks[key].length > 0) {\n // Add to the current task, but ignore if any items is below retry anyway threshold\n var oldQueue = false;\n\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].queued < new Date(Date.now() - settings.retry)) {\n oldQueue = true;\n }\n }\n\n // Add to the current queue\n if (!oldQueue) {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, in progress, adding to current queue for key: ' + key);\n }\n\n var concurent = new Promise(function (resolve: (value: R) => void, reject) {\n currentTasks[key].push({\n res: resolve,\n rej: reject,\n queued: new Date(),\n });\n });\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: true }, concurent);\n\n return concurent;\n }\n } else {\n // Add current task to list, this is the first one so the primary\n currentTasks[key] = [{ queued: new Date() }];\n }\n\n try {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, resolving item for: ' + key);\n }\n\n // This is the primary item\n const resolver = asyncFunc();\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: false }, resolver);\n\n // wait for it to finish then push it out\n const resolvedData = await resolver;\n\n if (settings.debug) {\n console.info('[Gorgon] Cache resolved, resolved item for: ' + key, resolvedData);\n }\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].res) {\n if (settings.debug) {\n console.info('[Gorgon] Cache queue resolved for: ' + key, resolvedData);\n }\n\n currentTasks[key][i].res(val);\n }\n }\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n return val;\n } catch (e) {\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].rej) {\n currentTasks[key][i].rej(e);\n }\n }\n\n gorgonCore._callHooks('valueError', { key, asyncFunc, policy, cacheHit: false, queued: false }, e);\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n throw e;\n }\n },\n };\n\n gorgonCore.addProvider('memory', MemoryCache()); // Default provider, light weight and simple\n\n return gorgonCore;\n})();\n\nexport { MemoryCache };\nexport default Gorgon;\n"],"names":["MemoryCacheCreator","cache","hOP","memoryCache","key","value","policy","to","i","Gorgon","currentTasks","settings","policyMaker","incPolicy","outPolicy","d","gorgonCore","input","output","e","newSettings","hook","name","provider","prov","hookIdentifier","keys","cacheMatchKeys","str","clearPromises","asyncFunc","resolvedData","val","currentVal","oldQueue","concurent","resolve","reject","resolver","MemoryCache"],"mappings":"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"}
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(d,v){typeof exports=="object"&&typeof module<"u"?v(exports):typeof define=="function"&&define.amd?define(["exports"],v):(d=typeof globalThis<"u"?globalThis:d||self,v(d.Gorgon={}))})(this,function(d){"use strict";const v=()=>{const o={},u=o.hasOwnProperty,n={init:async()=>{},get:async s=>{if(u.call(o,s)&&o[s].val)return o[s].val},set:async(s,t,e)=>{await n.clear(s);var r=!1;return e&&e.expiry&&e.expiry>0&&(r=setTimeout(function(){n.clear(s)},e.expiry)),o[s]={policy:e,val:t,to:r},t},keys:async()=>Object.keys(o),clear:async s=>{if(!s){for(var t in o)n._clear(t);return!0}return n._clear(s)},_clear:s=>u.call(o,s)?(o[s].to&&clearTimeout(o[s].to),o[s]=null,delete o[s],!0):!1};return n},x=(()=>{const o={},u=o.hasOwnProperty,n={debug:!1,defaultProvider:"memory",retry:5e3},s=function(e){const r={expiry:!1,provider:n.defaultProvider};if(!e)return r;if(e instanceof Date){var a=new Date;r.expiry=Math.ceil((e.getTime()-a.getTime())/1e3)}else typeof e=="object"&&e.expiry?(e.expiry instanceof Date?r.expiry=Math.ceil((e.expiry.getTime()-a.getTime())/1e3):r.expiry=e.expiry,r.provider=e.provider||r.provider):typeof e=="object"?r.provider=e.provider||r.provider:typeof e=="number"&&(r.expiry=e);return r.expiry=r.expiry&&r.expiry>0?r.expiry:!1,r},t={providers:{},hooks:{},_callHooks:(e,r,a)=>{if(u.call(t.hooks,e)){for(var i in t.hooks[e])if(typeof t.hooks[e][i]=="function")try{t.hooks[e][i](e,r,a)}catch(f){console.error("[Gorgon] Hook error for hook: "+e,f)}}},settings:e=>(e&&(Object.assign(n,e),t._callHooks("settings",e,n)),n),addHook:(e,r)=>{u.call(t.hooks,e)||(t.hooks[e]=[]),Array.isArray(r)?t.hooks[e]=t.hooks[e].concat(r):t.hooks[e].push(r)},addProvider:(e,r)=>{r.init(),t.providers[e]=r,t._callHooks("addProvider",{name:e,provider:r})},put:async(e,r,a)=>{a=s(a);var i=t.providers[a.provider];return t._callHooks("put",{key:e,value:r,policy:a},r),i.set(e,r,s(a))},clear:async(e,r)=>{var a=t.providers[r||n.defaultProvider];return t._callHooks("clear",{key:e,provider:r}),e&&e.indexOf("*")>-1?a.keys().then(function(i){var f=i.filter(function(l){return new RegExp("^"+e.split("*").join(".*")+"$").test(l)}),h=f.map(a.clear);return h.push(a.clear(e)),Promise.all(h)}):a.clear(e)},clearAll:async e=>{var r=t.providers[e||n.defaultProvider];return t._callHooks("clearAll",{provider:e}),r.clear()},overwrite:async(e,r,a)=>{try{const i=await r(),f=await t.put(e,i,s(a));return t._callHooks("overwrite",{key:e,asyncFunc:r,policy:a},f),f}catch(i){throw i}},get:async(e,r,a)=>{a=s(a);const f=await t.providers[a.provider].get(e);if(f!==void 0)return n.debug&&console.info("[Gorgon] Cache hit for key: "+e,f),t._callHooks("get",{key:e,asyncFunc:r,policy:a,cacheHit:!0,queued:!1},f),f;if(u.call(o,e)&&Array.isArray(o[e])&&o[e].length>0){var h=!1;for(var l in o[e])o[e][l].queued<new Date(Date.now()-n.retry)&&(h=!0);if(!h){n.debug&&console.info("[Gorgon] Cache miss, in progress, adding to current queue for key: "+e);var g=new Promise(function(c,p){o[e].push({res:c,rej:p,queued:new Date})});return t._callHooks("get",{key:e,asyncFunc:r,policy:a,cacheHit:!1,queued:!0},g),g}}else o[e]=[{queued:new Date}];try{n.debug&&console.info("[Gorgon] Cache miss, resolving item for: "+e);const c=r();t._callHooks("get",{key:e,asyncFunc:r,policy:a,cacheHit:!1,queued:!1},c);const p=await c;n.debug&&console.info("[Gorgon] Cache resolved, resolved item for: "+e,p);const m=await t.put(e,p,s(a));if(u.call(o,e)){for(var l in o[e])o[e][l].res&&(n.debug&&console.info("[Gorgon] Cache queue resolved for: "+e,p),o[e][l].res(m));o[e]=[],delete o[e]}return m}catch(c){if(u.call(o,e)){for(var l in o[e])o[e][l].rej&&o[e][l].rej(c);t._callHooks("valueError",{key:e,asyncFunc:r,policy:a,cacheHit:!1,queued:!1},c),o[e]=[],delete o[e]}throw c}}};return t.addProvider("memory",v()),t})();d.MemoryCache=v,d.default=x,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(c,v){typeof exports=="object"&&typeof module<"u"?v(exports):typeof define=="function"&&define.amd?define(["exports"],v):(c=typeof globalThis<"u"?globalThis:c||self,v(c.Gorgon={}))})(this,function(c){"use strict";const v=()=>{const o={},u=o.hasOwnProperty,i={init:async()=>{},get:async s=>{if(u.call(o,s)&&o[s].val)return o[s].val},set:async(s,t,e)=>{await i.clear(s);var r=!1;return e&&e.expiry&&e.expiry>0&&(r=setTimeout(function(){i.clear(s)},e.expiry)),o[s]={policy:e,val:t,to:r},t},keys:async()=>Object.keys(o),clear:async s=>{if(!s){for(var t in o)i._clear(t);return!0}return i._clear(s)},_clear:s=>u.call(o,s)?(o[s].to&&clearTimeout(o[s].to),o[s]=null,delete o[s],!0):!1};return i},x=(()=>{const o={},u=o.hasOwnProperty,i={debug:!1,defaultProvider:"memory",retry:5e3},s=function(e){const r={expiry:!1,provider:i.defaultProvider};if(!e)return r;if(e instanceof Date){var a=new Date;r.expiry=Math.ceil((e.getTime()-a.getTime())/1e3)}else typeof e=="object"&&e.expiry?(e.expiry instanceof Date?r.expiry=Math.ceil((e.expiry.getTime()-a.getTime())/1e3):r.expiry=e.expiry,r.provider=e.provider||r.provider):typeof e=="object"?r.provider=e.provider||r.provider:typeof e=="number"&&(r.expiry=e);return r.expiry=r.expiry&&r.expiry>0?r.expiry:!1,r},t={providers:{},hooks:{},_callHooks:(e,r,a)=>{if(u.call(t.hooks,e)){for(var n in t.hooks[e])if(typeof t.hooks[e][n]=="function")try{t.hooks[e][n](e,r,a)}catch(f){console.error("[Gorgon] Hook error for hook: "+e,f)}}},settings:e=>(e&&(Object.assign(i,e),t._callHooks("settings",e,i)),i),addHook:(e,r)=>{u.call(t.hooks,e)||(t.hooks[e]=[]),Array.isArray(r)?t.hooks[e]=t.hooks[e].concat(r):t.hooks[e].push(r)},addProvider:(e,r)=>{r.init(),t.providers[e]=r,t._callHooks("addProvider",{name:e,provider:r})},put:async(e,r,a)=>{a=s(a);var n=t.providers[a.provider];return t._callHooks("put",{key:e,value:r,policy:a},r),n.set(e,r,s(a))},clear:async(e,r,a)=>{var n=t.providers[r||i.defaultProvider];return t._callHooks("clear",{key:e,provider:r,identifier:a}),e&&e.indexOf("*")>-1?n.keys().then(function(f){var p=f.filter(function(g){return new RegExp("^"+e.split("*").join(".*")+"$").test(g)}),l=p.map(n.clear);return l.push(n.clear(e)),Promise.all(l)}):n.clear(e)},clearAll:async(e,r)=>{var a=t.providers[e||i.defaultProvider];return t._callHooks("clearAll",{provider:e,identifier:r}),a.clear()},overwrite:async(e,r,a)=>{try{const n=await r(),f=await t.put(e,n,s(a));return t._callHooks("overwrite",{key:e,asyncFunc:r,policy:a},f),f}catch(n){throw n}},get:async(e,r,a)=>{a=s(a);const f=await t.providers[a.provider].get(e);if(f!==void 0)return i.debug&&console.info("[Gorgon] Cache hit for key: "+e,f),t._callHooks("get",{key:e,asyncFunc:r,policy:a,cacheHit:!0,queued:!1},f),f;if(u.call(o,e)&&Array.isArray(o[e])&&o[e].length>0){var p=!1;for(var l in o[e])o[e][l].queued<new Date(Date.now()-i.retry)&&(p=!0);if(!p){i.debug&&console.info("[Gorgon] Cache miss, in progress, adding to current queue for key: "+e);var g=new Promise(function(d,h){o[e].push({res:d,rej:h,queued:new Date})});return t._callHooks("get",{key:e,asyncFunc:r,policy:a,cacheHit:!1,queued:!0},g),g}}else o[e]=[{queued:new Date}];try{i.debug&&console.info("[Gorgon] Cache miss, resolving item for: "+e);const d=r();t._callHooks("get",{key:e,asyncFunc:r,policy:a,cacheHit:!1,queued:!1},d);const h=await d;i.debug&&console.info("[Gorgon] Cache resolved, resolved item for: "+e,h);const m=await t.put(e,h,s(a));if(u.call(o,e)){for(var l in o[e])o[e][l].res&&(i.debug&&console.info("[Gorgon] Cache queue resolved for: "+e,h),o[e][l].res(m));o[e]=[],delete o[e]}return m}catch(d){if(u.call(o,e)){for(var l in o[e])o[e][l].rej&&o[e][l].rej(d);t._callHooks("valueError",{key:e,asyncFunc:r,policy:a,cacheHit:!1,queued:!1},d),o[e]=[],delete o[e]}throw d}}};return t.addProvider("memory",v()),t})();c.MemoryCache=v,c.default=x,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
2
  //# sourceMappingURL=index.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../provider/memory.ts","../index.ts"],"sourcesContent":["import {IGorgonCacheProvider, GorgonPolicySanitized} from '../index';\n\ninterface IGorgonMemoryCacheProvider extends IGorgonCacheProvider {\n _clear: (key:string) => boolean;\n}\n\n// Created as a function to allow for multiple instances of the memory cache, if needed\nconst MemoryCacheCreator = ():IGorgonMemoryCacheProvider =>{\n\n const cache = {};\n const hOP = cache.hasOwnProperty;\n\n// Memory cache is about the simplist cache possible, use it as an example\n const memoryCache = {\n\n init: async() => {\n // This should be used to update the cache on boot,\n // memory cache will be blank on boot by default\n return;\n },\n\n get: async(key:string) => {\n\n if (hOP.call(cache, key) && cache[key].val) {\n // The cached item exists, return it\n return cache[key].val;\n } else {\n // The cached item does not exist reject\n return undefined;\n }\n\n },\n\n set: async(key:string, value:any, policy: GorgonPolicySanitized) => {\n\n // Clear in case it exists\n await memoryCache.clear(key);\n\n // Set a timemout to self-remove from the cache if in policy\n var to = false as boolean | number;\n\n if (policy && policy.expiry && policy.expiry > 0) {\n to = setTimeout(function() {\n memoryCache.clear(key);\n }, policy.expiry);\n }\n\n // Store the cached item\n cache[key] = {\n policy: policy,\n val: value,\n to: to,\n };\n\n return value;\n\n },\n\n keys: async() => {\n return Object.keys(cache);\n },\n\n clear: async(key?:string) => {\n\n // Clears a single key or complete clear on empty\n // Clear all items in the cache\n if (!key) {\n for (var i in cache) {\n memoryCache._clear(i);\n }\n return true;\n }\n\n return memoryCache._clear(key);\n },\n\n _clear: (key:string) => {\n // Clear a single item, making sure to remove the extra timeout\n if (hOP.call(cache, key)) {\n if (cache[key].to) {\n clearTimeout(cache[key].to);\n }\n\n cache[key] = null;\n delete cache[key];\n return true;\n }\n\n return false;\n },\n\n };\n\n return memoryCache;\n\n}\n\nexport default MemoryCacheCreator;\n","import MemoryCache from './provider/memory';\n\nexport type asyncFunction = () => Promise<any> | (() => any);\nexport type GorgonHookKey =\n | 'settings'\n | 'addProvider'\n | 'put'\n | 'clear'\n | 'clearAll'\n | 'overwrite'\n | 'get'\n | 'valueError';\nexport type GorgonHook = (key: GorgonHookKey, input?: any, output?: any) => void;\nexport type GorgonSettings = {\n debug: boolean;\n defaultProvider: string;\n retry: number;\n};\nexport type GorgonSettingsInput = {\n debug?: boolean;\n defaultProvider?: string;\n retry?: number;\n};\nexport type GorgonPolicy = {\n expiry: number | Date | false;\n provider: string;\n};\nexport type GorgonPolicyInput = GorgonPolicy | number | Date;\nexport type GorgonPolicySanitized = {\n expiry: number | false;\n provider: string;\n};\ntype GorgonCurrentTaskItem = Array<{\n res?: any;\n rej?: any;\n queued: Date;\n}>;\nexport interface IGorgonCacheProvider {\n init: () => Promise<void>;\n get: (key: string) => Promise<any>;\n set: <R>(key: string, value: R, policy: GorgonPolicySanitized) => Promise<R>;\n clear: (key?: string) => Promise<boolean>;\n keys: () => Promise<string[]>;\n}\n\nconst Gorgon = (() => {\n const currentTasks = {} as { [key: string]: GorgonCurrentTaskItem };\n const hOP = currentTasks.hasOwnProperty;\n\n const settings = {\n debug: false,\n defaultProvider: 'memory',\n retry: 5000,\n } as GorgonSettings;\n\n const policyMaker = function (incPolicy?: GorgonPolicyInput) {\n const outPolicy = {\n expiry: false,\n provider: settings.defaultProvider,\n } as GorgonPolicySanitized;\n\n // Blank policy, false, or no policy. lets store forever\n if (!incPolicy) {\n return outPolicy;\n }\n\n // Type is a full policy object\n if (incPolicy instanceof Date) {\n var d = new Date();\n\n outPolicy.expiry = Math.ceil((incPolicy.getTime() - d.getTime()) / 1000);\n } else if (typeof incPolicy === 'object' && incPolicy.expiry) {\n if (incPolicy.expiry instanceof Date) {\n outPolicy.expiry = Math.ceil((incPolicy.expiry.getTime() - d.getTime()) / 1000);\n } else {\n outPolicy.expiry = incPolicy.expiry;\n }\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'object') {\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'number') {\n outPolicy.expiry = incPolicy;\n }\n\n // Number is too small, negative or not a number\n outPolicy.expiry = outPolicy.expiry && outPolicy.expiry > 0 ? outPolicy.expiry : false;\n\n return outPolicy;\n };\n\n const gorgonCore = {\n // Providers available for use\n providers: {} as { [key: string]: IGorgonCacheProvider },\n\n // Hooks\n hooks: {} as { [key: string]: Array<GorgonHook> },\n\n _callHooks: (key: GorgonHookKey, input?: any, output?: any) => {\n if (hOP.call(gorgonCore.hooks, key)) {\n for (var i in gorgonCore.hooks[key]) {\n if (typeof gorgonCore.hooks[key][i] === 'function') {\n try {\n gorgonCore.hooks[key][i](key, input, output);\n } catch (e) {\n console.error('[Gorgon] Hook error for hook: ' + key, e);\n }\n }\n }\n }\n },\n\n // Allows for settings on the gorgon cache\n settings: (newSettings?: GorgonSettingsInput) => {\n if (!newSettings) {\n return settings;\n }\n\n Object.assign(settings, newSettings); // only overwrite ones sent in; keep others at existing\n\n gorgonCore._callHooks('settings', newSettings, settings);\n\n return settings;\n },\n\n // add a hook or array of hooks\n addHook: (key: GorgonHookKey, hook: GorgonHook | Array<GorgonHook>) => {\n if (!hOP.call(gorgonCore.hooks, key)) {\n gorgonCore.hooks[key] = [];\n }\n\n if (Array.isArray(hook)) {\n gorgonCore.hooks[key] = gorgonCore.hooks[key].concat(hook);\n } else {\n gorgonCore.hooks[key].push(hook);\n }\n },\n\n // Add a provider\n addProvider: (name: string, provider: IGorgonCacheProvider) => {\n provider.init(); // Trigger for provider to clear any old cache items or any other cleanup\n gorgonCore.providers[name] = provider;\n\n gorgonCore._callHooks('addProvider', { name, provider });\n },\n\n // Place an item into the cache\n put: async <R>(key: string, value: R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n var prov = gorgonCore.providers[policy.provider];\n\n gorgonCore._callHooks('put', { key, value, policy }, value);\n\n return prov.set(key, value, policyMaker(policy));\n },\n\n // Clear one or all items in the cache\n clear: async (key: string, provider?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clear', { key, provider });\n\n // Clear a wildcard search of objects\n if (key && key.indexOf('*') > -1) {\n return prov.keys().then(function (keys) {\n var cacheMatchKeys = keys.filter(function (str) {\n return new RegExp('^' + key.split('*').join('.*') + '$').test(str);\n });\n\n var clearPromises = cacheMatchKeys.map(prov.clear);\n // Incase someone somehow used a wildcard in their cached key (don't do this)\n\n clearPromises.push(prov.clear(key));\n return Promise.all(clearPromises);\n });\n }\n\n // Not a special clear\n return prov.clear(key);\n },\n\n // Clear all keys/values in the cache\n clearAll: async (provider?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clearAll', { provider });\n\n return prov.clear();\n },\n\n // Allows you to instantly overwite a cache object\n overwrite: async (key: string, asyncFunc: asyncFunction, policy?: GorgonPolicyInput) => {\n try {\n const resolvedData = await asyncFunc();\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n gorgonCore._callHooks('overwrite', { key, asyncFunc, policy }, val);\n\n return val;\n } catch (e) {\n throw e;\n }\n },\n\n // Allows you to get from the cache or pull from the promise\n get: async <R>(key: string, asyncFunc: () => R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n const prov = gorgonCore.providers[policy.provider];\n\n const currentVal = await prov.get(key); // Most providers will only lookup by key and return false on not found\n\n // If we have a current value sent it out; cache hit!\n if (currentVal !== undefined) {\n if (settings.debug) {\n console.info('[Gorgon] Cache hit for key: ' + key, currentVal);\n }\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: true, queued: false }, currentVal);\n\n return currentVal;\n }\n\n // Are we currently already running this cache item?\n if (hOP.call(currentTasks, key) && Array.isArray(currentTasks[key]) && currentTasks[key].length > 0) {\n // Add to the current task, but ignore if any items is below retry anyway threshold\n var oldQueue = false;\n\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].queued < new Date(Date.now() - settings.retry)) {\n oldQueue = true;\n }\n }\n\n // Add to the current queue\n if (!oldQueue) {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, in progress, adding to current queue for key: ' + key);\n }\n\n var concurent = new Promise(function (resolve: (value: R) => void, reject) {\n currentTasks[key].push({\n res: resolve,\n rej: reject,\n queued: new Date(),\n });\n });\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: true }, concurent);\n\n return concurent;\n }\n } else {\n // Add current task to list, this is the first one so the primary\n currentTasks[key] = [{ queued: new Date() }];\n }\n\n try {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, resolving item for: ' + key);\n }\n\n // This is the primary item\n const resolver = asyncFunc();\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: false }, resolver);\n\n // wait for it to finish then push it out\n const resolvedData = await resolver;\n\n if (settings.debug) {\n console.info('[Gorgon] Cache resolved, resolved item for: ' + key, resolvedData);\n }\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].res) {\n if (settings.debug) {\n console.info('[Gorgon] Cache queue resolved for: ' + key, resolvedData);\n }\n\n currentTasks[key][i].res(val);\n }\n }\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n return val;\n } catch (e) {\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].rej) {\n currentTasks[key][i].rej(e);\n }\n }\n\n gorgonCore._callHooks('valueError', { key, asyncFunc, policy, cacheHit: false, queued: false }, e);\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n throw e;\n }\n },\n };\n\n gorgonCore.addProvider('memory', MemoryCache()); // Default provider, light weight and simple\n\n return gorgonCore;\n})();\n\nexport { MemoryCache };\nexport default Gorgon;\n"],"names":["MemoryCacheCreator","cache","hOP","memoryCache","key","value","policy","to","i","Gorgon","currentTasks","settings","policyMaker","incPolicy","outPolicy","d","gorgonCore","input","output","e","newSettings","hook","name","provider","prov","keys","cacheMatchKeys","str","clearPromises","asyncFunc","resolvedData","val","currentVal","oldQueue","concurent","resolve","reject","resolver","MemoryCache"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../provider/memory.ts","../index.ts"],"sourcesContent":["import {IGorgonCacheProvider, GorgonPolicySanitized} from '../index';\n\ninterface IGorgonMemoryCacheProvider extends IGorgonCacheProvider {\n _clear: (key:string) => boolean;\n}\n\n// Created as a function to allow for multiple instances of the memory cache, if needed\nconst MemoryCacheCreator = ():IGorgonMemoryCacheProvider =>{\n\n const cache = {};\n const hOP = cache.hasOwnProperty;\n\n// Memory cache is about the simplist cache possible, use it as an example\n const memoryCache = {\n\n init: async() => {\n // This should be used to update the cache on boot,\n // memory cache will be blank on boot by default\n return;\n },\n\n get: async(key:string) => {\n\n if (hOP.call(cache, key) && cache[key].val) {\n // The cached item exists, return it\n return cache[key].val;\n } else {\n // The cached item does not exist reject\n return undefined;\n }\n\n },\n\n set: async(key:string, value:any, policy: GorgonPolicySanitized) => {\n\n // Clear in case it exists\n await memoryCache.clear(key);\n\n // Set a timemout to self-remove from the cache if in policy\n var to = false as boolean | number;\n\n if (policy && policy.expiry && policy.expiry > 0) {\n to = setTimeout(function() {\n memoryCache.clear(key);\n }, policy.expiry);\n }\n\n // Store the cached item\n cache[key] = {\n policy: policy,\n val: value,\n to: to,\n };\n\n return value;\n\n },\n\n keys: async() => {\n return Object.keys(cache);\n },\n\n clear: async(key?:string) => {\n\n // Clears a single key or complete clear on empty\n // Clear all items in the cache\n if (!key) {\n for (var i in cache) {\n memoryCache._clear(i);\n }\n return true;\n }\n\n return memoryCache._clear(key);\n },\n\n _clear: (key:string) => {\n // Clear a single item, making sure to remove the extra timeout\n if (hOP.call(cache, key)) {\n if (cache[key].to) {\n clearTimeout(cache[key].to);\n }\n\n cache[key] = null;\n delete cache[key];\n return true;\n }\n\n return false;\n },\n\n };\n\n return memoryCache;\n\n}\n\nexport default MemoryCacheCreator;\n","import MemoryCache from './provider/memory';\n\nexport type asyncFunction = () => Promise<any> | (() => any);\nexport type GorgonHookKey =\n | 'settings'\n | 'addProvider'\n | 'put'\n | 'clear'\n | 'clearAll'\n | 'overwrite'\n | 'get'\n | 'valueError';\nexport type GorgonHook = (key: GorgonHookKey, input?: any, output?: any) => void;\nexport type GorgonSettings = {\n debug: boolean;\n defaultProvider: string;\n retry: number;\n};\nexport type GorgonSettingsInput = {\n debug?: boolean;\n defaultProvider?: string;\n retry?: number;\n};\nexport type GorgonPolicy = {\n expiry: number | Date | false;\n provider: string;\n};\nexport type GorgonPolicyInput = GorgonPolicy | number | Date;\nexport type GorgonPolicySanitized = {\n expiry: number | false;\n provider: string;\n};\ntype GorgonCurrentTaskItem = Array<{\n res?: any;\n rej?: any;\n queued: Date;\n}>;\nexport interface IGorgonCacheProvider {\n init: () => Promise<void>;\n get: (key: string) => Promise<any>;\n set: <R>(key: string, value: R, policy: GorgonPolicySanitized) => Promise<R>;\n clear: (key?: string) => Promise<boolean>;\n keys: () => Promise<string[]>;\n}\n\nconst Gorgon = (() => {\n const currentTasks = {} as { [key: string]: GorgonCurrentTaskItem };\n const hOP = currentTasks.hasOwnProperty;\n\n const settings = {\n debug: false,\n defaultProvider: 'memory',\n retry: 5000,\n } as GorgonSettings;\n\n const policyMaker = function (incPolicy?: GorgonPolicyInput) {\n const outPolicy = {\n expiry: false,\n provider: settings.defaultProvider,\n } as GorgonPolicySanitized;\n\n // Blank policy, false, or no policy. lets store forever\n if (!incPolicy) {\n return outPolicy;\n }\n\n // Type is a full policy object\n if (incPolicy instanceof Date) {\n var d = new Date();\n\n outPolicy.expiry = Math.ceil((incPolicy.getTime() - d.getTime()) / 1000);\n } else if (typeof incPolicy === 'object' && incPolicy.expiry) {\n if (incPolicy.expiry instanceof Date) {\n outPolicy.expiry = Math.ceil((incPolicy.expiry.getTime() - d.getTime()) / 1000);\n } else {\n outPolicy.expiry = incPolicy.expiry;\n }\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'object') {\n outPolicy.provider = incPolicy.provider || outPolicy.provider;\n } else if (typeof incPolicy === 'number') {\n outPolicy.expiry = incPolicy;\n }\n\n // Number is too small, negative or not a number\n outPolicy.expiry = outPolicy.expiry && outPolicy.expiry > 0 ? outPolicy.expiry : false;\n\n return outPolicy;\n };\n\n const gorgonCore = {\n // Providers available for use\n providers: {} as { [key: string]: IGorgonCacheProvider },\n\n // Hooks\n hooks: {} as { [key: string]: Array<GorgonHook> },\n\n _callHooks: (key: GorgonHookKey, input?: any, output?: any) => {\n if (hOP.call(gorgonCore.hooks, key)) {\n for (var i in gorgonCore.hooks[key]) {\n if (typeof gorgonCore.hooks[key][i] === 'function') {\n try {\n gorgonCore.hooks[key][i](key, input, output);\n } catch (e) {\n console.error('[Gorgon] Hook error for hook: ' + key, e);\n }\n }\n }\n }\n },\n\n // Allows for settings on the gorgon cache\n settings: (newSettings?: GorgonSettingsInput) => {\n if (!newSettings) {\n return settings;\n }\n\n Object.assign(settings, newSettings); // only overwrite ones sent in; keep others at existing\n\n gorgonCore._callHooks('settings', newSettings, settings);\n\n return settings;\n },\n\n // add a hook or array of hooks\n addHook: (key: GorgonHookKey, hook: GorgonHook | Array<GorgonHook>) => {\n if (!hOP.call(gorgonCore.hooks, key)) {\n gorgonCore.hooks[key] = [];\n }\n\n if (Array.isArray(hook)) {\n gorgonCore.hooks[key] = gorgonCore.hooks[key].concat(hook);\n } else {\n gorgonCore.hooks[key].push(hook);\n }\n },\n\n // Add a provider\n addProvider: (name: string, provider: IGorgonCacheProvider) => {\n provider.init(); // Trigger for provider to clear any old cache items or any other cleanup\n gorgonCore.providers[name] = provider;\n\n gorgonCore._callHooks('addProvider', { name, provider });\n },\n\n // Place an item into the cache\n put: async <R>(key: string, value: R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n var prov = gorgonCore.providers[policy.provider];\n\n gorgonCore._callHooks('put', { key, value, policy }, value);\n\n return prov.set(key, value, policyMaker(policy));\n },\n\n // Clear one or all items in the cache\n clear: async (key: string, provider?: string, hookIdentifier?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clear', { key, provider, identifier: hookIdentifier });\n\n // Clear a wildcard search of objects\n if (key && key.indexOf('*') > -1) {\n return prov.keys().then(function (keys) {\n var cacheMatchKeys = keys.filter(function (str) {\n return new RegExp('^' + key.split('*').join('.*') + '$').test(str);\n });\n\n var clearPromises = cacheMatchKeys.map(prov.clear);\n // Incase someone somehow used a wildcard in their cached key (don't do this)\n\n clearPromises.push(prov.clear(key));\n return Promise.all(clearPromises);\n });\n }\n\n // Not a special clear\n return prov.clear(key);\n },\n\n // Clear all keys/values in the cache\n clearAll: async (provider?: string, hookIdentifier?: string) => {\n var prov = gorgonCore.providers[provider || settings.defaultProvider];\n\n gorgonCore._callHooks('clearAll', { provider, identifier: hookIdentifier });\n\n return prov.clear();\n },\n\n // Allows you to instantly overwite a cache object\n overwrite: async (key: string, asyncFunc: asyncFunction, policy?: GorgonPolicyInput) => {\n try {\n const resolvedData = await asyncFunc();\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n gorgonCore._callHooks('overwrite', { key, asyncFunc, policy }, val);\n\n return val;\n } catch (e) {\n throw e;\n }\n },\n\n // Allows you to get from the cache or pull from the promise\n get: async <R>(key: string, asyncFunc: () => R, policy?: GorgonPolicyInput): Promise<R> => {\n policy = policyMaker(policy);\n const prov = gorgonCore.providers[policy.provider];\n\n const currentVal = await prov.get(key); // Most providers will only lookup by key and return false on not found\n\n // If we have a current value sent it out; cache hit!\n if (currentVal !== undefined) {\n if (settings.debug) {\n console.info('[Gorgon] Cache hit for key: ' + key, currentVal);\n }\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: true, queued: false }, currentVal);\n\n return currentVal;\n }\n\n // Are we currently already running this cache item?\n if (hOP.call(currentTasks, key) && Array.isArray(currentTasks[key]) && currentTasks[key].length > 0) {\n // Add to the current task, but ignore if any items is below retry anyway threshold\n var oldQueue = false;\n\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].queued < new Date(Date.now() - settings.retry)) {\n oldQueue = true;\n }\n }\n\n // Add to the current queue\n if (!oldQueue) {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, in progress, adding to current queue for key: ' + key);\n }\n\n var concurent = new Promise(function (resolve: (value: R) => void, reject) {\n currentTasks[key].push({\n res: resolve,\n rej: reject,\n queued: new Date(),\n });\n });\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: true }, concurent);\n\n return concurent;\n }\n } else {\n // Add current task to list, this is the first one so the primary\n currentTasks[key] = [{ queued: new Date() }];\n }\n\n try {\n if (settings.debug) {\n console.info('[Gorgon] Cache miss, resolving item for: ' + key);\n }\n\n // This is the primary item\n const resolver = asyncFunc();\n\n gorgonCore._callHooks('get', { key, asyncFunc, policy, cacheHit: false, queued: false }, resolver);\n\n // wait for it to finish then push it out\n const resolvedData = await resolver;\n\n if (settings.debug) {\n console.info('[Gorgon] Cache resolved, resolved item for: ' + key, resolvedData);\n }\n\n const val = await gorgonCore.put(key, resolvedData, policyMaker(policy));\n\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].res) {\n if (settings.debug) {\n console.info('[Gorgon] Cache queue resolved for: ' + key, resolvedData);\n }\n\n currentTasks[key][i].res(val);\n }\n }\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n return val;\n } catch (e) {\n if (hOP.call(currentTasks, key)) {\n for (var i in currentTasks[key]) {\n if (currentTasks[key][i].rej) {\n currentTasks[key][i].rej(e);\n }\n }\n\n gorgonCore._callHooks('valueError', { key, asyncFunc, policy, cacheHit: false, queued: false }, e);\n\n currentTasks[key] = [];\n delete currentTasks[key];\n }\n\n throw e;\n }\n },\n };\n\n gorgonCore.addProvider('memory', MemoryCache()); // Default provider, light weight and simple\n\n return gorgonCore;\n})();\n\nexport { MemoryCache };\nexport default Gorgon;\n"],"names":["MemoryCacheCreator","cache","hOP","memoryCache","key","value","policy","to","i","Gorgon","currentTasks","settings","policyMaker","incPolicy","outPolicy","d","gorgonCore","input","output","e","newSettings","hook","name","provider","prov","hookIdentifier","keys","cacheMatchKeys","str","clearPromises","asyncFunc","resolvedData","val","currentVal","oldQueue","concurent","resolve","reject","resolver","MemoryCache"],"mappings":"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"}
package/index.ts CHANGED
@@ -154,10 +154,10 @@ const Gorgon = (() => {
154
154
  },
155
155
 
156
156
  // Clear one or all items in the cache
157
- clear: async (key: string, provider?: string) => {
157
+ clear: async (key: string, provider?: string, hookIdentifier?: string) => {
158
158
  var prov = gorgonCore.providers[provider || settings.defaultProvider];
159
159
 
160
- gorgonCore._callHooks('clear', { key, provider });
160
+ gorgonCore._callHooks('clear', { key, provider, identifier: hookIdentifier });
161
161
 
162
162
  // Clear a wildcard search of objects
163
163
  if (key && key.indexOf('*') > -1) {
@@ -179,10 +179,10 @@ const Gorgon = (() => {
179
179
  },
180
180
 
181
181
  // Clear all keys/values in the cache
182
- clearAll: async (provider?: string) => {
182
+ clearAll: async (provider?: string, hookIdentifier?: string) => {
183
183
  var prov = gorgonCore.providers[provider || settings.defaultProvider];
184
184
 
185
- gorgonCore._callHooks('clearAll', { provider });
185
+ gorgonCore._callHooks('clearAll', { provider, identifier: hookIdentifier });
186
186
 
187
187
  return prov.clear();
188
188
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gorgonjs/gorgon",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "A simple caching library for async functions",
5
5
  "homepage": "https://gorgonjs.dev",
6
6
  "main": "./dist/index.umd.js",
@@ -8,8 +8,14 @@
8
8
  "types": "./dist/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
- "import": "./dist/index.es.js",
12
- "require": "./dist/index.umd.js"
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.es.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.umd.js"
18
+ }
13
19
  }
14
20
  },
15
21
  "scripts": {