@graphql-box/cache-manager 3.1.2 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/lib/browser/index.js +1 -1
  2. package/lib/browser/index.js.map +1 -1
  3. package/lib/browser/production.analysis.txt +44 -56
  4. package/lib/main/debug/log-cache-entry/index.js +8 -3
  5. package/lib/main/debug/log-cache-entry/index.js.map +1 -1
  6. package/lib/main/debug/log-cache-query/index.js +8 -3
  7. package/lib/main/debug/log-cache-query/index.js.map +1 -1
  8. package/lib/main/helpers/createFragmentSpreadChecklist.js +10 -15
  9. package/lib/main/helpers/createFragmentSpreadChecklist.js.map +1 -1
  10. package/lib/main/helpers/filterField.js +1 -3
  11. package/lib/main/helpers/filterField.js.map +1 -1
  12. package/lib/main/helpers/filterFragmentDefinitions.js +3 -3
  13. package/lib/main/helpers/filterFragmentDefinitions.js.map +1 -1
  14. package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js +1 -3
  15. package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
  16. package/lib/main/helpers/filterQuery.js +2 -4
  17. package/lib/main/helpers/filterQuery.js.map +1 -1
  18. package/lib/main/main/index.js +25 -14
  19. package/lib/main/main/index.js.map +1 -1
  20. package/lib/module/debug/log-cache-entry/index.js +8 -3
  21. package/lib/module/debug/log-cache-entry/index.js.map +1 -1
  22. package/lib/module/debug/log-cache-query/index.js +8 -3
  23. package/lib/module/debug/log-cache-query/index.js.map +1 -1
  24. package/lib/module/helpers/createFragmentSpreadChecklist.js +10 -14
  25. package/lib/module/helpers/createFragmentSpreadChecklist.js.map +1 -1
  26. package/lib/module/helpers/filterField.js +1 -2
  27. package/lib/module/helpers/filterField.js.map +1 -1
  28. package/lib/module/helpers/filterFragmentDefinitions.js +4 -4
  29. package/lib/module/helpers/filterFragmentDefinitions.js.map +1 -1
  30. package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js +1 -2
  31. package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
  32. package/lib/module/helpers/filterQuery.js +2 -3
  33. package/lib/module/helpers/filterQuery.js.map +1 -1
  34. package/lib/module/main/index.js +22 -10
  35. package/lib/module/main/index.js.map +1 -1
  36. package/lib/types/debug/log-cache-entry/index.d.ts.map +1 -1
  37. package/lib/types/debug/log-cache-query/index.d.ts.map +1 -1
  38. package/lib/types/defs/index.d.ts +3 -16
  39. package/lib/types/defs/index.d.ts.map +1 -1
  40. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +2 -1
  41. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +1 -1
  42. package/lib/types/helpers/filterField.d.ts.map +1 -1
  43. package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts +2 -1
  44. package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts.map +1 -1
  45. package/lib/types/helpers/filterQuery.d.ts.map +1 -1
  46. package/lib/types/main/index.d.ts +6 -3
  47. package/lib/types/main/index.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/src/__snapshots__/index.test.ts.snap +1082 -1082
  50. package/src/debug/log-cache-entry/index.ts +8 -3
  51. package/src/debug/log-cache-query/index.ts +8 -3
  52. package/src/defs/index.ts +8 -17
  53. package/src/helpers/createFragmentSpreadChecklist.ts +3 -3
  54. package/src/helpers/filterField.ts +8 -2
  55. package/src/helpers/filterFragmentDefinitions.ts +2 -2
  56. package/src/helpers/filterOutPropsWithArgsOrDirectives.ts +2 -3
  57. package/src/helpers/filterQuery.ts +7 -3
  58. package/src/main/index.ts +30 -14
  59. package/lib/main/helpers/buildKeysAndPaths.js +0 -73
  60. package/lib/main/helpers/buildKeysAndPaths.js.map +0 -1
  61. package/lib/module/helpers/buildKeysAndPaths.js +0 -54
  62. package/lib/module/helpers/buildKeysAndPaths.js.map +0 -1
  63. package/lib/types/helpers/buildKeysAndPaths.d.ts +0 -10
  64. package/lib/types/helpers/buildKeysAndPaths.d.ts.map +0 -1
  65. package/src/helpers/buildKeysAndPaths.ts +0 -71
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["DATA_ENTITIES","QUERY","QUERY_RESPONSES","REQUEST_FIELD_PATHS","TYPE_NAME_KEY","FRAGMENT_SPREAD","dehydrateCacheMetadata","getChildFields","getFragmentDefinitions","getOperationDefinitions","hasChildFields","hashRequest","iterateChildFields","mergeObjects","rehydrateCacheMetadata","Cacheability","print","CACHE_CONTROL","HEADER_NO_CACHE","METADATA","NO_CACHE","logCacheEntry","logCacheQuery","logPartialCompiled","buildFieldKeysAndPaths","deriveOpCacheability","filterOutPropsWithArgsOrDirectives","filterQuery","isLastResponseChunk","isNotLastResponseChunk","isNotResponseChunk","mergeResponseDataSets","normalizePatchResponseData","getValidTypeIDValue","CacheManager","_countFieldPathChecklist","fieldPathChecklist","fieldCount","missing","total","forEach","checklistValues","length","filter","hasData","_getFieldDataFromAncestor","ancestorFieldData","propNameOrIndex","undefined","_getOperationCacheControl","cacheMetadata","operation","defaultCacheControl","cacheability","get","printCacheControl","_isNodeEntity","fieldTypeInfo","isEntity","possibleTypes","some","type","_isNodeRequestFieldPath","hasArguments","hasDirectives","_isValid","noCache","checkTTL","_mergeResponseCacheMetadata","partialQueryResponse","Map","_setCachedData","requestData","data","objectLikeData","_setCachedResponseData","cachedFieldData","requestFieldPath","typeNamesAndKind","_options","_setCacheMetadata","_setFieldPathChecklist","set","operationCacheability","metadata","ttl","dataTypeName","fieldTypeName","fragmentKind","fragmentName","has","entry","typeName","constructor","options","errors","cache","push","TypeError","typeCacheDirectives","message","_cache","_cascadeCacheControl","cascadeCacheControl","_fallbackOperationCacheability","fallbackOperationCacheability","_typeCacheDirectives","_typeIDKey","typeIDKey","analyzeQuery","context","ast","hash","Promise","reject","cacheManagerContext","fragmentDefinitions","cachedResponseData","_retrieveCachedResponseData","updated","dataCaching","_setQueryResponseCacheEntry","awaitDataCaching","response","_setPartialQueryResponse","filteredAST","rest","request","cacheQuery","updatedRequestData","rawResponseData","_cacheResponse","cacheResponse","checkCacheEntry","cacheType","_checkCacheEntry","checkQueryResponseCacheEntry","result","deletePartialQueryResponse","_partialQueryResponses","delete","_analyzeFieldNode","fieldNode","cachedAncestorFieldData","_analyzeParentFieldNode","_analyzeLeafFieldNode","keysAndPaths","hashedRequestFieldCacheKey","fieldTypeMap","entityData","requestFieldPathData","__typename","_retrieveCachedRequestFieldPathData","requestFieldCacheKey","_retrieveCachedParentNodeData","promises","childField","childTypeName","childFragmentKind","childFragmentName","childIndex","index","all","_buildCacheMetadata","otherProps","_createCacheMetadata","queryNode","fieldsAndTypeNames","_setFieldCacheability","normalizedResponseData","responseDataForCaching","_setResponseChunksAwaitingCaching","_retrieveResponseDataForCaching","_setEntityAndRequestFieldPathCacheEntries","queryCacheMetadata","queryData","queryFiltered","_getPartialQueryResponse","_mergeResponseData","hasNext","paths","_hasCacheEntry","_getCacheEntry","error","_cacheMetadata","headers","fallback","_context","_isFieldEntity","fieldData","_mergeObjects","obj","src","_key","val","responseData","_parseEntityAndRequestFieldPathCacheEntryData","field","ancestorKeysAndPaths","responseDataPath","_typeName","_fragmentKind","_fragmentName","_setEntityAndRequestFieldPathCacheEntry","_retrieveCachedEntityData","validTypeIDValue","typeNames","map","checkResults","name","validResults","validResult","sort","a","b","reduce","ancestorEntityData","ancestorRequestFieldPathData","entryCacheability","responseChunks","_responseChunksAwaitingCaching","boxID","_setCacheEntry","value","cachemapOptions","operationNode","_setRequestFieldPathCacheEntry","_setEntityCacheEntry","entityDataKey","cacheHeaders","cacheControl","tag","__cacheKey","ancestorRequestFieldPath","_setFieldTypeCacheDirective","dehydratedCacheMetadata","hasArgsOrDirectives","selectionSet","selections","init","userOptions","clientOptions"],"mappings":";;;;;;;;;;;;;;;AACA,SAGEA,aAHF,EAOEC,KAPF,EAQEC,eARF,EASEC,mBATF,EAeEC,aAfF,QAgBO,mBAhBP;AAiBA,SACEC,eADF,EAEEC,sBAFF,EAGEC,cAHF,EAIEC,sBAJF,EAKEC,uBALF,EAMEC,cANF,EAOEC,WAPF,EAQEC,kBARF,EASEC,YATF,EAUEC,sBAVF,QAWO,sBAXP;AAYA,OAAOC,YAAP,MAAyB,cAAzB;AACA,SAAoBC,KAApB,QAAiC,SAAjC;AAEA,SAASC,aAAT,EAAwBC,eAAxB,EAAyCC,QAAzC,EAAmDC,QAAnD,QAAmE,WAAnE;AACA,SAASC,aAAT,EAAwBC,aAAxB,EAAuCC,kBAAvC,QAAiE,UAAjE;AA0BA,SAASC,sBAAT,QAAuC,8BAAvC;AACA,OAAOC,oBAAP,MAAiC,iCAAjC;AACA,OAAOC,kCAAP,MAA+C,+CAA/C;AACA,OAAOC,WAAP,MAAwB,wBAAxB;AACA,OAAOC,mBAAP,MAAgC,gCAAhC;AACA,OAAOC,sBAAP,MAAmC,mCAAnC;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;AACA,OAAOC,qBAAP,MAAkC,kCAAlC;AACA,OAAOC,0BAAP,MAAuC,uCAAvC;AACA,SAASC,mBAAT,QAAoC,6BAApC;AAEA,WAAaC,YAAb,WA6jBGZ,aAAa,EA7jBhB,UA+zBGD,aAAa,EA/zBhB,UAk/BGE,kBAAkB,EAl/BrB,YAAO,MAAMW,YAAN,CAA8C;AACZ,SAAxBC,wBAAwB,CAACC,kBAAD,EAAqD;AAC1F,UAAMC,UAAsB,GAAG;AAAEC,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,KAAK,EAAE;AAArB,KAA/B;AAEAH,IAAAA,kBAAkB,CAACI,OAAnB,CAA2BC,eAAe,IAAI;AAC5CJ,MAAAA,UAAU,CAACE,KAAX,IAAoBE,eAAe,CAACC,MAApC;AACA,YAAMJ,OAAO,GAAGG,eAAe,CAACE,MAAhB,CAAuB,CAAC;AAAEC,QAAAA;AAAF,OAAD,KAAiB,CAACA,OAAzC,CAAhB;AACAP,MAAAA,UAAU,CAACC,OAAX,IAAsBA,OAAO,CAACI,MAA9B;AACD,KAJD;AAMA,WAAOL,UAAP;AACD;;AAEuC,SAAzBQ,yBAAyB,CAACC,iBAAD,EAAyBC,eAAzB,EAAgE;AACtG,WAAO,cAAaD,iBAAb,IAAkC,WAAUA,iBAAiB,CAACC,eAAD,CAA3B,CAAlC,GAAkFC,SAAzF;AACD;;AAEuC,SAAzBC,yBAAyB,CAACC,aAAD,EAA2CC,SAA3C,EAAsE;AAC5G,UAAMC,mBAAmB,GAAGlC,eAA5B;;AAEA,QAAI,CAACgC,aAAL,EAAoB;AAClB,aAAOE,mBAAP;AACD;;AAED,UAAMC,YAAY,GAAGH,aAAa,CAACI,GAAd,CAAkBH,SAAlB,CAArB;AACA,WAAOE,YAAY,GAAGA,YAAY,CAACE,iBAAb,EAAH,GAAsCH,mBAAzD;AACD;;AAE2B,SAAbI,aAAa,CAACC,aAAD,EAAyC;AACnE,QAAI,CAACA,aAAL,EAAoB;AAClB,aAAO,KAAP;AACD;;AAED,UAAM;AAAEC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAA8BF,aAApC;AACA,WAAOC,QAAQ,IAAIC,aAAa,CAACC,IAAd,CAAmBC,IAAI,IAAI,CAAC,CAACA,IAAI,CAACH,QAAlC,CAAnB;AACD;;AAEqC,SAAvBI,uBAAuB,CAACL,aAAD,EAAyC;AAC7E,WACE,CAAC,CAACA,aAAF,KACC,KAAKD,aAAL,CAAmBC,aAAnB,KAAqCA,aAAa,CAACM,YAAnD,IAAmEN,aAAa,CAACO,aADlF,CADF;AAID;;AAEsB,SAARC,QAAQ,CAACZ,YAAD,EAAsC;AAC3D,UAAMa,OAAO,GAAG,KAAIb,YAAJ,EAAkB,CAAClC,QAAD,EAAWF,aAAX,EAA0BG,QAA1B,CAAlB,EAAuD,KAAvD,CAAhB;;AACA,WAAO,CAAC8C,OAAD,IAAYb,YAAY,CAACc,QAAb,EAAnB;AACD;;AAEyC,SAA3BC,2BAA2B,CACxClB,aADwC,EAExCmB,oBAFwC,EAGzB;AACf,QAAI,CAACA,oBAAL,EAA2B;AACzB,aAAOnB,aAAP;AACD;;AAED,WAAO,IAAIoB,GAAJ,CAAQ,CAAC,GAAGD,oBAAoB,CAACnB,aAAzB,EAAwC,GAAGA,aAA3C,CAAR,CAAP;AACD;;AAE4B,SAAdqB,cAAc,CAC3BC,WAD2B,EAE3B;AAAEC,IAAAA;AAAF,GAF2B,EAG3B1B,eAH2B,EAIrB;AACN,QAAI,CAAC,cAAa0B,IAAb,CAAD,IAAuB,CAAC,aAAYA,IAAZ,CAA5B,EAA+C;AAC7CD,MAAAA,WAAW,CAACzB,eAAD,CAAX,GAA+B0B,IAA/B;AACD,KAFD,MAEO,IAAI,cAAaA,IAAb,CAAJ,EAAwB;AAC7B,YAAMC,cAAc,GAAGD,IAAvB;AACAD,MAAAA,WAAW,CAACzB,eAAD,CAAX,GAA+B,SAAQ2B,cAAR,IAA0B,EAA1B,GAA+B,EAA9D;AACD;AACF;;AAEoC,SAAtBC,sBAAsB,CACnCC,eADmC,EAEnC;AAAE1B,IAAAA,aAAF;AAAiBuB,IAAAA,IAAjB;AAAuBrC,IAAAA;AAAvB,GAFmC,EAGnC;AAAEW,IAAAA,eAAF;AAAmB8B,IAAAA;AAAnB,GAHmC,EAInCC,gBAJmC,EAKnCC,QALmC,EAMnC;AAAE5B,IAAAA;AAAF,GANmC,EAOnC;AACAjB,IAAAA,YAAY,CAAC8C,iBAAb,CAA+B9B,aAA/B,EAA8C0B,eAAe,CAACvB,YAA9D,EAA4EwB,gBAA5E,EAA8F1B,SAA9F;;AACAjB,IAAAA,YAAY,CAAC+C,sBAAb,CAAoC7C,kBAApC,EAAwDwC,eAAxD,EAAyEC,gBAAzE,EAA2FC,gBAA3F;;AACA5C,IAAAA,YAAY,CAACqC,cAAb,CAA4BE,IAA5B,EAAkCG,eAAlC,EAAmD7B,eAAnD;AACD;;AAE+B,SAAjBiC,iBAAiB,CAC9B9B,aAD8B,EAE9BG,YAF8B,EAG9BwB,gBAH8B,EAI9B1B,SAJ8B,EAKxB;AACN,QAAI,CAACE,YAAL,EAAmB;AACjB;AACD;;AAEDH,IAAAA,aAAa,CAACgC,GAAd,CAAkBL,gBAAlB,EAAoCxB,YAApC;AACA,UAAM8B,qBAAqB,GAAGjC,aAAa,CAACI,GAAd,CAAkBH,SAAlB,CAA9B;;AAEA,QAAI,CAACgC,qBAAD,IAA0BA,qBAAqB,CAACC,QAAtB,CAA+BC,GAA/B,GAAqChC,YAAY,CAAC+B,QAAb,CAAsBC,GAAzF,EAA8F;AAC5FnC,MAAAA,aAAa,CAACgC,GAAd,CAAkB/B,SAAlB,EAA6BE,YAA7B;AACD;AACF;;AAEoC,SAAtB4B,sBAAsB,CACnC7C,kBADmC,EAEnC;AAAEqC,IAAAA;AAAF,GAFmC,EAGnCI,gBAHmC,EAInC;AAAES,IAAAA,YAAF;AAAgBC,IAAAA,aAAhB;AAA+BC,IAAAA,YAA/B;AAA6CC,IAAAA;AAA7C,GAJmC,EAK7B;AACN,QAAI,aAAYF,aAAZ,KAA8BC,YAAY,KAAKnF,eAAnD,EAAoE;AAClE,UAAI+B,kBAAkB,CAACsD,GAAnB,CAAuBb,gBAAvB,CAAJ,EAA8C;AAC5C;AACD;;AAEDzC,MAAAA,kBAAkB,CAAC8C,GAAnB,CAAuBL,gBAAvB,EAAyC,CAAC;AAAEW,QAAAA,YAAF;AAAgBC,QAAAA,YAAhB;AAA8B7C,QAAAA,OAAO,EAAE,CAAC,aAAY6B,IAAZ;AAAxC,OAAD,CAAzC;AACA;AACD;;AAED,QAAIa,YAAY,KAAKC,aAArB,EAAoC;AAClC;AACD;;AAED,UAAMI,KAAK,GAAGvD,kBAAkB,CAACkB,GAAnB,CAAuBuB,gBAAvB,CAAd;AACA,UAAMpC,eAAe,GAAGkD,KAAK,GAAIA,KAAJ,GAA0C,EAAvE;;AAEA,QAAIlD,eAAe,CAACmB,IAAhB,CAAqB,CAAC;AAAEgC,MAAAA;AAAF,KAAD,KAAkBA,QAAQ,KAAKN,YAApD,CAAJ,EAAuE;AACrE;AACD;;AAEDlD,IAAAA,kBAAkB,CAAC8C,GAAnB,CAAuBL,gBAAvB,EAAyC,CACvC,GAAGpC,eADoC,EAEvC;AAAE+C,MAAAA,YAAF;AAAgBC,MAAAA,YAAhB;AAA8B7C,MAAAA,OAAO,EAAE,CAAC,aAAY6B,IAAZ,CAAxC;AAA2DmB,MAAAA,QAAQ,EAAEN;AAArE,KAFuC,CAAzC;AAID;;AAUDO,EAAAA,WAAW,CAACC,OAAD,EAA8B;AAAA;;AAAA;;AAAA;;AAAA,oDALe,IAAIxB,GAAJ,EAKf;;AAAA,4DAJsD,IAAIA,GAAJ,EAItD;;AAAA;;AAAA;;AACvC,UAAMyB,MAAmB,GAAG,EAA5B;;AAEA,QAAI,CAACD,OAAO,CAACE,KAAb,EAAoB;AAClBD,MAAAA,MAAM,CAACE,IAAP,CAAY,IAAIC,SAAJ,CAAc,oDAAd,CAAZ;AACD;;AAED,QAAI,CAAC,CAACJ,OAAO,CAACK,mBAAV,IAAiC,CAAC,eAAcL,OAAO,CAACK,mBAAtB,CAAtC,EAAkF;AAChF,YAAMC,OAAO,GAAG,uFAAhB;AACAL,MAAAA,MAAM,CAACE,IAAP,CAAY,IAAIC,SAAJ,CAAcE,OAAd,CAAZ;AACD;;AAED,QAAIL,MAAM,CAACrD,MAAX,EAAmB;AACjB,YAAMqD,MAAN;AACD;;AAED,SAAKM,MAAL,GAAcP,OAAO,CAACE,KAAtB;AACA,SAAKM,oBAAL,GAA4BR,OAAO,CAACS,mBAAR,IAA+B,KAA3D;AACA,SAAKC,8BAAL,GAAsCV,OAAO,CAACW,6BAAR,IAAyCrF,QAA/E;AACA,SAAKsF,oBAAL,GAA4BZ,OAAO,CAACK,mBAAR,IAA+B,EAA3D;AACA,SAAKQ,UAAL,GAAkBb,OAAO,CAACc,SAA1B;AACD;;AAEQ,MAALZ,KAAK,GAAa;AACpB,WAAO,KAAKK,MAAZ;AACD;;AAEwB,QAAZQ,YAAY,CACvBrC,WADuB,EAEvBsB,OAFuB,EAGvBgB,OAHuB,EAIM;AAC7B,UAAM;AAAEC,MAAAA,GAAF;AAAOC,MAAAA;AAAP,QAAgBxC,WAAtB;;AAEA,QAAI,CAACuC,GAAL,EAAU;AACR,aAAOE,OAAO,CAACC,MAAR,CAAe,IAAIhB,SAAJ,CAAc,6CAAd,CAAf,CAAP;AACD;;AAED,UAAMiB,mBAAwC,GAAG,EAC/C,GAAGL,OAD4C;AAE/CM,MAAAA,mBAAmB,EAAE5G,sBAAsB,CAACuG,GAAD,CAFI;AAG/CH,MAAAA,SAAS,EAAE,KAAKD;AAH+B,KAAjD;AAMA,UAAMU,kBAAkB,GAAG,MAAM,KAAKC,2BAAL,CAAiC9C,WAAjC,EAA8CsB,OAA9C,EAAuDqB,mBAAvD,CAAjC;AACA,UAAM;AAAEjE,MAAAA,aAAF;AAAiBuB,MAAAA,IAAjB;AAAuBpC,MAAAA;AAAvB,QAAsCgF,kBAA5C;;AAEA,QAAIhF,UAAU,CAACC,OAAX,KAAuBD,UAAU,CAACE,KAAtC,EAA6C;AAC3C,aAAO;AAAEgF,QAAAA,OAAO,EAAE/C;AAAX,OAAP;AACD;;AAED,QAAI,CAACnC,UAAU,CAACC,OAAhB,EAAyB;AACvB,YAAMkF,WAAW,GAAG,KAAKC,2BAAL,CAAiCT,IAAjC,EAAuC;AAAE9D,QAAAA,aAAF;AAAiBuB,QAAAA;AAAjB,OAAvC,EAAgEqB,OAAhE,EAAyEqB,mBAAzE,CAApB;;AAEA,UAAIrB,OAAO,CAAC4B,gBAAZ,EAA8B;AAC5B,cAAMF,WAAN;AACD;;AAED,aAAO;AAAEG,QAAAA,QAAQ,EAAE;AAAEzE,UAAAA,aAAF;AAAiBuB,UAAAA;AAAjB;AAAZ,OAAP;AACD;;AAED,SAAKmD,wBAAL,CAA8BZ,IAA9B,EAAoC;AAAE9D,MAAAA,aAAF;AAAiBuB,MAAAA;AAAjB,KAApC,EAA6DqB,OAA7D,EAAsEqB,mBAAtE;;AACA,UAAMU,WAAW,GAAGlG,WAAW,CAAC6C,WAAD,EAAc6C,kBAAd,EAAkCF,mBAAlC,CAA/B;AACA,UAAM;AAAEC,MAAAA,mBAAF;AAAuBR,MAAAA,SAAvB;AAAkC,SAAGkB;AAArC,QAA8CX,mBAApD;;AACA,YAAOL,OAAP,EAAgBgB,IAAhB;;AACA,UAAMC,OAAO,GAAG/G,KAAK,CAAC6G,WAAD,CAArB;AACA,WAAO;AAAEN,MAAAA,OAAO,EAAE;AAAER,QAAAA,GAAG,EAAEc,WAAP;AAAoBb,QAAAA,IAAI,EAAErG,WAAW,CAACoH,OAAD,CAArC;AAAgDA,QAAAA;AAAhD;AAAX,KAAP;AACD;;AAEsB,QAAVC,UAAU,CACrBxD,WADqB,EAErByD,kBAFqB,EAGrBC,eAHqB,EAIrBpC,OAJqB,EAKrBgB,OALqB,EAME;AACvB,UAAMK,mBAAwC,GAAG,EAC/C,GAAGL,OAD4C;AAE/CM,MAAAA,mBAAmB,EAAE5G,sBAAsB,CAACyH,kBAAkB,CAAClB,GAApB,CAFI;AAG/CH,MAAAA,SAAS,EAAE,KAAKD;AAH+B,KAAjD;AAMA,WAAO,KAAKwB,cAAL,CAAoB3D,WAApB,EAAiCyD,kBAAjC,EAAqDC,eAArD,EAAsEpC,OAAtE,EAA+EqB,mBAA/E,CAAP;AACD;;AAEyB,QAAbiB,aAAa,CACxB5D,WADwB,EAExB0D,eAFwB,EAGxBpC,OAHwB,EAIxBgB,OAJwB,EAKD;AACvB,UAAMK,mBAAwC,GAAG,EAC/C,GAAGL,OAD4C;AAE/CM,MAAAA,mBAAmB,EAAE5G,sBAAsB,CAACgE,WAAW,CAACuC,GAAb,CAFI;AAG/CH,MAAAA,SAAS,EAAE,KAAKD;AAH+B,KAAjD;AAMA,WAAO,KAAKwB,cAAL,CAAoB3D,WAApB,EAAiCxB,SAAjC,EAA4CkF,eAA5C,EAA6DpC,OAA7D,EAAsEqB,mBAAtE,CAAP;AACD;;AAE2B,QAAfkB,eAAe,CAC1BC,SAD0B,EAE1BtB,IAF0B,EAG1BlB,OAH0B,EAI1BgB,OAJ0B,EAKc;AACxC,WAAO,KAAKyB,gBAAL,CAAsBD,SAAtB,EAAiCtB,IAAjC,EAAuClB,OAAvC,EAAgDgB,OAAhD,CAAP;AACD;;AAEwC,QAA5B0B,4BAA4B,CACvCxB,IADuC,EAEvClB,OAFuC,EAGvCgB,OAHuC,EAIR;AAC/B,UAAM2B,MAAM,GAAG,MAAM,KAAKF,gBAAL,CAAsBrI,eAAtB,EAAuC8G,IAAvC,EAA6ClB,OAA7C,EAAsDgB,OAAtD,CAArB;;AAEA,QAAI,CAAC2B,MAAL,EAAa;AACX,aAAO,KAAP;AACD;;AAED,UAAM;AAAEvF,MAAAA,aAAF;AAAiBuB,MAAAA;AAAjB,QAA0BgE,MAAM,CAAC9C,KAAvC;AAEA,WAAO;AACLzC,MAAAA,aAAa,EAAEpC,sBAAsB,CAACoC,aAAD,CADhC;AAELuB,MAAAA;AAFK,KAAP;AAID;;AAEMiE,EAAAA,0BAA0B,CAAC1B,IAAD,EAAqB;AACpD,SAAK2B,sBAAL,CAA4BC,MAA5B,CAAmC5B,IAAnC;AACD;;AAE8B,QAAjB6B,iBAAiB,CAC7BC,SAD6B,EAE7BC,uBAF6B,EAG7B1B,kBAH6B,EAI7BvB,OAJ6B,EAK7BgB,OAL6B,EAMd;AACf,QAAIpG,cAAc,CAACoI,SAAD,EAAY;AAAE1B,MAAAA,mBAAmB,EAAEN,OAAO,CAACM;AAA/B,KAAZ,CAAlB,EAAqF;AACnF,YAAM,KAAK4B,uBAAL,CAA6BF,SAA7B,EAAwCC,uBAAxC,EAAiE1B,kBAAjE,EAAqFvB,OAArF,EAA8FgB,OAA9F,CAAN;AACD,KAFD,MAEO;AACL,YAAM,KAAKmC,qBAAL,CAA2BH,SAA3B,EAAsCC,uBAAtC,EAA+D1B,kBAA/D,EAAmFvB,OAAnF,EAA4FgB,OAA5F,CAAN;AACD;AACF;;AAEkC,QAArBmC,qBAAqB,CACjCH,SADiC,EAEjCC,uBAFiC,EAGjC1B,kBAHiC,EAIjCvB,OAJiC,EAKjCgB,OALiC,EAMlB;AACf,UAAMoC,YAAY,GAAG1H,sBAAsB,CAACsH,SAAD,EAAYC,uBAAZ,EAAqCjC,OAArC,CAA3C;AACA,UAAM;AAAEqC,MAAAA,0BAAF;AAA8BpG,MAAAA,eAA9B;AAA+C8B,MAAAA;AAA/C,QAAoEqE,YAA1E;AACA,UAAMzF,aAAa,GAAGqD,OAAO,CAACsC,YAAR,CAAqB9F,GAArB,CAAyBuB,gBAAzB,CAAtB;AACA,UAAM;AAAEwE,MAAAA,UAAF;AAAc7D,MAAAA,YAAd;AAA4BC,MAAAA,YAA5B;AAA0C6D,MAAAA,oBAA1C;AAAgE1D,MAAAA;AAAhE,QAA6EmD,uBAAnF;AAEA,UAAMjE,gBAAgB,GAAG;AACvBQ,MAAAA,YAAY,EAAE,CAAA+D,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEE,UAAZ,MAA0BD,oBAA1B,aAA0BA,oBAA1B,uBAA0BA,oBAAoB,CAAEC,UAAhD,CADS;AAEvBhE,MAAAA,aAAa,EAAEK,QAFQ;AAGvBJ,MAAAA,YAHuB;AAIvBC,MAAAA;AAJuB,KAAzB;;AAOA,QAAIvD,YAAY,CAAC4B,uBAAb,CAAqCL,aAArC,CAAJ,EAAyD;AACvD,YAAM;AAAEJ,QAAAA,YAAF;AAAgBsC,QAAAA;AAAhB,UAA0B,MAAM,KAAK6D,mCAAL,CACpCL,0BADoC,EAEpCrD,OAFoC,EAGpCgB,OAHoC,CAAtC;;AAMA5E,MAAAA,YAAY,CAACyC,sBAAb,CACE;AAAEtB,QAAAA,YAAF;AAAgBoB,QAAAA,IAAI,EAAEkB;AAAtB,OADF,EAEE0B,kBAFF,EAGE6B,YAHF,EAIEpE,gBAJF,EAKEgB,OALF,EAMEgB,OANF;AAQD,KAfD,MAeO;AACL,YAAMlC,eAAe,GACnB1C,YAAY,CAACW,yBAAb,CAAuCwG,UAAvC,EAAmDtG,eAAnD,KACAb,YAAY,CAACW,yBAAb,CAAuCyG,oBAAvC,EAA6DvG,eAA7D,CAFF;;AAIAb,MAAAA,YAAY,CAAC+C,sBAAb,CACEoC,kBAAkB,CAACjF,kBADrB,EAEE;AAAEqC,QAAAA,IAAI,EAAEG;AAAR,OAFF,EAGEC,gBAHF,EAIEC,gBAJF;;AAOA5C,MAAAA,YAAY,CAACqC,cAAb,CAA4B8C,kBAAkB,CAAC5C,IAA/C,EAAqD;AAAEA,QAAAA,IAAI,EAAEG;AAAR,OAArD,EAAgF7B,eAAhF;AACD;AACF;;AAEoC,QAAvBiG,uBAAuB,CACnCF,SADmC,EAEnCC,uBAFmC,EAGnC1B,kBAHmC,EAInCvB,OAJmC,EAKnCgB,OALmC,EAMpB;AACf,UAAMoC,YAAY,GAAG1H,sBAAsB,CAACsH,SAAD,EAAYC,uBAAZ,EAAqCjC,OAArC,CAA3C;AACA,UAAM;AAAE/D,MAAAA,eAAF;AAAmB0G,MAAAA,oBAAnB;AAAyC5E,MAAAA;AAAzC,QAA8DqE,YAApE;AACA,UAAMzF,aAAa,GAAGqD,OAAO,CAACsC,YAAR,CAAqB9F,GAArB,CAAyBuB,gBAAzB,CAAtB;AAEA,UAAM;AAAExB,MAAAA,YAAF;AAAgBoB,MAAAA,IAAhB;AAAsB4E,MAAAA,UAAtB;AAAkCC,MAAAA;AAAlC,QAA2D,MAAM,KAAKI,6BAAL,CACrEX,uBADqE,EAErEG,YAFqE,EAGrEzF,aAHqE,EAIrEqC,OAJqE,EAKrEgB,OALqE,CAAvE;AAQA,UAAM;AAAEtB,MAAAA,YAAF;AAAgBC,MAAAA,YAAhB;AAA8BG,MAAAA;AAA9B,QAA2CmD,uBAAjD;;AAEA7G,IAAAA,YAAY,CAACyC,sBAAb,CACE;AAAEtB,MAAAA,YAAF;AAAgBoB,MAAAA;AAAhB,KADF,EAEE4C,kBAFF,EAGE6B,YAHF,EAIE;AAAE5D,MAAAA,YAAY,EAAE,KAAIb,IAAJ,EAAUrE,aAAV,CAAhB;AAA0CmF,MAAAA,aAAa,EAAEK,QAAzD;AAAmEJ,MAAAA,YAAnE;AAAiFC,MAAAA;AAAjF,KAJF,EAKEK,OALF,EAMEgB,OANF;;AASA,QAAI,CAAC,cAAarC,IAAb,CAAL,EAAyB;AACvB;AACD;;AAED,UAAMC,cAAc,GAAGD,IAAvB;AACA,UAAMkF,QAAyB,GAAG,EAAlC;AAEA/I,IAAAA,kBAAkB,CAChBkI,SADgB,EAEhBpE,cAFgB,EAGhBoC,OAAO,CAACM,mBAHQ,EAIhB,CACEwC,UADF,EAEEC,aAFF,EAGEC,iBAHF,EAIEC,iBAJF,EAKEC,UALF,KAMK;AACHL,MAAAA,QAAQ,CAAC1D,IAAT,CACE,KAAK4C,iBAAL,CACEe,UADF,EAEE;AACEvG,QAAAA,YADF;AAEEgG,QAAAA,UAFF;AAGE7D,QAAAA,YAAY,EAAEsE,iBAHhB;AAIErE,QAAAA,YAAY,EAAEsE,iBAJhB;AAKEE,QAAAA,KAAK,EAAED,UALT;AAMEP,QAAAA,oBANF;AAOE5E,QAAAA,gBAPF;AAQEyE,QAAAA,oBARF;AASE1D,QAAAA,QAAQ,EAAEiE;AATZ,OAFF,EAaE,EAAE,GAAGxC,kBAAL;AAAyB5C,QAAAA,IAAI,EAAE4C,kBAAkB,CAAC5C,IAAnB,CAAwB1B,eAAxB;AAA/B,OAbF,EAcE+C,OAdF,EAeEgB,OAfF,CADF;AAmBD,KA9Be,CAAlB;AAiCA,UAAMG,OAAO,CAACiD,GAAR,CAAYP,QAAZ,CAAN;AACD;;AAEOQ,EAAAA,mBAAmB,CACzB;AAAEpD,IAAAA;AAAF,GADyB,EAEzB;AAAEtC,IAAAA,IAAF;AAAQ,OAAG2F;AAAX,GAFyB,EAGzBtE,OAHyB,EAIzBgB,OAJyB,EAKV;AACf,UAAM5D,aAAa,GAAG,KAAKmH,oBAAL,CAA0B;AAAE5F,MAAAA,IAAF;AAAQ,SAAG2F;AAAX,KAA1B,EAAmDtD,OAAnD,CAAtB;;AACA,UAAMwD,SAAS,GAAG7J,uBAAuB,CAACsG,GAAD,EAAMD,OAAO,CAAC3D,SAAd,CAAvB,CAAgD,CAAhD,CAAlB;AACA,UAAMoH,kBAAkB,GAAGhK,cAAc,CAAC+J,SAAD,CAAzC;;AAEA,QAAI,CAACC,kBAAL,EAAyB;AACvB,aAAOrH,aAAP;AACD;;AAEDqH,IAAAA,kBAAkB,CAAC/H,OAAnB,CAA2B,CAAC;AAAEsG,MAAAA;AAAF,KAAD,KACzB,KAAK0B,qBAAL,CACE1B,SADF,EAEE;AAAEjE,MAAAA,gBAAgB,EAAEiC,OAAO,CAAC3D;AAA5B,KAFF,EAGE;AAAED,MAAAA,aAAF;AAAiBuB,MAAAA;AAAjB,KAHF,EAIEqB,OAJF,EAKEgB,OALF,CADF;AAUA,WAAO5D,aAAP;AACD;;AAE2B,QAAdiF,cAAc,CAC1B3D,WAD0B,EAE1ByD,kBAF0B,EAG1BC,eAH0B,EAI1BpC,OAJ0B,EAK1BgB,OAL0B,EAMH;AACvB,UAAM2D,sBAAsB,GAAGzI,0BAA0B,CAACkG,eAAD,EAAkBpB,OAAlB,CAAzD;AACA,QAAI4D,sBAAyE,GAAGD,sBAAhF;;AAEA,QAAI5I,sBAAsB,CAACqG,eAAD,EAAkBpB,OAAlB,CAA1B,EAAsD;AACpD,WAAK6D,iCAAL,CAAuCF,sBAAvC,EAA+D3D,OAA/D;;AACA4D,MAAAA,sBAAsB,GAAG1H,SAAzB;AACD;;AAED,QAAIpB,mBAAmB,CAACsG,eAAD,EAAkBpB,OAAlB,CAAvB,EAAmD;AACjD4D,MAAAA,sBAAsB,GAAG,KAAKE,+BAAL,CAAqCH,sBAArC,EAA6D3D,OAA7D,CAAzB;AACD;;AAED,UAAMU,WAA4B,GAAG,EAArC;;AAEA,QAAIkD,sBAAJ,EAA4B;AAC1B,YAAM;AAAEjG,QAAAA;AAAF,UAAWiG,sBAAjB;;AACA,YAAMxH,aAAa,GAAG,KAAKiH,mBAAL,CAAyB3F,WAAzB,EAAsCkG,sBAAtC,EAA8D5E,OAA9D,EAAuEgB,OAAvE,CAAtB;;AAEAU,MAAAA,WAAW,CAACvB,IAAZ,CACE,KAAK4E,yCAAL,CACErG,WADF,EAEE;AACEtB,QAAAA,aADF;AAEEmG,QAAAA,UAAU,EAAE,WAAU5E,IAAV,CAFd;AAGE6E,QAAAA,oBAAoB,EAAE,WAAU7E,IAAV;AAHxB,OAFF,EAOEqB,OAPF,EAQEgB,OARF,CADF;AAaA,UAAIgE,kBAAJ;AACA,UAAIC,SAAJ;;AAEA,UAAIjE,OAAO,CAAC3D,SAAR,KAAsBlD,KAA1B,EAAiC;AAC/B,YAAIoE,oBAAJ;;AAEA,YAAIyC,OAAO,CAACkE,aAAR,IAAyB/C,kBAA7B,EAAiD;AAC/CT,UAAAA,WAAW,CAACvB,IAAZ,CACE,KAAKwB,2BAAL,CAAiCQ,kBAAkB,CAACjB,IAApD,EAA0D;AAAE9D,YAAAA,aAAF;AAAiBuB,YAAAA;AAAjB,WAA1D,EAAmFqB,OAAnF,EAA4FgB,OAA5F,CADF;AAIAzC,UAAAA,oBAAoB,GAAG,KAAK4G,wBAAL,CAA8BzG,WAAW,CAACwC,IAA1C,CAAvB;AACD;;AAED8D,QAAAA,kBAAkB,GAAG5I,YAAY,CAACkC,2BAAb,CAAyClB,aAAzC,EAAwDmB,oBAAxD,CAArB;AACA0G,QAAAA,SAAS,GAAG,KAAKG,kBAAL,CAAwBzG,IAAxB,EAA8BJ,oBAA9B,CAAZ;AAEAmD,QAAAA,WAAW,CAACvB,IAAZ,CACE,KAAKwB,2BAAL,CACEjD,WAAW,CAACwC,IADd,EAEE;AAAE9D,UAAAA,aAAa,EAAE4H,kBAAjB;AAAqCrG,UAAAA,IAAI,EAAEsG;AAA3C,SAFF,EAGEjF,OAHF,EAIEgB,OAJF,CADF;AAQD;;AAED,UAAIhB,OAAO,CAAC4B,gBAAZ,EAA8B;AAC5B,cAAMT,OAAO,CAACiD,GAAR,CAAY1C,WAAZ,CAAN;AACD;;AAED,UAAI1F,kBAAkB,CAAC2I,sBAAD,EAAyB3D,OAAzB,CAAlB,IAAuDgE,kBAAvD,IAA6EC,SAAjF,EAA4F;AAC1F,eAAO;AACL7H,UAAAA,aAAa,EAAE4H,kBADV;AAELrG,UAAAA,IAAI,EAAEsG;AAFD,SAAP;AAID;AACF;;AAED,UAAM;AAAEtG,MAAAA,IAAF;AAAQ0G,MAAAA,OAAR;AAAiBC,MAAAA;AAAjB,QAA2BX,sBAAjC;AAEA,WAAO;AACLvH,MAAAA,aAAa,EAAE,KAAKiH,mBAAL,CAAyB3F,WAAzB,EAAsCiG,sBAAtC,EAA8D3E,OAA9D,EAAuEgB,OAAvE,CADV;AAELrC,MAAAA,IAFK;AAGL0G,MAAAA,OAHK;AAILC,MAAAA;AAJK,KAAP;AAMD;;AAE6B,QAAhB7C,gBAAgB,CAC5BD,SAD4B,EAE5BtB,IAF4B,EAG5BlB,OAH4B,EAI5BgB,OAJ4B,EAKY;AACxC,QAAI;AACF,YAAMzD,YAAY,GAAG,MAAM,KAAKgI,cAAL,CAAoB/C,SAApB,EAA+BtB,IAA/B,CAA3B;;AAEA,UAAI,CAAC3D,YAAD,IAAiB,CAACnB,YAAY,CAAC+B,QAAb,CAAsBZ,YAAtB,CAAtB,EAA2D;AACzD,eAAO,KAAP;AACD;;AAED,YAAMsC,KAAK,GAAG,MAAM,KAAK2F,cAAL,CAAoBhD,SAApB,EAA+BtB,IAA/B,EAAqClB,OAArC,EAA8CgB,OAA9C,CAApB;;AAEA,UAAI,aAAYnB,KAAZ,CAAJ,EAAwB;AACtB,eAAO,KAAP;AACD;;AAED,aAAO;AAAEtC,QAAAA,YAAF;AAAgBsC,QAAAA;AAAhB,OAAP;AACD,KAdD,CAcE,OAAO4F,KAAP,EAAc;AACd,aAAO,KAAP;AACD;AACF;;AAEOlB,EAAAA,oBAAoB,CAC1B;AAAEmB,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,GAD0B,EAE1B;AAAEtI,IAAAA;AAAF,GAF0B,EAGX;AACf,UAAMD,aAAa,GAAG,IAAIoB,GAAJ,EAAtB;AAEA,UAAMjB,YAAY,GAAG5B,oBAAoB,CAAC;AACxC+J,MAAAA,cADwC;AAExCE,MAAAA,QAAQ,EAAE,KAAKlF,8BAFyB;AAGxCiF,MAAAA;AAHwC,KAAD,CAAzC;AAMAvI,IAAAA,aAAa,CAACgC,GAAd,CAAkB/B,SAAlB,EAA6BE,YAA7B;;AAEA,QAAImI,cAAJ,EAAoB;AAClB1K,MAAAA,sBAAsB,CAAC0K,cAAD,EAAiBtI,aAAjB,CAAtB;AACD;;AAED,WAAOA,aAAP;AACD;;AAG2B,QAAdoI,cAAc,CAC1BhD,SAD0B,EAE1BtB,IAF0B,EAG1BjC,QAH0B,EAI1B4G,QAJ0B,EAKZ;AACd,QAAI;AACF,aAAO,MAAM,KAAKtF,MAAL,CAAY/C,GAAZ,CAAiB,GAAEgF,SAAU,KAAItB,IAAK,EAAtC,CAAb;AACD,KAFD,CAEE,OAAOjB,MAAP,EAAe;AACf,aAAOkB,OAAO,CAACC,MAAR,CAAenB,MAAf,CAAP;AACD;AACF;;AAEOkF,EAAAA,wBAAwB,CAACjE,IAAD,EAAiD;AAC/E,UAAM3C,oBAAoB,GAAG,KAAKsE,sBAAL,CAA4BrF,GAA5B,CAAgC0D,IAAhC,CAA7B;;AACA,SAAK2B,sBAAL,CAA4BC,MAA5B,CAAmC5B,IAAnC;;AACA,WAAO3C,oBAAP;AACD;;AAE2B,QAAdgH,cAAc,CAAC/C,SAAD,EAAwBtB,IAAxB,EAAqE;AAC/F,QAAI;AACF,aAAO,MAAM,KAAKX,MAAL,CAAYX,GAAZ,CAAiB,GAAE4C,SAAU,KAAItB,IAAK,EAAtC,CAAb;AACD,KAFD,CAEE,OAAOuE,KAAP,EAAc;AACd,aAAO,KAAP;AACD;AACF;;AAEOK,EAAAA,cAAc,CAACC,SAAD,EAAiB;AAAEnI,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GAAjB,EAAsE;AAC1F,QAAI,CAAC,KAAIkI,SAAJ,EAAe,KAAKlF,UAApB,EAAgC,IAAhC,CAAL,EAA4C;AAC1C,aAAO,KAAP;AACD;;AAED,QAAIjD,QAAJ,EAAc;AACZ,aAAO,IAAP;AACD;;AAED,QAAI,CAACC,aAAa,CAACjB,MAAnB,EAA2B;AACzB,aAAO,KAAP;AACD;;AAED,WAAOiB,aAAa,CAACC,IAAd,CAAmBC,IAAI,IAAIA,IAAI,CAAC+B,QAAL,KAAkBiG,SAAS,CAACtC,UAAvD,CAAP;AACD;;AAEOuC,EAAAA,aAAa,CAAIC,GAAJ,EAAYC,GAAZ,EAAuB;AAC1C,WAAOnL,YAAY,CAACkL,GAAD,EAAMC,GAAN,EAAW,CAACC,IAAD,EAAeC,GAAf,KAAyD;AACrF,aAAO,eAAcA,GAAd,KAAsBA,GAAG,CAAC,KAAKvF,UAAN,CAAzB,GAA6CuF,GAAG,CAAC,KAAKvF,UAAN,CAAhD,GAAoE3D,SAA3E;AACD,KAFkB,CAAnB;AAGD;;AAEOkI,EAAAA,kBAAkB,CACxBiB,YADwB,EAExB9H,oBAFwB,EAGR;AAChB,QAAI,CAACA,oBAAL,EAA2B;AACzB,aAAO8H,YAAP;AACD;;AAED,WAAO,KAAKL,aAAL,CAAmBzH,oBAAoB,CAACI,IAAxC,EAA8C0H,YAA9C,CAAP;AACD;;AAE0D,QAA7CC,6CAA6C,CACzDC,KADyD,EAEzDC,oBAFyD,EAGzD;AAAEpJ,IAAAA,aAAF;AAAiBmG,IAAAA,UAAjB;AAA6BC,IAAAA;AAA7B,GAHyD,EAIzDxD,OAJyD,EAKzDgB,OALyD,EAM1C;AACf,UAAMoC,YAAY,GAAG1H,sBAAsB,CAAC6K,KAAD,EAAQC,oBAAR,EAA8BxF,OAA9B,CAA3C;AACA,UAAM;AAAE2C,MAAAA,oBAAF;AAAwB5E,MAAAA,gBAAxB;AAA0C0H,MAAAA;AAA1C,QAA+DrD,YAArE;;AACA,UAAM2C,SAAS,GAAG,KAAIvC,oBAAJ,EAA0BiD,gBAA1B,CAAlB;;AACA,UAAM9I,aAAa,GAAGqD,OAAO,CAACsC,YAAR,CAAqB9F,GAArB,CAAyBuB,gBAAzB,CAAtB;;AAEA,QAAI,CAAC,cAAagH,SAAb,CAAD,IAA4B,EAACpI,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEO,aAAhB,CAAhC,EAA+D;AAC7D;AACD;;AAED,QAAI,cAAa6H,SAAb,CAAJ,EAA6B;AAC3B,YAAMlC,QAAyB,GAAG,EAAlC;AAEA/I,MAAAA,kBAAkB,CAChByL,KADgB,EAEhBR,SAFgB,EAGhB/E,OAAO,CAACM,mBAHQ,EAIhB,CACEwC,UADF,EAEE4C,SAFF,EAGEC,aAHF,EAIEC,aAJF,EAKE1C,UALF,KAMK;AACHL,QAAAA,QAAQ,CAAC1D,IAAT,CACE,KAAKmG,6CAAL,CACExC,UADF,EAEE;AAAEK,UAAAA,KAAK,EAAED,UAAT;AAAqBP,UAAAA,oBAArB;AAA2C5E,UAAAA,gBAA3C;AAA6D0H,UAAAA;AAA7D,SAFF,EAGE;AAAErJ,UAAAA,aAAF;AAAiBmG,UAAAA,UAAjB;AAA6BC,UAAAA;AAA7B,SAHF,EAIExD,OAJF,EAKEgB,OALF,CADF;AASD,OApBe,CAAlB;AAuBA,YAAMG,OAAO,CAACiD,GAAR,CAAYP,QAAZ,CAAN;AACD;;AAED,UAAM,KAAKgD,uCAAL,CACJN,KADI,EAEJnD,YAFI,EAGJ;AAAEhG,MAAAA,aAAF;AAAiBmG,MAAAA,UAAjB;AAA6BC,MAAAA;AAA7B,KAHI,EAIJxD,OAJI,EAKJgB,OALI,CAAN;AAOD;;AAEsC,QAAzB8F,yBAAyB,CACrCC,gBADqC,EAErC;AAAElJ,IAAAA,aAAF;AAAiBiC,IAAAA;AAAjB,GAFqC,EAGrCE,OAHqC,EAIrCgB,OAJqC,EAKrC;AACA,UAAMgG,SAAS,GAAG,CAAC,GAAGnJ,aAAa,CAACoJ,GAAd,CAAkBlJ,IAAI,IAAIA,IAAI,CAAC+B,QAA/B,CAAJ,EAA8CA,QAA9C,CAAlB;AAEA,UAAMoH,YAAY,GAAG,MAAM/F,OAAO,CAACiD,GAAR,CACzB4C,SAAS,CAACC,GAAV,CAAcE,IAAI,IAAI,KAAK1E,gBAAL,CAAsBvI,aAAtB,EAAsC,GAAEiN,IAAK,KAAIJ,gBAAiB,EAAlE,EAAqE/G,OAArE,EAA8EgB,OAA9E,CAAtB,CADyB,CAA3B;AAIA,UAAMoG,YAAY,GAAGF,YAAY,CAACrK,MAAb,CAAoB8F,MAAM,IAAI,CAAC,CAACA,MAAhC,CAArB;AACA,QAAI0E,WAAJ;;AAEA,QAAID,YAAY,CAACxK,MAAb,KAAwB,CAA5B,EAA+B;AAC7ByK,MAAAA,WAAW,GAAGD,YAAY,CAAC,CAAD,CAA1B;AACD,KAFD,MAEO,IAAIA,YAAY,CAACxK,MAAb,GAAsB,CAA1B,EAA6B;AAClCwK,MAAAA,YAAY,CAACE,IAAb,CAAkB,CAAC;AAAE/J,QAAAA,YAAY,EAAEgK;AAAhB,OAAD,EAAsB;AAAEhK,QAAAA,YAAY,EAAEiK;AAAhB,OAAtB,KAA8CD,CAAC,CAACjI,QAAF,CAAWC,GAAX,GAAiBiI,CAAC,CAAClI,QAAF,CAAWC,GAA5F;AAEA8H,MAAAA,WAAW,GAAG;AACZ9J,QAAAA,YAAY,EAAE6J,YAAY,CAAC,CAAD,CAAZ,CAAgB7J,YADlB;AAEZsC,QAAAA,KAAK,EAAEuH,YAAY,CAACK,MAAb,CAAoB,CAACxB,GAAD,EAAM;AAAEpG,UAAAA;AAAF,SAAN,KAAoB,KAAKmG,aAAL,CAAmBC,GAAnB,EAAwBpG,KAAxB,CAAxC,EAAwE,EAAxE;AAFK,OAAd;AAID;;AAED,WAAQwH,WAAW,IAAI,EAAvB;AACD;;AAE0C,QAA7BzD,6BAA6B,CACzC;AAAEL,IAAAA,UAAU,EAAEmE,kBAAd;AAAkClE,IAAAA,oBAAoB,EAAEmE;AAAxD,GADyC,EAEzC;AAAEtE,IAAAA,0BAAF;AAA8BpG,IAAAA;AAA9B,GAFyC,EAGzCU,aAHyC,EAIzCqC,OAJyC,EAKzCgB,OALyC,EAMzC;AAAA;;AACA,QAAIuC,UAAU,GAAGnH,YAAY,CAACW,yBAAb,CAAuC2K,kBAAvC,EAA2DzK,eAA3D,CAAjB;;AACA,QAAIuG,oBAAoB,GAAGpH,YAAY,CAACW,yBAAb,CAAuC4K,4BAAvC,EAAqE1K,eAArE,CAA3B;;AACA,QAAIM,YAAJ;;AAEA,QAAInB,YAAY,CAAC4B,uBAAb,CAAqCL,aAArC,CAAJ,EAAyD;AACvD,YAAM;AAAEJ,QAAAA,YAAY,EAAEqK,iBAAhB;AAAmC/H,QAAAA;AAAnC,UAA6C,MAAM,KAAK6D,mCAAL,CACvDL,0BADuD,EAEvDrD,OAFuD,EAGvDgB,OAHuD,CAAzD;;AAMA,UAAInB,KAAJ,EAAW;AACT2D,QAAAA,oBAAoB,GAAG,KAAKwC,aAAL,CAAmBxC,oBAAnB,EAAyC3D,KAAzC,CAAvB;AACD;;AAED,UAAI+H,iBAAJ,EAAuB;AACrBrK,QAAAA,YAAY,GAAGqK,iBAAf;AACD;AACF;;AAED,UAAMb,gBAAgB,GAAG5K,mBAAmB,CAACqH,oBAAD,EAAuB7F,aAAvB,EAAsC,KAAKkD,UAA3C,CAA5C;;AAEA,QAAIzE,YAAY,CAACsB,aAAb,CAA2BC,aAA3B,KAA6CoJ,gBAAjD,EAAmE;AAAA;;AACjE,YAAM;AAAExJ,QAAAA,YAAY,EAAEqK,iBAAhB;AAAmC/H,QAAAA;AAAnC,UAA6C,MAAM,KAAKiH,yBAAL,CACvDC,gBADuD,EAEvDpJ,aAFuD,EAGvDqC,OAHuD,EAIvDgB,OAJuD,CAAzD;;AAOA,UAAInB,KAAJ,EAAW;AACT0D,QAAAA,UAAU,GAAG,KAAKyC,aAAL,CAAmBzC,UAAnB,EAA+B1D,KAA/B,CAAb;AACD;;AAED,UAAI+H,iBAAiB,KAAK,CAACrK,YAAD,IAAiBqK,iBAAiB,CAACtI,QAAlB,CAA2BC,GAA3B,qBAAiChC,YAAjC,kDAAiC,cAAc+B,QAAd,CAAuBC,GAAxD,CAAtB,CAArB,EAAyG;AACvGhC,QAAAA,YAAY,GAAGqK,iBAAf;AACD;AACF;;AAED,UAAMjJ,IAAI,GACR,CAAC,aAAY6E,oBAAZ,CAAD,IAAsC,CAAC,aAAYD,UAAZ,CAAvC,GACI,KAAKyC,aAAL,CAAmBxC,oBAAnB,EAAyCD,UAAzC,CADJ,kBAEIA,UAFJ,qDAEkBC,oBAHpB;AAKA,WAAO;AACLjG,MAAAA,YADK;AAELoB,MAAAA,IAFK;AAGL4E,MAAAA,UAHK;AAILC,MAAAA;AAJK,KAAP;AAMD;;AAEgD,QAAnCE,mCAAmC,CAC/CxC,IAD+C,EAE/ClB,OAF+C,EAG/CgB,OAH+C,EAI/C;AACA,WAAQ,KAAKyB,gBAAL,CAAsBpI,mBAAtB,EAA2C6G,IAA3C,EAAiDlB,OAAjD,EAA0DgB,OAA1D,KAAsE,EAA9E;AACD;;AAEwC,QAA3BQ,2BAA2B,CACvC;AAAEP,IAAAA;AAAF,GADuC,EAEvCjB,OAFuC,EAGvCgB,OAHuC,EAIV;AAC7B,UAAMO,kBAAsC,GAAG;AAC7CnE,MAAAA,aAAa,EAAE,IAAIoB,GAAJ,EAD8B;AAE7CG,MAAAA,IAAI,EAAE,EAFuC;AAG7CpC,MAAAA,UAAU,EAAE;AAAEC,QAAAA,OAAO,EAAE,CAAX;AAAcC,QAAAA,KAAK,EAAE;AAArB,OAHiC;AAI7CH,MAAAA,kBAAkB,EAAE,IAAIkC,GAAJ;AAJyB,KAA/C;AAOA,UAAMgG,SAAS,GAAG7J,uBAAuB,CAACsG,GAAD,EAAMD,OAAO,CAAC3D,SAAd,CAAvB,CAAgD,CAAhD,CAAlB;AACA,UAAMoH,kBAAkB,GAAGhK,cAAc,CAAC+J,SAAD,CAAzC;;AAEA,QAAI,CAACC,kBAAL,EAAyB;AACvB,aAAOlD,kBAAP;AACD;;AAED,UAAMJ,OAAO,CAACiD,GAAR,CACJK,kBAAkB,CAACwC,GAAnB,CAAuB,CAAC;AAAEjE,MAAAA;AAAF,KAAD,KACrB,KAAKD,iBAAL,CACEC,SADF,EAEE;AAAEjE,MAAAA,gBAAgB,EAAEiC,OAAO,CAAC3D;AAA5B,KAFF,EAGEkE,kBAHF,EAIEvB,OAJF,EAKEgB,OALF,CADF,CADI,CAAN;AAYAO,IAAAA,kBAAkB,CAAChF,UAAnB,GAAgCH,YAAY,CAACC,wBAAb,CAAsCkF,kBAAkB,CAACjF,kBAAzD,CAAhC;AACA,WAAOiF,kBAAP;AACD;;AAEOuD,EAAAA,+BAA+B,CACrCH,sBADqC,EAErC3D,OAFqC,EAGrC;AACA,UAAM6G,cAAc,GAAG,KAAKC,8BAAL,CAAoCtK,GAApC,CACrBwD,OAAO,CAAC+G,KADa,CAAvB;;AAIA,SAAKD,8BAAL,CAAoChF,MAApC,CAA2C9B,OAAO,CAAC+G,KAAnD;;AACA,WAAO9L,qBAAqB,CAAC,CAAC,GAAG4L,cAAJ,EAAoBlD,sBAApB,CAAD,CAA5B;AACD;;AAG2B,QAAdqD,cAAc,CAC1BxF,SAD0B,EAE1BtB,IAF0B,EAG1B+G,KAH0B,EAI1BC,eAJ0B,EAK1BjJ,QAL0B,EAM1B4G,QAN0B,EAOX;AACf,QAAI;AACF,YAAM,KAAKtF,MAAL,CAAYnB,GAAZ,CAAiB,GAAEoD,SAAU,KAAItB,IAAK,EAAtC,EAAyC,WAAU+G,KAAV,CAAzC,EAA2DC,eAA3D,CAAN;AACD,KAFD,CAEE,OAAOzC,KAAP,EAAc,CAEf;AACF;;AAEsD,QAAzCV,yCAAyC,CACrDrG,WADqD,EAErD2H,YAFqD,EAGrDrG,OAHqD,EAIrDgB,OAJqD,EAKtC;AACf,UAAMmH,aAAa,GAAGxN,uBAAuB,CAAC+D,WAAW,CAACuC,GAAb,EAAkBD,OAAO,CAAC3D,SAA1B,CAAvB,CAA4D,CAA5D,CAAtB;AACA,UAAMoH,kBAAkB,GAAGhK,cAAc,CAAC0N,aAAD,CAAzC;;AAEA,QAAI,CAAC1D,kBAAL,EAAyB;AACvB;AACD;;AAED,UAAMtD,OAAO,CAACiD,GAAR,CACJK,kBAAkB,CAACwC,GAAnB,CAAuB,CAAC;AAAEjE,MAAAA;AAAF,KAAD,KAAmB;AACxC,aAAO,KAAKsD,6CAAL,CACLtD,SADK,EAEL;AAAEjE,QAAAA,gBAAgB,EAAEiC,OAAO,CAAC3D;AAA5B,OAFK,EAGLgJ,YAHK,EAILrG,OAJK,EAKLgB,OALK,CAAP;AAOD,KARD,CADI,CAAN;AAWD;;AAEoD,QAAvC6F,uCAAuC,CACnDN,KADmD,EAEnDnD,YAFmD,EAGnD;AAAEhG,IAAAA,aAAF;AAAiBmG,IAAAA,UAAjB;AAA6BC,IAAAA;AAA7B,GAHmD,EAInDxD,OAJmD,EAKnDgB,OALmD,EAMnD;AACA,UAAM;AAAEjC,MAAAA,gBAAF;AAAoB0H,MAAAA;AAApB,QAAyCrD,YAA/C;;AACA,UAAM2C,SAAS,GAAG,KAAIxC,UAAJ,EAAgBkD,gBAAhB,CAAlB;;AACA,UAAM9I,aAAa,GAAGqD,OAAO,CAACsC,YAAR,CAAqB9F,GAArB,CAAyBuB,gBAAzB,CAAtB;AACA,UAAMxB,YAAY,GAAGH,aAAa,CAACI,GAAd,CAAkBuB,gBAAlB,CAArB;;AAEA,QAAI,aAAYgH,SAAZ,KAA0B,CAACpI,aAA3B,IAA4C,CAACJ,YAAjD,EAA+D;AAC7D;AACD;;AAED,UAAMsG,QAAyB,GAAG,EAAlC;AAEAA,IAAAA,QAAQ,CAAC1D,IAAT,CACE,KAAKiI,8BAAL,CACE7B,KADF,EAEEnD,YAFF,EAGE;AAAE7F,MAAAA,YAAF;AAAgBoB,MAAAA,IAAI,EAAE6E,oBAAtB;AAA4C7F,MAAAA;AAA5C,KAHF,EAIEqC,OAJF,EAKEgB,OALF,CADF;;AAUA,UAAMpD,QAAQ,GAAG,KAAKkI,cAAL,CAAoBC,SAApB,EAA+BpI,aAA/B,CAAjB;;AAEA,QAAI,CAACC,QAAD,IAAaD,aAAa,CAACM,YAA/B,EAA6C;AAC3C,aAAMsF,UAAN,EAAkBkD,gBAAlB;AACD;;AAED,QAAI7I,QAAJ,EAAc;AACZiG,MAAAA,QAAQ,CAAC1D,IAAT,CACE,KAAKkI,oBAAL,CAA0BjF,YAA1B,EAAwC;AAAE7F,QAAAA,YAAF;AAAgBoB,QAAAA,IAAI,EAAE4E,UAAtB;AAAkC5F,QAAAA;AAAlC,OAAxC,EAA2FqC,OAA3F,EAAoGgB,OAApG,CADF;AAGD;;AAED,UAAMG,OAAO,CAACiD,GAAR,CAAYP,QAAZ,CAAN;AACD;;AAEiC,QAApBwE,oBAAoB,CAChC;AAAE5B,IAAAA;AAAF,GADgC,EAEhC;AAAElJ,IAAAA,YAAF;AAAgBoB,IAAAA,IAAhB;AAAsBhB,IAAAA;AAAtB,GAFgC,EAGhCqC,OAHgC,EAIhCgB,OAJgC,EAKhC;AACA,QAAI+E,SAAS,GAAG,KAAIpH,IAAJ,EAAU8H,gBAAV,CAAhB;;AACA,UAAMhH,aAAa,GAAG9B,aAAa,CAACC,QAAd,GAAyBD,aAAa,CAACmC,QAAvC,GAAkDiG,SAAS,CAACtC,UAAlF;AACA,UAAM6E,aAAa,GAAI,GAAE7I,aAAc,KAAIsG,SAAS,CAAC,KAAKlF,UAAN,CAAkB,EAAtE;AACA,UAAM8B,MAAM,GAAG,MAAM,KAAKF,gBAAL,CAAsBvI,aAAtB,EAAqCoO,aAArC,EAAoDtI,OAApD,EAA6DgB,OAA7D,CAArB;;AAEA,QAAI2B,MAAJ,EAAY;AACVoD,MAAAA,SAAS,GAAG,KAAKC,aAAL,CAAmBrD,MAAM,CAAC9C,KAA1B,EAAiCkG,SAAjC,CAAZ;AACD;;AAED,UAAM,KAAKiC,cAAL,CACJ9N,aADI,EAEJoO,aAFI,EAGJvC,SAHI,EAIJ;AAAEwC,MAAAA,YAAY,EAAE;AAAEC,QAAAA,YAAY,EAAEjL,YAAY,CAACE,iBAAb;AAAhB,OAAhB;AAAoEgL,MAAAA,GAAG,EAAEzI,OAAO,CAACyI;AAAjF,KAJI,EAKJzI,OALI,EAMJgB,OANI,CAAN;;AASA,SAAIrC,IAAJ,EAAU8H,gBAAV,EAA4B;AAAEiC,MAAAA,UAAU,EAAG,GAAExO,aAAc,KAAIoO,aAAc;AAAjD,KAA5B;AACD;;AAEO5D,EAAAA,qBAAqB,CAC3B6B,KAD2B,EAE3BC,oBAF2B,EAG3B;AAAEpJ,IAAAA,aAAF;AAAiBuB,IAAAA;AAAjB,GAH2B,EAI3BqB,OAJ2B,EAK3BgB,OAL2B,EAMrB;AACN,UAAM;AAAEjC,MAAAA,gBAAgB,EAAE4J;AAApB,QAAiDnC,oBAAvD;AACA,UAAMpD,YAAY,GAAG1H,sBAAsB,CAAC6K,KAAD,EAAQC,oBAAR,EAA8BxF,OAA9B,CAA3C;AACA,UAAM;AAAEjC,MAAAA,gBAAF;AAAoB0H,MAAAA;AAApB,QAAyCrD,YAA/C;;AACA,UAAM2C,SAAS,GAAG,KAAIpH,IAAJ,EAAU8H,gBAAV,CAAlB;;AACA,UAAM9I,aAAa,GAAGqD,OAAO,CAACsC,YAAR,CAAqB9F,GAArB,CAAyBuB,gBAAzB,CAAtB;;AAEA,QAAI,CAAC,cAAagH,SAAb,CAAD,IAA4B,EAACpI,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEO,aAAhB,CAAhC,EAA+D;AAC7D;AACD;;AAED,SAAK0K,2BAAL,CAAiCxL,aAAjC,EAAgD;AAAEuL,MAAAA,wBAAF;AAA4B5J,MAAAA;AAA5B,KAAhD,EAAgGiC,OAAhG;;AAEA,QAAI,cAAa+E,SAAb,CAAJ,EAA6B;AAC3BjL,MAAAA,kBAAkB,CAChByL,KADgB,EAEhBR,SAFgB,EAGhB/E,OAAO,CAACM,mBAHQ,EAIhB,CACEwC,UADF,EAEE4C,SAFF,EAGEC,aAHF,EAIEC,aAJF,EAKE1C,UALF,KAMK;AACH,aAAKQ,qBAAL,CACEZ,UADF,EAEE;AAAEK,UAAAA,KAAK,EAAED,UAAT;AAAqBnF,UAAAA,gBAArB;AAAuC0H,UAAAA;AAAvC,SAFF,EAGE;AAAErJ,UAAAA,aAAF;AAAiBuB,UAAAA;AAAjB,SAHF,EAIEqB,OAJF,EAKEgB,OALF;AAOD,OAlBe,CAAlB;AAoBD;AACF;;AAEO4H,EAAAA,2BAA2B,CACjCxL,aADiC,EAEjC;AAAEuL,IAAAA,wBAAF;AAA4B5J,IAAAA;AAA5B,GAFiC,EAGjC;AAAEuE,IAAAA,YAAF;AAAgBjG,IAAAA;AAAhB,GAHiC,EAI3B;AACN,QAAID,aAAa,CAACwC,GAAd,CAAkBb,gBAAlB,CAAJ,EAAyC;AACvC;AACD;;AAED,UAAMpB,aAAa,GAAG2F,YAAY,CAAC9F,GAAb,CAAiBuB,gBAAjB,CAAtB;;AAEA,QAAIpB,aAAa,IAAI,KAAKiD,oBAAL,CAA0BjD,aAAa,CAACmC,QAAxC,CAArB,EAAwE;AACtE,YAAMvC,YAAY,GAAG,IAAItC,YAAJ,CAAiB;AAAEuN,QAAAA,YAAY,EAAE,KAAK5H,oBAAL,CAA0BjD,aAAa,CAACmC,QAAxC;AAAhB,OAAjB,CAArB;;AACA1D,MAAAA,YAAY,CAAC8C,iBAAb,CAA+B9B,aAA/B,EAA8CG,YAA9C,EAA4DwB,gBAA5D,EAA8E1B,SAA9E;AACD,KAHD,MAGO,IAAI,KAAKmD,oBAAL,IAA6BmI,wBAAjC,EAA2D;AAChEvM,MAAAA,YAAY,CAAC8C,iBAAb,CACE9B,aADF,EAEEA,aAAa,CAACI,GAAd,CAAkBmL,wBAAlB,CAFF,EAGE5J,gBAHF,EAIE1B,SAJF;AAMD;AACF;;AAGqC,QAAxByE,wBAAwB,CACpCZ,IADoC,EAEpC3C,oBAFoC,EAGpCU,QAHoC,EAIpC4G,QAJoC,EAKrB;AACf,SAAKhD,sBAAL,CAA4BzD,GAA5B,CAAgC8B,IAAhC,EAAsC3C,oBAAtC;AACD;;AAEwC,QAA3BoD,2BAA2B,CACvCT,IADuC,EAEvC;AAAE9D,IAAAA,aAAF;AAAiBuB,IAAAA;AAAjB,GAFuC,EAGvCqB,OAHuC,EAIvCgB,OAJuC,EAKxB;AACf,UAAM6H,uBAAuB,GAAGrO,sBAAsB,CAAC4C,aAAD,CAAtD;;AACA,UAAMoL,YAAY,GAAGpM,YAAY,CAACe,yBAAb,CAAuCC,aAAvC,EAAsD4D,OAAO,CAAC3D,SAA9D,CAArB;;AAEA,UAAM,KAAK2K,cAAL,CACJ5N,eADI,EAEJ8G,IAFI,EAGJ;AAAE9D,MAAAA,aAAa,EAAEyL,uBAAjB;AAA0ClK,MAAAA;AAA1C,KAHI,EAIJ;AAAE4J,MAAAA,YAAY,EAAE;AAAEC,QAAAA;AAAF,OAAhB;AAAkCC,MAAAA,GAAG,EAAEzI,OAAO,CAACyI;AAA/C,KAJI,EAKJzI,OALI,EAMJgB,OANI,CAAN;AAQD;;AAE2C,QAA9BoH,8BAA8B,CAC1C7B,KAD0C,EAE1CnD,YAF0C,EAG1C;AAAE7F,IAAAA,YAAF;AAAgBoB,IAAAA,IAAhB;AAAsBhB,IAAAA;AAAtB,GAH0C,EAI1CqC,OAJ0C,EAK1CgB,OAL0C,EAM3B;AACf,UAAM;AAAEqC,MAAAA,0BAAF;AAA8BoD,MAAAA;AAA9B,QAAmDrD,YAAzD;;AACA,QAAI2C,SAAS,GAAG,KAAIpH,IAAJ,EAAU8H,gBAAV,CAAhB;;AACA,UAAM7I,QAAQ,GAAG,KAAKkI,cAAL,CAAoBC,SAApB,EAA+BpI,aAA/B,CAAjB;;AACA,UAAMmL,mBAAmB,GAAGnL,aAAa,CAACM,YAAd,IAA8BN,aAAa,CAACO,aAAxE;;AAEA,QAAI8C,OAAO,CAAC3D,SAAR,KAAsBlD,KAAtB,KAAgCyD,QAAQ,IAAIkL,mBAA5C,CAAJ,EAAsE;AAAA;;AACpE,UAAI,eAAc/C,SAAd,4BAA4BQ,KAAK,CAACwC,YAAlC,gDAA4B,oBAAoBC,UAApD,EAAgE;AAC9DjD,QAAAA,SAAS,GAAGnK,kCAAkC,CAACmK,SAAD,EAAYQ,KAAK,CAACwC,YAAN,CAAmBC,UAA/B,EAA2C5F,YAA3C,EAAyDpC,OAAzD,CAA9C;AACD;;AAED,YAAM2B,MAAM,GAAG,MAAM,KAAKF,gBAAL,CAAsBpI,mBAAtB,EAA2CgJ,0BAA3C,EAAuErD,OAAvE,EAAgFgB,OAAhF,CAArB;;AAEA,UAAI2B,MAAM,IAAI,cAAaoD,SAAb,CAAd,EAAuC;AACrCA,QAAAA,SAAS,GAAG,KAAKC,aAAL,CAAmBrD,MAAM,CAAC9C,KAA1B,EAAiCkG,SAAjC,CAAZ;AACD;;AAED,YAAM,KAAKiC,cAAL,CACJ3N,mBADI,EAEJgJ,0BAFI,EAGJ0C,SAHI,EAIJ;AAAEwC,QAAAA,YAAY,EAAE;AAAEC,UAAAA,YAAY,EAAEjL,YAAY,CAACE,iBAAb;AAAhB,SAAhB;AAAoEgL,QAAAA,GAAG,EAAEzI,OAAO,CAACyI;AAAjF,OAJI,EAKJzI,OALI,EAMJgB,OANI,CAAN;;AASA,UAAIpG,cAAc,CAAC2L,KAAD,EAAQ;AAAEjF,QAAAA,mBAAmB,EAAEN,OAAO,CAACM;AAA/B,OAAR,CAAlB,EAAiF;AAC/E,YAAI1D,QAAJ,EAAc;AACZ,eAAIe,IAAJ,EAAU8H,gBAAV,EAA4B;AAAEiC,YAAAA,UAAU,EAAG,GAAErO,mBAAoB,KAAIgJ,0BAA2B;AAApE,WAA5B;AACD,SAFD,MAEO;AACL,iBAAM1E,IAAN,EAAY8H,gBAAZ;AACD;AACF;AACF;AACF;;AAEO5B,EAAAA,iCAAiC,CACvCF,sBADuC,EAEvC3D,OAFuC,EAGvC;AACA,UAAM6G,cAAc,GAAG,KAAKC,8BAAL,CAAoCtK,GAApC,CAAwCwD,OAAO,CAAC+G,KAAhD,CAAvB;;AAEA,QAAIF,cAAJ,EAAoB;AAClB,WAAKC,8BAAL,CAAoC1I,GAApC,CAAwC4B,OAAO,CAAC+G,KAAhD,EAAuD,CAAC,GAAGF,cAAJ,EAAoBlD,sBAApB,CAAvD;AACD,KAFD,MAEO;AACL,WAAKmD,8BAAL,CAAoC1I,GAApC,CAAwC4B,OAAO,CAAC+G,KAAhD,EAAuD,CAACpD,sBAAD,CAAvD;AACD;AACF;;AApkCkD,CAArD;AAukCA,eAAe,SAASsE,IAAT,CAAcC,WAAd,EAA0D;AACvE,MAAI,CAAC,eAAcA,WAAd,CAAL,EAAiC;AAC/B,UAAM,IAAI9I,SAAJ,CAAc,uEAAd,CAAN;AACD;;AAED,SAAQ+I,aAAD,IAAkC,IAAI/M,YAAJ,CAAiB,EAAE,GAAG+M,aAAL;AAAoB,OAAGD;AAAvB,GAAjB,CAAzC;AACD","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport {\n CacheMetadata,\n CacheTypes,\n DATA_ENTITIES,\n FieldTypeInfo,\n PlainObjectMap,\n PlainObjectStringMap,\n QUERY,\n QUERY_RESPONSES,\n REQUEST_FIELD_PATHS,\n RawResponseDataWithMaybeCacheMetadata,\n RequestContext,\n RequestData,\n RequestOptions,\n ResponseData,\n TYPE_NAME_KEY,\n} from \"@graphql-box/core\";\nimport {\n FRAGMENT_SPREAD,\n dehydrateCacheMetadata,\n getChildFields,\n getFragmentDefinitions,\n getOperationDefinitions,\n hasChildFields,\n hashRequest,\n iterateChildFields,\n mergeObjects,\n rehydrateCacheMetadata,\n} from \"@graphql-box/helpers\";\nimport Cacheability from \"cacheability\";\nimport { FieldNode, print } from \"graphql\";\nimport { assign, cloneDeep, get, isArray, isObjectLike, isPlainObject, isUndefined, set, unset } from \"lodash\";\nimport { CACHE_CONTROL, HEADER_NO_CACHE, METADATA, NO_CACHE } from \"../consts\";\nimport { logCacheEntry, logCacheQuery, logPartialCompiled } from \"../debug\";\nimport {\n AnalyzeQueryResult,\n AncestorKeysAndPaths,\n CacheManagerContext,\n CacheManagerDef,\n CacheManagerInit,\n CachedAncestorFieldData,\n CachedResponseData,\n CachemapOptions,\n CheckCacheEntryResult,\n ClientOptions,\n ConstructorOptions,\n DataForCachingEntry,\n FieldCount,\n FieldPathChecklist,\n FieldPathChecklistValue,\n KeysAndPaths,\n MergedCachedFieldData,\n PartialQueryResponse,\n PartialQueryResponses,\n QueryResponseCacheEntry,\n ResponseDataForCaching,\n TypeNamesAndKind,\n UserOptions,\n} from \"../defs\";\nimport { buildFieldKeysAndPaths } from \"../helpers/buildKeysAndPaths\";\nimport deriveOpCacheability from \"../helpers/deriveOpCacheability\";\nimport filterOutPropsWithArgsOrDirectives from \"../helpers/filterOutPropsWithArgsOrDirectives\";\nimport filterQuery from \"../helpers/filterQuery\";\nimport isLastResponseChunk from \"../helpers/isLastResponseChunk\";\nimport isNotLastResponseChunk from \"../helpers/isNotLastResponseChunk\";\nimport isNotResponseChunk from \"../helpers/isNotResponseChunk\";\nimport mergeResponseDataSets from \"../helpers/mergeResponseDataSets\";\nimport normalizePatchResponseData from \"../helpers/normalizePatchResponseData\";\nimport { getValidTypeIDValue } from \"../helpers/validTypeIDValue\";\n\nexport class CacheManager implements CacheManagerDef {\n private static _countFieldPathChecklist(fieldPathChecklist: FieldPathChecklist): FieldCount {\n const fieldCount: FieldCount = { missing: 0, total: 0 };\n\n fieldPathChecklist.forEach(checklistValues => {\n fieldCount.total += checklistValues.length;\n const missing = checklistValues.filter(({ hasData }) => !hasData);\n fieldCount.missing += missing.length;\n });\n\n return fieldCount;\n }\n\n private static _getFieldDataFromAncestor(ancestorFieldData: any, propNameOrIndex: string | number): any {\n return isObjectLike(ancestorFieldData) ? cloneDeep(ancestorFieldData[propNameOrIndex]) : undefined;\n }\n\n private static _getOperationCacheControl(cacheMetadata: CacheMetadata | undefined, operation: string): string {\n const defaultCacheControl = HEADER_NO_CACHE;\n\n if (!cacheMetadata) {\n return defaultCacheControl;\n }\n\n const cacheability = cacheMetadata.get(operation);\n return cacheability ? cacheability.printCacheControl() : defaultCacheControl;\n }\n\n private static _isNodeEntity(fieldTypeInfo?: FieldTypeInfo): boolean {\n if (!fieldTypeInfo) {\n return false;\n }\n\n const { isEntity, possibleTypes } = fieldTypeInfo;\n return isEntity || possibleTypes.some(type => !!type.isEntity);\n }\n\n private static _isNodeRequestFieldPath(fieldTypeInfo?: FieldTypeInfo): boolean {\n return (\n !!fieldTypeInfo &&\n (this._isNodeEntity(fieldTypeInfo) || fieldTypeInfo.hasArguments || fieldTypeInfo.hasDirectives)\n );\n }\n\n private static _isValid(cacheability: Cacheability): boolean {\n const noCache = get(cacheability, [METADATA, CACHE_CONTROL, NO_CACHE], false);\n return !noCache && cacheability.checkTTL();\n }\n\n private static _mergeResponseCacheMetadata(\n cacheMetadata: CacheMetadata,\n partialQueryResponse?: PartialQueryResponse,\n ): CacheMetadata {\n if (!partialQueryResponse) {\n return cacheMetadata;\n }\n\n return new Map([...partialQueryResponse.cacheMetadata, ...cacheMetadata]);\n }\n\n private static _setCachedData(\n requestData: PlainObjectMap,\n { data }: MergedCachedFieldData,\n propNameOrIndex: string | number,\n ): void {\n if (!isObjectLike(data) && !isUndefined(data)) {\n requestData[propNameOrIndex] = data as string | number | boolean | null;\n } else if (isObjectLike(data)) {\n const objectLikeData = data as PlainObjectMap | any[];\n requestData[propNameOrIndex] = isArray(objectLikeData) ? [] : {};\n }\n }\n\n private static _setCachedResponseData(\n cachedFieldData: MergedCachedFieldData,\n { cacheMetadata, data, fieldPathChecklist }: CachedResponseData,\n { propNameOrIndex, requestFieldPath }: KeysAndPaths,\n typeNamesAndKind: TypeNamesAndKind,\n _options: RequestOptions,\n { operation }: CacheManagerContext,\n ) {\n CacheManager._setCacheMetadata(cacheMetadata, cachedFieldData.cacheability, requestFieldPath, operation);\n CacheManager._setFieldPathChecklist(fieldPathChecklist, cachedFieldData, requestFieldPath, typeNamesAndKind);\n CacheManager._setCachedData(data, cachedFieldData, propNameOrIndex);\n }\n\n private static _setCacheMetadata(\n cacheMetadata: CacheMetadata,\n cacheability: Cacheability | undefined,\n requestFieldPath: string,\n operation: string,\n ): void {\n if (!cacheability) {\n return;\n }\n\n cacheMetadata.set(requestFieldPath, cacheability);\n const operationCacheability = cacheMetadata.get(operation);\n\n if (!operationCacheability || operationCacheability.metadata.ttl > cacheability.metadata.ttl) {\n cacheMetadata.set(operation, cacheability);\n }\n }\n\n private static _setFieldPathChecklist(\n fieldPathChecklist: FieldPathChecklist,\n { data }: MergedCachedFieldData,\n requestFieldPath: string,\n { dataTypeName, fieldTypeName, fragmentKind, fragmentName }: TypeNamesAndKind,\n ): void {\n if (isUndefined(fieldTypeName) || fragmentKind === FRAGMENT_SPREAD) {\n if (fieldPathChecklist.has(requestFieldPath)) {\n return;\n }\n\n fieldPathChecklist.set(requestFieldPath, [{ fragmentKind, fragmentName, hasData: !isUndefined(data) }]);\n return;\n }\n\n if (dataTypeName !== fieldTypeName) {\n return;\n }\n\n const entry = fieldPathChecklist.get(requestFieldPath);\n const checklistValues = entry ? (entry as FieldPathChecklistValue[]) : [];\n\n if (checklistValues.some(({ typeName }) => typeName === dataTypeName)) {\n return;\n }\n\n fieldPathChecklist.set(requestFieldPath, [\n ...checklistValues,\n { fragmentKind, fragmentName, hasData: !isUndefined(data), typeName: dataTypeName as string },\n ]);\n }\n\n private _cache: Cachemap;\n private _cascadeCacheControl: boolean;\n private _fallbackOperationCacheability: string;\n private _partialQueryResponses: PartialQueryResponses = new Map();\n private _responseChunksAwaitingCaching: Map<string, RawResponseDataWithMaybeCacheMetadata[]> = new Map();\n private _typeCacheDirectives: PlainObjectStringMap;\n private _typeIDKey: string;\n\n constructor(options: ConstructorOptions) {\n const errors: TypeError[] = [];\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/cache-manager expected options.cache.\"));\n }\n\n if (!!options.typeCacheDirectives && !isPlainObject(options.typeCacheDirectives)) {\n const message = \"@graphql-box/cache-manager expected options.typeCacheDirectives to be a plain object.\";\n errors.push(new TypeError(message));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._cascadeCacheControl = options.cascadeCacheControl || false;\n this._fallbackOperationCacheability = options.fallbackOperationCacheability || NO_CACHE;\n this._typeCacheDirectives = options.typeCacheDirectives || {};\n this._typeIDKey = options.typeIDKey;\n }\n\n get cache(): Cachemap {\n return this._cache;\n }\n\n public async analyzeQuery(\n requestData: RequestData,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AnalyzeQueryResult> {\n const { ast, hash } = requestData;\n\n if (!ast) {\n return Promise.reject(new TypeError(\"@graphql-box/cache-manager expected an AST.\"));\n }\n\n const cacheManagerContext: CacheManagerContext = {\n ...context,\n fragmentDefinitions: getFragmentDefinitions(ast),\n typeIDKey: this._typeIDKey,\n };\n\n const cachedResponseData = await this._retrieveCachedResponseData(requestData, options, cacheManagerContext);\n const { cacheMetadata, data, fieldCount } = cachedResponseData;\n\n if (fieldCount.missing === fieldCount.total) {\n return { updated: requestData };\n }\n\n if (!fieldCount.missing) {\n const dataCaching = this._setQueryResponseCacheEntry(hash, { cacheMetadata, data }, options, cacheManagerContext);\n\n if (options.awaitDataCaching) {\n await dataCaching;\n }\n\n return { response: { cacheMetadata, data } };\n }\n\n this._setPartialQueryResponse(hash, { cacheMetadata, data }, options, cacheManagerContext);\n const filteredAST = filterQuery(requestData, cachedResponseData, cacheManagerContext);\n const { fragmentDefinitions, typeIDKey, ...rest } = cacheManagerContext;\n assign(context, rest);\n const request = print(filteredAST);\n return { updated: { ast: filteredAST, hash: hashRequest(request), request } };\n }\n\n public async cacheQuery(\n requestData: RequestData,\n updatedRequestData: RequestData,\n rawResponseData: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<ResponseData> {\n const cacheManagerContext: CacheManagerContext = {\n ...context,\n fragmentDefinitions: getFragmentDefinitions(updatedRequestData.ast),\n typeIDKey: this._typeIDKey,\n };\n\n return this._cacheResponse(requestData, updatedRequestData, rawResponseData, options, cacheManagerContext);\n }\n\n public async cacheResponse(\n requestData: RequestData,\n rawResponseData: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<ResponseData> {\n const cacheManagerContext: CacheManagerContext = {\n ...context,\n fragmentDefinitions: getFragmentDefinitions(requestData.ast),\n typeIDKey: this._typeIDKey,\n };\n\n return this._cacheResponse(requestData, undefined, rawResponseData, options, cacheManagerContext);\n }\n\n public async checkCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<CheckCacheEntryResult | false> {\n return this._checkCacheEntry(cacheType, hash, options, context);\n }\n\n public async checkQueryResponseCacheEntry(\n hash: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<ResponseData | false> {\n const result = await this._checkCacheEntry(QUERY_RESPONSES, hash, options, context);\n\n if (!result) {\n return false;\n }\n\n const { cacheMetadata, data } = result.entry as QueryResponseCacheEntry;\n\n return {\n cacheMetadata: rehydrateCacheMetadata(cacheMetadata),\n data,\n };\n }\n\n public deletePartialQueryResponse(hash: string): void {\n this._partialQueryResponses.delete(hash);\n }\n\n private async _analyzeFieldNode(\n fieldNode: FieldNode,\n cachedAncestorFieldData: CachedAncestorFieldData,\n cachedResponseData: CachedResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n if (hasChildFields(fieldNode, { fragmentDefinitions: context.fragmentDefinitions })) {\n await this._analyzeParentFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context);\n } else {\n await this._analyzeLeafFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context);\n }\n }\n\n private async _analyzeLeafFieldNode(\n fieldNode: FieldNode,\n cachedAncestorFieldData: CachedAncestorFieldData,\n cachedResponseData: CachedResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const keysAndPaths = buildFieldKeysAndPaths(fieldNode, cachedAncestorFieldData, context);\n const { hashedRequestFieldCacheKey, propNameOrIndex, requestFieldPath } = keysAndPaths;\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n const { entityData, fragmentKind, fragmentName, requestFieldPathData, typeName } = cachedAncestorFieldData;\n\n const typeNamesAndKind = {\n dataTypeName: entityData?.__typename || requestFieldPathData?.__typename,\n fieldTypeName: typeName,\n fragmentKind,\n fragmentName,\n };\n\n if (CacheManager._isNodeRequestFieldPath(fieldTypeInfo)) {\n const { cacheability, entry } = await this._retrieveCachedRequestFieldPathData(\n hashedRequestFieldCacheKey,\n options,\n context,\n );\n\n CacheManager._setCachedResponseData(\n { cacheability, data: entry },\n cachedResponseData,\n keysAndPaths,\n typeNamesAndKind,\n options,\n context,\n );\n } else {\n const cachedFieldData =\n CacheManager._getFieldDataFromAncestor(entityData, propNameOrIndex) ||\n CacheManager._getFieldDataFromAncestor(requestFieldPathData, propNameOrIndex);\n\n CacheManager._setFieldPathChecklist(\n cachedResponseData.fieldPathChecklist,\n { data: cachedFieldData },\n requestFieldPath,\n typeNamesAndKind,\n );\n\n CacheManager._setCachedData(cachedResponseData.data, { data: cachedFieldData }, propNameOrIndex);\n }\n }\n\n private async _analyzeParentFieldNode(\n fieldNode: FieldNode,\n cachedAncestorFieldData: CachedAncestorFieldData,\n cachedResponseData: CachedResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const keysAndPaths = buildFieldKeysAndPaths(fieldNode, cachedAncestorFieldData, context);\n const { propNameOrIndex, requestFieldCacheKey, requestFieldPath } = keysAndPaths;\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath) as FieldTypeInfo;\n\n const { cacheability, data, entityData, requestFieldPathData } = await this._retrieveCachedParentNodeData(\n cachedAncestorFieldData,\n keysAndPaths,\n fieldTypeInfo,\n options,\n context,\n );\n\n const { fragmentKind, fragmentName, typeName } = cachedAncestorFieldData;\n\n CacheManager._setCachedResponseData(\n { cacheability, data },\n cachedResponseData,\n keysAndPaths,\n { dataTypeName: get(data, TYPE_NAME_KEY), fieldTypeName: typeName, fragmentKind, fragmentName },\n options,\n context,\n );\n\n if (!isObjectLike(data)) {\n return;\n }\n\n const objectLikeData = data as PlainObjectMap | any[];\n const promises: Promise<void>[] = [];\n\n iterateChildFields(\n fieldNode,\n objectLikeData,\n context.fragmentDefinitions,\n (\n childField: FieldNode,\n childTypeName: string | undefined,\n childFragmentKind: string | undefined,\n childFragmentName: string | undefined,\n childIndex?: number,\n ) => {\n promises.push(\n this._analyzeFieldNode(\n childField,\n {\n cacheability,\n entityData,\n fragmentKind: childFragmentKind,\n fragmentName: childFragmentName,\n index: childIndex,\n requestFieldCacheKey,\n requestFieldPath,\n requestFieldPathData,\n typeName: childTypeName,\n },\n { ...cachedResponseData, data: cachedResponseData.data[propNameOrIndex] },\n options,\n context,\n ),\n );\n },\n );\n\n await Promise.all(promises);\n }\n\n private _buildCacheMetadata(\n { ast }: RequestData,\n { data, ...otherProps }: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: CacheManagerContext,\n ): CacheMetadata {\n const cacheMetadata = this._createCacheMetadata({ data, ...otherProps }, context);\n const queryNode = getOperationDefinitions(ast, context.operation)[0];\n const fieldsAndTypeNames = getChildFields(queryNode);\n\n if (!fieldsAndTypeNames) {\n return cacheMetadata;\n }\n\n fieldsAndTypeNames.forEach(({ fieldNode }) =>\n this._setFieldCacheability(\n fieldNode,\n { requestFieldPath: context.operation },\n { cacheMetadata, data },\n options,\n context,\n ),\n );\n\n return cacheMetadata;\n }\n\n private async _cacheResponse(\n requestData: RequestData,\n updatedRequestData: RequestData | undefined,\n rawResponseData: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<ResponseData> {\n const normalizedResponseData = normalizePatchResponseData(rawResponseData, context);\n let responseDataForCaching: RawResponseDataWithMaybeCacheMetadata | undefined = normalizedResponseData;\n\n if (isNotLastResponseChunk(rawResponseData, context)) {\n this._setResponseChunksAwaitingCaching(normalizedResponseData, context);\n responseDataForCaching = undefined;\n }\n\n if (isLastResponseChunk(rawResponseData, context)) {\n responseDataForCaching = this._retrieveResponseDataForCaching(normalizedResponseData, context);\n }\n\n const dataCaching: Promise<void>[] = [];\n\n if (responseDataForCaching) {\n const { data } = responseDataForCaching;\n const cacheMetadata = this._buildCacheMetadata(requestData, responseDataForCaching, options, context);\n\n dataCaching.push(\n this._setEntityAndRequestFieldPathCacheEntries(\n requestData,\n {\n cacheMetadata,\n entityData: cloneDeep(data),\n requestFieldPathData: cloneDeep(data),\n },\n options,\n context,\n ),\n );\n\n let queryCacheMetadata: CacheMetadata | undefined;\n let queryData: PlainObjectMap | undefined;\n\n if (context.operation === QUERY) {\n let partialQueryResponse: PartialQueryResponse | undefined;\n\n if (context.queryFiltered && updatedRequestData) {\n dataCaching.push(\n this._setQueryResponseCacheEntry(updatedRequestData.hash, { cacheMetadata, data }, options, context),\n );\n\n partialQueryResponse = this._getPartialQueryResponse(requestData.hash);\n }\n\n queryCacheMetadata = CacheManager._mergeResponseCacheMetadata(cacheMetadata, partialQueryResponse);\n queryData = this._mergeResponseData(data, partialQueryResponse);\n\n dataCaching.push(\n this._setQueryResponseCacheEntry(\n requestData.hash,\n { cacheMetadata: queryCacheMetadata, data: queryData },\n options,\n context,\n ),\n );\n }\n\n if (options.awaitDataCaching) {\n await Promise.all(dataCaching);\n }\n\n if (isNotResponseChunk(normalizedResponseData, context) && queryCacheMetadata && queryData) {\n return {\n cacheMetadata: queryCacheMetadata,\n data: queryData,\n };\n }\n }\n\n const { data, hasNext, paths } = normalizedResponseData;\n\n return {\n cacheMetadata: this._buildCacheMetadata(requestData, normalizedResponseData, options, context),\n data,\n hasNext,\n paths,\n };\n }\n\n private async _checkCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<CheckCacheEntryResult | false> {\n try {\n const cacheability = await this._hasCacheEntry(cacheType, hash);\n\n if (!cacheability || !CacheManager._isValid(cacheability)) {\n return false;\n }\n\n const entry = await this._getCacheEntry(cacheType, hash, options, context);\n\n if (isUndefined(entry)) {\n return false;\n }\n\n return { cacheability, entry };\n } catch (error) {\n return false;\n }\n }\n\n private _createCacheMetadata(\n { _cacheMetadata, headers }: RawResponseDataWithMaybeCacheMetadata,\n { operation }: CacheManagerContext,\n ): CacheMetadata {\n const cacheMetadata = new Map();\n\n const cacheability = deriveOpCacheability({\n _cacheMetadata,\n fallback: this._fallbackOperationCacheability,\n headers,\n });\n\n cacheMetadata.set(operation, cacheability);\n\n if (_cacheMetadata) {\n rehydrateCacheMetadata(_cacheMetadata, cacheMetadata);\n }\n\n return cacheMetadata;\n }\n\n @logCacheQuery()\n private async _getCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n _options: RequestOptions,\n _context: CacheManagerContext,\n ): Promise<any> {\n try {\n return await this._cache.get(`${cacheType}::${hash}`);\n } catch (errors) {\n return Promise.reject(errors);\n }\n }\n\n private _getPartialQueryResponse(hash: string): PartialQueryResponse | undefined {\n const partialQueryResponse = this._partialQueryResponses.get(hash);\n this._partialQueryResponses.delete(hash);\n return partialQueryResponse;\n }\n\n private async _hasCacheEntry(cacheType: CacheTypes, hash: string): Promise<Cacheability | false> {\n try {\n return await this._cache.has(`${cacheType}::${hash}`);\n } catch (error) {\n return false;\n }\n }\n\n private _isFieldEntity(fieldData: any, { isEntity, possibleTypes }: FieldTypeInfo): boolean {\n if (!get(fieldData, this._typeIDKey, null)) {\n return false;\n }\n\n if (isEntity) {\n return true;\n }\n\n if (!possibleTypes.length) {\n return false;\n }\n\n return possibleTypes.some(type => type.typeName === fieldData.__typename);\n }\n\n private _mergeObjects<T>(obj: T, src: T): T {\n return mergeObjects(obj, src, (_key: string, val: any): string | number | undefined => {\n return isPlainObject(val) && val[this._typeIDKey] ? val[this._typeIDKey] : undefined;\n });\n }\n\n private _mergeResponseData(\n responseData: PlainObjectMap,\n partialQueryResponse?: PartialQueryResponse,\n ): PlainObjectMap {\n if (!partialQueryResponse) {\n return responseData;\n }\n\n return this._mergeObjects(partialQueryResponse.data, responseData);\n }\n\n private async _parseEntityAndRequestFieldPathCacheEntryData(\n field: FieldNode,\n ancestorKeysAndPaths: AncestorKeysAndPaths,\n { cacheMetadata, entityData, requestFieldPathData }: ResponseDataForCaching,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const keysAndPaths = buildFieldKeysAndPaths(field, ancestorKeysAndPaths, context);\n const { requestFieldCacheKey, requestFieldPath, responseDataPath } = keysAndPaths;\n const fieldData = get(requestFieldPathData, responseDataPath);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n\n if (!isObjectLike(fieldData) && !fieldTypeInfo?.hasDirectives) {\n return;\n }\n\n if (isObjectLike(fieldData)) {\n const promises: Promise<void>[] = [];\n\n iterateChildFields(\n field,\n fieldData as PlainObjectMap | any[],\n context.fragmentDefinitions,\n (\n childField: FieldNode,\n _typeName: string | undefined,\n _fragmentKind: string | undefined,\n _fragmentName: string | undefined,\n childIndex?: number,\n ) => {\n promises.push(\n this._parseEntityAndRequestFieldPathCacheEntryData(\n childField,\n { index: childIndex, requestFieldCacheKey, requestFieldPath, responseDataPath },\n { cacheMetadata, entityData, requestFieldPathData },\n options,\n context,\n ),\n );\n },\n );\n\n await Promise.all(promises);\n }\n\n await this._setEntityAndRequestFieldPathCacheEntry(\n field,\n keysAndPaths,\n { cacheMetadata, entityData, requestFieldPathData },\n options,\n context,\n );\n }\n\n private async _retrieveCachedEntityData(\n validTypeIDValue: string | number,\n { possibleTypes, typeName }: FieldTypeInfo,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n const typeNames = [...possibleTypes.map(type => type.typeName), typeName];\n\n const checkResults = await Promise.all(\n typeNames.map(name => this._checkCacheEntry(DATA_ENTITIES, `${name}::${validTypeIDValue}`, options, context)),\n );\n\n const validResults = checkResults.filter(result => !!result) as CheckCacheEntryResult[];\n let validResult: CheckCacheEntryResult | undefined;\n\n if (validResults.length === 1) {\n validResult = validResults[0];\n } else if (validResults.length > 1) {\n validResults.sort(({ cacheability: a }, { cacheability: b }) => a.metadata.ttl - b.metadata.ttl);\n\n validResult = {\n cacheability: validResults[0].cacheability,\n entry: validResults.reduce((obj, { entry }) => this._mergeObjects(obj, entry), {}),\n };\n }\n\n return (validResult || {}) as Partial<CheckCacheEntryResult>;\n }\n\n private async _retrieveCachedParentNodeData(\n { entityData: ancestorEntityData, requestFieldPathData: ancestorRequestFieldPathData }: CachedAncestorFieldData,\n { hashedRequestFieldCacheKey, propNameOrIndex }: KeysAndPaths,\n fieldTypeInfo: FieldTypeInfo,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n let entityData = CacheManager._getFieldDataFromAncestor(ancestorEntityData, propNameOrIndex);\n let requestFieldPathData = CacheManager._getFieldDataFromAncestor(ancestorRequestFieldPathData, propNameOrIndex);\n let cacheability: Cacheability | undefined;\n\n if (CacheManager._isNodeRequestFieldPath(fieldTypeInfo)) {\n const { cacheability: entryCacheability, entry } = await this._retrieveCachedRequestFieldPathData(\n hashedRequestFieldCacheKey,\n options,\n context,\n );\n\n if (entry) {\n requestFieldPathData = this._mergeObjects(requestFieldPathData, entry);\n }\n\n if (entryCacheability) {\n cacheability = entryCacheability;\n }\n }\n\n const validTypeIDValue = getValidTypeIDValue(requestFieldPathData, fieldTypeInfo, this._typeIDKey);\n\n if (CacheManager._isNodeEntity(fieldTypeInfo) && validTypeIDValue) {\n const { cacheability: entryCacheability, entry } = await this._retrieveCachedEntityData(\n validTypeIDValue,\n fieldTypeInfo,\n options,\n context,\n );\n\n if (entry) {\n entityData = this._mergeObjects(entityData, entry);\n }\n\n if (entryCacheability && (!cacheability || entryCacheability.metadata.ttl > cacheability?.metadata.ttl)) {\n cacheability = entryCacheability;\n }\n }\n\n const data =\n !isUndefined(requestFieldPathData) || !isUndefined(entityData)\n ? this._mergeObjects(requestFieldPathData, entityData)\n : entityData ?? requestFieldPathData;\n\n return {\n cacheability,\n data,\n entityData,\n requestFieldPathData,\n };\n }\n\n private async _retrieveCachedRequestFieldPathData(\n hash: string,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n return (this._checkCacheEntry(REQUEST_FIELD_PATHS, hash, options, context) || {}) as Partial<CheckCacheEntryResult>;\n }\n\n private async _retrieveCachedResponseData(\n { ast }: RequestData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<CachedResponseData> {\n const cachedResponseData: CachedResponseData = {\n cacheMetadata: new Map(),\n data: {},\n fieldCount: { missing: 0, total: 0 },\n fieldPathChecklist: new Map(),\n };\n\n const queryNode = getOperationDefinitions(ast, context.operation)[0];\n const fieldsAndTypeNames = getChildFields(queryNode);\n\n if (!fieldsAndTypeNames) {\n return cachedResponseData;\n }\n\n await Promise.all(\n fieldsAndTypeNames.map(({ fieldNode }) =>\n this._analyzeFieldNode(\n fieldNode,\n { requestFieldPath: context.operation },\n cachedResponseData,\n options,\n context,\n ),\n ),\n );\n\n cachedResponseData.fieldCount = CacheManager._countFieldPathChecklist(cachedResponseData.fieldPathChecklist);\n return cachedResponseData;\n }\n\n private _retrieveResponseDataForCaching(\n normalizedResponseData: RawResponseDataWithMaybeCacheMetadata,\n context: CacheManagerContext,\n ) {\n const responseChunks = this._responseChunksAwaitingCaching.get(\n context.boxID,\n ) as RawResponseDataWithMaybeCacheMetadata[];\n\n this._responseChunksAwaitingCaching.delete(context.boxID);\n return mergeResponseDataSets([...responseChunks, normalizedResponseData]);\n }\n\n @logCacheEntry()\n private async _setCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n value: any,\n cachemapOptions: CachemapOptions,\n _options: RequestOptions,\n _context: CacheManagerContext,\n ): Promise<void> {\n try {\n await this._cache.set(`${cacheType}::${hash}`, cloneDeep(value), cachemapOptions);\n } catch (error) {\n // no catch\n }\n }\n\n private async _setEntityAndRequestFieldPathCacheEntries(\n requestData: RequestData,\n responseData: ResponseDataForCaching,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const operationNode = getOperationDefinitions(requestData.ast, context.operation)[0];\n const fieldsAndTypeNames = getChildFields(operationNode);\n\n if (!fieldsAndTypeNames) {\n return;\n }\n\n await Promise.all(\n fieldsAndTypeNames.map(({ fieldNode }) => {\n return this._parseEntityAndRequestFieldPathCacheEntryData(\n fieldNode,\n { requestFieldPath: context.operation },\n responseData,\n options,\n context,\n );\n }),\n );\n }\n\n private async _setEntityAndRequestFieldPathCacheEntry(\n field: FieldNode,\n keysAndPaths: KeysAndPaths,\n { cacheMetadata, entityData, requestFieldPathData }: ResponseDataForCaching,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n const { requestFieldPath, responseDataPath } = keysAndPaths;\n const fieldData = get(entityData, responseDataPath);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n const cacheability = cacheMetadata.get(requestFieldPath);\n\n if (isUndefined(fieldData) || !fieldTypeInfo || !cacheability) {\n return;\n }\n\n const promises: Promise<void>[] = [];\n\n promises.push(\n this._setRequestFieldPathCacheEntry(\n field,\n keysAndPaths,\n { cacheability, data: requestFieldPathData, fieldTypeInfo },\n options,\n context,\n ),\n );\n\n const isEntity = this._isFieldEntity(fieldData, fieldTypeInfo);\n\n if (!isEntity && fieldTypeInfo.hasArguments) {\n unset(entityData, responseDataPath);\n }\n\n if (isEntity) {\n promises.push(\n this._setEntityCacheEntry(keysAndPaths, { cacheability, data: entityData, fieldTypeInfo }, options, context),\n );\n }\n\n await Promise.all(promises);\n }\n\n private async _setEntityCacheEntry(\n { responseDataPath }: KeysAndPaths,\n { cacheability, data, fieldTypeInfo }: DataForCachingEntry,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n let fieldData = get(data, responseDataPath);\n const fieldTypeName = fieldTypeInfo.isEntity ? fieldTypeInfo.typeName : fieldData.__typename;\n const entityDataKey = `${fieldTypeName}::${fieldData[this._typeIDKey]}`;\n const result = await this._checkCacheEntry(DATA_ENTITIES, entityDataKey, options, context);\n\n if (result) {\n fieldData = this._mergeObjects(result.entry, fieldData);\n }\n\n await this._setCacheEntry(\n DATA_ENTITIES,\n entityDataKey,\n fieldData,\n { cacheHeaders: { cacheControl: cacheability.printCacheControl() }, tag: options.tag },\n options,\n context,\n );\n\n set(data, responseDataPath, { __cacheKey: `${DATA_ENTITIES}::${entityDataKey}` });\n }\n\n private _setFieldCacheability(\n field: FieldNode,\n ancestorKeysAndPaths: AncestorKeysAndPaths,\n { cacheMetadata, data }: ResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): void {\n const { requestFieldPath: ancestorRequestFieldPath } = ancestorKeysAndPaths;\n const keysAndPaths = buildFieldKeysAndPaths(field, ancestorKeysAndPaths, context);\n const { requestFieldPath, responseDataPath } = keysAndPaths;\n const fieldData = get(data, responseDataPath);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n\n if (!isObjectLike(fieldData) && !fieldTypeInfo?.hasDirectives) {\n return;\n }\n\n this._setFieldTypeCacheDirective(cacheMetadata, { ancestorRequestFieldPath, requestFieldPath }, context);\n\n if (isObjectLike(fieldData)) {\n iterateChildFields(\n field,\n fieldData as PlainObjectMap | any[],\n context.fragmentDefinitions,\n (\n childField: FieldNode,\n _typeName: string | undefined,\n _fragmentKind: string | undefined,\n _fragmentName: string | undefined,\n childIndex?: number,\n ) => {\n this._setFieldCacheability(\n childField,\n { index: childIndex, requestFieldPath, responseDataPath },\n { cacheMetadata, data },\n options,\n context,\n );\n },\n );\n }\n }\n\n private _setFieldTypeCacheDirective(\n cacheMetadata: CacheMetadata,\n { ancestorRequestFieldPath, requestFieldPath }: { ancestorRequestFieldPath?: string; requestFieldPath: string },\n { fieldTypeMap, operation }: CacheManagerContext,\n ): void {\n if (cacheMetadata.has(requestFieldPath)) {\n return;\n }\n\n const fieldTypeInfo = fieldTypeMap.get(requestFieldPath);\n\n if (fieldTypeInfo && this._typeCacheDirectives[fieldTypeInfo.typeName]) {\n const cacheability = new Cacheability({ cacheControl: this._typeCacheDirectives[fieldTypeInfo.typeName] });\n CacheManager._setCacheMetadata(cacheMetadata, cacheability, requestFieldPath, operation);\n } else if (this._cascadeCacheControl && ancestorRequestFieldPath) {\n CacheManager._setCacheMetadata(\n cacheMetadata,\n cacheMetadata.get(ancestorRequestFieldPath),\n requestFieldPath,\n operation,\n );\n }\n }\n\n @logPartialCompiled()\n private async _setPartialQueryResponse(\n hash: string,\n partialQueryResponse: PartialQueryResponse,\n _options: RequestOptions,\n _context: CacheManagerContext,\n ): Promise<void> {\n this._partialQueryResponses.set(hash, partialQueryResponse);\n }\n\n private async _setQueryResponseCacheEntry(\n hash: string,\n { cacheMetadata, data }: ResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const dehydratedCacheMetadata = dehydrateCacheMetadata(cacheMetadata);\n const cacheControl = CacheManager._getOperationCacheControl(cacheMetadata, context.operation);\n\n await this._setCacheEntry(\n QUERY_RESPONSES,\n hash,\n { cacheMetadata: dehydratedCacheMetadata, data },\n { cacheHeaders: { cacheControl }, tag: options.tag },\n options,\n context,\n );\n }\n\n private async _setRequestFieldPathCacheEntry(\n field: FieldNode,\n keysAndPaths: KeysAndPaths,\n { cacheability, data, fieldTypeInfo }: DataForCachingEntry,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const { hashedRequestFieldCacheKey, responseDataPath } = keysAndPaths;\n let fieldData = get(data, responseDataPath);\n const isEntity = this._isFieldEntity(fieldData, fieldTypeInfo);\n const hasArgsOrDirectives = fieldTypeInfo.hasArguments || fieldTypeInfo.hasDirectives;\n\n if (context.operation === QUERY && (isEntity || hasArgsOrDirectives)) {\n if (isPlainObject(fieldData) && field.selectionSet?.selections) {\n fieldData = filterOutPropsWithArgsOrDirectives(fieldData, field.selectionSet.selections, keysAndPaths, context);\n }\n\n const result = await this._checkCacheEntry(REQUEST_FIELD_PATHS, hashedRequestFieldCacheKey, options, context);\n\n if (result && isObjectLike(fieldData)) {\n fieldData = this._mergeObjects(result.entry, fieldData);\n }\n\n await this._setCacheEntry(\n REQUEST_FIELD_PATHS,\n hashedRequestFieldCacheKey,\n fieldData,\n { cacheHeaders: { cacheControl: cacheability.printCacheControl() }, tag: options.tag },\n options,\n context,\n );\n\n if (hasChildFields(field, { fragmentDefinitions: context.fragmentDefinitions })) {\n if (isEntity) {\n set(data, responseDataPath, { __cacheKey: `${REQUEST_FIELD_PATHS}::${hashedRequestFieldCacheKey}` });\n } else {\n unset(data, responseDataPath);\n }\n }\n }\n }\n\n private _setResponseChunksAwaitingCaching(\n normalizedResponseData: RawResponseDataWithMaybeCacheMetadata,\n context: CacheManagerContext,\n ) {\n const responseChunks = this._responseChunksAwaitingCaching.get(context.boxID);\n\n if (responseChunks) {\n this._responseChunksAwaitingCaching.set(context.boxID, [...responseChunks, normalizedResponseData]);\n } else {\n this._responseChunksAwaitingCaching.set(context.boxID, [normalizedResponseData]);\n }\n }\n}\n\nexport default function init(userOptions: UserOptions): CacheManagerInit {\n if (!isPlainObject(userOptions)) {\n throw new TypeError(\"@graphql-box/cache-manager expected userOptions to be a plain object.\");\n }\n\n return (clientOptions: ClientOptions) => new CacheManager({ ...clientOptions, ...userOptions });\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["DATA_ENTITIES","QUERY","QUERY_RESPONSES","REQUEST_FIELD_PATHS","TYPE_NAME_KEY","FRAGMENT_SPREAD","buildFieldKeysAndPaths","dehydrateCacheMetadata","getChildFields","getFragmentDefinitions","getOperationDefinitions","hasChildFields","hashRequest","iterateChildFields","mergeObjects","rehydrateCacheMetadata","Cacheability","print","CACHE_CONTROL","HEADER_NO_CACHE","METADATA","NO_CACHE","logCacheEntry","logCacheQuery","logPartialCompiled","deriveOpCacheability","filterOutPropsWithArgsOrDirectives","filterQuery","isLastResponseChunk","isNotLastResponseChunk","isNotResponseChunk","mergeResponseDataSets","normalizePatchResponseData","getValidTypeIDValue","CacheManager","_countFieldPathChecklist","fieldPathChecklist","fieldCount","missing","total","forEach","checklistValues","length","filter","hasData","_getFieldDataFromAncestor","ancestorFieldData","propNameOrIndex","undefined","_getOperationCacheControl","cacheMetadata","operation","defaultCacheControl","cacheability","get","printCacheControl","_isNodeEntity","fieldTypeInfo","isEntity","possibleTypes","some","type","_isNodeRequestFieldPath","hasArguments","hasDirectives","_isValid","noCache","checkTTL","_mergeResponseCacheMetadata","partialQueryResponse","Map","_setCachedData","requestData","data","objectLikeData","_setCachedResponseData","cachedFieldData","requestFieldPath","typeNamesAndKind","_options","_setCacheMetadata","_setFieldPathChecklist","set","operationCacheability","metadata","ttl","dataTypeName","fieldTypeName","fragmentKind","fragmentName","has","entry","typeName","constructor","options","errors","cache","push","TypeError","typeCacheDirectives","message","_cache","_cascadeCacheControl","cascadeCacheControl","_fallbackOperationCacheability","fallbackOperationCacheability","_typeCacheDirectives","_typeIDKey","typeIDKey","analyzeQuery","context","ast","hash","Promise","reject","cacheManagerContext","fragmentDefinitions","cachedResponseData","_retrieveCachedResponseData","updated","dataCaching","_setQueryResponseCacheEntry","awaitDataCaching","response","_setPartialQueryResponse","filteredAST","rest","request","cacheQuery","updatedRequestData","rawResponseData","_cacheResponse","cacheResponse","checkCacheEntry","cacheType","_checkCacheEntry","checkQueryResponseCacheEntry","result","deletePartialQueryResponse","_partialQueryResponses","delete","setQueryResponseCacheEntry","responseData","_analyzeFieldNode","fieldNode","cachedAncestorFieldData","_analyzeParentFieldNode","_analyzeLeafFieldNode","keysAndPaths","hashedRequestFieldCacheKey","requestFieldCacheKey","fieldTypeMap","entityData","requestFieldPathData","__typename","_retrieveCachedRequestFieldPathData","_retrieveCachedParentNodeData","promises","childField","childTypeName","childFragmentKind","childFragmentName","childIndex","index","all","_buildCacheMetadata","otherProps","_createCacheMetadata","queryNode","fieldsAndTypeNames","_setFieldCacheability","normalizedResponseData","responseDataForCaching","_setResponseChunksAwaitingCaching","_retrieveResponseDataForCaching","_setEntityAndRequestFieldPathCacheEntries","queryCacheMetadata","queryData","queryFiltered","_getPartialQueryResponse","_mergeResponseData","hasNext","paths","_hasCacheEntry","_getCacheEntry","error","_cacheMetadata","headers","fallback","_context","_isFieldEntity","fieldData","_mergeObjects","obj","src","_key","val","_parseEntityAndRequestFieldPathCacheEntryData","field","ancestorKeysAndPaths","responseDataPath","_typeName","_fragmentKind","_fragmentName","_setEntityAndRequestFieldPathCacheEntry","_retrieveCachedEntityData","validTypeIDValue","typeNames","map","checkResults","name","validResults","validResult","sort","a","b","reduce","ancestorEntityData","ancestorRequestFieldPathData","entryCacheability","responseChunks","_responseChunksAwaitingCaching","boxID","_setCacheEntry","value","cachemapOptions","operationNode","_setRequestFieldPathCacheEntry","_setEntityCacheEntry","entityDataKey","cacheHeaders","cacheControl","tag","__cacheKey","ancestorRequestFieldPath","_setFieldTypeCacheDirective","dehydratedCacheMetadata","hasArgsOrDirectives","selectionSet","selections","init","userOptions","clientOptions"],"mappings":"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","sourcesContent":["import Cachemap from \"@cachemap/core\";\nimport {\n CacheMetadata,\n CacheTypes,\n DATA_ENTITIES,\n FieldTypeInfo,\n PlainObjectMap,\n PlainObjectStringMap,\n QUERY,\n QUERY_RESPONSES,\n REQUEST_FIELD_PATHS,\n RawResponseDataWithMaybeCacheMetadata,\n RequestContext,\n RequestData,\n RequestOptions,\n ResponseData,\n TYPE_NAME_KEY,\n} from \"@graphql-box/core\";\nimport {\n FRAGMENT_SPREAD,\n KeysAndPaths,\n buildFieldKeysAndPaths,\n dehydrateCacheMetadata,\n getChildFields,\n getFragmentDefinitions,\n getOperationDefinitions,\n hasChildFields,\n hashRequest,\n iterateChildFields,\n mergeObjects,\n rehydrateCacheMetadata,\n} from \"@graphql-box/helpers\";\nimport Cacheability from \"cacheability\";\nimport { FieldNode, print } from \"graphql\";\nimport { assign, cloneDeep, get, isArray, isObjectLike, isPlainObject, isUndefined, set, unset } from \"lodash\";\nimport { CACHE_CONTROL, HEADER_NO_CACHE, METADATA, NO_CACHE } from \"../consts\";\nimport { logCacheEntry, logCacheQuery, logPartialCompiled } from \"../debug\";\nimport {\n AnalyzeQueryResult,\n AncestorKeysAndPaths,\n CacheManagerContext,\n CacheManagerDef,\n CacheManagerInit,\n CachedAncestorFieldData,\n CachedResponseData,\n CachemapOptions,\n CheckCacheEntryResult,\n ClientOptions,\n ConstructorOptions,\n DataForCachingEntry,\n FieldCount,\n FieldPathChecklist,\n FieldPathChecklistValue,\n MergedCachedFieldData,\n PartialQueryResponse,\n PartialQueryResponses,\n QueryResponseCacheEntry,\n ResponseDataForCaching,\n TypeNamesAndKind,\n UserOptions,\n} from \"../defs\";\nimport deriveOpCacheability from \"../helpers/deriveOpCacheability\";\nimport filterOutPropsWithArgsOrDirectives from \"../helpers/filterOutPropsWithArgsOrDirectives\";\nimport filterQuery from \"../helpers/filterQuery\";\nimport isLastResponseChunk from \"../helpers/isLastResponseChunk\";\nimport isNotLastResponseChunk from \"../helpers/isNotLastResponseChunk\";\nimport isNotResponseChunk from \"../helpers/isNotResponseChunk\";\nimport mergeResponseDataSets from \"../helpers/mergeResponseDataSets\";\nimport normalizePatchResponseData from \"../helpers/normalizePatchResponseData\";\nimport { getValidTypeIDValue } from \"../helpers/validTypeIDValue\";\n\nexport class CacheManager implements CacheManagerDef {\n private static _countFieldPathChecklist(fieldPathChecklist: FieldPathChecklist): FieldCount {\n const fieldCount: FieldCount = { missing: 0, total: 0 };\n\n fieldPathChecklist.forEach(checklistValues => {\n fieldCount.total += checklistValues.length;\n const missing = checklistValues.filter(({ hasData }) => !hasData);\n fieldCount.missing += missing.length;\n });\n\n return fieldCount;\n }\n\n private static _getFieldDataFromAncestor(ancestorFieldData: any, propNameOrIndex: string | number): any {\n return isObjectLike(ancestorFieldData) ? cloneDeep(ancestorFieldData[propNameOrIndex]) : undefined;\n }\n\n private static _getOperationCacheControl(cacheMetadata: CacheMetadata | undefined, operation: string): string {\n const defaultCacheControl = HEADER_NO_CACHE;\n\n if (!cacheMetadata) {\n return defaultCacheControl;\n }\n\n const cacheability = cacheMetadata.get(operation);\n return cacheability ? cacheability.printCacheControl() : defaultCacheControl;\n }\n\n private static _isNodeEntity(fieldTypeInfo?: FieldTypeInfo): boolean {\n if (!fieldTypeInfo) {\n return false;\n }\n\n const { isEntity, possibleTypes } = fieldTypeInfo;\n return isEntity || possibleTypes.some(type => !!type.isEntity);\n }\n\n private static _isNodeRequestFieldPath(fieldTypeInfo?: FieldTypeInfo): boolean {\n return (\n !!fieldTypeInfo &&\n (this._isNodeEntity(fieldTypeInfo) || fieldTypeInfo.hasArguments || fieldTypeInfo.hasDirectives)\n );\n }\n\n private static _isValid(cacheability: Cacheability): boolean {\n const noCache = get(cacheability, [METADATA, CACHE_CONTROL, NO_CACHE], false);\n return !noCache && cacheability.checkTTL();\n }\n\n private static _mergeResponseCacheMetadata(\n cacheMetadata: CacheMetadata,\n partialQueryResponse?: PartialQueryResponse,\n ): CacheMetadata {\n if (!partialQueryResponse) {\n return cacheMetadata;\n }\n\n return new Map([...partialQueryResponse.cacheMetadata, ...cacheMetadata]);\n }\n\n private static _setCachedData(\n requestData: PlainObjectMap,\n { data }: MergedCachedFieldData,\n propNameOrIndex: string | number,\n ): void {\n if (!isObjectLike(data) && !isUndefined(data)) {\n requestData[propNameOrIndex] = data as string | number | boolean | null;\n } else if (isObjectLike(data)) {\n const objectLikeData = data as PlainObjectMap | any[];\n requestData[propNameOrIndex] = isArray(objectLikeData) ? [] : {};\n }\n }\n\n private static _setCachedResponseData(\n cachedFieldData: MergedCachedFieldData,\n { cacheMetadata, data, fieldPathChecklist }: CachedResponseData,\n { propNameOrIndex, requestFieldPath }: KeysAndPaths,\n typeNamesAndKind: TypeNamesAndKind,\n _options: RequestOptions,\n { operation }: CacheManagerContext,\n ) {\n CacheManager._setCacheMetadata(cacheMetadata, cachedFieldData.cacheability, requestFieldPath, operation);\n CacheManager._setFieldPathChecklist(fieldPathChecklist, cachedFieldData, requestFieldPath, typeNamesAndKind);\n CacheManager._setCachedData(data, cachedFieldData, propNameOrIndex);\n }\n\n private static _setCacheMetadata(\n cacheMetadata: CacheMetadata,\n cacheability: Cacheability | undefined,\n requestFieldPath: string,\n operation: string,\n ): void {\n if (!cacheability) {\n return;\n }\n\n cacheMetadata.set(requestFieldPath, cacheability);\n const operationCacheability = cacheMetadata.get(operation);\n\n if (!operationCacheability || operationCacheability.metadata.ttl > cacheability.metadata.ttl) {\n cacheMetadata.set(operation, cacheability);\n }\n }\n\n private static _setFieldPathChecklist(\n fieldPathChecklist: FieldPathChecklist,\n { data }: MergedCachedFieldData,\n requestFieldPath: string,\n { dataTypeName, fieldTypeName, fragmentKind, fragmentName }: TypeNamesAndKind,\n ): void {\n if (isUndefined(fieldTypeName) || fragmentKind === FRAGMENT_SPREAD) {\n if (fieldPathChecklist.has(requestFieldPath)) {\n return;\n }\n\n fieldPathChecklist.set(requestFieldPath, [{ fragmentKind, fragmentName, hasData: !isUndefined(data) }]);\n return;\n }\n\n if (dataTypeName !== fieldTypeName) {\n return;\n }\n\n const entry = fieldPathChecklist.get(requestFieldPath);\n const checklistValues = entry ? (entry as FieldPathChecklistValue[]) : [];\n\n if (checklistValues.some(({ typeName }) => typeName === dataTypeName)) {\n return;\n }\n\n fieldPathChecklist.set(requestFieldPath, [\n ...checklistValues,\n { fragmentKind, fragmentName, hasData: !isUndefined(data), typeName: dataTypeName as string },\n ]);\n }\n\n private _cache: Cachemap;\n private _cascadeCacheControl: boolean;\n private _fallbackOperationCacheability: string;\n private _partialQueryResponses: PartialQueryResponses = new Map();\n private _responseChunksAwaitingCaching: Map<string, RawResponseDataWithMaybeCacheMetadata[]> = new Map();\n private _typeCacheDirectives: PlainObjectStringMap;\n private _typeIDKey: string;\n\n constructor(options: ConstructorOptions) {\n const errors: TypeError[] = [];\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/cache-manager expected options.cache.\"));\n }\n\n if (!!options.typeCacheDirectives && !isPlainObject(options.typeCacheDirectives)) {\n const message = \"@graphql-box/cache-manager expected options.typeCacheDirectives to be a plain object.\";\n errors.push(new TypeError(message));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._cascadeCacheControl = options.cascadeCacheControl || false;\n this._fallbackOperationCacheability = options.fallbackOperationCacheability || NO_CACHE;\n this._typeCacheDirectives = options.typeCacheDirectives || {};\n this._typeIDKey = options.typeIDKey;\n }\n\n get cache(): Cachemap {\n return this._cache;\n }\n\n public async analyzeQuery(\n requestData: RequestData,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AnalyzeQueryResult> {\n const { ast, hash } = requestData;\n\n if (!ast) {\n return Promise.reject(new TypeError(\"@graphql-box/cache-manager expected an AST.\"));\n }\n\n const cacheManagerContext: CacheManagerContext = {\n ...context,\n fragmentDefinitions: getFragmentDefinitions(ast),\n typeIDKey: this._typeIDKey,\n };\n\n const cachedResponseData = await this._retrieveCachedResponseData(requestData, options, cacheManagerContext);\n const { cacheMetadata, data, fieldCount } = cachedResponseData;\n\n if (fieldCount.missing === fieldCount.total) {\n return { updated: requestData };\n }\n\n if (!fieldCount.missing) {\n const dataCaching = this._setQueryResponseCacheEntry(hash, { cacheMetadata, data }, options, cacheManagerContext);\n\n if (options.awaitDataCaching) {\n await dataCaching;\n }\n\n return { response: { cacheMetadata, data } };\n }\n\n this._setPartialQueryResponse(hash, { cacheMetadata, data }, options, cacheManagerContext);\n const filteredAST = filterQuery(requestData, cachedResponseData, cacheManagerContext);\n const { fragmentDefinitions, typeIDKey, ...rest } = cacheManagerContext;\n assign(context, rest);\n const request = print(filteredAST);\n return { updated: { ast: filteredAST, hash: hashRequest(request), request } };\n }\n\n public async cacheQuery(\n requestData: RequestData,\n updatedRequestData: RequestData | undefined,\n rawResponseData: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<ResponseData> {\n const cacheManagerContext: CacheManagerContext = {\n ...context,\n fragmentDefinitions: getFragmentDefinitions((updatedRequestData ?? requestData).ast),\n typeIDKey: this._typeIDKey,\n };\n\n return this._cacheResponse(requestData, updatedRequestData, rawResponseData, options, cacheManagerContext);\n }\n\n public async cacheResponse(\n requestData: RequestData,\n rawResponseData: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<ResponseData> {\n const cacheManagerContext: CacheManagerContext = {\n ...context,\n fragmentDefinitions: getFragmentDefinitions(requestData.ast),\n typeIDKey: this._typeIDKey,\n };\n\n return this._cacheResponse(requestData, undefined, rawResponseData, options, cacheManagerContext);\n }\n\n public async checkCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n options: RequestOptions,\n context: RequestContext & { requestFieldCacheKey?: string },\n ): Promise<CheckCacheEntryResult | false> {\n return this._checkCacheEntry(cacheType, hash, options, context);\n }\n\n public async checkQueryResponseCacheEntry(\n hash: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<ResponseData | false> {\n const result = await this._checkCacheEntry(QUERY_RESPONSES, hash, options, context);\n\n if (!result) {\n return false;\n }\n\n const { cacheMetadata, data } = result.entry as QueryResponseCacheEntry;\n\n return {\n cacheMetadata: rehydrateCacheMetadata(cacheMetadata),\n data,\n };\n }\n\n public deletePartialQueryResponse(hash: string): void {\n this._partialQueryResponses.delete(hash);\n }\n\n public async setQueryResponseCacheEntry(\n requestData: RequestData,\n responseData: ResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n return this._setQueryResponseCacheEntry(requestData.hash, responseData, options, context);\n }\n\n private async _analyzeFieldNode(\n fieldNode: FieldNode,\n cachedAncestorFieldData: CachedAncestorFieldData,\n cachedResponseData: CachedResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n if (hasChildFields(fieldNode, { fragmentDefinitions: context.fragmentDefinitions })) {\n await this._analyzeParentFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context);\n } else {\n await this._analyzeLeafFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context);\n }\n }\n\n private async _analyzeLeafFieldNode(\n fieldNode: FieldNode,\n cachedAncestorFieldData: CachedAncestorFieldData,\n cachedResponseData: CachedResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const keysAndPaths = buildFieldKeysAndPaths(fieldNode, cachedAncestorFieldData, context);\n const { hashedRequestFieldCacheKey, propNameOrIndex, requestFieldCacheKey, requestFieldPath } = keysAndPaths;\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n const { entityData, fragmentKind, fragmentName, requestFieldPathData, typeName } = cachedAncestorFieldData;\n\n const typeNamesAndKind = {\n dataTypeName: entityData?.__typename || requestFieldPathData?.__typename,\n fieldTypeName: typeName,\n fragmentKind,\n fragmentName,\n };\n\n if (CacheManager._isNodeRequestFieldPath(fieldTypeInfo)) {\n const { cacheability, entry } = await this._retrieveCachedRequestFieldPathData(\n hashedRequestFieldCacheKey,\n requestFieldCacheKey,\n options,\n context,\n );\n\n CacheManager._setCachedResponseData(\n { cacheability, data: entry },\n cachedResponseData,\n keysAndPaths,\n typeNamesAndKind,\n options,\n context,\n );\n } else {\n const cachedFieldData =\n CacheManager._getFieldDataFromAncestor(entityData, propNameOrIndex) ||\n CacheManager._getFieldDataFromAncestor(requestFieldPathData, propNameOrIndex);\n\n CacheManager._setFieldPathChecklist(\n cachedResponseData.fieldPathChecklist,\n { data: cachedFieldData },\n requestFieldPath,\n typeNamesAndKind,\n );\n\n CacheManager._setCachedData(cachedResponseData.data, { data: cachedFieldData }, propNameOrIndex);\n }\n }\n\n private async _analyzeParentFieldNode(\n fieldNode: FieldNode,\n cachedAncestorFieldData: CachedAncestorFieldData,\n cachedResponseData: CachedResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const keysAndPaths = buildFieldKeysAndPaths(fieldNode, cachedAncestorFieldData, context);\n const { propNameOrIndex, requestFieldCacheKey, requestFieldPath } = keysAndPaths;\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath) as FieldTypeInfo;\n\n const { cacheability, data, entityData, requestFieldPathData } = await this._retrieveCachedParentNodeData(\n cachedAncestorFieldData,\n keysAndPaths,\n fieldTypeInfo,\n options,\n context,\n );\n\n const { fragmentKind, fragmentName, typeName } = cachedAncestorFieldData;\n\n CacheManager._setCachedResponseData(\n { cacheability, data },\n cachedResponseData,\n keysAndPaths,\n { dataTypeName: get(data, TYPE_NAME_KEY), fieldTypeName: typeName, fragmentKind, fragmentName },\n options,\n context,\n );\n\n if (!isObjectLike(data)) {\n return;\n }\n\n const objectLikeData = data as PlainObjectMap | any[];\n const promises: Promise<void>[] = [];\n\n iterateChildFields(\n fieldNode,\n objectLikeData,\n context.fragmentDefinitions,\n (\n childField: FieldNode,\n childTypeName: string | undefined,\n childFragmentKind: string | undefined,\n childFragmentName: string | undefined,\n childIndex?: number,\n ) => {\n promises.push(\n this._analyzeFieldNode(\n childField,\n {\n cacheability,\n entityData,\n fragmentKind: childFragmentKind,\n fragmentName: childFragmentName,\n index: childIndex,\n requestFieldCacheKey,\n requestFieldPath,\n requestFieldPathData,\n typeName: childTypeName,\n },\n { ...cachedResponseData, data: cachedResponseData.data[propNameOrIndex] },\n options,\n context,\n ),\n );\n },\n );\n\n await Promise.all(promises);\n }\n\n private _buildCacheMetadata(\n { ast }: RequestData,\n { data, ...otherProps }: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: CacheManagerContext,\n ): CacheMetadata {\n const cacheMetadata = this._createCacheMetadata({ data, ...otherProps }, context);\n const queryNode = getOperationDefinitions(ast, context.operation)[0];\n const fieldsAndTypeNames = getChildFields(queryNode);\n\n if (!fieldsAndTypeNames) {\n return cacheMetadata;\n }\n\n fieldsAndTypeNames.forEach(({ fieldNode }) =>\n this._setFieldCacheability(\n fieldNode,\n { requestFieldPath: context.operation },\n { cacheMetadata, data },\n options,\n context,\n ),\n );\n\n return cacheMetadata;\n }\n\n private async _cacheResponse(\n requestData: RequestData,\n updatedRequestData: RequestData | undefined,\n rawResponseData: RawResponseDataWithMaybeCacheMetadata,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<ResponseData> {\n const normalizedResponseData = normalizePatchResponseData(rawResponseData, context);\n let responseDataForCaching: RawResponseDataWithMaybeCacheMetadata | undefined = normalizedResponseData;\n\n if (isNotLastResponseChunk(rawResponseData, context)) {\n this._setResponseChunksAwaitingCaching(normalizedResponseData, context);\n responseDataForCaching = undefined;\n }\n\n if (isLastResponseChunk(rawResponseData, context)) {\n responseDataForCaching = this._retrieveResponseDataForCaching(normalizedResponseData, context);\n }\n\n const dataCaching: Promise<void>[] = [];\n\n if (responseDataForCaching) {\n const { data } = responseDataForCaching;\n const cacheMetadata = this._buildCacheMetadata(requestData, responseDataForCaching, options, context);\n\n dataCaching.push(\n this._setEntityAndRequestFieldPathCacheEntries(\n requestData,\n {\n cacheMetadata,\n entityData: cloneDeep(data),\n requestFieldPathData: cloneDeep(data),\n },\n options,\n context,\n ),\n );\n\n let queryCacheMetadata: CacheMetadata | undefined;\n let queryData: PlainObjectMap | undefined;\n\n if (context.operation === QUERY) {\n let partialQueryResponse: PartialQueryResponse | undefined;\n\n if (context.queryFiltered && updatedRequestData) {\n dataCaching.push(\n this._setQueryResponseCacheEntry(updatedRequestData.hash, { cacheMetadata, data }, options, context),\n );\n\n partialQueryResponse = this._getPartialQueryResponse(requestData.hash);\n }\n\n queryCacheMetadata = CacheManager._mergeResponseCacheMetadata(cacheMetadata, partialQueryResponse);\n queryData = this._mergeResponseData(data, partialQueryResponse);\n\n dataCaching.push(\n this._setQueryResponseCacheEntry(\n requestData.hash,\n { cacheMetadata: queryCacheMetadata, data: queryData },\n options,\n context,\n ),\n );\n }\n\n if (options.awaitDataCaching) {\n await Promise.all(dataCaching);\n }\n\n if (isNotResponseChunk(normalizedResponseData, context) && queryCacheMetadata && queryData) {\n return {\n cacheMetadata: queryCacheMetadata,\n data: queryData,\n };\n }\n }\n\n const { data, hasNext, paths } = normalizedResponseData;\n\n return {\n cacheMetadata: this._buildCacheMetadata(requestData, normalizedResponseData, options, context),\n data,\n hasNext,\n paths,\n };\n }\n\n private async _checkCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n options: RequestOptions,\n context: CacheManagerContext & { requestFieldCacheKey?: string },\n ): Promise<CheckCacheEntryResult | false> {\n try {\n const cacheability = await this._hasCacheEntry(cacheType, hash);\n\n if (!cacheability || !CacheManager._isValid(cacheability)) {\n return false;\n }\n\n const entry = await this._getCacheEntry(cacheType, hash, options, context);\n\n if (isUndefined(entry)) {\n return false;\n }\n\n return { cacheability, entry };\n } catch (error) {\n return false;\n }\n }\n\n private _createCacheMetadata(\n { _cacheMetadata, headers }: RawResponseDataWithMaybeCacheMetadata,\n { operation }: CacheManagerContext,\n ): CacheMetadata {\n const cacheMetadata = new Map();\n\n const cacheability = deriveOpCacheability({\n _cacheMetadata,\n fallback: this._fallbackOperationCacheability,\n headers,\n });\n\n cacheMetadata.set(operation, cacheability);\n\n if (_cacheMetadata) {\n rehydrateCacheMetadata(_cacheMetadata, cacheMetadata);\n }\n\n return cacheMetadata;\n }\n\n @logCacheQuery()\n private async _getCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n _options: RequestOptions,\n _context: CacheManagerContext & { requestFieldCacheKey?: string },\n ): Promise<any> {\n try {\n return await this._cache.get(`${cacheType}::${hash}`);\n } catch (errors) {\n return Promise.reject(errors);\n }\n }\n\n private _getPartialQueryResponse(hash: string): PartialQueryResponse | undefined {\n const partialQueryResponse = this._partialQueryResponses.get(hash);\n this._partialQueryResponses.delete(hash);\n return partialQueryResponse;\n }\n\n private async _hasCacheEntry(cacheType: CacheTypes, hash: string): Promise<Cacheability | false> {\n try {\n return await this._cache.has(`${cacheType}::${hash}`);\n } catch (error) {\n return false;\n }\n }\n\n private _isFieldEntity(fieldData: any, { isEntity, possibleTypes }: FieldTypeInfo): boolean {\n if (!get(fieldData, this._typeIDKey, null)) {\n return false;\n }\n\n if (isEntity) {\n return true;\n }\n\n if (!possibleTypes.length) {\n return false;\n }\n\n return possibleTypes.some(type => type.typeName === fieldData.__typename);\n }\n\n private _mergeObjects<T>(obj: T, src: T): T {\n return mergeObjects(obj, src, (_key: string, val: any): string | number | undefined => {\n return isPlainObject(val) && val[this._typeIDKey] ? val[this._typeIDKey] : undefined;\n });\n }\n\n private _mergeResponseData(\n responseData: PlainObjectMap,\n partialQueryResponse?: PartialQueryResponse,\n ): PlainObjectMap {\n if (!partialQueryResponse) {\n return responseData;\n }\n\n return this._mergeObjects(partialQueryResponse.data, responseData);\n }\n\n private async _parseEntityAndRequestFieldPathCacheEntryData(\n field: FieldNode,\n ancestorKeysAndPaths: AncestorKeysAndPaths,\n { cacheMetadata, entityData, requestFieldPathData }: ResponseDataForCaching,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const keysAndPaths = buildFieldKeysAndPaths(field, ancestorKeysAndPaths, context);\n const { requestFieldCacheKey, requestFieldPath, responseDataPath } = keysAndPaths;\n const fieldData = get(requestFieldPathData, responseDataPath);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n\n if (!isObjectLike(fieldData) && !fieldTypeInfo?.hasDirectives) {\n return;\n }\n\n if (isObjectLike(fieldData)) {\n const promises: Promise<void>[] = [];\n\n iterateChildFields(\n field,\n fieldData as PlainObjectMap | any[],\n context.fragmentDefinitions,\n (\n childField: FieldNode,\n _typeName: string | undefined,\n _fragmentKind: string | undefined,\n _fragmentName: string | undefined,\n childIndex?: number,\n ) => {\n promises.push(\n this._parseEntityAndRequestFieldPathCacheEntryData(\n childField,\n { index: childIndex, requestFieldCacheKey, requestFieldPath, responseDataPath },\n { cacheMetadata, entityData, requestFieldPathData },\n options,\n context,\n ),\n );\n },\n );\n\n await Promise.all(promises);\n }\n\n await this._setEntityAndRequestFieldPathCacheEntry(\n field,\n keysAndPaths,\n { cacheMetadata, entityData, requestFieldPathData },\n options,\n context,\n );\n }\n\n private async _retrieveCachedEntityData(\n validTypeIDValue: string | number,\n { possibleTypes, typeName }: FieldTypeInfo,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n const typeNames = [...possibleTypes.map(type => type.typeName), typeName];\n\n const checkResults = await Promise.all(\n typeNames.map(name => this._checkCacheEntry(DATA_ENTITIES, `${name}::${validTypeIDValue}`, options, context)),\n );\n\n const validResults = checkResults.filter(result => !!result) as CheckCacheEntryResult[];\n let validResult: CheckCacheEntryResult | undefined;\n\n if (validResults.length === 1) {\n validResult = validResults[0];\n } else if (validResults.length > 1) {\n validResults.sort(({ cacheability: a }, { cacheability: b }) => a.metadata.ttl - b.metadata.ttl);\n\n validResult = {\n cacheability: validResults[0].cacheability,\n entry: validResults.reduce((obj, { entry }) => this._mergeObjects(obj, entry), {}),\n };\n }\n\n return (validResult || {}) as Partial<CheckCacheEntryResult>;\n }\n\n private async _retrieveCachedParentNodeData(\n { entityData: ancestorEntityData, requestFieldPathData: ancestorRequestFieldPathData }: CachedAncestorFieldData,\n { hashedRequestFieldCacheKey, propNameOrIndex, requestFieldCacheKey }: KeysAndPaths,\n fieldTypeInfo: FieldTypeInfo,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n let entityData = CacheManager._getFieldDataFromAncestor(ancestorEntityData, propNameOrIndex);\n let requestFieldPathData = CacheManager._getFieldDataFromAncestor(ancestorRequestFieldPathData, propNameOrIndex);\n let cacheability: Cacheability | undefined;\n\n if (CacheManager._isNodeRequestFieldPath(fieldTypeInfo)) {\n const { cacheability: entryCacheability, entry } = await this._retrieveCachedRequestFieldPathData(\n hashedRequestFieldCacheKey,\n requestFieldCacheKey,\n options,\n context,\n );\n\n if (entry) {\n requestFieldPathData = this._mergeObjects(requestFieldPathData, entry);\n }\n\n if (entryCacheability) {\n cacheability = entryCacheability;\n }\n }\n\n const validTypeIDValue = getValidTypeIDValue(requestFieldPathData, fieldTypeInfo, this._typeIDKey);\n\n if (CacheManager._isNodeEntity(fieldTypeInfo) && validTypeIDValue) {\n const { cacheability: entryCacheability, entry } = await this._retrieveCachedEntityData(\n validTypeIDValue,\n fieldTypeInfo,\n options,\n context,\n );\n\n if (entry) {\n entityData = this._mergeObjects(entityData, entry);\n }\n\n if (entryCacheability && (!cacheability || entryCacheability.metadata.ttl > cacheability?.metadata.ttl)) {\n cacheability = entryCacheability;\n }\n }\n\n const data =\n !isUndefined(requestFieldPathData) || !isUndefined(entityData)\n ? this._mergeObjects(requestFieldPathData, entityData)\n : entityData ?? requestFieldPathData;\n\n return {\n cacheability,\n data,\n entityData,\n requestFieldPathData,\n };\n }\n\n private async _retrieveCachedRequestFieldPathData(\n hash: string,\n requestFieldCacheKey: string,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n return (this._checkCacheEntry(REQUEST_FIELD_PATHS, hash, options, { ...context, requestFieldCacheKey }) ||\n {}) as Partial<CheckCacheEntryResult>;\n }\n\n private async _retrieveCachedResponseData(\n { ast }: RequestData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<CachedResponseData> {\n const cachedResponseData: CachedResponseData = {\n cacheMetadata: new Map(),\n data: {},\n fieldCount: { missing: 0, total: 0 },\n fieldPathChecklist: new Map(),\n };\n\n const queryNode = getOperationDefinitions(ast, context.operation)[0];\n const fieldsAndTypeNames = getChildFields(queryNode);\n\n if (!fieldsAndTypeNames) {\n return cachedResponseData;\n }\n\n await Promise.all(\n fieldsAndTypeNames.map(({ fieldNode }) =>\n this._analyzeFieldNode(\n fieldNode,\n { requestFieldPath: context.operation },\n cachedResponseData,\n options,\n context,\n ),\n ),\n );\n\n cachedResponseData.fieldCount = CacheManager._countFieldPathChecklist(cachedResponseData.fieldPathChecklist);\n return cachedResponseData;\n }\n\n private _retrieveResponseDataForCaching(\n normalizedResponseData: RawResponseDataWithMaybeCacheMetadata,\n context: CacheManagerContext,\n ) {\n const responseChunks = this._responseChunksAwaitingCaching.get(\n context.boxID,\n ) as RawResponseDataWithMaybeCacheMetadata[];\n\n this._responseChunksAwaitingCaching.delete(context.boxID);\n return mergeResponseDataSets([...responseChunks, normalizedResponseData]);\n }\n\n @logCacheEntry()\n private async _setCacheEntry(\n cacheType: CacheTypes,\n hash: string,\n value: any,\n cachemapOptions: CachemapOptions,\n _options: RequestOptions,\n _context: CacheManagerContext & { requestFieldCacheKey?: string },\n ): Promise<void> {\n try {\n await this._cache.set(`${cacheType}::${hash}`, cloneDeep(value), cachemapOptions);\n } catch (error) {\n // no catch\n }\n }\n\n private async _setEntityAndRequestFieldPathCacheEntries(\n requestData: RequestData,\n responseData: ResponseDataForCaching,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const operationNode = getOperationDefinitions(requestData.ast, context.operation)[0];\n const fieldsAndTypeNames = getChildFields(operationNode);\n\n if (!fieldsAndTypeNames) {\n return;\n }\n\n await Promise.all(\n fieldsAndTypeNames.map(({ fieldNode }) => {\n return this._parseEntityAndRequestFieldPathCacheEntryData(\n fieldNode,\n { requestFieldPath: context.operation },\n responseData,\n options,\n context,\n );\n }),\n );\n }\n\n private async _setEntityAndRequestFieldPathCacheEntry(\n field: FieldNode,\n keysAndPaths: KeysAndPaths,\n { cacheMetadata, entityData, requestFieldPathData }: ResponseDataForCaching,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n const { requestFieldPath, responseDataPath } = keysAndPaths;\n const fieldData = get(entityData, responseDataPath);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n const cacheability = cacheMetadata.get(requestFieldPath);\n\n if (isUndefined(fieldData) || !fieldTypeInfo || !cacheability) {\n return;\n }\n\n const promises: Promise<void>[] = [];\n\n promises.push(\n this._setRequestFieldPathCacheEntry(\n field,\n keysAndPaths,\n { cacheability, data: requestFieldPathData, fieldTypeInfo },\n options,\n context,\n ),\n );\n\n const isEntity = this._isFieldEntity(fieldData, fieldTypeInfo);\n\n if (!isEntity && fieldTypeInfo.hasArguments) {\n unset(entityData, responseDataPath);\n }\n\n if (isEntity) {\n promises.push(\n this._setEntityCacheEntry(keysAndPaths, { cacheability, data: entityData, fieldTypeInfo }, options, context),\n );\n }\n\n await Promise.all(promises);\n }\n\n private async _setEntityCacheEntry(\n { responseDataPath }: KeysAndPaths,\n { cacheability, data, fieldTypeInfo }: DataForCachingEntry,\n options: RequestOptions,\n context: CacheManagerContext,\n ) {\n let fieldData = get(data, responseDataPath);\n const fieldTypeName = fieldTypeInfo.isEntity ? fieldTypeInfo.typeName : fieldData.__typename;\n const entityDataKey = `${fieldTypeName}::${fieldData[this._typeIDKey]}`;\n const result = await this._checkCacheEntry(DATA_ENTITIES, entityDataKey, options, context);\n\n if (result) {\n fieldData = this._mergeObjects(result.entry, fieldData);\n }\n\n await this._setCacheEntry(\n DATA_ENTITIES,\n entityDataKey,\n fieldData,\n { cacheHeaders: { cacheControl: cacheability.printCacheControl() }, tag: options.tag },\n options,\n context,\n );\n\n set(data, responseDataPath, { __cacheKey: `${DATA_ENTITIES}::${entityDataKey}` });\n }\n\n private _setFieldCacheability(\n field: FieldNode,\n ancestorKeysAndPaths: AncestorKeysAndPaths,\n { cacheMetadata, data }: ResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): void {\n const { requestFieldPath: ancestorRequestFieldPath } = ancestorKeysAndPaths;\n const keysAndPaths = buildFieldKeysAndPaths(field, ancestorKeysAndPaths, context);\n const { requestFieldPath, responseDataPath } = keysAndPaths;\n const fieldData = get(data, responseDataPath);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n\n if (!isObjectLike(fieldData) && !fieldTypeInfo?.hasDirectives) {\n return;\n }\n\n this._setFieldTypeCacheDirective(cacheMetadata, { ancestorRequestFieldPath, requestFieldPath }, context);\n\n if (isObjectLike(fieldData)) {\n iterateChildFields(\n field,\n fieldData as PlainObjectMap | any[],\n context.fragmentDefinitions,\n (\n childField: FieldNode,\n _typeName: string | undefined,\n _fragmentKind: string | undefined,\n _fragmentName: string | undefined,\n childIndex?: number,\n ) => {\n this._setFieldCacheability(\n childField,\n { index: childIndex, requestFieldPath, responseDataPath },\n { cacheMetadata, data },\n options,\n context,\n );\n },\n );\n }\n }\n\n private _setFieldTypeCacheDirective(\n cacheMetadata: CacheMetadata,\n { ancestorRequestFieldPath, requestFieldPath }: { ancestorRequestFieldPath?: string; requestFieldPath: string },\n { fieldTypeMap, operation }: CacheManagerContext,\n ): void {\n if (cacheMetadata.has(requestFieldPath)) {\n return;\n }\n\n const fieldTypeInfo = fieldTypeMap.get(requestFieldPath);\n\n if (fieldTypeInfo && this._typeCacheDirectives[fieldTypeInfo.typeName]) {\n const cacheability = new Cacheability({ cacheControl: this._typeCacheDirectives[fieldTypeInfo.typeName] });\n CacheManager._setCacheMetadata(cacheMetadata, cacheability, requestFieldPath, operation);\n } else if (this._cascadeCacheControl && ancestorRequestFieldPath) {\n CacheManager._setCacheMetadata(\n cacheMetadata,\n cacheMetadata.get(ancestorRequestFieldPath),\n requestFieldPath,\n operation,\n );\n }\n }\n\n @logPartialCompiled()\n private async _setPartialQueryResponse(\n hash: string,\n partialQueryResponse: PartialQueryResponse,\n _options: RequestOptions,\n _context: CacheManagerContext,\n ): Promise<void> {\n this._partialQueryResponses.set(hash, partialQueryResponse);\n }\n\n private async _setQueryResponseCacheEntry(\n hash: string,\n { cacheMetadata, data }: ResponseData,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const dehydratedCacheMetadata = dehydrateCacheMetadata(cacheMetadata);\n const cacheControl = CacheManager._getOperationCacheControl(cacheMetadata, context.operation);\n\n await this._setCacheEntry(\n QUERY_RESPONSES,\n hash,\n { cacheMetadata: dehydratedCacheMetadata, data },\n { cacheHeaders: { cacheControl }, tag: options.tag },\n options,\n context,\n );\n }\n\n private async _setRequestFieldPathCacheEntry(\n field: FieldNode,\n keysAndPaths: KeysAndPaths,\n { cacheability, data, fieldTypeInfo }: DataForCachingEntry,\n options: RequestOptions,\n context: CacheManagerContext,\n ): Promise<void> {\n const { hashedRequestFieldCacheKey, requestFieldCacheKey, responseDataPath } = keysAndPaths;\n let fieldData = get(data, responseDataPath);\n const isEntity = this._isFieldEntity(fieldData, fieldTypeInfo);\n const hasArgsOrDirectives = fieldTypeInfo.hasArguments || fieldTypeInfo.hasDirectives;\n\n if (context.operation === QUERY && (isEntity || hasArgsOrDirectives)) {\n if (isPlainObject(fieldData) && field.selectionSet?.selections) {\n fieldData = filterOutPropsWithArgsOrDirectives(fieldData, field.selectionSet.selections, keysAndPaths, context);\n }\n\n const result = await this._checkCacheEntry(REQUEST_FIELD_PATHS, hashedRequestFieldCacheKey, options, {\n ...context,\n requestFieldCacheKey,\n });\n\n if (result && isObjectLike(fieldData)) {\n fieldData = this._mergeObjects(result.entry, fieldData);\n }\n\n await this._setCacheEntry(\n REQUEST_FIELD_PATHS,\n hashedRequestFieldCacheKey,\n fieldData,\n { cacheHeaders: { cacheControl: cacheability.printCacheControl() }, tag: options.tag },\n options,\n { ...context, requestFieldCacheKey },\n );\n\n if (hasChildFields(field, { fragmentDefinitions: context.fragmentDefinitions })) {\n if (isEntity) {\n set(data, responseDataPath, { __cacheKey: `${REQUEST_FIELD_PATHS}::${hashedRequestFieldCacheKey}` });\n } else {\n unset(data, responseDataPath);\n }\n }\n }\n }\n\n private _setResponseChunksAwaitingCaching(\n normalizedResponseData: RawResponseDataWithMaybeCacheMetadata,\n context: CacheManagerContext,\n ) {\n const responseChunks = this._responseChunksAwaitingCaching.get(context.boxID);\n\n if (responseChunks) {\n this._responseChunksAwaitingCaching.set(context.boxID, [...responseChunks, normalizedResponseData]);\n } else {\n this._responseChunksAwaitingCaching.set(context.boxID, [normalizedResponseData]);\n }\n }\n}\n\nexport default function init(userOptions: UserOptions): CacheManagerInit {\n if (!isPlainObject(userOptions)) {\n throw new TypeError(\"@graphql-box/cache-manager expected userOptions to be a plain object.\");\n }\n\n return (clientOptions: ClientOptions) => new CacheManager({ ...clientOptions, ...userOptions });\n}\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-cache-entry/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,aAAa,cAExB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CAgCR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-cache-entry/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,aAAa,cAExB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CAqCR"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-cache-query/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,aAAa,cAExB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CAkCR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-cache-query/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,aAAa,cAExB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CAuCR"}
@@ -1,7 +1,6 @@
1
1
  import Cachemap, { CacheHeaders } from "@cachemap/core";
