on-zero 0.4.25 → 0.4.27

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 (140) hide show
  1. package/dist/cjs/createUseQuery.cjs +28 -16
  2. package/dist/cjs/createUseQuery.native.js +42 -30
  3. package/dist/cjs/createUseQuery.native.js.map +1 -1
  4. package/dist/cjs/createZeroClient.cjs +13 -1
  5. package/dist/cjs/createZeroClient.native.js +13 -1
  6. package/dist/cjs/createZeroClient.native.js.map +1 -1
  7. package/dist/cjs/httpPull/auth.test.cjs +197 -0
  8. package/dist/cjs/httpPull/auth.test.native.js +279 -0
  9. package/dist/cjs/httpPull/auth.test.native.js.map +1 -0
  10. package/dist/cjs/httpPull/churn.test.cjs +132 -0
  11. package/dist/cjs/httpPull/churn.test.native.js +155 -0
  12. package/dist/cjs/httpPull/churn.test.native.js.map +1 -0
  13. package/dist/cjs/httpPull/fixtureSchema.cjs +76 -0
  14. package/dist/cjs/httpPull/fixtureSchema.native.js +82 -0
  15. package/dist/cjs/httpPull/fixtureSchema.native.js.map +1 -0
  16. package/dist/cjs/httpPull/fixtureServer.cjs +340 -0
  17. package/dist/cjs/httpPull/fixtureServer.native.js +534 -0
  18. package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -0
  19. package/dist/cjs/httpPull/integration.test.cjs +53 -0
  20. package/dist/cjs/httpPull/integration.test.native.js +60 -0
  21. package/dist/cjs/httpPull/integration.test.native.js.map +1 -0
  22. package/dist/cjs/httpPull/rebase.test.cjs +360 -0
  23. package/dist/cjs/httpPull/rebase.test.native.js +420 -0
  24. package/dist/cjs/httpPull/rebase.test.native.js.map +1 -0
  25. package/dist/cjs/httpPull/relations.test.cjs +107 -0
  26. package/dist/cjs/httpPull/relations.test.native.js +119 -0
  27. package/dist/cjs/httpPull/relations.test.native.js.map +1 -0
  28. package/dist/cjs/httpPull/testHarness.cjs +100 -0
  29. package/dist/cjs/httpPull/testHarness.native.js +112 -0
  30. package/dist/cjs/httpPull/testHarness.native.js.map +1 -0
  31. package/dist/cjs/httpPull/transport.test.cjs +568 -0
  32. package/dist/cjs/httpPull/transport.test.native.js +655 -0
  33. package/dist/cjs/httpPull/transport.test.native.js.map +1 -0
  34. package/dist/cjs/httpPullTransport.cjs +432 -0
  35. package/dist/cjs/httpPullTransport.native.js +695 -0
  36. package/dist/cjs/httpPullTransport.native.js.map +1 -0
  37. package/dist/cjs/index.cjs +1 -0
  38. package/dist/cjs/index.native.js +1 -0
  39. package/dist/cjs/index.native.js.map +1 -1
  40. package/dist/cjs/multiInstanceNested.test.cjs +26 -0
  41. package/dist/cjs/multiInstanceNested.test.native.js +34 -0
  42. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
  43. package/dist/esm/createUseQuery.mjs +28 -16
  44. package/dist/esm/createUseQuery.mjs.map +1 -1
  45. package/dist/esm/createUseQuery.native.js +42 -30
  46. package/dist/esm/createUseQuery.native.js.map +1 -1
  47. package/dist/esm/createZeroClient.mjs +13 -1
  48. package/dist/esm/createZeroClient.mjs.map +1 -1
  49. package/dist/esm/createZeroClient.native.js +13 -1
  50. package/dist/esm/createZeroClient.native.js.map +1 -1
  51. package/dist/esm/httpPull/auth.test.mjs +198 -0
  52. package/dist/esm/httpPull/auth.test.mjs.map +1 -0
  53. package/dist/esm/httpPull/auth.test.native.js +277 -0
  54. package/dist/esm/httpPull/auth.test.native.js.map +1 -0
  55. package/dist/esm/httpPull/churn.test.mjs +133 -0
  56. package/dist/esm/httpPull/churn.test.mjs.map +1 -0
  57. package/dist/esm/httpPull/churn.test.native.js +153 -0
  58. package/dist/esm/httpPull/churn.test.native.js.map +1 -0
  59. package/dist/esm/httpPull/fixtureSchema.mjs +50 -0
  60. package/dist/esm/httpPull/fixtureSchema.mjs.map +1 -0
  61. package/dist/esm/httpPull/fixtureSchema.native.js +53 -0
  62. package/dist/esm/httpPull/fixtureSchema.native.js.map +1 -0
  63. package/dist/esm/httpPull/fixtureServer.mjs +315 -0
  64. package/dist/esm/httpPull/fixtureServer.mjs.map +1 -0
  65. package/dist/esm/httpPull/fixtureServer.native.js +506 -0
  66. package/dist/esm/httpPull/fixtureServer.native.js.map +1 -0
  67. package/dist/esm/httpPull/integration.test.mjs +54 -0
  68. package/dist/esm/httpPull/integration.test.mjs.map +1 -0
  69. package/dist/esm/httpPull/integration.test.native.js +58 -0
  70. package/dist/esm/httpPull/integration.test.native.js.map +1 -0
  71. package/dist/esm/httpPull/rebase.test.mjs +361 -0
  72. package/dist/esm/httpPull/rebase.test.mjs.map +1 -0
  73. package/dist/esm/httpPull/rebase.test.native.js +418 -0
  74. package/dist/esm/httpPull/rebase.test.native.js.map +1 -0
  75. package/dist/esm/httpPull/relations.test.mjs +108 -0
  76. package/dist/esm/httpPull/relations.test.mjs.map +1 -0
  77. package/dist/esm/httpPull/relations.test.native.js +117 -0
  78. package/dist/esm/httpPull/relations.test.native.js.map +1 -0
  79. package/dist/esm/httpPull/testHarness.mjs +72 -0
  80. package/dist/esm/httpPull/testHarness.mjs.map +1 -0
  81. package/dist/esm/httpPull/testHarness.native.js +81 -0
  82. package/dist/esm/httpPull/testHarness.native.js.map +1 -0
  83. package/dist/esm/httpPull/transport.test.mjs +569 -0
  84. package/dist/esm/httpPull/transport.test.mjs.map +1 -0
  85. package/dist/esm/httpPull/transport.test.native.js +653 -0
  86. package/dist/esm/httpPull/transport.test.native.js.map +1 -0
  87. package/dist/esm/httpPullTransport.mjs +406 -0
  88. package/dist/esm/httpPullTransport.mjs.map +1 -0
  89. package/dist/esm/httpPullTransport.native.js +666 -0
  90. package/dist/esm/httpPullTransport.native.js.map +1 -0
  91. package/dist/esm/index.js +1 -0
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/index.mjs +1 -0
  94. package/dist/esm/index.mjs.map +1 -1
  95. package/dist/esm/index.native.js +1 -0
  96. package/dist/esm/index.native.js.map +1 -1
  97. package/dist/esm/multiInstanceNested.test.mjs +27 -1
  98. package/dist/esm/multiInstanceNested.test.mjs.map +1 -1
  99. package/dist/esm/multiInstanceNested.test.native.js +35 -1
  100. package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
  101. package/package.json +2 -2
  102. package/src/createUseQuery.tsx +40 -22
  103. package/src/createZeroClient.tsx +19 -0
  104. package/src/httpPull/auth.test.ts +208 -0
  105. package/src/httpPull/churn.test.ts +147 -0
  106. package/src/httpPull/fixtureSchema.ts +82 -0
  107. package/src/httpPull/fixtureServer.ts +391 -0
  108. package/src/httpPull/integration.test.ts +57 -0
  109. package/src/httpPull/rebase.test.ts +368 -0
  110. package/src/httpPull/relations.test.ts +135 -0
  111. package/src/httpPull/testHarness.ts +95 -0
  112. package/src/httpPull/transport.test.ts +577 -0
  113. package/src/httpPullTransport.ts +559 -0
  114. package/src/index.ts +1 -0
  115. package/src/multiInstanceNested.test.tsx +25 -1
  116. package/types/createUseQuery.d.ts.map +1 -1
  117. package/types/createZeroClient.d.ts +3 -1
  118. package/types/createZeroClient.d.ts.map +1 -1
  119. package/types/httpPull/auth.test.d.ts +2 -0
  120. package/types/httpPull/auth.test.d.ts.map +1 -0
  121. package/types/httpPull/churn.test.d.ts +2 -0
  122. package/types/httpPull/churn.test.d.ts.map +1 -0
  123. package/types/httpPull/fixtureSchema.d.ts +111 -0
  124. package/types/httpPull/fixtureSchema.d.ts.map +1 -0
  125. package/types/httpPull/fixtureServer.d.ts +14 -0
  126. package/types/httpPull/fixtureServer.d.ts.map +1 -0
  127. package/types/httpPull/integration.test.d.ts +2 -0
  128. package/types/httpPull/integration.test.d.ts.map +1 -0
  129. package/types/httpPull/rebase.test.d.ts +2 -0
  130. package/types/httpPull/rebase.test.d.ts.map +1 -0
  131. package/types/httpPull/relations.test.d.ts +2 -0
  132. package/types/httpPull/relations.test.d.ts.map +1 -0
  133. package/types/httpPull/testHarness.d.ts +32 -0
  134. package/types/httpPull/testHarness.d.ts.map +1 -0
  135. package/types/httpPull/transport.test.d.ts +2 -0
  136. package/types/httpPull/transport.test.d.ts.map +1 -0
  137. package/types/httpPullTransport.d.ts +13 -0
  138. package/types/httpPullTransport.d.ts.map +1 -0
  139. package/types/index.d.ts +1 -0
  140. package/types/index.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","Zero","ZeroClient","useConnectionState","useZero","ZeroProvider","createEmitter","useEmitterValue","createContext","memo","useContext","useEffect","useMemo","useRef","useState","createPermissions","createUseQuery","createUseQueryDirect","registerClientInstance","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","getZeroProxyValue","instance","key","value","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","createZeroClient","param","schema","models","groupedQueries","permissionStrategy","instanceName","permissionsHelpers","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","customQueries","namespaces","keys","DisabledContext","latestZeroInstance","zero","Proxy","_","Error","emitterScope","zeroEvents","zeroInstanceVersion","AuthDataContext","useQuery","useQueryDirect","getZero","zeroVersion","createUsePermission","useQueryImpl","usePermission2","enabled","arguments","length","debug","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","usePermission","usePermissionDirect","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","generation","hasAuth","instanceKey","JSON","stringify","kvStore","filter","param3","sort","param1","a","b","instance2","setInstance","cached","close","options","onClientStateNotFound","emit","prevAuthRef","prevAuth","connection","connect"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAe,IAAAC,KAAA,QAAa,mBAAQ;AAC7C,SAASC,aAAA,EAAAC,WAAoB,EAAAC,IAAS,IAAAC,UAAA,QAAoB;AAC1D,SAASC,kBAAe,EAAAC,OAAA,EAAAC,YAAuB;AAC/C,SAAAC,aAAA,EAAAC,eAAA;AAAA,SACEC,aAAA,EAAAC,IAAA,EAAAC,UAAA,EAAAC,SAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,QAAA;AAAA,SACAC,iBAAA;AAAA,SACAC,cAAA,EAAAC,oBAAA;AAAA,SACAC,sBAAA;AAAA,SACAC,cAAA;AAAA,SACAC,OAAA;AAAA,SACAC,0BAAA,EAAAC,uBAAA;AAAA,SAEKC,aAAA;AAEP,SAASC,YAAA,kCAAyB;AAClC,SAAAC,gBAAA;AAAA,SACEC,cAAA,EAAAC,WAAA,EAAAC,cAAA,EAAAC,SAAA;AAAA,SACAC,WAAA,EAAAC,uBAAA;AAAA,SAGKC,SAAA;AACP,SAASC,GAAA;AACT,SAASC,kBAAAC,QAAsB,EAAAC,GAAA;EAC/B,IAAAC,KAAS,GAAAC,OAAA,CAAAC,GAAe,CAAAJ,QAAA,EAAAC,GAAA,EAAAD,QAAA;EACxB,WAASE,KAAA,wBAA4BA,KAAA;EACrC,IAAAG,KAAS,GAAAH,KAAA,CAAAI,IAAA,CAAAN,QAAqB;EAC9B,IAAAO,yBAAgD;IAAAC,iBAAA;IAAAC,cAAA;EAChD;IACA,KAAS,IAAAC,SAAA,GAAgBP,OAAA,CAAAQ,OAAa,CAAAT,KAAA,EAAAU,MAAgB,CAAAC,QAAA,KAAAC,KAAiB,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;MACvE,IAASU,QAAA,GAAAH,KAAa,CAAAZ,KAAA;MACtB,IAASe,QAAA,aAAkC,IAAAA,QAAA,eAAAA,QAAA;QAC3C;MAsaU;MAvZV,IAASC,UAAA,GAAAC,MAAkB,CAAAC,wBAAoC,CAAAlB,KAAA,EAAAe,QAAA;MAC7D,IAAMC,UAAQ;QACVC,MAAO,CAAAE,cAAU,CAAAhB,KAAY,EAAAY,QAAO,EAAAC,UAAA;MAExC;IACA;EACE,SAAII,GAAA;IACFd,iBAAA;IACFC,cAAA,GAAAa,GAAA;EACA,UAAM;IACN,IAAI;MACF,KAAAf,yBAA6B,IAAAG,SAAU,CAAAa,MAAU;QACnDb,SAAA,CAAAa,MAAA;MACF;IACA,UAAO;MACT,IAAAf,iBAAA;QAEO,MAASC,cAGd;MACA;IACA;EACA;EACA,OAAAJ,KAAA;AAAqB;AAEvB,SASGmB,iBAAAC,KAAA;EAKD;IAAAC,MAAU;IAAAC,MAAM;IAAAC,cAAA;IAAAC,kBAAA;IAAAC,YAAA;EAAA,IAAAL,KAAA;EAIhB/B,SAAI,CAAAgC,MAAA;EACF,IAAAnC,cAAe,OAAQ;IACzBE,cAAA;EAEA;EAAqD,IACnDsC,kBAAA,GAAAnD,iBAAA;IACA8C,MAAA;IACDM,WAAA;EAID;EAKA,IAAAC,iBAAY,GAAW;EACrB,IAAA1B,yBAA2B,OAAK;IAAAC,iBAAA;IAAAC,cAAA;EAChC;IACE,SAAAC,SAAc,GAAIS,MAAG,CAAAe,OAAS,CAAIN,cAAM,EAAAhB,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;MAExC,KAAA4B,SAAA,EAAAC,OAAkB,IAAStB,KAAE,CAAIZ,KAAI;MAAA+B,iBACnC,CAAAE,SAAO;MACT,IAAAE,0BAAA;QAAAC,kBAAA;QAAAC,eAAA;MACF;QACF,IAAAC,KAAA,YAAAA,CAAA;UAKM,KAAAC,IAAA,EAAAC,EAAA,IAAAC,MAGD,CAAAzC,KAAA;UAECd,aAAA,CAAAsD,EAAA,KAAAP,SAA2B,IAAAM,IAAkB;UAC3CR,iBAA0D,CAAAE,SAAA,EAAAM,IAAA,IAAA5E,WAAA,WAAA+E,MAAA;YACxD;cAAAC;YAAO,IAAAD,MAAA;YACP,OAAQF,EAAA,CAAAG,IAAY;UAEtB,CAAC;QACH;QACF,SAAAC,UAAA,GAAA3B,MAAA,CAAAe,OAAA,CAAAE,OAAA,EAAAxB,MAAA,CAAAC,QAAA,KAAA8B,MAAA,IAAAN,0BAAA,IAAAM,MAAA,GAAAG,UAAA,CAAA/B,IAAA,IAAAC,IAAA,GAAAqB,0BAAA,SAAAG,KAAA;MAEA,SAAIlB,GAAA;QAGFgB,kBAAgB,OAAO;QACvBC,eACG,GAAMjB,GAAC;MACN;QACA;UACE,KAAAe,0BAA0B,IAAAS,UAAA,CAAAvB,MAAA;YAAAuB,UAChB,CAAAvB,MAAA;UAAA;QACR,UACA;UAA8B,IAC9Be,kBAAK;YAAA,MACLC,eAAA;UAAA;QACF;MAEA;IAA6B;EAC/B,SAEDjB,GAAA,EAAI;IAAAd,iBACT;IAEAC,cAAI,GAAAa,GAAA;EAEF;IAAgE,IAClE;MAKA,KAAAf,yBACsB,IAAAG,SAAA,CAAAa,MAAA;QAClBb,SAAO,CAAAa,MAAA;MAAmB;IAChB,UACR;MAAA,IACAf,iBAAqB,EAAE;QAAI,MAC3BC,cAAK;MAAA;IACL;EACF;EAEG,IACTsC,kBAAA;EACA,IAAAC,uBAAwB,GAAI,SAAAA,CAAAC,KAAA;IAC5B,IAAAP,EAAA,YAAAA,CAAkBG,IAAA;MAClB,IAAAK,IAAO,GAAA/D,uBAAA,CAAA8D,KAAA;MACT,IAAAE,IAAA,GAAArD,GAAA,CAAAmD,KAAA;MAEA,KAAAJ,IAAA,CAAAO,OAAkB;QAClB,OAAYD,IAAK,CAAAE,KAAK,WAAAC,EAAA;UACd,OAAKA,EAAA,CAAAC,MAAA,iBAAwB,CAAK;QACxC,GAAAC,GAAA;MACF;MAGA,IAAM3B,kBAAgB,iBAAc;QAK9B,IAAA4B,OAAW,GAAAP,IAAA,GAAAvD,WAAA,CAAAuD,IAAuB,KAAAA,IAAA,GAAAA,IAAA;QACtC,OAAMC,IAAA,CAAAE,KAAA,WAAAC,EAAA;UACN1D,uBAA6B;UAC7B;YACD,OAAAmC,kBAAA,CAAA2B,oBAAA,CAAAzE,OAAA,IAAAqE,EAAA,EAAAG,OAAA,cAAAE,CAAA;cAGD,OAAiBA,CAAA,CAAAC,GAAA;YAEX,GAAAf,IAAA,CAAAO,OAAkB,EAAAH,KAAA;UAEpB;YAIErD,uBAA4C;UAC5C;QACF,EAAI,CAAA4D,GAAA;MACF;MAAU,IACR3B,kBAAA;QACF,OAAAsB,IAAA,CAAAE,KAAA,WAAAC,EAAA;UACF,OAAAA,EAAA,CAAAC,MAAA;QACA,GAAAC,GAAO;MACT;MACD,OAAAL,IAAA,CAAAE,KAAA,WAAAC,EAAA;QAKK,OAAAvB,kBAAe,CAAA2B,oBAA6B,CAAAzE,OAAS,IAAAqE,EAAA,EAAAJ,IAAY,cAAAS,CAAA;UAEjE,OAAAA,CAAA,CAAAC,GAAa;QAKb,GAAAf,IAAA,CAAAO,OAAA,EAAAH,KAAsB;MAC1B,GAAAO,GAAA;IACA;IACFT,kBAAA,CAAAE,KAAA,IAAAP,EAAA;IAEAtD,aAAM,CAAAsD,EAAA,gBAAkBO,KAAyB,EAAa;IAE9D,OAAMP,EAAA;EAAkC;EACtCT,iBACA;EACF,IAAC4B,0BAAA;IAAAC,kBAAA;IAAAC,eAAA;EAKD;IACE,IAAAC,MAAA,YAAAA,CAAA;MACA,KAAAf,KAAA,IAAAgB,MAAA,CAAA/D,KAAA;MACA,IAAAwC,EAAA,GAASM,uBAAM,CAAAC,KAAA;MACfhB,iBAAa,eAAAgB,KAAA,IAAApF,WAAA,WAAA+E,MAAA;QACd;UAAAC;QAAA,IAAAD,MAAA;QAMK,OAAAF,EAAA,CAAAG,IAAA;MAOF;IACA;IACA,SAAMqB,UAAW,GAAAhF,0BAAA,GAAA0B,MAAA,CAAAC,QAAA,KAAAoD,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAC,UAAA,CAAAnD,IAAA,IAAAC,IAAA,GAAA6C,0BAAA,SAAAG,MAAA;EACjB,SAAM1C,GAAA;IAINwC,kBAAa,GAAQ;IACrBC,eAAa,GAAAzC,GAAM;EAEnB,UAAO;IAAgB,IACrB;MACA,IAAE,CAAAuC,0BAA8B,IAAAK,UAAA,CAAA3C,MAAA;QAC9B2C,UAAS,CAAA3C,MAAQ,CAAC;MACtB;IAEA,UAAI;MACF,IAAAuC,kBAAa;QACf,MAAAC,eAAA;MAEA;IAGA;EAEA;EACE,IAAAI,aAAQ,GAAAvG,aAAU,CAAAqE,iBAAA;EAClB,IAAAjC,QAAO,GAAAjB,sBAAA;IACT0D,IAAA,EAAAX,YAAA;IAEAsC,UAAI,EAAAjD,MAAA,CAAAkD,IAAgB;MAClB,GAAAzC,cAAe;MACjB,GAAAD;IAEA;IACFwC;EAEF;EACA7E,gBAAM,CAAA6E,aAAsB;EAe5B,IAAIG,eAA6D,kBAAAjG,aAAA;EAQjE,IAAAkG,kBAAM;EAAyB,IAC7BC,IAAA,OAAAC,KAAA;IACArE,IAAAsE,CAAA,EAAAzE,GAAA;MACF,IAAAsE,kBAAA;QACI,UAAAI,KAAA,yFAAsB;MAE1B;MACE,OAAA5E,iBAAA,CAAAwE,kBAAA,EAAAtE,GAAA;IACA;EAAU,EACV;EAAA,IACA2E,YAAG,GAAA9C,YAAA,0BAAAA,YAAA;EACL,IAAA+C,UAIM,GAAA1G,aAAA,QAAAyG,YAAA;EACJ,IAAAE,mBAAkB,GAAA3G,aAAc,yBAAAyG,YAAA;EAIhC,IAAAG,eAAY,GAAQ,eAAA1G,aAAA;EAKpB,IAAA2G,QAAM,GAAAnG,cAAmB;IACvByF,eAAO;IAAeH;EACpB;EACa,IAAAc,cACH,GAAAnG,oBAAA;IAAAwF,eACL;IAAmBH,aACzB;IAEHe,OAAK,WAAAA,CAAA;MAEL,OAAMX,kBAAa;IAEnB;IACAY,WAAM,EAAAL;EAMN;EAAmC,IACjCM,mBAAiB,YAAAA,CAASC,YAAiB,EACxC;IAAA,OACG,SAAUC,cACFA,CAAArC,KAAA,EAAAG,OAAU,EAAO;MAC7B,IACCmC,OAAQ,GAAIC,SAAQ,CAAAC,MAAQ,IAAK,IAAED,SAAA,iBAAAA,SAAA,aAAApC,OAAA;QAAAsC,KAAA,GAAAF,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;MACtC,IAAAG,WAAA,GAAApH,UAAA,CAAA+F,eAAA;MACA,IAAAsB,OAAA,GAAAlH,MAAA;MACD,IAAAmH,QAAA,GAAA5C,KAAA;MAQD,IAAM6C,OAAC,GAAA/C,kBAAyB,CAAA8C,QAAmC;MACnE,IAAAE,IAAU,GAAA9G,OAAM;MACd,IAAI+G,IAAA,IAAAD,IAAS,aAAAA,IAAA,uBAAAA,IAAA,CAAAE,EAAA;MACb,IAAI,CAAAC,IAAA,EAAAC,MAAQ,IAAQd,YAAa,CAAAS,OAAA;QAC/B1C,OAAA;QACA4C;MAIA;QAAST,OACF,EAAAa,OAAA,EAAAT,WAAA,IAAAJ,OAAA,IAAAnC,OAAA,IAAA0C,OAAA;MAAA;MAC0C,IAAAJ,KAC7C;QAASW,OACN,CAAAC,IAAA;UAAArD,KACH;UAAAG,OAAA;UAAA8C,IAEA;UAAAC;QAIE;MACE;MACE,KAAA/C,OAAA,SAAQ;MACR,IAAAmD,MAAA,GAAAJ,MAAA,CAAAK,IAAA,wBAAAJ,OAAA,CAAAF,IAAA;MAAA,KAAAP,WACF,EAAQ;QAAAC,OAAA,CAERa,OAAA,GAAAF,MAAA;QAAA,OACFA,MAAA;MACA;MACA,IAAAZ,WAAA,iBAAsB;QACtB,OAAAC,OAAA,CAAAa,OAAA;MAA4D;MAC9D,OACD;IAAA;EAEH;EACA,IAAAC,aAAA,GAAAtB,mBAAsB,CAAAJ,QAAA;EAAA,IACxB2B,mBAAA,GAAAvB,mBAAA,CAAAH,cAAA;EACA,IAAA2B,UAAA,GAAY;EAAe,IAI7BC,sBAAgB,GAAA1I,aAAA,4BAAAyG,YAAA;EAMhB,IAAAkC,mBAAoB,QAAO;EAC3B,IAAAC,WAAU,GAAM,SAAAA,CAAAnE,MAAA;IACd;MAAAoE,QAAM;MAAAC,QAAW,EAAAC,UAAY;MAAAC,OAAA;MAAA,GAAAC;IAAA,IAAAxE,MAAA;IAC7B,IAAAqE,QAAA,GAAYC,UAAU,aAAAA,UAAA,cAAAA,UAAA;IACtB1H,WACE,CAAAyH,QACA;IAIA,IAAAI,QAAA,GAAS5I,OAAA,CACX;MACE,OAAAO,cAAe;QAGf2C,MAAA;QACFK,WAAO;QACTiF,QAAA;QAEAK,GACE,EAAAvF,kBAAC,CAAAuF;MAGK;IACA;IACC;IAAA,EAKX;IAEA,IAAMC,UAAA,GAAAnJ,eAAwB,CAAAyI,sBAAA;IAC5B,IAAAd,IAAM,aAAeqB,KAAA,GAA8BA,KAAA,CAAArB,IAAA;IAQnD,IAAIyB,OAAA,UAAiBzB,IAAA;IACnB,IAAA0B,WAAA,GAAAC,IAAA,CAAqBC,SAAA,EACrBxG,MAAM,CAAAe,OAAA,CAAqB;MAI3B0F,OAAS;MACT,GAAAR;IACF,GAAAS,MAAA,WAAAC,MAAA;MAIA,KAAA7H,GAAU,EAAAC,KAAM,IAAA4H,MAAA;MACd,OAAA7H,GAAA,WAAoB,IAAK,OAAAC,KAAA,eAA6B,IAAAA,KAAA;IACxD,CAAG,CAAC,CAAA6H,IAAA,WAAaD,MAAA,EAAAE,MAAA;MAEjB,IAAO,CAAAC,CAAA,IAAAH,MAAA;QAAA,CAAAI,CAAA,IAAAF,MAAA;MACT,OAAAC,CAAA,GAAAC,CAAA;IAGA,EAAM,EACHV,OAAA,EACCD,UAAA,CACF;IAGE,KAAAY,SAAM,EAAQC,WAAA,IAAAzJ,QAAmB;IACjCH,SAAM,CAEN,YAAU;MACR,IAAI6J,MAAM,GAAAzB,UAAS;MACjB,KAAAyB,MAAM,SAAS,IAAAA,MAAY,UAAQ,IAAM,SAASA,MAAA,CAAApI,GAAA,MAAAwH,WAAA;QAClDY,MAAA,KAAU,QAAAA,MAAU,KAAM,kBAAAA,MAAA,CAAArI,QAAA,CAAAsI,KAAA;QAE1B,IAAIC,OAAM,GAAAnB,KAAS;QACjBiB,MAAA,GAAM;UACNpI,GAAA,EAAAwH,WAAW;UAAKzH,QACR,MAAAjC,UAAA;YACN6J,OAAA;YACD,GAAAW,OAAA;YACH7G,MAAA;YACF;YACE2F,QAAO;YAEJmB,qBAAA,WAAAA,CAAA;cACT,IAAAD,OAAA,CAAAC,qBAAA;gBACF;kBAcED,OACA,CAAAC,qBACA;kBAEM;gBAEA,CAAS,QAAA7E,CAAA,GACT;cAEA;cACM,IAAAmD,mBAA6B;cAC3CA,mBAAA;cASSD,sBAAgC,CAAA4B,IAAA,CAAA5B,sBAAA,CAAA3G,KAAA;YAChC;UACT;QAEA,CAAS;QACP0G,UAAA,GAAAyB,MAAA;QACAvB,mBAAS;MACT;MAKCsB,WAAA,CAAAC,MAAA,CAAArI,QAAA;IACD;IACA;IACF;IAEA;IACE,CACAyH,WAAA,CAEA;IACA,IAAAiB,WAAA,GAAAhK,MAAA,CAAAqH,IAAA;IACAvH,SAAA;MACA,IAAAmK,QAAA,GAAAD,WAAA,CAAAjC,OAAA;MACAiC,WAAA,CAAAjC,OAAA,GAAAV,IAAA;MACA,IAAAoC,SAAA,WAAAQ,QAAA,wBAAA5C,IAAA,iBAAA4C,QAAA,KAAA5C,IAAA;QACAoC,SAAA,CAAAS,UAAA,CAAAC,OAAA;UACA9C;QACF;MACF","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","Zero","ZeroClient","useConnectionState","useZero","ZeroProvider","createEmitter","useEmitterValue","createContext","memo","useContext","useEffect","useMemo","useRef","useState","createPermissions","ensureHttpPullTransport","createUseQuery","createUseQueryDirect","registerClientInstance","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","getZeroProxyValue","instance","key","value","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","createZeroClient","param","schema","models","groupedQueries","permissionStrategy","instanceName","permissionsHelpers","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","customQueries","namespaces","keys","DisabledContext","latestZeroInstance","zero","Proxy","_","Error","emitterScope","zeroEvents","zeroInstanceVersion","AuthDataContext","useQuery","useQueryDirect","getZero","zeroVersion","createUsePermission","useQueryImpl","usePermission2","enabled","arguments","length","debug","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","usePermission","usePermissionDirect","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","transport","pullIntervalMs","props","mutators","can","generation","hasAuth","instanceKey","JSON","stringify","kvStore","filter","param3","sort","param1","a","b","instance2","setInstance","cached","close","options","server","origin","onClientStateNotFound","emit","prevAuthRef","prevAuth","connection","connect"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,198 @@
