on-zero 0.4.26 → 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 (123) hide show
  1. package/dist/cjs/createZeroClient.cjs +13 -1
  2. package/dist/cjs/createZeroClient.native.js +13 -1
  3. package/dist/cjs/createZeroClient.native.js.map +1 -1
  4. package/dist/cjs/httpPull/auth.test.cjs +197 -0
  5. package/dist/cjs/httpPull/auth.test.native.js +279 -0
  6. package/dist/cjs/httpPull/auth.test.native.js.map +1 -0
  7. package/dist/cjs/httpPull/churn.test.cjs +132 -0
  8. package/dist/cjs/httpPull/churn.test.native.js +155 -0
  9. package/dist/cjs/httpPull/churn.test.native.js.map +1 -0
  10. package/dist/cjs/httpPull/fixtureSchema.cjs +76 -0
  11. package/dist/cjs/httpPull/fixtureSchema.native.js +82 -0
  12. package/dist/cjs/httpPull/fixtureSchema.native.js.map +1 -0
  13. package/dist/cjs/httpPull/fixtureServer.cjs +340 -0
  14. package/dist/cjs/httpPull/fixtureServer.native.js +534 -0
  15. package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -0
  16. package/dist/cjs/httpPull/integration.test.cjs +53 -0
  17. package/dist/cjs/httpPull/integration.test.native.js +60 -0
  18. package/dist/cjs/httpPull/integration.test.native.js.map +1 -0
  19. package/dist/cjs/httpPull/rebase.test.cjs +360 -0
  20. package/dist/cjs/httpPull/rebase.test.native.js +420 -0
  21. package/dist/cjs/httpPull/rebase.test.native.js.map +1 -0
  22. package/dist/cjs/httpPull/relations.test.cjs +107 -0
  23. package/dist/cjs/httpPull/relations.test.native.js +119 -0
  24. package/dist/cjs/httpPull/relations.test.native.js.map +1 -0
  25. package/dist/cjs/httpPull/testHarness.cjs +100 -0
  26. package/dist/cjs/httpPull/testHarness.native.js +112 -0
  27. package/dist/cjs/httpPull/testHarness.native.js.map +1 -0
  28. package/dist/cjs/httpPull/transport.test.cjs +568 -0
  29. package/dist/cjs/httpPull/transport.test.native.js +655 -0
  30. package/dist/cjs/httpPull/transport.test.native.js.map +1 -0
  31. package/dist/cjs/httpPullTransport.cjs +432 -0
  32. package/dist/cjs/httpPullTransport.native.js +695 -0
  33. package/dist/cjs/httpPullTransport.native.js.map +1 -0
  34. package/dist/cjs/index.cjs +1 -0
  35. package/dist/cjs/index.native.js +1 -0
  36. package/dist/cjs/index.native.js.map +1 -1
  37. package/dist/esm/createZeroClient.mjs +13 -1
  38. package/dist/esm/createZeroClient.mjs.map +1 -1
  39. package/dist/esm/createZeroClient.native.js +13 -1
  40. package/dist/esm/createZeroClient.native.js.map +1 -1
  41. package/dist/esm/httpPull/auth.test.mjs +198 -0
  42. package/dist/esm/httpPull/auth.test.mjs.map +1 -0
  43. package/dist/esm/httpPull/auth.test.native.js +277 -0
  44. package/dist/esm/httpPull/auth.test.native.js.map +1 -0
  45. package/dist/esm/httpPull/churn.test.mjs +133 -0
  46. package/dist/esm/httpPull/churn.test.mjs.map +1 -0
  47. package/dist/esm/httpPull/churn.test.native.js +153 -0
  48. package/dist/esm/httpPull/churn.test.native.js.map +1 -0
  49. package/dist/esm/httpPull/fixtureSchema.mjs +50 -0
  50. package/dist/esm/httpPull/fixtureSchema.mjs.map +1 -0
  51. package/dist/esm/httpPull/fixtureSchema.native.js +53 -0
  52. package/dist/esm/httpPull/fixtureSchema.native.js.map +1 -0
  53. package/dist/esm/httpPull/fixtureServer.mjs +315 -0
  54. package/dist/esm/httpPull/fixtureServer.mjs.map +1 -0
  55. package/dist/esm/httpPull/fixtureServer.native.js +506 -0
  56. package/dist/esm/httpPull/fixtureServer.native.js.map +1 -0
  57. package/dist/esm/httpPull/integration.test.mjs +54 -0
  58. package/dist/esm/httpPull/integration.test.mjs.map +1 -0
  59. package/dist/esm/httpPull/integration.test.native.js +58 -0
  60. package/dist/esm/httpPull/integration.test.native.js.map +1 -0
  61. package/dist/esm/httpPull/rebase.test.mjs +361 -0
  62. package/dist/esm/httpPull/rebase.test.mjs.map +1 -0
  63. package/dist/esm/httpPull/rebase.test.native.js +418 -0
  64. package/dist/esm/httpPull/rebase.test.native.js.map +1 -0
  65. package/dist/esm/httpPull/relations.test.mjs +108 -0
  66. package/dist/esm/httpPull/relations.test.mjs.map +1 -0
  67. package/dist/esm/httpPull/relations.test.native.js +117 -0
  68. package/dist/esm/httpPull/relations.test.native.js.map +1 -0
  69. package/dist/esm/httpPull/testHarness.mjs +72 -0
  70. package/dist/esm/httpPull/testHarness.mjs.map +1 -0
  71. package/dist/esm/httpPull/testHarness.native.js +81 -0
  72. package/dist/esm/httpPull/testHarness.native.js.map +1 -0
  73. package/dist/esm/httpPull/transport.test.mjs +569 -0
  74. package/dist/esm/httpPull/transport.test.mjs.map +1 -0
  75. package/dist/esm/httpPull/transport.test.native.js +653 -0
  76. package/dist/esm/httpPull/transport.test.native.js.map +1 -0
  77. package/dist/esm/httpPullTransport.mjs +406 -0
  78. package/dist/esm/httpPullTransport.mjs.map +1 -0
  79. package/dist/esm/httpPullTransport.native.js +666 -0
  80. package/dist/esm/httpPullTransport.native.js.map +1 -0
  81. package/dist/esm/index.js +1 -0
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/index.mjs +1 -0
  84. package/dist/esm/index.mjs.map +1 -1
  85. package/dist/esm/index.native.js +1 -0
  86. package/dist/esm/index.native.js.map +1 -1
  87. package/package.json +2 -2
  88. package/src/createZeroClient.tsx +19 -0
  89. package/src/httpPull/auth.test.ts +208 -0
  90. package/src/httpPull/churn.test.ts +147 -0
  91. package/src/httpPull/fixtureSchema.ts +82 -0
  92. package/src/httpPull/fixtureServer.ts +391 -0
  93. package/src/httpPull/integration.test.ts +57 -0
  94. package/src/httpPull/rebase.test.ts +368 -0
  95. package/src/httpPull/relations.test.ts +135 -0
  96. package/src/httpPull/testHarness.ts +95 -0
  97. package/src/httpPull/transport.test.ts +577 -0
  98. package/src/httpPullTransport.ts +559 -0
  99. package/src/index.ts +1 -0
  100. package/types/createZeroClient.d.ts +3 -1
  101. package/types/createZeroClient.d.ts.map +1 -1
  102. package/types/httpPull/auth.test.d.ts +2 -0
  103. package/types/httpPull/auth.test.d.ts.map +1 -0
  104. package/types/httpPull/churn.test.d.ts +2 -0
  105. package/types/httpPull/churn.test.d.ts.map +1 -0
  106. package/types/httpPull/fixtureSchema.d.ts +111 -0
  107. package/types/httpPull/fixtureSchema.d.ts.map +1 -0
  108. package/types/httpPull/fixtureServer.d.ts +14 -0
  109. package/types/httpPull/fixtureServer.d.ts.map +1 -0
  110. package/types/httpPull/integration.test.d.ts +2 -0
  111. package/types/httpPull/integration.test.d.ts.map +1 -0
  112. package/types/httpPull/rebase.test.d.ts +2 -0
  113. package/types/httpPull/rebase.test.d.ts.map +1 -0
  114. package/types/httpPull/relations.test.d.ts +2 -0
  115. package/types/httpPull/relations.test.d.ts.map +1 -0
  116. package/types/httpPull/testHarness.d.ts +32 -0
  117. package/types/httpPull/testHarness.d.ts.map +1 -0
  118. package/types/httpPull/transport.test.d.ts +2 -0
  119. package/types/httpPull/transport.test.d.ts.map +1 -0
  120. package/types/httpPullTransport.d.ts +13 -0
  121. package/types/httpPullTransport.d.ts.map +1 -0
  122. package/types/index.d.ts +1 -0
  123. package/types/index.d.ts.map +1 -1