2
2
  import { Metadata } from "@cachemap/types";
3
- import { CacheMetadata, CacheTypes, DehydratedCacheMetadata, FieldTypeInfo, PlainObjectMap, PlainObjectStringMap, RawResponseDataWithMaybeCacheMetadata, RequestContext, RequestData, RequestOptions, ResponseData } from "@graphql-box/core";
4
- import { FragmentDefinitionNodeMap } from "@graphql-box/helpers";
3
+ import { CacheMetadata, CacheTypes, DehydratedCacheMetadata, FieldTypeInfo, FragmentDefinitionNodeMap, PlainObjectMap, PlainObjectStringMap, RawResponseDataWithMaybeCacheMetadata, RequestContext, RequestData, RequestOptions, ResponseData } from "@graphql-box/core";
5
4
  import Cacheability from "cacheability";
6
5
  export interface UserOptions {
7
6
  /**
@@ -88,19 +87,6 @@ export interface CachedAncestorFieldData {
88
87
  requestFieldPathData?: any;
89
88
  typeName?: string;
90
89
  }
91
- export interface KeysAndPathsOptions {
92
- index?: number;
93
- requestFieldCacheKey?: string;
94
- requestFieldPath?: string;
95
- responseDataPath?: string;
96
- }
97
- export interface KeysAndPaths {
98
- hashedRequestFieldCacheKey: string;
99
- propNameOrIndex: string | number;
100
- requestFieldCacheKey: string;
101
- requestFieldPath: string;
102
- responseDataPath: string;
103
- }
104
90
  export interface TypeNamesAndKind {
105
91
  dataTypeName: string | undefined;
106
92
  fieldTypeName: string | undefined;
@@ -144,11 +130,12 @@ export interface CachemapOptions {
144
130
  export interface CacheManagerDef {
145
131
  cache: Cachemap;
146
132
  analyzeQuery(requestData: RequestData, options: RequestOptions, context: RequestContext): Promise<AnalyzeQueryResult>;
147
- cacheQuery(requestData: RequestData, updatedRequestData: RequestData, responseData: RawResponseDataWithMaybeCacheMetadata, options: RequestOptions, context: RequestContext): Promise<ResponseData>;
133
+ cacheQuery(requestData: RequestData, updatedRequestData: RequestData | undefined, responseData: RawResponseDataWithMaybeCacheMetadata, options: RequestOptions, context: RequestContext): Promise<ResponseData>;
148
134
  cacheResponse(requestData: RequestData, responseData: RawResponseDataWithMaybeCacheMetadata, options: RequestOptions, context: RequestContext): Promise<ResponseData>;
149
135
  checkCacheEntry(cacheType: CacheTypes, hash: string, options: RequestOptions, context: RequestContext): Promise<CheckCacheEntryResult | false>;
150
136
  checkQueryResponseCacheEntry(hash: string, options: RequestOptions, context: RequestContext): Promise<ResponseData | false>;
151
137
  deletePartialQueryResponse(hash: string): void;
138
+ setQueryResponseCacheEntry(requestData: RequestData, responseData: ResponseData, options: RequestOptions, context: CacheManagerContext): Promise<void>;
152
139
  }
153
140
  export declare type CacheManagerInit = (options: ClientOptions) => CacheManagerDef;
154
141
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { RequestData } from "@graphql-box/core";
2
+ import { CacheManagerContext } from "../defs";
2
3
  export declare type FragmentSpreadCheckist = {
3
4
  [key: string]: {
4
5
  deleted: number;
@@ -6,6 +7,6 @@ export declare type FragmentSpreadCheckist = {
6
7
  total: number;
7
8
  };
8
9
  };
9
- declare const _default: ({ ast, request }: RequestData) => FragmentSpreadCheckist;
10
+ declare const _default: ({ request }: RequestData, { fragmentDefinitions }: CacheManagerContext) => FragmentSpreadCheckist;
10
11
  export default _default;
11
12
  //# sourceMappingURL=createFragmentSpreadChecklist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createFragmentSpreadChecklist.d.ts","sourceRoot":"","sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,oBAAY,sBAAsB,GAAG;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;2CAEgC,WAAW;AAA7C,wBAIS"}
1
+ {"version":3,"file":"createFragmentSpreadChecklist.d.ts","sourceRoot":"","sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,oBAAY,sBAAsB,GAAG;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;sCAE2B,WAAW,2BAA2B,mBAAmB;AAAtF,wBAIS"}
@@ -1 +1 @@
1
- {"version":3,"file":"filterField.d.ts","sourceRoot":"","sources":["../../../src/helpers/filterField.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAA8B,MAAM,SAAS,CAAC;AAG9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAKzE,QAAA,MAAM,WAAW,UACR,SAAS,GAAG,sBAAsB,GAAG,uBAAuB,mEAE1C,sBAAsB,4BACrB,MAAM,WACvB,mBAAmB,KAC3B,OAqDF,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"filterField.d.ts","sourceRoot":"","sources":["../../../src/helpers/filterField.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAA8B,MAAM,SAAS,CAAC;AAE9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAKzE,QAAA,MAAM,WAAW,UACR,SAAS,GAAG,sBAAsB,GAAG,uBAAuB,mEAE1C,sBAAsB,4BACrB,MAAM,WACvB,mBAAmB,KAC3B,OAqDF,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { PlainObjectMap } from "@graphql-box/core";
2
+ import { KeysAndPaths } from "@graphql-box/helpers";
2
3
  import { SelectionNode } from "graphql";
3
- import { CacheManagerContext, KeysAndPaths } from "../defs";
4
+ import { CacheManagerContext } from "../defs";
4
5
  declare const _default: (fieldData: PlainObjectMap, selectionNodes: readonly SelectionNode[], ancestorKeysAndPaths: KeysAndPaths, context: CacheManagerContext) => PlainObjectMap<any>;
5
6
  export default _default;
6
7
  //# sourceMappingURL=filterOutPropsWithArgsOrDirectives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterOutPropsWithArgsOrDirectives.d.ts","sourceRoot":"","sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAa,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;oCAI/C,cAAc,kBACT,SAAS,aAAa,EAAE,wBAClB,YAAY,WACzB,mBAAmB;AAJ9B,wBAsBE"}
1
+ {"version":3,"file":"filterOutPropsWithArgsOrDirectives.d.ts","sourceRoot":"","sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAqD,MAAM,sBAAsB,CAAC;AACvG,OAAO,EAAa,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;oCAGjC,cAAc,kBACT,SAAS,aAAa,EAAE,wBAClB,YAAY,WACzB,mBAAmB;AAJ9B,wBAsBE"}
@@ -1 +1 @@
1
- {"version":3,"file":"filterQuery.d.ts","sourceRoot":"","sources":["../../../src/helpers/filterQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;sCAMrC,WAAW,0BAA0B,kBAAkB,WAAW,mBAAmB;AAAlH,wBA8BE"}
1
+ {"version":3,"file":"filterQuery.d.ts","sourceRoot":"","sources":["../../../src/helpers/filterQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;sCAKrC,WAAW,0BAA0B,kBAAkB,WAAW,mBAAmB;AAAlH,wBA8BE"}
@@ -1,6 +1,6 @@
1
1
  import Cachemap from "@cachemap/core";
2
2
  import { CacheTypes, RawResponseDataWithMaybeCacheMetadata, RequestContext, RequestData, RequestOptions, ResponseData } from "@graphql-box/core";
3
- import { AnalyzeQueryResult, CacheManagerDef, CacheManagerInit, CheckCacheEntryResult, ConstructorOptions, UserOptions } from "../defs";
3
+ import { AnalyzeQueryResult, CacheManagerContext, CacheManagerDef, CacheManagerInit, CheckCacheEntryResult, ConstructorOptions, UserOptions } from "../defs";
4
4
  export declare class CacheManager implements CacheManagerDef {
5
5
  private static _countFieldPathChecklist;
6
6
  private static _getFieldDataFromAncestor;
@@ -23,11 +23,14 @@ export declare class CacheManager implements CacheManagerDef {
23
23
  constructor(options: ConstructorOptions);
24
24
  get cache(): Cachemap;
25
25
  analyzeQuery(requestData: RequestData, options: RequestOptions, context: RequestContext): Promise<AnalyzeQueryResult>;
26
- cacheQuery(requestData: RequestData, updatedRequestData: RequestData, rawResponseData: RawResponseDataWithMaybeCacheMetadata, options: RequestOptions, context: RequestContext): Promise<ResponseData>;
26
+ cacheQuery(requestData: RequestData, updatedRequestData: RequestData | undefined, rawResponseData: RawResponseDataWithMaybeCacheMetadata, options: RequestOptions, context: RequestContext): Promise<ResponseData>;
27
27
  cacheResponse(requestData: RequestData, rawResponseData: RawResponseDataWithMaybeCacheMetadata, options: RequestOptions, context: RequestContext): Promise<ResponseData>;
28
- checkCacheEntry(cacheType: CacheTypes, hash: string, options: RequestOptions, context: RequestContext): Promise<CheckCacheEntryResult | false>;
28
+ checkCacheEntry(cacheType: CacheTypes, hash: string, options: RequestOptions, context: RequestContext & {
29
+ requestFieldCacheKey?: string;
30
+ }): Promise<CheckCacheEntryResult | false>;
29
31
  checkQueryResponseCacheEntry(hash: string, options: RequestOptions, context: RequestContext): Promise<ResponseData | false>;
30
32
  deletePartialQueryResponse(hash: string): void;
33
+ setQueryResponseCacheEntry(requestData: RequestData, responseData: ResponseData, options: RequestOptions, context: CacheManagerContext): Promise<void>;
31
34
  private _analyzeFieldNode;
32
35
  private _analyzeLeafFieldNode;
33
36
  private _analyzeParentFieldNode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-box/cache-manager",
3
- "version": "3.1.2",
3
+ "version": "3.2.2",
4
4
  "description": "The GraphQL Box cache manager module.",
5
5
  "author": "Dylan Aubrey <dylanaubrey@gmail.com>",
6
6
  "license": "MIT",