{"version":3,"file":"ASTAnnotationMap.cjs","names":["tsplus_module_1","tsplus_module_2","tsplus_module_6","tsplus_module_3","tsplus_module_4","tsplus_module_5"],"sources":["../esm/ASTAnnotationMap.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/data/Equatable/definition\";\nimport * as tsplus_module_2 from \"@fncts/base/collection/Iterable/api\";\nimport * as tsplus_module_3 from \"@fncts/base/collection/immutable/HashMap/api\";\nimport * as tsplus_module_4 from \"@fncts/base/data/Maybe/destructors\";\nimport * as tsplus_module_5 from \"@fncts/base/collection/immutable/Conc/constructors\";\nimport * as tsplus_module_6 from \"@fncts/base/collection/immutable/Conc/api\";\nexport class ASTAnnotationMap {\n    map;\n    constructor(map) {\n        this.map = map;\n    }\n    [tsplus_module_1.equalsSymbol](that, context) {\n        if (!(that instanceof ASTAnnotationMap) || this.map.size !== that.map.size) {\n            return false;\n        }\n        return tsplus_module_2.corresponds(that.map, ([k1, v1], [k2, v2]) => context.comparator(k1, k2) && context.comparator(v1, v2))(this.map);\n    }\n    combine(that) {\n        return new ASTAnnotationMap(tsplus_module_6.foldLeft(tsplus_module_3.empty(), (acc, [k, v]) => tsplus_module_3.set(k, tsplus_module_4.match(() => v, (_) => k.combine(_, v))(tsplus_module_3.get(k)(acc)))(acc))(tsplus_module_6.concat(tsplus_module_5.from(that.map))(tsplus_module_5.from(this.map))));\n    }\n    get(key) {\n        return tsplus_module_3.get(key)(this.map);\n    }\n    overwrite(key, value) {\n        return new ASTAnnotationMap(tsplus_module_3.set(key, value)(this.map));\n    }\n    update(key, f) {\n        return this.overwrite(key, f(this.get(key)));\n    }\n    annotate(key, value) {\n        return this.update(key, (v) => tsplus_module_4.match(() => value, (v) => key.combine(v, value))(v));\n    }\n    static empty = new ASTAnnotationMap(tsplus_module_3.empty());\n}\n//# sourceMappingURL=ASTAnnotationMap.js.map"],"mappings":";;;;;;;;;;;;;;;AAMA,IAAa,mBAAb,MAAa,iBAAiB;CAC1B;CACA,YAAY,KAAK;AACb,OAAK,MAAM;;CAEf,CAACA,sCAAgB,cAAc,MAAM,SAAS;AAC1C,MAAI,EAAE,gBAAgB,qBAAqB,KAAK,IAAI,SAAS,KAAK,IAAI,KAClE,QAAO;AAEX,SAAOC,oCAAgB,YAAY,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,QAAQ,QAAQ,WAAW,IAAI,GAAG,IAAI,QAAQ,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI;;CAE5I,QAAQ,MAAM;AACV,SAAO,IAAI,iBAAiBC,0CAAgB,SAASC,6CAAgB,OAAO,GAAG,KAAK,CAAC,GAAG,OAAOA,6CAAgB,IAAI,GAAGC,mCAAgB,YAAY,IAAI,MAAM,EAAE,QAAQ,GAAG,EAAE,CAAC,CAACD,6CAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAACD,0CAAgB,OAAOG,mDAAgB,KAAK,KAAK,IAAI,CAAC,CAACA,mDAAgB,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;;CAE7S,IAAI,KAAK;AACL,SAAOF,6CAAgB,IAAI,IAAI,CAAC,KAAK,IAAI;;CAE7C,UAAU,KAAK,OAAO;AAClB,SAAO,IAAI,iBAAiBA,6CAAgB,IAAI,KAAK,MAAM,CAAC,KAAK,IAAI,CAAC;;CAE1E,OAAO,KAAK,GAAG;AACX,SAAO,KAAK,UAAU,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;;CAEhD,SAAS,KAAK,OAAO;AACjB,SAAO,KAAK,OAAO,MAAM,MAAMC,mCAAgB,YAAY,QAAQ,MAAM,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC;;CAEvG,OAAO,QAAQ,IAAI,iBAAiBD,6CAAgB,OAAO,CAAC"}