@@ -30,6 +30,7 @@ var import_react = require("@rocicorp/zero/react");
30
30
  var import_helpers = require("@take-out/helpers");
31
31
  var import_react2 = require("react");
32
32
  var import_createPermissions = require("./createPermissions.cjs");
33
+ var import_httpPullTransport = require("./httpPullTransport.cjs");
33
34
  var import_createUseQuery = require("./createUseQuery.cjs");
34
35
  var import_instanceRegistry = require("./instanceRegistry.cjs");
35
36
  var import_createMutators = require("./helpers/createMutators.cjs");
@@ -195,6 +196,8 @@ function createZeroClient({
195
196
  children,
196
197
  authData: authDataIn,
197
198
  disable,
199
+ transport,
200
+ pullIntervalMs = 3e4,
198
201
  ...props
199
202
  }) => {
200
203
  const authData = authDataIn ?? null;
@@ -213,13 +216,22 @@ function createZeroClient({
213
216
  const instanceKey = JSON.stringify([Object.entries({
214
217
  kvStore: "mem",
215
218
  ...props
216
- }).filter(([key, value]) => key !== "auth" && typeof value !== "function" && value !== void 0).sort(([a], [b]) => a < b ? -1 : 1), hasAuth, generation]);
219
+ }).filter(([key, value]) => key !== "auth" && typeof value !== "function" && value !== void 0).sort(([a], [b]) => a < b ? -1 : 1), hasAuth, generation, transport]);
217
220
  const [instance2, setInstance] = (0, import_react2.useState)();