1
+ import { afterEach, describe, expect, test } from "vitest";
2
+ import { eventually, sleep, startZeroHttpHarness, waitForComplete } from "./testHarness.mjs";
3
+ let harness;
4
+ afterEach(async () => {
5
+ await harness?.close();
6
+ harness = void 0;
7
+ });
8
+ describe("zero-http auth parity", () => {
9
+ test("real clients only emit rows visible to their auth token", async () => {
10
+ harness = await startZeroHttpHarness({
11
+ seed: {
12
+ user: [{
13
+ id: "u1",
14
+ name: "ada"
15
+ }, {
16
+ id: "u2",
17
+ name: "ben"
18
+ }],
19
+ project: [{
20
+ id: "p-u1",
21
+ ownerId: "u1",
22
+ name: "u1 private"
23
+ }, {
24
+ id: "p-u2",
25
+ ownerId: "u2",
26
+ name: "u2 private"
27
+ }, {
28
+ id: "p-shared",
29
+ ownerId: "u2",
30
+ name: "shared"
31
+ }],
32
+ member: [{
33
+ id: "m-u1-owner",
34
+ projectId: "p-u1",
35
+ userId: "u1"
36
+ }, {
37
+ id: "m-u2-owner",
38
+ projectId: "p-u2",
39
+ userId: "u2"
40
+ }, {
41
+ id: "m-shared-u1",
42
+ projectId: "p-shared",
43
+ userId: "u1"
44
+ }, {
45
+ id: "m-shared-u2",
46
+ projectId: "p-shared",
47
+ userId: "u2"
48
+ }]
49
+ }
50
+ });
51
+ const u1 = harness.createZero("u1");
52
+ const u2 = harness.createZero("u2");
53
+ const u1Users = u1.query.user.materialize();
54
+ const u1Projects = u1.query.project.related("members").materialize();
55
+ const u2Users = u2.query.user.materialize();
56
+ const u2Projects = u2.query.project.related("members").materialize();
57
+ const u1UserEmissions = [];
58
+ const u1ProjectEmissions = [];
59
+ const u2UserEmissions = [];
60
+ const u2ProjectEmissions = [];
61
+ const stops = [captureRows(u1Users, u1UserEmissions, normalizeUsers), captureRows(u1Projects, u1ProjectEmissions, normalizeProjects), captureRows(u2Users, u2UserEmissions, normalizeUsers), captureRows(u2Projects, u2ProjectEmissions, normalizeProjects)];
62
+ try {
63
+ const [u1UsersComplete, u1ProjectsComplete, u2UsersComplete, u2ProjectsComplete] = await Promise.all([waitForComplete(u1Users), waitForComplete(u1Projects), waitForComplete(u2Users), waitForComplete(u2Projects)]);
64
+ expect(normalizeUsers(u1UsersComplete)).toEqual([{
65
+ id: "u1",
66
+ name: "ada"
67
+ }]);
68
+ expect(normalizeProjects(u1ProjectsComplete)).toEqual([{
69
+ id: "p-shared",
70
+ ownerId: "u2",
71
+ name: "shared",
72
+ members: [{
73
+ id: "m-shared-u1",
74
+ projectId: "p-shared",
75
+ userId: "u1"
76
+ }, {
77
+ id: "m-shared-u2",
78
+ projectId: "p-shared",
79
+ userId: "u2"
80
+ }]
81
+ }, {
82
+ id: "p-u1",
83
+ ownerId: "u1",
84
+ name: "u1 private",
85
+ members: [{
86
+ id: "m-u1-owner",
87
+ projectId: "p-u1",
88
+ userId: "u1"
89
+ }]
90
+ }]);
91
+ expect(normalizeUsers(u2UsersComplete)).toEqual([{
92
+ id: "u2",
93
+ name: "ben"
94
+ }]);
95
+ expect(normalizeProjects(u2ProjectsComplete)).toEqual([{
96
+ id: "p-shared",
97
+ ownerId: "u2",
98
+ name: "shared",
99
+ members: [{
100
+ id: "m-shared-u1",
101
+ projectId: "p-shared",
102
+ userId: "u1"
103
+ }, {
104
+ id: "m-shared-u2",
105
+ projectId: "p-shared",
106
+ userId: "u2"
107
+ }]
108
+ }, {
109
+ id: "p-u2",
110
+ ownerId: "u2",
111
+ name: "u2 private",
112
+ members: [{
113
+ id: "m-u2-owner",
114
+ projectId: "p-u2",
115
+ userId: "u2"
116
+ }]
117
+ }]);
118
+ assertNoUserEmission(u1UserEmissions, "u2");
119
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
120
+ assertNoUserEmission(u2UserEmissions, "u1");
121
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
122
+ await harness.transport.pull();
123
+ await sleep(50);
124
+ assertNoUserEmission(u1UserEmissions, "u2");
125
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
126
+ assertNoUserEmission(u2UserEmissions, "u1");
127
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
128
+ } finally {
129
+ for (const stop of stops) stop();
130
+ u1Users.destroy();
131
+ u1Projects.destroy();
132
+ u2Users.destroy();
133
+ u2Projects.destroy();
134
+ }
135
+ });
136
+ test("unknown token 401 reaches needs-auth without materializing data", async () => {
137
+ harness = await startZeroHttpHarness({
138
+ seed: {
139
+ user: [{
140
+ id: "u1",
141
+ name: "ada"
142
+ }],
143
+ project: [{
144
+ id: "p-u1",
145
+ ownerId: "u1",
146
+ name: "u1 private"
147
+ }],
148
+ member: [{
149
+ id: "m-u1-owner",
150
+ projectId: "p-u1",
151
+ userId: "u1"
152
+ }]
153
+ }
154
+ });
155
+ const unknown = harness.createZero("missing");
156
+ const projects = unknown.query.project.related("members").materialize();
157
+ const emissions = [];
158
+ const stop = captureRows(projects, emissions, normalizeProjects);
159
+ try {
160
+ await eventually(() => expect(unknown.connection.state.current.name).toBe("needs-auth"));
161
+ await sleep(50);
162
+ expect(projects.data).toEqual([]);
163
+ expect(emissions.every(emission => emission.length === 0)).toBe(true);
164
+ } finally {
165
+ stop();
166
+ projects.destroy();
167
+ }
168
+ });
169
+ });
170
+ function captureRows(view, emissions, normalize) {
171
+ return view.addListener(data => {
172
+ emissions.push(normalize(data));
173
+ });
174
+ }
175
+ function assertNoUserEmission(emissions, privateUserID) {
176
+ for (const emission of emissions) {
177
+ expect(emission.map(row => row.id)).not.toContain(privateUserID);
178
+ }
179
+ }
180
+ function assertNoProjectEmission(emissions, privateProjectID, privateMemberID) {
181
+ for (const emission of emissions) {
182
+ expect(emission.map(row => row.id)).not.toContain(privateProjectID);
183
+ expect(emission.flatMap(row => row.members.map(member => member.id))).not.toContain(privateMemberID);
184
+ }
185
+ }
186
+ function normalizeUsers(users) {
187
+ return clone(users).sort((a, b) => a.id.localeCompare(b.id));
188
+ }
189
+ function normalizeProjects(projects) {
190
+ return clone(projects).map(project => ({
191
+ ...project,
192
+ members: [...project.members].sort((a, b) => a.id.localeCompare(b.id))
193
+ })).sort((a, b) => a.id.localeCompare(b.id));
194
+ }
195
+ function clone(value) {
196
+ return JSON.parse(JSON.stringify(value));
197
+ }
198
+ //# sourceMappingURL=auth.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["afterEach","describe","expect","test","eventually","sleep","startZeroHttpHarness","waitForComplete","harness","close","seed","user","id","name","project","ownerId","member","projectId","userId","u1","createZero","u2","u1Users","query","materialize","u1Projects","related","u2Users","u2Projects","u1UserEmissions","u1ProjectEmissions","u2UserEmissions","u2ProjectEmissions","stops","captureRows","normalizeUsers","normalizeProjects","u1UsersComplete","u1ProjectsComplete","u2UsersComplete","u2ProjectsComplete","Promise","all","toEqual","members","assertNoUserEmission","assertNoProjectEmission","transport","pull","stop","destroy","unknown","projects","emissions","connection","state","current","toBe","data","every","emission","length","view","normalize","addListener","push","privateUserID","map","row","not","toContain","privateProjectID","privateMemberID","flatMap","users","clone","sort","a","b","localeCompare","value","JSON","parse","stringify"],"sources":["../../../src/httpPull/auth.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,277 @@
1
+ import { afterEach, describe, expect, test } from "vitest";
2
+ import { eventually, sleep, startZeroHttpHarness, waitForComplete } from "./testHarness.native.js";
3
+ var harness;
4
+ afterEach(async function () {
5
+ await (harness === null || harness === void 0 ? void 0 : harness.close());
6
+ harness = void 0;
7
+ });
8
+ describe("zero-http auth parity", function () {
9
+ test("real clients only emit rows visible to their auth token", async function () {
10
+ harness = await startZeroHttpHarness({
11
+ seed: {
12
+ user: [{
13
+ id: "u1",
14
+ name: "ada"
15
+ }, {
16
+ id: "u2",
17
+ name: "ben"
18
+ }],
19
+ project: [{
20
+ id: "p-u1",
21
+ ownerId: "u1",
22
+ name: "u1 private"
23
+ }, {
24
+ id: "p-u2",
25
+ ownerId: "u2",
26
+ name: "u2 private"
27
+ }, {
28
+ id: "p-shared",
29
+ ownerId: "u2",
30
+ name: "shared"
31
+ }],
32
+ member: [{
33
+ id: "m-u1-owner",
34
+ projectId: "p-u1",
35
+ userId: "u1"
36
+ }, {
37
+ id: "m-u2-owner",
38
+ projectId: "p-u2",
39
+ userId: "u2"
40
+ }, {
41
+ id: "m-shared-u1",
42
+ projectId: "p-shared",
43
+ userId: "u1"
44
+ }, {
45
+ id: "m-shared-u2",
46
+ projectId: "p-shared",
47
+ userId: "u2"
48
+ }]
49
+ }
50
+ });
51
+ var u1 = harness.createZero("u1");
52
+ var u2 = harness.createZero("u2");
53
+ var u1Users = u1.query.user.materialize();
54
+ var u1Projects = u1.query.project.related("members").materialize();
55
+ var u2Users = u2.query.user.materialize();
56
+ var u2Projects = u2.query.project.related("members").materialize();
57
+ var u1UserEmissions = [];
58
+ var u1ProjectEmissions = [];
59
+ var u2UserEmissions = [];
60
+ var u2ProjectEmissions = [];
61
+ var stops = [captureRows(u1Users, u1UserEmissions, normalizeUsers), captureRows(u1Projects, u1ProjectEmissions, normalizeProjects), captureRows(u2Users, u2UserEmissions, normalizeUsers), captureRows(u2Projects, u2ProjectEmissions, normalizeProjects)];
62
+ try {
63
+ var [u1UsersComplete, u1ProjectsComplete, u2UsersComplete, u2ProjectsComplete] = await Promise.all([waitForComplete(u1Users), waitForComplete(u1Projects), waitForComplete(u2Users), waitForComplete(u2Projects)]);
64
+ expect(normalizeUsers(u1UsersComplete)).toEqual([{
65
+ id: "u1",
66
+ name: "ada"
67
+ }]);
68
+ expect(normalizeProjects(u1ProjectsComplete)).toEqual([{
69
+ id: "p-shared",
70
+ ownerId: "u2",
71
+ name: "shared",
72
+ members: [{
73
+ id: "m-shared-u1",
74
+ projectId: "p-shared",
75
+ userId: "u1"
76
+ }, {
77
+ id: "m-shared-u2",
78
+ projectId: "p-shared",
79
+ userId: "u2"
80
+ }]
81
+ }, {
82
+ id: "p-u1",
83
+ ownerId: "u1",
84
+ name: "u1 private",
85
+ members: [{
86
+ id: "m-u1-owner",
87
+ projectId: "p-u1",
88
+ userId: "u1"
89
+ }]
90
+ }]);
91
+ expect(normalizeUsers(u2UsersComplete)).toEqual([{
92
+ id: "u2",
93
+ name: "ben"
94
+ }]);
95
+ expect(normalizeProjects(u2ProjectsComplete)).toEqual([{
96
+ id: "p-shared",
97
+ ownerId: "u2",
98
+ name: "shared",
99
+ members: [{
100
+ id: "m-shared-u1",
101
+ projectId: "p-shared",
102
+ userId: "u1"
103
+ }, {
104
+ id: "m-shared-u2",
105
+ projectId: "p-shared",
106
+ userId: "u2"
107
+ }]
108
+ }, {
109
+ id: "p-u2",
110
+ ownerId: "u2",
111
+ name: "u2 private",
112
+ members: [{
113
+ id: "m-u2-owner",
114
+ projectId: "p-u2",
115
+ userId: "u2"
116
+ }]
117
+ }]);
118
+ assertNoUserEmission(u1UserEmissions, "u2");
119
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
120
+ assertNoUserEmission(u2UserEmissions, "u1");
121
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
122
+ await harness.transport.pull();
123
+ await sleep(50);
124
+ assertNoUserEmission(u1UserEmissions, "u2");
125
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
126
+ assertNoUserEmission(u2UserEmissions, "u1");
127
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
128
+ } finally {
129
+ var _iteratorNormalCompletion = true,
130
+ _didIteratorError = false,
131
+ _iteratorError = void 0;
132
+ try {
133
+ for (var _iterator = stops[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
134
+ var stop = _step.value;
135
+ stop();
136
+ }
137
+ } catch (err) {
138
+ _didIteratorError = true;
139
+ _iteratorError = err;
140
+ } finally {
141
+ try {
142
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
143
+ _iterator.return();
144
+ }
145
+ } finally {
146
+ if (_didIteratorError) {
147
+ throw _iteratorError;
148
+ }
149
+ }
150
+ }
151
+ u1Users.destroy();
152
+ u1Projects.destroy();
153
+ u2Users.destroy();
154
+ u2Projects.destroy();
155
+ }
156
+ });
157
+ test("unknown token 401 reaches needs-auth without materializing data", async function () {
158
+ harness = await startZeroHttpHarness({
159
+ seed: {
160
+ user: [{
161
+ id: "u1",
162
+ name: "ada"
163
+ }],
164
+ project: [{
165
+ id: "p-u1",
166
+ ownerId: "u1",
167
+ name: "u1 private"
168
+ }],
169
+ member: [{
170
+ id: "m-u1-owner",
171
+ projectId: "p-u1",
172
+ userId: "u1"
173
+ }]
174
+ }
175
+ });
176
+ var unknown = harness.createZero("missing");
177
+ var projects = unknown.query.project.related("members").materialize();
178
+ var emissions = [];
179
+ var stop = captureRows(projects, emissions, normalizeProjects);
180
+ try {
181
+ await eventually(function () {
182
+ return expect(unknown.connection.state.current.name).toBe("needs-auth");
183
+ });
184
+ await sleep(50);
185
+ expect(projects.data).toEqual([]);
186
+ expect(emissions.every(function (emission) {
187
+ return emission.length === 0;
188
+ })).toBe(true);
189
+ } finally {
190
+ stop();
191
+ projects.destroy();
192
+ }
193
+ });
194
+ });
195
+ function captureRows(view, emissions, normalize) {
196
+ return view.addListener(function (data) {
197
+ emissions.push(normalize(data));
198
+ });
199
+ }
200
+ function assertNoUserEmission(emissions, privateUserID) {
201
+ var _iteratorNormalCompletion = true,
202
+ _didIteratorError = false,
203
+ _iteratorError = void 0;
204
+ try {
205
+ for (var _iterator = emissions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
206
+ var emission = _step.value;
207
+ expect(emission.map(function (row) {
208
+ return row.id;
209
+ })).not.toContain(privateUserID);
210
+ }
211
+ } catch (err) {
212
+ _didIteratorError = true;
213
+ _iteratorError = err;
214
+ } finally {
215
+ try {
216
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
217
+ _iterator.return();
218
+ }
219
+ } finally {
220
+ if (_didIteratorError) {
221
+ throw _iteratorError;
222
+ }
223
+ }
224
+ }
225
+ }
226
+ function assertNoProjectEmission(emissions, privateProjectID, privateMemberID) {
227
+ var _iteratorNormalCompletion = true,
228
+ _didIteratorError = false,
229
+ _iteratorError = void 0;
230
+ try {
231
+ for (var _iterator = emissions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
232
+ var emission = _step.value;
233
+ expect(emission.map(function (row) {
234
+ return row.id;
235
+ })).not.toContain(privateProjectID);
236
+ expect(emission.flatMap(function (row) {
237
+ return row.members.map(function (member) {
238
+ return member.id;
239
+ });
240
+ })).not.toContain(privateMemberID);
241
+ }
242
+ } catch (err) {
243
+ _didIteratorError = true;
244
+ _iteratorError = err;
245
+ } finally {
246
+ try {
247
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
248
+ _iterator.return();
249
+ }
250
+ } finally {
251
+ if (_didIteratorError) {
252
+ throw _iteratorError;
253
+ }
254
+ }
255
+ }
256
+ }
257
+ function normalizeUsers(users) {
258
+ return clone(users).sort(function (a, b) {
259
+ return a.id.localeCompare(b.id);
260
+ });
261
+ }
262
+ function normalizeProjects(projects) {
263
+ return clone(projects).map(function (project) {
264
+ return {
265
+ ...project,
266
+ members: [...project.members].sort(function (a, b) {
267
+ return a.id.localeCompare(b.id);
268
+ })
269
+ };
270
+ }).sort(function (a, b) {
271
+ return a.id.localeCompare(b.id);
272
+ });
273
+ }
274
+ function clone(value) {
275
+ return JSON.parse(JSON.stringify(value));
276
+ }
277
+ //# sourceMappingURL=auth.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["afterEach","describe","expect","test","eventually","sleep","startZeroHttpHarness","waitForComplete","harness","close","seed","user","id","name","project","ownerId","member","projectId","userId","u1","createZero","u2","u1Users","query","materialize","u1Projects","related","u2Users","u2Projects","u1UserEmissions","u1ProjectEmissions","u2UserEmissions","u2ProjectEmissions","stops","captureRows","normalizeUsers","normalizeProjects","u1UsersComplete","u1ProjectsComplete","u2UsersComplete","u2ProjectsComplete","Promise","all","toEqual","members","assertNoUserEmission","assertNoProjectEmission","transport","pull"],"sources":["../../../src/httpPull/auth.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}