218
221
  (0, import_react2.useEffect)(() => {
219
222
  let cached = cachedZero;
220
223
  if (cached?.key !== instanceKey) {
221
224
  cached?.instance.close();
222
225
  const options = props;
226
+ if (transport === "http-pull") {
227
+ if (typeof options.server !== "string") {
228
+ throw new Error(`transport 'http-pull' requires a server URL`);
229
+ }
230
+ (0, import_httpPullTransport.ensureHttpPullTransport)({
231
+ origin: options.server,
232
+ pullIntervalMs
233
+ });
234
+ }
223
235
  cached = {
224
236
  key: instanceKey,
225
237
  instance: new import_zero.Zero({
@@ -33,6 +33,7 @@ var import_react = require("@rocicorp/zero/react");
33
33
  var import_helpers = require("@take-out/helpers");
34
34
  var import_react2 = require("react");
35
35
  var import_createPermissions = require("./createPermissions.native.js");
36
+ var import_httpPullTransport = require("./httpPullTransport.native.js");
36
37
  var import_createUseQuery = require("./createUseQuery.native.js");
37
38
  var import_instanceRegistry = require("./instanceRegistry.native.js");
38
39
  var import_createMutators = require("./helpers/createMutators.native.js");
@@ -297,6 +298,8 @@ function createZeroClient(param) {
297
298
  children,
298
299
  authData: authDataIn,
299
300
  disable,
301
+ transport,
302
+ pullIntervalMs = 3e4,
300
303
  ...props
301
304
  } = param2;
302
305
  var authData = authDataIn !== null && authDataIn !== void 0 ? authDataIn : null;
@@ -324,13 +327,22 @@ function createZeroClient(param) {
324
327
  var [a] = param3,
325
328
  [b] = param1;
326
329
  return a < b ? -1 : 1;
327
- }), hasAuth, generation]);
330
+ }), hasAuth, generation, transport]);
328
331
  var [instance2, setInstance] = (0, import_react2.useState)();
329
332
  (0, import_react2.useEffect)(function () {
330
333
  var cached = cachedZero;
331
334
  if ((cached === null || cached === void 0 ? void 0 : cached.key) !== instanceKey) {
332
335
  cached === null || cached === void 0 ? void 0 : cached.instance.close();
333
336
  var options = props;
337
+ if (transport === "http-pull") {
338
+ if (typeof options.server !== "string") {
339
+ throw new Error(`transport 'http-pull' requires a server URL`);
340
+ }
341
+ (0, import_httpPullTransport.ensureHttpPullTransport)({
342
+ origin: options.server,
343
+ pullIntervalMs
344
+ });
345
+ }
334
346
  cached = {
335
347
  key: instanceKey,
336
348
  instance: new import_zero.Zero({
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_instanceRegistry","import_createMutators","import_getAuth","import_modelRegistry","import_queryRegistry","import_resolveQuery","import_run","import_state","import_where","import_zeroRunner","import_zql","getZeroProxyValue","instance","key","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","param","schema","models","groupedQueries","permissionStrategy","instanceName","setSchema","getEnvironment","setEnvironment","permissionsHelpers","createPermissions","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","getMutationsPermissions","base","zql","objOrId","where","eb","cmpLit","one","rawPerm","getRawWhere","setEvaluatingPermission","buildPermissionQuery","getAuth","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","getAllMutationsPermissions","customQueries","defineQueries","registerClientInstance","namespaces","keys","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","_","Error","emitterScope","zeroEvents","createEmitter","zeroInstanceVersion","AuthDataContext","useQuery","createUseQuery","useQueryDirect","createUseQueryDirect","getZero","zeroVersion","createUsePermission","useQueryImpl","usePermission2","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","usePermission","usePermissionDirect","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","props","setAuthData","mutators","useMemo","createMutators","can","generation","useEmitterValue","hasAuth","instanceKey","JSON","stringify","kvStore","filter","param3","sort","param1","a","b","instance2","setInstance","useState","useEffect","cached","close","options","Zero","onClientStateNotFound","emit"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_httpPullTransport","import_createUseQuery","import_instanceRegistry","import_createMutators","import_getAuth","import_modelRegistry","import_queryRegistry","import_resolveQuery","import_run","import_state","import_where","import_zeroRunner","import_zql","getZeroProxyValue","instance","key","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","param","schema","models","groupedQueries","permissionStrategy","instanceName","setSchema","getEnvironment","setEnvironment","permissionsHelpers","createPermissions","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","getMutationsPermissions","base","zql","objOrId","where","eb","cmpLit","one","rawPerm","getRawWhere","setEvaluatingPermission","buildPermissionQuery","getAuth","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","getAllMutationsPermissions","customQueries","defineQueries","registerClientInstance","namespaces","keys","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","_","Error","emitterScope","zeroEvents","createEmitter","zeroInstanceVersion","AuthDataContext","useQuery","createUseQuery","useQueryDirect","createUseQueryDirect","getZero","zeroVersion","createUsePermission","useQueryImpl","usePermission2","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","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","setAuthData","mutators","useMemo","createMutators","can","generation","useEmitterValue","hasAuth","instanceKey","JSON","stringify","kvStore","filter","param3","sort","param1","a","b","instance2","setInstance","useState","useEffect","cached","close","options","server","ensureHttpPullTransport","origin","Zero","onClientStateNotFound","emit"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,197 @@
1
+ var import_vitest = require("vitest");
2
+ var import_testHarness = require("./testHarness.cjs");
3
+ let harness;
4
+ (0, import_vitest.afterEach)(async () => {
5
+ await harness?.close();
6
+ harness = void 0;
7
+ });
8
+ (0, import_vitest.describe)("zero-http auth parity", () => {
9
+ (0, import_vitest.test)("real clients only emit rows visible to their auth token", async () => {
10
+ harness = await (0, import_testHarness.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([(0, import_testHarness.waitForComplete)(u1Users), (0, import_testHarness.waitForComplete)(u1Projects), (0, import_testHarness.waitForComplete)(u2Users), (0, import_testHarness.waitForComplete)(u2Projects)]);
64
+ (0, import_vitest.expect)(normalizeUsers(u1UsersComplete)).toEqual([{
65
+ id: "u1",
66
+ name: "ada"
67
+ }]);
68
+ (0, import_vitest.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
+ (0, import_vitest.expect)(normalizeUsers(u2UsersComplete)).toEqual([{
92
+ id: "u2",
93
+ name: "ben"
94
+ }]);
95
+ (0, import_vitest.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 (0, import_testHarness.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
+ (0, import_vitest.test)("unknown token 401 reaches needs-auth without materializing data", async () => {
137
+ harness = await (0, import_testHarness.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 (0, import_testHarness.eventually)(() => (0, import_vitest.expect)(unknown.connection.state.current.name).toBe("needs-auth"));
161
+ await (0, import_testHarness.sleep)(50);
162
+ (0, import_vitest.expect)(projects.data).toEqual([]);
163
+ (0, import_vitest.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
+ (0, import_vitest.expect)(emission.map(row => row.id)).not.toContain(privateUserID);
178
+ }
179
+ }
180
+ function assertNoProjectEmission(emissions, privateProjectID, privateMemberID) {
181
+ for (const emission of emissions) {
182
+ (0, import_vitest.expect)(emission.map(row => row.id)).not.toContain(privateProjectID);
183
+ (0, import_vitest.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
+ }
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest");
4
+ var import_testHarness = require("./testHarness.native.js");
5
+ var harness;
6
+ (0, import_vitest.afterEach)(async function () {
7
+ await (harness === null || harness === void 0 ? void 0 : harness.close());
8
+ harness = void 0;
9
+ });
10
+ (0, import_vitest.describe)("zero-http auth parity", function () {
11
+ (0, import_vitest.test)("real clients only emit rows visible to their auth token", async function () {
12
+ harness = await (0, import_testHarness.startZeroHttpHarness)({
13
+ seed: {
14
+ user: [{
15
+ id: "u1",
16
+ name: "ada"
17
+ }, {
18
+ id: "u2",
19
+ name: "ben"
20
+ }],
21
+ project: [{
22
+ id: "p-u1",
23
+ ownerId: "u1",
24
+ name: "u1 private"
25
+ }, {
26
+ id: "p-u2",
27
+ ownerId: "u2",
28
+ name: "u2 private"
29
+ }, {
30
+ id: "p-shared",
31
+ ownerId: "u2",
32
+ name: "shared"
33
+ }],
34
+ member: [{
35
+ id: "m-u1-owner",
36
+ projectId: "p-u1",
37
+ userId: "u1"
38
+ }, {
39
+ id: "m-u2-owner",
40
+ projectId: "p-u2",
41
+ userId: "u2"
42
+ }, {
43
+ id: "m-shared-u1",
44
+ projectId: "p-shared",
45
+ userId: "u1"
46
+ }, {
47
+ id: "m-shared-u2",
48
+ projectId: "p-shared",
49
+ userId: "u2"
50
+ }]
51
+ }
52
+ });
53
+ var u1 = harness.createZero("u1");
54
+ var u2 = harness.createZero("u2");
55
+ var u1Users = u1.query.user.materialize();
56
+ var u1Projects = u1.query.project.related("members").materialize();
57
+ var u2Users = u2.query.user.materialize();
58
+ var u2Projects = u2.query.project.related("members").materialize();
59
+ var u1UserEmissions = [];
60
+ var u1ProjectEmissions = [];
61
+ var u2UserEmissions = [];
62
+ var u2ProjectEmissions = [];
63
+ var stops = [captureRows(u1Users, u1UserEmissions, normalizeUsers), captureRows(u1Projects, u1ProjectEmissions, normalizeProjects), captureRows(u2Users, u2UserEmissions, normalizeUsers), captureRows(u2Projects, u2ProjectEmissions, normalizeProjects)];
64
+ try {
65
+ var [u1UsersComplete, u1ProjectsComplete, u2UsersComplete, u2ProjectsComplete] = await Promise.all([(0, import_testHarness.waitForComplete)(u1Users), (0, import_testHarness.waitForComplete)(u1Projects), (0, import_testHarness.waitForComplete)(u2Users), (0, import_testHarness.waitForComplete)(u2Projects)]);
66
+ (0, import_vitest.expect)(normalizeUsers(u1UsersComplete)).toEqual([{
67
+ id: "u1",
68
+ name: "ada"
69
+ }]);
70
+ (0, import_vitest.expect)(normalizeProjects(u1ProjectsComplete)).toEqual([{
71
+ id: "p-shared",
72
+ ownerId: "u2",
73
+ name: "shared",
74
+ members: [{
75
+ id: "m-shared-u1",
76
+ projectId: "p-shared",
77
+ userId: "u1"
78
+ }, {
79
+ id: "m-shared-u2",
80
+ projectId: "p-shared",
81
+ userId: "u2"
82
+ }]
83
+ }, {
84
+ id: "p-u1",
85
+ ownerId: "u1",
86
+ name: "u1 private",
87
+ members: [{
88
+ id: "m-u1-owner",
89
+ projectId: "p-u1",
90
+ userId: "u1"
91
+ }]
92
+ }]);
93
+ (0, import_vitest.expect)(normalizeUsers(u2UsersComplete)).toEqual([{
94
+ id: "u2",
95
+ name: "ben"
96
+ }]);
97
+ (0, import_vitest.expect)(normalizeProjects(u2ProjectsComplete)).toEqual([{
98
+ id: "p-shared",
99
+ ownerId: "u2",
100
+ name: "shared",
101
+ members: [{
102
+ id: "m-shared-u1",
103
+ projectId: "p-shared",
104
+ userId: "u1"
105
+ }, {
106
+ id: "m-shared-u2",
107
+ projectId: "p-shared",
108
+ userId: "u2"
109
+ }]
110
+ }, {
111
+ id: "p-u2",
112
+ ownerId: "u2",
113
+ name: "u2 private",
114
+ members: [{
115
+ id: "m-u2-owner",
116
+ projectId: "p-u2",
117
+ userId: "u2"
118
+ }]
119
+ }]);
120
+ assertNoUserEmission(u1UserEmissions, "u2");
121
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
122
+ assertNoUserEmission(u2UserEmissions, "u1");
123
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
124
+ await harness.transport.pull();
125
+ await (0, import_testHarness.sleep)(50);
126
+ assertNoUserEmission(u1UserEmissions, "u2");
127
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
128
+ assertNoUserEmission(u2UserEmissions, "u1");
129
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
130
+ } finally {
131
+ var _iteratorNormalCompletion = true,
132
+ _didIteratorError = false,
133
+ _iteratorError = void 0;
134
+ try {
135
+ for (var _iterator = stops[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
136
+ var stop = _step.value;
137
+ stop();
138
+ }
139
+ } catch (err) {
140
+ _didIteratorError = true;
141
+ _iteratorError = err;
142
+ } finally {
143
+ try {
144
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
145
+ _iterator.return();
146
+ }
147
+ } finally {
148
+ if (_didIteratorError) {
149
+ throw _iteratorError;
150
+ }
151
+ }
152
+ }
153
+ u1Users.destroy();
154
+ u1Projects.destroy();
155
+ u2Users.destroy();
156
+ u2Projects.destroy();
157
+ }
158
+ });
159
+ (0, import_vitest.test)("unknown token 401 reaches needs-auth without materializing data", async function () {
160
+ harness = await (0, import_testHarness.startZeroHttpHarness)({
161
+ seed: {
162
+ user: [{
163
+ id: "u1",
164
+ name: "ada"
165
+ }],
166
+ project: [{
167
+ id: "p-u1",
168
+ ownerId: "u1",
169
+ name: "u1 private"
170
+ }],
171
+ member: [{
172
+ id: "m-u1-owner",
173
+ projectId: "p-u1",
174
+ userId: "u1"
175
+ }]
176
+ }
177
+ });
178
+ var unknown = harness.createZero("missing");
179
+ var projects = unknown.query.project.related("members").materialize();
180
+ var emissions = [];
181
+ var stop = captureRows(projects, emissions, normalizeProjects);
182
+ try {
183
+ await (0, import_testHarness.eventually)(function () {
184
+ return (0, import_vitest.expect)(unknown.connection.state.current.name).toBe("needs-auth");
185
+ });
186
+ await (0, import_testHarness.sleep)(50);
187
+ (0, import_vitest.expect)(projects.data).toEqual([]);
188
+ (0, import_vitest.expect)(emissions.every(function (emission) {
189
+ return emission.length === 0;
190
+ })).toBe(true);
191
+ } finally {
192
+ stop();
193
+ projects.destroy();
194
+ }
195
+ });
196
+ });
197
+ function captureRows(view, emissions, normalize) {
198
+ return view.addListener(function (data) {
199
+ emissions.push(normalize(data));
200
+ });
201
+ }
202
+ function assertNoUserEmission(emissions, privateUserID) {
203
+ var _iteratorNormalCompletion = true,
204
+ _didIteratorError = false,
205
+ _iteratorError = void 0;
206
+ try {
207
+ for (var _iterator = emissions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
208
+ var emission = _step.value;
209
+ (0, import_vitest.expect)(emission.map(function (row) {
210
+ return row.id;
211
+ })).not.toContain(privateUserID);
212
+ }
213
+ } catch (err) {
214
+ _didIteratorError = true;
215
+ _iteratorError = err;
216
+ } finally {
217
+ try {
218
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
219
+ _iterator.return();
220
+ }
221
+ } finally {
222
+ if (_didIteratorError) {
223
+ throw _iteratorError;
224
+ }
225
+ }
226
+ }
227
+ }
228
+ function assertNoProjectEmission(emissions, privateProjectID, privateMemberID) {
229
+ var _iteratorNormalCompletion = true,
230
+ _didIteratorError = false,
231
+ _iteratorError = void 0;
232
+ try {
233
+ for (var _iterator = emissions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
234
+ var emission = _step.value;
235
+ (0, import_vitest.expect)(emission.map(function (row) {
236
+ return row.id;
237
+ })).not.toContain(privateProjectID);
238
+ (0, import_vitest.expect)(emission.flatMap(function (row) {
239
+ return row.members.map(function (member) {
240
+ return member.id;
241
+ });
242
+ })).not.toContain(privateMemberID);
243
+ }
244
+ } catch (err) {
245
+ _didIteratorError = true;
246
+ _iteratorError = err;
247
+ } finally {
248
+ try {
249
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
250
+ _iterator.return();
251
+ }
252
+ } finally {
253
+ if (_didIteratorError) {
254
+ throw _iteratorError;
255
+ }
256
+ }
257
+ }
258
+ }
259
+ function normalizeUsers(users) {
260
+ return clone(users).sort(function (a, b) {
261
+ return a.id.localeCompare(b.id);
262
+ });
263
+ }
264
+ function normalizeProjects(projects) {
265
+ return clone(projects).map(function (project) {
266
+ return {
267
+ ...project,
268
+ members: [...project.members].sort(function (a, b) {
269
+ return a.id.localeCompare(b.id);
270
+ })
271
+ };
272
+ }).sort(function (a, b) {
273
+ return a.id.localeCompare(b.id);
274
+ });
275
+ }
276
+ function clone(value) {
277
+ return JSON.parse(JSON.stringify(value));
278
+ }
279
+ //# sourceMappingURL=auth.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_testHarness","harness","afterEach","close","describe","test","startZeroHttpHarness","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","waitForComplete","expect","toEqual","members"],"sources":["../../../src/httpPull/auth.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AAEA,IAAAA,aAAA,GAAAC,OAMO;AAEP,IAAIC,kBAAA,GAAAD,OAAA;AAAA,IAWJE,OAAA;AACE,IAAAH,aAAe,CAAAI,SAAM;EACrB,OAAAD,OAAU,aAAAA,OAAA,uBAAAA,OAAA,CAAAE,KAAA;EACXF,OAAA;AAAA;AAGC,IAAAH,aAAA,CAAAM,QAAK;EACH,IAAAN,aAAU,CAAAO,IAAM,2DAAqB;IAAAJ,OACnC,GAAM,UAAAD,kBAAA,CAAAM,oBAAA;MAAAC,IACJ;QAAMC,IACF,GACF;UACFC,EAAA;UACAC,IAAA,EAAS;QACP,GACA;UACED,EAAA,EAAI;UACRC,IAAA;QACA,EAAQ;QAC8CC,OAClD,EAAI,CACN;UACEF,EAAA,EAAI;UACRG,OAAA;UACFF,IAAA;QACD,GACK;UACAD,EAAA,EAAK;UAELG,OAAA,EAAU,IAAG;UACbF,IAAA;QACA,GACA;UAEAD,EAAA;UACAG,OAAA;UACAF,IAAA;QACA,EAEN;QACEG,MAAA,GACA;UACAJ,EAAA,cAAqB;UACrBK,SAAY;UACdC,MAAA;QAEI,GACF;UAEIN,EAAA;UACAK,SAAA;UACAC,MAAA;QAAkC,GAEnC;UAEHN,EAAA;UACAK,SAAA,YAAO;UACLC,MAAA;QACE,GACA;UACAN,EAAA,EAAM;UACNK,SAAS;UACPC,MAAM;QAAmD;MAE3D;IACF;IACA,IAAAC,EACE,GAAAf,OAAI,CAAAgB,UAAA;IAAA,IAAAC,EACJ,GAAAjB,OAAS,CAAAgB,UAAA;IAAA,IAAAE,OACT,GAAMH,EAAA,CAAAI,KAAA,CAAAZ,IAAA,CAAAa,WAAA;IAAA,IAAAC,UACN,GAAUN,EAAE,CAAAI,KAAI,CAAAT,OAAA,CAAAY,OAAc,UAAW,EAAAF,WAAgB;IAAM,IACjEG,OAAA,GAAAN,EAAA,CAAAE,KAAA,CAAAZ,IAAA,CAAAa,WAAA;IAAA,IACDI,UAAA,GAAAP,EAAA,CAAAE,KAAA,CAAAT,OAAA,CAAAY,OAAA,YAAAF,WAAA;IAED,IAAAK,eAAA;IACA,IAAAC,kBAAA;IAAsD,IACpDC,eAAA;IAAA,IAAAC,kBACM;IAAA,IAAAC,KACJ,IAASC,WACH,CAAAZ,OAAA,EAAAO,eAAA,EAAAM,cAAA,GAAAD,WACN,CAAAT,UAAS,EAAAK,kBAAA,EAAAM,iBAAA,GAAAF,WACL,CAAIP,OAAA,EAAAI,eAAe,EAAWI,cAAY,GAAaD,WACvD,CAAIN,UAAA,EAAAI,kBAA0B,EAAAI,iBAAoB,EAAK;IAC3D,IACF;MAAA,IACA,CAAAC,eAAA,EAAAC,kBAAA,EAAAC,eAAA,EAAAC,kBAAA,UAAAC,OAAA,CAAAC,GAAA,IACE,EAAAvC,kBAAI,CAAAwC,eAAA,EAAArB,OAAA,KACJ,EAAAnB,kBAAS,CAAAwC,eAAA,EAAAlB,UAAA,KACT,EAAAtB,kBAAM,CAAAwC,eAAA,EAAAhB,OAAA,KACN,EAAAxB,kBAAgB,CAAAwC,eAAc,EAAAf,UAAW,CAAQ,CAAc,CACjE;MACF,CAAC,GAAA3B,aAAA,CAAA2C,MAAA,EAAAT,cAAA,CAAAE,eAAA,GAAAQ,OAAA,EAED;QACAjC,EAAA;QACAC,IAAA;MACA,EAEA;MACA,IAAAZ,aAAM,CAAA2C,MAAA,EAAAR,iBAAQ,CAAAE,kBAAA,GAAAO,OAAA,EACd;QACAjC,EAAA;QACAG,OAAA;QACAF,IAAA;QACFiC,OAAE,GACA;UACQlC,EAAA,eAAQ;UAChBK,SAAW,EAAQ;UACXC,MAAA,EAAQ;QAChB,GACF;UACDN,EAAA;UAEDK,SAAA,YAAK;UACOC,MAAA;QACF;MAEJ,GACA;QACFN,EAAA;QACDG,OAAA;QACKF,IAAA,cAAkB;QAClBiC,OAAA,GACA;UACAlC,EAAA,EAAO,YAAY;UAErBK,SAAA;UACFC,MAAM;QAAW;MAGjB,EAEA;MACA,IAAAjB,aAAA,CAAA2C,MAAA,EAAOT,cAAU,CAAAI,eAAoB,GAAAM,OAAS,EAChD;QACEjC,EAAK;QACLC,IAAA,EAAS;MACX,EACD;MACF,IAAAZ,aAAA,CAAA2C,MAAA,EAAAR,iBAAA,CAAAI,kBAAA,GAAAK,OAAA,EAGD;QAKSjC,EAAA,EAAK;QACVG,OAAU,EAAK;QAChBF,IAAA;QACHiC,OAAA,GAES;UACIlC,EAAA,eAAY;UACrBK,SAAA,YAAO;UACTC,MAAA;QACF,GAES;UAKIN,EAAA,eAAY;UACrBK,SAAA,YAAO;UACPC,MAAA;QACE;MAEJ,GACF;QAESN,EAAA;QACAG,OAAM,MAAO;QACtBF,IAAA;QAESiC,OAAA,GACA;UAEAlC,EAAA;UACOK,SAAG,EAAQ;UAEhBC,MAAG,EAAM;QACpB;MAGE,CAAO,CACT","ignoreList":[]}