on-zero 0.16.7 → 0.16.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/combineZeroClients.native.js.map +1 -1
- package/dist/cjs/config.native.js.map +1 -1
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
- package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +32 -6
- package/dist/cjs/createZeroClient.connection.test.cjs +52 -0
- package/dist/cjs/createZeroClient.connection.test.native.js +56 -0
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.exportProbe.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.headless.test.native.js.map +1 -1
- package/dist/cjs/createZeroClient.httpAuth.test.cjs +144 -0
- package/dist/cjs/createZeroClient.httpAuth.test.native.js +167 -0
- package/dist/cjs/createZeroClient.httpAuth.test.native.js.map +1 -0
- package/dist/cjs/createZeroClient.native.js +32 -6
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.cjs +53 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js +53 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/generate-helpers.native.js.map +1 -1
- package/dist/cjs/generate-helpers.test.native.js.map +1 -1
- package/dist/cjs/generate-layout.native.js.map +1 -1
- package/dist/cjs/generate-lite.native.js.map +1 -1
- package/dist/cjs/generate-lite.test.native.js.map +1 -1
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.native.js.map +1 -1
- package/dist/cjs/helpers/NullToOptional.native.js.map +1 -1
- package/dist/cjs/helpers/asyncContext.hostStorage.test.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
- package/dist/cjs/helpers/ellipsis.native.js.map +1 -1
- package/dist/cjs/helpers/emitter.native.js.map +1 -1
- package/dist/cjs/helpers/ensure.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
- package/dist/cjs/helpers/errors.native.js.map +1 -1
- package/dist/cjs/helpers/getAuth.native.js.map +1 -1
- package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -1
- package/dist/cjs/helpers/globalValue.native.js.map +1 -1
- package/dist/cjs/helpers/hostStorageScope.native.js.map +1 -1
- package/dist/cjs/helpers/mapObject.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -1
- package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.test.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
- package/dist/cjs/helpers/sleep.native.js.map +1 -1
- package/dist/cjs/helpers/time.native.js.map +1 -1
- package/dist/cjs/helpers/tuple.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.native.js.map +1 -1
- package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/instanceRegistry.native.js.map +1 -1
- package/dist/cjs/modelRegistry.native.js.map +1 -1
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceMutations.test.native.js.map +1 -1
- package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.native.js.map +1 -1
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/cjs/mutations.test.native.js.map +1 -1
- package/dist/cjs/provideZero.eagerInstance.test.native.js.map +1 -1
- package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
- package/dist/cjs/provideZero.ssr.test.native.js.map +1 -1
- package/dist/cjs/queryRegistry.native.js.map +1 -1
- package/dist/cjs/resolveQuery.native.js.map +1 -1
- package/dist/cjs/run.native.js.map +1 -1
- package/dist/cjs/server.native.js.map +1 -1
- package/dist/cjs/server.test.native.js.map +1 -1
- package/dist/cjs/serverWhere.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.native.js.map +1 -1
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/streaming.native.js.map +1 -1
- package/dist/cjs/testSetup.native.js.map +1 -1
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/usePermission.test.native.js.map +1 -1
- package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
- package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
- package/dist/cjs/useStreamingField.loop.test.native.js.map +1 -1
- package/dist/cjs/useStreamingField.native.js.map +1 -1
- package/dist/cjs/vite-plugin.native.js.map +1 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/cjs/zeroRunner.native.js.map +1 -1
- package/dist/cjs/zql.native.js.map +1 -1
- package/dist/esm/createZeroClient.connection.test.mjs +52 -0
- package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.connection.test.native.js +56 -0
- package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
- package/dist/esm/createZeroClient.httpAuth.test.mjs +145 -0
- package/dist/esm/createZeroClient.httpAuth.test.mjs.map +1 -0
- package/dist/esm/createZeroClient.httpAuth.test.native.js +165 -0
- package/dist/esm/createZeroClient.httpAuth.test.native.js.map +1 -0
- package/dist/esm/createZeroClient.mjs +33 -7
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +33 -7
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.mjs +54 -1
- package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +54 -1
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.connection.test.tsx +50 -1
- package/src/createZeroClient.httpAuth.test.ts +144 -0
- package/src/createZeroClient.recovery.test.tsx +61 -1
- package/src/createZeroClient.tsx +58 -14
- package/types/createZeroClient.d.ts +2 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroClient.httpAuth.test.d.ts +2 -0
- package/types/createZeroClient.httpAuth.test.d.ts.map +1 -0
|
@@ -217,6 +217,7 @@ async function mount() {
|
|
|
217
217
|
if (event) events.push(event);
|
|
218
218
|
});
|
|
219
219
|
var instance = await mount({
|
|
220
|
+
auth: "expired-token",
|
|
220
221
|
refreshAuth
|
|
221
222
|
}, "conn-auth");
|
|
222
223
|
await (0, import_react.act)(async function () {
|
|
@@ -240,6 +241,61 @@ async function mount() {
|
|
|
240
241
|
});
|
|
241
242
|
off();
|
|
242
243
|
});
|
|
244
|
+
(0, import_vitest.test)("refreshAuth leaves needs-auth parked when refresh returns the active token", async function () {
|
|
245
|
+
var refreshAuth = import_vitest.vi.fn(async function () {
|
|
246
|
+
return "expired-token";
|
|
247
|
+
});
|
|
248
|
+
var instance = await mount({
|
|
249
|
+
auth: "expired-token",
|
|
250
|
+
refreshAuth
|
|
251
|
+
}, "conn-auth-unchanged");
|
|
252
|
+
await (0, import_react.act)(async function () {
|
|
253
|
+
instance.connection.state.set({
|
|
254
|
+
name: "needs-auth",
|
|
255
|
+
reason: "token expired"
|
|
256
|
+
});
|
|
257
|
+
await Promise.resolve();
|
|
258
|
+
});
|
|
259
|
+
await (0, import_react.act)(async function () {
|
|
260
|
+
await Promise.resolve();
|
|
261
|
+
});
|
|
262
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
|
|
263
|
+
(0, import_vitest.expect)(instance.connection.connect).not.toHaveBeenCalled();
|
|
264
|
+
(0, import_vitest.expect)(instance.connection.state.current.name).toBe("needs-auth");
|
|
265
|
+
});
|
|
266
|
+
(0, import_vitest.test)("refreshAuth stops after three consecutively rejected replacement tokens", async function () {
|
|
267
|
+
var nextToken = 0;
|
|
268
|
+
var refreshAuth = import_vitest.vi.fn(async function () {
|
|
269
|
+
return `replacement-token-${++nextToken}`;
|
|
270
|
+
});
|
|
271
|
+
var instance = await mount({
|
|
272
|
+
auth: "expired-token",
|
|
273
|
+
refreshAuth
|
|
274
|
+
}, "conn-auth-bounded");
|
|
275
|
+
for (var attempt = 0; attempt < 4; attempt++) {
|
|
276
|
+
await (0, import_react.act)(async function () {
|
|
277
|
+
instance.connection.state.set({
|
|
278
|
+
name: "needs-auth",
|
|
279
|
+
reason: "token rejected"
|
|
280
|
+
});
|
|
281
|
+
await Promise.resolve();
|
|
282
|
+
});
|
|
283
|
+
await (0, import_react.act)(async function () {
|
|
284
|
+
await Promise.resolve();
|
|
285
|
+
});
|
|
286
|
+
if (attempt < 3) {
|
|
287
|
+
await (0, import_react.act)(async function () {
|
|
288
|
+
instance.connection.state.set({
|
|
289
|
+
name: "connecting"
|
|
290
|
+
});
|
|
291
|
+
await Promise.resolve();
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(3);
|
|
296
|
+
(0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledTimes(3);
|
|
297
|
+
(0, import_vitest.expect)(instance.connection.state.current.name).toBe("needs-auth");
|
|
298
|
+
});
|
|
243
299
|
(0, import_vitest.test)("a disabled logout cannot revive its closed authenticated instance", async function () {
|
|
244
300
|
var _fakeZero_instances__options, _fakeZero_instances_;
|
|
245
301
|
var first = await mount({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_jsx_runtime","require","import_zero","import_react","import_client","import_vitest","import_createZeroClient","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","fakeZero","vi","hoisted","FakeConnectionState","FakeConnectionState2","initial","_this","Set","cb","listeners","add","delete","current","set","next","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","err","return","FakeZero","FakeZero2","options","context","connection","state","name","connect","fn","errors","close","run","preload","cleanup","complete","Promise","resolve","instances","push","mock","importOriginal","actual","Zero","globalThis","IS_REACT_ACT_ENVIRONMENT","noteTable","table","columns","id","string","body","primaryKey","schema","createSchema","tables","client","createZeroClient","models","groupedQueries","instanceName","container","root","beforeEach","document","createElement","dataset","zeroState","zeroConnected","zeroReason","afterEach","act","unmount","mount","extraProps","arguments","userID","createRoot","render","jsx","ProvideZero","cacheURL","children","at","test","readinessClient","ready","waitForZero","expect","toBe","install","transport","toHaveBeenCalledOnce","toHaveBeenCalledWith","refreshAuth","events","off","zeroEvents","listen","event","reason","toHaveBeenCalledTimes","auth","toContainEqual","type","reasonKey","message","_fakeZero_instances__options","_fakeZero_instances_","first","disable","toHaveLength","not","StrictMode","some","status","toHaveBeenCalled","connectionDataset","zeroCacheUrl","toBeUndefined","useFakeTimers","advanceTimersByTime","useRealTimers","headlessClient","connectHeadless"],"sources":["createZeroClient.connection.test.native.js"],"sourcesContent":["\"use strict\";\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_zero = require(\"@rocicorp/zero\");\nvar import_react = require(\"react\");\nvar import_client = require(\"react-dom/client\");\nvar import_vitest = require(\"vitest\");\nvar import_createZeroClient = require(\"./createZeroClient\");\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else obj[key] = value;\n return obj;\n}\nvar fakeZero = import_vitest.vi.hoisted(function() {\n var FakeConnectionState = /* @__PURE__ */ (function() {\n \"use strict\";\n function FakeConnectionState2(initial) {\n var _this = this;\n _class_call_check(this, FakeConnectionState2);\n _define_property(this, \"current\", void 0);\n _define_property(this, \"listeners\", /* @__PURE__ */ new Set());\n _define_property(this, \"subscribe\", function(cb) {\n _this.listeners.add(cb);\n return function() {\n _this.listeners.delete(cb);\n };\n });\n this.current = initial;\n }\n _create_class(FakeConnectionState2, [\n {\n key: \"set\",\n value: function set(next) {\n this.current = next;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = this.listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var cb = _step.value;\n cb();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n ]);\n return FakeConnectionState2;\n })();\n var FakeZero = function FakeZero2(options) {\n \"use strict\";\n _class_call_check(this, FakeZero2);\n _define_property(this, \"options\", void 0);\n _define_property(this, \"context\", void 0);\n _define_property(this, \"connection\", void 0);\n _define_property(this, \"delete\", void 0);\n _define_property(this, \"close\", void 0);\n _define_property(this, \"run\", void 0);\n _define_property(this, \"preload\", void 0);\n this.options = options;\n this.context = {};\n this.connection = {\n state: new FakeConnectionState({\n name: \"connecting\"\n }),\n connect: import_vitest.vi.fn(async function() {\n })\n };\n this.delete = import_vitest.vi.fn(async function() {\n return {\n errors: []\n };\n });\n this.close = import_vitest.vi.fn();\n this.run = import_vitest.vi.fn(async function() {\n return [];\n });\n this.preload = import_vitest.vi.fn(function() {\n return {\n cleanup: function cleanup() {\n },\n complete: Promise.resolve()\n };\n });\n instances.push(this);\n };\n var instances = [];\n return {\n FakeZero,\n FakeConnectionState,\n instances\n };\n});\nimport_vitest.vi.mock(\"@rocicorp/zero\", async function(importOriginal) {\n var actual = await importOriginal();\n return {\n ...actual,\n Zero: fakeZero.FakeZero\n };\n});\nglobalThis.IS_REACT_ACT_ENVIRONMENT = true;\nvar noteTable = (0, import_zero.table)(\"note\").columns({\n id: (0, import_zero.string)(),\n body: (0, import_zero.string)()\n}).primaryKey(\"id\");\nvar schema = (0, import_zero.createSchema)({\n tables: [\n noteTable\n ]\n});\nvar client = (0, import_createZeroClient.createZeroClient)({\n schema,\n models: {},\n groupedQueries: {},\n instanceName: \"connection-test\"\n});\nvar container;\nvar root;\n(0, import_vitest.beforeEach)(function() {\n fakeZero.instances.length = 0;\n container = document.createElement(\"div\");\n root = null;\n delete document.body.dataset.zeroState;\n delete document.body.dataset.zeroConnected;\n delete document.body.dataset.zeroReason;\n});\n(0, import_vitest.afterEach)(function() {\n if (root) (0, import_react.act)(function() {\n return root === null || root === void 0 ? void 0 : root.unmount();\n });\n});\nasync function mount() {\n var extraProps = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, userID = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"conn\";\n root = (0, import_client.createRoot)(container);\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(client.ProvideZero, {\n cacheURL: \"http://127.0.0.1:7788/zero\",\n userID,\n ...extraProps,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", {\n children: \"ok\"\n })\n }));\n await Promise.resolve();\n });\n return fakeZero.instances.at(-1);\n}\n(0, import_vitest.test)(\"waitForZero resolves when the provider publishes its active instance\", async function() {\n var readinessClient = (0, import_createZeroClient.createZeroClient)({\n schema,\n models: {},\n groupedQueries: {},\n instanceName: \"readiness-test\"\n });\n var ready = readinessClient.waitForZero();\n root = (0, import_client.createRoot)(container);\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(readinessClient.ProvideZero, {\n cacheURL: \"http://127.0.0.1:7788/zero\",\n userID: \"readiness\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", {\n children: \"ok\"\n })\n }));\n await Promise.resolve();\n });\n (0, import_vitest.expect)(await ready).toBe(fakeZero.instances.at(-1));\n});\n(0, import_vitest.test)(\"installs the supplied client transport for the provider server\", async function() {\n var install = import_vitest.vi.fn();\n await mount({\n transport: {\n install\n }\n }, \"transport-test\");\n (0, import_vitest.expect)(install).toHaveBeenCalledOnce();\n (0, import_vitest.expect)(install).toHaveBeenCalledWith(\"http://127.0.0.1:7788/zero\");\n});\n(0, import_vitest.test)(\"refreshAuth reconnects in place on needs-auth, once per transition\", async function() {\n var refreshAuth = import_vitest.vi.fn(async function() {\n return \"fresh-token\";\n });\n var events = [];\n var off = client.zeroEvents.listen(function(event) {\n if (event) events.push(event);\n });\n var instance = await mount({\n refreshAuth\n }, \"conn-auth\");\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"needs-auth\",\n reason: \"token expired\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);\n await (0, import_react.act)(async function() {\n await Promise.resolve();\n });\n (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({\n auth: \"fresh-token\"\n });\n (0, import_vitest.expect)(events).toContainEqual({\n type: \"error\",\n reasonKey: \"connection-needs-auth\",\n message: \"token expired\"\n });\n off();\n});\n(0, import_vitest.test)(\"a disabled logout cannot revive its closed authenticated instance\", async function() {\n var _fakeZero_instances__options, _fakeZero_instances_;\n var first = await mount({\n auth: \"old-token\"\n }, \"conn-auth-cycle\");\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(client.ProvideZero, {\n cacheURL: \"http://127.0.0.1:7788/zero\",\n userID: \"conn-auth-cycle\",\n auth: void 0,\n disable: true,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", {\n children: \"ok\"\n })\n }));\n await Promise.resolve();\n });\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(client.ProvideZero, {\n cacheURL: \"http://127.0.0.1:7788/zero\",\n userID: \"conn-auth-cycle\",\n auth: \"fresh-token\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", {\n children: \"ok\"\n })\n }));\n await Promise.resolve();\n });\n (0, import_vitest.expect)(fakeZero.instances).toHaveLength(2);\n (0, import_vitest.expect)(fakeZero.instances[1]).not.toBe(first);\n (0, import_vitest.expect)((_fakeZero_instances_ = fakeZero.instances[1]) === null || _fakeZero_instances_ === void 0 ? void 0 : (_fakeZero_instances__options = _fakeZero_instances_.options) === null || _fakeZero_instances__options === void 0 ? void 0 : _fakeZero_instances__options.auth).toBe(\"fresh-token\");\n});\n(0, import_vitest.test)(\"a remounted provider reconnects its cached instance when auth changed\", async function() {\n var instance = await mount({\n auth: \"old-token\"\n }, \"conn-auth-remount\");\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.unmount();\n root = null;\n await Promise.resolve();\n });\n root = (0, import_client.createRoot)(container);\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(client.ProvideZero, {\n cacheURL: \"http://127.0.0.1:7788/zero\",\n userID: \"conn-auth-remount\",\n auth: \"fresh-token\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", {\n children: \"ok\"\n })\n }));\n await Promise.resolve();\n });\n (0, import_vitest.expect)(fakeZero.instances).toHaveLength(1);\n (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({\n auth: \"fresh-token\"\n });\n});\n(0, import_vitest.test)(\"a double-invoked render still reconnects on a changed token\", async function() {\n root = (0, import_client.createRoot)(container);\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.StrictMode, {\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(client.ProvideZero, {\n cacheURL: \"http://127.0.0.1:7788/zero\",\n userID: \"conn-auth-strict\",\n auth: \"old-token\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", {\n children: \"ok\"\n })\n })\n }));\n await Promise.resolve();\n });\n var instance = fakeZero.instances.at(-1);\n await (0, import_react.act)(async function() {\n root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.StrictMode, {\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(client.ProvideZero, {\n cacheURL: \"http://127.0.0.1:7788/zero\",\n userID: \"conn-auth-strict\",\n auth: \"fresh-token\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", {\n children: \"ok\"\n })\n })\n }));\n await Promise.resolve();\n });\n (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({\n auth: \"fresh-token\"\n });\n});\n(0, import_vitest.test)(\"stale-poke error reconnects instead of surfacing a fatal error\", async function() {\n var events = [];\n var off = client.zeroEvents.listen(function(event) {\n if (event) events.push(event);\n });\n var instance = await mount({}, \"conn-stale\");\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"error\",\n reason: \"Server returned unexpected base cookie during sync\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledTimes(1);\n (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith();\n (0, import_vitest.expect)(events.some(function(event) {\n return event.type === \"error\";\n })).toBe(false);\n off();\n});\n(0, import_vitest.test)(\"transport error reconnects in place and publishes trying status\", async function() {\n var events = [];\n var off = client.zeroEvents.listen(function(event) {\n if (event) events.push(event);\n });\n var instance = await mount({}, \"conn-transport\");\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"error\",\n reason: \"Unexpected internal error: Failed to fetch\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledTimes(1);\n (0, import_vitest.expect)(events).toContainEqual({\n type: \"reconnect\",\n status: \"trying\",\n reasonKey: \"transport\",\n reason: \"Unexpected internal error: Failed to fetch\"\n });\n (0, import_vitest.expect)(events.some(function(event) {\n return event.type === \"error\";\n })).toBe(false);\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"connected\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(events).toContainEqual({\n type: \"reconnect\",\n status: \"connected\"\n });\n off();\n});\n(0, import_vitest.test)(\"server overload publishes waiting status while Zero owns retry backoff\", async function() {\n var events = [];\n var off = client.zeroEvents.listen(function(event) {\n if (event) events.push(event);\n });\n var instance = await mount({}, \"conn-overload\");\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"connecting\",\n reason: \"ServerOverloaded: retry later\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(instance.connection.connect).not.toHaveBeenCalled();\n (0, import_vitest.expect)(events).toContainEqual({\n type: \"reconnect\",\n status: \"waiting\",\n reasonKey: \"server-overloaded\",\n reason: \"ServerOverloaded: retry later\"\n });\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"connecting\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(events).toContainEqual({\n type: \"reconnect\",\n status: \"trying\",\n reasonKey: \"server-overloaded\",\n reason: \"ServerOverloaded: retry later\"\n });\n off();\n});\n(0, import_vitest.test)(\"connectionDataset mirrors connection state onto the body dataset\", async function() {\n var instance = await mount({\n connectionDataset: true\n }, \"conn-dataset\");\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"connected\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(document.body.dataset.zeroState).toBe(\"connected\");\n (0, import_vitest.expect)(document.body.dataset.zeroConnected).toBe(\"true\");\n (0, import_vitest.expect)(document.body.dataset.zeroCacheUrl).toBe(\"http://127.0.0.1:7788/zero\");\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"error\",\n reason: \"boom\"\n });\n await Promise.resolve();\n });\n (0, import_vitest.expect)(document.body.dataset.zeroState).toBe(\"error\");\n (0, import_vitest.expect)(document.body.dataset.zeroConnected).toBeUndefined();\n (0, import_vitest.expect)(document.body.dataset.zeroReason).toBe(\"boom\");\n});\n(0, import_vitest.test)(\"fatal error state stays terminal and reports the reason\", async function() {\n import_vitest.vi.useFakeTimers();\n try {\n var instance = await mount({}, \"conn-fatal\");\n var events = [];\n var off = client.zeroEvents.listen(function(event) {\n if (event) events.push(event);\n });\n await (0, import_react.act)(async function() {\n instance.connection.state.set({\n name: \"error\",\n reason: \"Got open event but connect start time is undefined\"\n });\n await Promise.resolve();\n });\n await (0, import_react.act)(async function() {\n import_vitest.vi.advanceTimersByTime(6e4);\n await Promise.resolve();\n });\n (0, import_vitest.expect)(instance.connection.connect).not.toHaveBeenCalled();\n (0, import_vitest.expect)(events).toContainEqual({\n type: \"error\",\n reasonKey: \"connection-error\",\n message: \"Got open event but connect start time is undefined\"\n });\n off();\n } finally {\n import_vitest.vi.useRealTimers();\n }\n});\n(0, import_vitest.test)(\"connectHeadless refreshes auth on needs-auth with no react tree\", async function() {\n var headlessClient = (0, import_createZeroClient.createZeroClient)({\n schema,\n models: {},\n groupedQueries: {},\n instanceName: \"headless-auth-test\"\n });\n var refreshAuth = import_vitest.vi.fn(async function() {\n return \"headless-fresh-token\";\n });\n var connection = headlessClient.connectHeadless({\n userID: \"headless-auth\",\n cacheURL: \"http://127.0.0.1:7788/zero\",\n refreshAuth\n });\n var instance = fakeZero.instances.at(-1);\n instance.connection.state.set({\n name: \"needs-auth\",\n reason: \"token expired\"\n });\n await Promise.resolve();\n (0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);\n await Promise.resolve();\n (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({\n auth: \"headless-fresh-token\"\n });\n instance.connection.state.set({\n name: \"needs-auth\",\n reason: \"token expired again\"\n });\n await Promise.resolve();\n (0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);\n await connection.close();\n});\n//# sourceMappingURL=createZeroClient.connection.test.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["import_jsx_runtime","require","import_zero","import_react","import_client","import_vitest","import_createZeroClient","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","fakeZero","vi","hoisted","FakeConnectionState","FakeConnectionState2","initial","_this","Set","cb","listeners","add","delete","current","set","next","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","err","return","FakeZero","FakeZero2","options","context","connection","state","name","connect","fn","errors","close","run","preload","cleanup","complete","Promise","resolve","instances","push","mock","importOriginal","actual","Zero","globalThis","IS_REACT_ACT_ENVIRONMENT","noteTable","table","columns","id","string","body","primaryKey","schema","createSchema","tables","client","createZeroClient","models","groupedQueries","instanceName","container","root","beforeEach","document","createElement","dataset","zeroState","zeroConnected","zeroReason","afterEach","act","unmount","mount","extraProps","arguments","userID","createRoot","render","jsx","ProvideZero","cacheURL","children","at","test","readinessClient","ready","waitForZero","expect","toBe","install","transport","toHaveBeenCalledOnce","toHaveBeenCalledWith","refreshAuth","events","off","zeroEvents","listen","event","auth","reason","toHaveBeenCalledTimes","toContainEqual","type","reasonKey","message","not","toHaveBeenCalled","nextToken","attempt","_fakeZero_instances__options","_fakeZero_instances_","first","disable","toHaveLength","StrictMode","some","status"],"sources":["../../src/createZeroClient.connection.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_zero","require","import_vitest","import_createZeroClient","userTable","table","columns","id","string","name","primaryKey","schema","createSchema","tables","describe","zero","createZeroClient","models","groupedQueries","probe","byId","args","instanceName","test","expect","prototype","toBeUndefined","Object","toString","call","toBe","Symbol","toPrimitive"
|
|
1
|
+
{"version":3,"names":["import_zero","require","import_vitest","import_createZeroClient","userTable","table","columns","id","string","name","primaryKey","schema","createSchema","tables","describe","zero","createZeroClient","models","groupedQueries","probe","byId","args","instanceName","test","expect","prototype","toBeUndefined","Object","toString","call","toBe","Symbol","toPrimitive"],"sources":["../../src/createZeroClient.exportProbe.test.tsx"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,WAAA,GAAAC,OAAuC;AAEvC,IAAAC,aAAA,GAAAD,OAAA,SAAiC;AAIjC,IAAAE,uBAAkB,GAAAF,OAAA,+BAAsB,CAAE;AAC1C,IAAAG,SAAM,OAASJ,WAAA,CAAAK,KAAA,QAAa,EAAEC,OAAA,CAAQ;EAAaC,EASnD,MAAAP,WAAA,CAAAQ,MAAS;EACPC,IAAA,EAAM,EAAE,EAAAT,WAAS,CAAAQ,MAAA;AAAiB,GAAAE,UAChC;AAAA,IACAC,MAAA,GAAS,IAAAX,WAAA,CAAAY,YAAA;EAAAC,MACT,GAAgBT,SACP;AAC2B;AAClC,IACFF,aAAA,CAAAY,QAAA;EAAA,IACA;IAAAC;EAAA,KAAc,GAAAZ,uBAAA,CAAAa,gBAAA;IACfL,MAAA;IAEDM,MAAA;IACEC,cAAA;MACAC,KAAA;QACAC,IAAA,WAAAA,KAAAC,IAAA;UACG,OAA4CA,IAAO;QACpD;MACF;IACD;IAEDC,YAAA;EACE;EAA4D,IAC1DpB,aAAA,CAAAqB,IAAA;IACF,IAAArB,aAAA,CAAAsB,MAAA,EAAAT,IAAA,CAAAU,SAAA,EAAAC,aAAA;IACD,IAAAxB,aAAA,CAAAsB,MAAA,EAAAG,MAAA,CAAAF,SAAA,CAAAG,QAAA,CAAAC,IAAA,CAAAd,IAAA,GAAAe,IAAA;IACF,IAAA5B,aAAA,CAAAsB,MAAA,EAAAT,IAAA,CAAAgB,MAAA,CAAAC,WAAA,GAAAN,aAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_zero","require","import_vitest","import_createZeroClient","import_useMutation","_type_of","obj","Symbol","constructor","userTable","table","columns","id","string","name","primaryKey","schema","createSchema","tables","byId","byId2","args","test","client","createZeroClient","models","groupedQueries","headlessTest","instanceName","pending","before","Promise","race","waitForZero","resolve","expect","toBe","connection","connectHeadless","userID","kvStore","storageKey","zero","close","first","headlessHotTest","refreshed","clientID","toThrow","user","mutate","insert","insert2","Error","headlessObservedMutationTest","errors","dispose","onMutationError","error","push","Reflect","get","result","apply","all","toHaveLength","toMatchObject","kind","message","length","missing","toEqual","scope"],"sources":["createZeroClient.headless.test.native.js"],"sourcesContent":["\"use strict\";\nvar import_zero = require(\"@rocicorp/zero\");\nvar import_vitest = require(\"vitest\");\nvar import_createZeroClient = require(\"./createZeroClient\");\nvar import_useMutation = require(\"./helpers/useMutation\");\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar userTable = (0, import_zero.table)(\"user\").columns({\n id: (0, import_zero.string)(),\n name: (0, import_zero.string)()\n}).primaryKey(\"id\");\nvar schema = (0, import_zero.createSchema)({\n tables: [\n userTable\n ]\n});\nvar byId = function byId2(args) {\n return args;\n};\n(0, import_vitest.test)(\"connectHeadless publishes the instance with no react tree\", async function() {\n var client = (0, import_createZeroClient.createZeroClient)({\n schema,\n models: {},\n groupedQueries: {\n headlessTest: {\n byId\n }\n },\n instanceName: \"headless-test\"\n });\n var pending = /* @__PURE__ */ Symbol(\"pending\");\n var before = await Promise.race([\n client.waitForZero(),\n Promise.resolve(pending)\n ]);\n (0, import_vitest.expect)(before).toBe(pending);\n var connection = client.connectHeadless({\n userID: \"user-headless\",\n kvStore: \"mem\",\n storageKey: \"headless-test\"\n });\n (0, import_vitest.expect)(await client.waitForZero()).toBe(connection.zero);\n await connection.close();\n});\n(0, import_vitest.test)(\"a hot-recreated client resolves the mounted same-name instance\", async function() {\n var first = (0, import_createZeroClient.createZeroClient)({\n schema,\n models: {},\n groupedQueries: {\n headlessHotTest: {\n byId\n }\n },\n instanceName: \"headless-hot-test\"\n });\n var connection = first.connectHeadless({\n userID: \"user-headless-hot\",\n kvStore: \"mem\",\n storageKey: \"headless-hot-test\"\n });\n var refreshed = (0, import_createZeroClient.createZeroClient)({\n schema,\n models: {},\n groupedQueries: {\n headlessHotTest: {\n byId\n }\n },\n instanceName: \"headless-hot-test\"\n });\n (0, import_vitest.expect)(refreshed.zero.clientID).toBe(connection.zero.clientID);\n (0, import_vitest.expect)(await refreshed.waitForZero()).toBe(connection.zero);\n await connection.close();\n (0, import_vitest.expect)(function() {\n return refreshed.zero.clientID;\n }).toThrow(/not initialized/);\n});\n(0, import_vitest.test)(\"direct facade mutations surface client failures without explicit observation\", async function() {\n var client = (0, import_createZeroClient.createZeroClient)({\n schema,\n models: {\n user: {\n mutate: {\n insert: async function insert2() {\n throw new Error(\"optimistic mutation failed\");\n }\n }\n }\n },\n groupedQueries: {\n headlessObservedMutationTest: {\n byId\n }\n },\n instanceName: \"headless-observed-mutation-test\"\n });\n var connection = client.connectHeadless({\n userID: \"user-headless-observed-mutation\",\n kvStore: \"mem\",\n storageKey: \"headless-observed-mutation-test\"\n });\n var errors = [];\n var dispose = (0, import_useMutation.onMutationError)(function(error) {\n return errors.push(error);\n });\n var mutate = Reflect.get(client.zero, \"mutate\");\n var user = Reflect.get(mutate, \"user\");\n var insert = Reflect.get(user, \"insert\");\n var result = Reflect.apply(insert, null, [\n {\n id: \"u1\",\n name: \"Ada\"\n }\n ]);\n if (result === null || (typeof result === \"undefined\" ? \"undefined\" : _type_of(result)) !== \"object\") {\n throw new Error(\"mutation did not return client/server promises\");\n }\n await Promise.all([\n Reflect.get(result, \"client\"),\n Reflect.get(result, \"server\")\n ]);\n await Promise.resolve();\n (0, import_vitest.expect)(errors).toHaveLength(1);\n (0, import_vitest.expect)(errors[0]).toMatchObject({\n kind: \"app\",\n message: \"optimistic mutation failed\"\n });\n errors.length = 0;\n var missing = Reflect.get(user, \"createdAfterClientConstruction\");\n (0, import_vitest.expect)(function() {\n return Reflect.apply(missing, null, [\n {}\n ]);\n }).toThrow(\"mutation 'user.createdAfterClientConstruction' is not registered\");\n (0, import_vitest.expect)(errors).toEqual([\n {\n scope: \"client\",\n kind: \"zero\",\n message: \"[on-zero] mutation 'user.createdAfterClientConstruction' is not registered on the active Zero client.\"\n }\n ]);\n dispose();\n await connection.close();\n});\n//# sourceMappingURL=createZeroClient.headless.test.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["import_zero","require","import_vitest","import_createZeroClient","import_useMutation","_type_of","obj","Symbol","constructor","userTable","table","columns","id","string","name","primaryKey","schema","createSchema","tables","byId","byId2","args","test","client","createZeroClient","models","groupedQueries","headlessTest","instanceName","pending","before","Promise","race","waitForZero","resolve","expect","toBe","connection","connectHeadless","userID","kvStore","storageKey","zero","close","first","headlessHotTest","refreshed","clientID","toThrow","user","mutate","insert","insert2","Error","headlessObservedMutationTest"],"sources":["../../src/createZeroClient.headless.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
var import_zero = require("@rocicorp/zero");
|
|
2
|
+
var import_client = require("orez-lite/client");
|
|
3
|
+
var import_vitest = require("vitest");
|
|
4
|
+
var import_createZeroClient = require("./createZeroClient.cjs");
|
|
5
|
+
const noteTable = (0, import_zero.table)("note").columns({
|
|
6
|
+
id: (0, import_zero.string)()
|
|
7
|
+
}).primaryKey("id");
|
|
8
|
+
const schema = (0, import_zero.createSchema)({
|
|
9
|
+
tables: [noteTable]
|
|
10
|
+
});
|
|
11
|
+
function response(body, status = 200) {
|
|
12
|
+
return new Response(JSON.stringify(body), {
|
|
13
|
+
status,
|
|
14
|
+
headers: {
|
|
15
|
+
"content-type": "application/json"
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async function eventually(assertion, timeoutMs = 2e3) {
|
|
20
|
+
const deadline = Date.now() + timeoutMs;
|
|
21
|
+
let lastError;
|
|
22
|
+
while (Date.now() < deadline) {
|
|
23
|
+
try {
|
|
24
|
+
assertion();
|
|
25
|
+
return;
|
|
26
|
+
} catch (error) {
|
|
27
|
+
lastError = error;
|
|
28
|
+
await new Promise(resolve => setTimeout(resolve, 5));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
throw lastError;
|
|
32
|
+
}
|
|
33
|
+
(0, import_vitest.test)("unchanged unauthorized auth parks after one real HTTP transport request", async () => {
|
|
34
|
+
const authorizations = [];
|
|
35
|
+
const fetch = import_vitest.vi.fn(async (_input, init) => {
|
|
36
|
+
authorizations.push(new Headers(init?.headers).get("authorization"));
|
|
37
|
+
return response({
|
|
38
|
+
error: "missing authentication"
|
|
39
|
+
}, 401);
|
|
40
|
+
});
|
|
41
|
+
const refreshAuth = import_vitest.vi.fn(async () => "expired-token");
|
|
42
|
+
const client = (0, import_createZeroClient.createZeroClient)({
|
|
43
|
+
schema,
|
|
44
|
+
models: {},
|
|
45
|
+
groupedQueries: {},
|
|
46
|
+
instanceName: "http-auth-unchanged"
|
|
47
|
+
});
|
|
48
|
+
const connection = client.connectHeadless({
|
|
49
|
+
userID: "unauthorized-user",
|
|
50
|
+
auth: "expired-token",
|
|
51
|
+
cacheURL: "https://http-auth-unchanged.orez.test/zero",
|
|
52
|
+
kvStore: "mem",
|
|
53
|
+
transport: (0, import_client.createZeroClientTransport)({
|
|
54
|
+
fetch
|
|
55
|
+
}),
|
|
56
|
+
refreshAuth
|
|
57
|
+
});
|
|
58
|
+
try {
|
|
59
|
+
await eventually(() => (0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("needs-auth"));
|
|
60
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
61
|
+
(0, import_vitest.expect)(authorizations).toEqual(["Bearer expired-token"]);
|
|
62
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
|
|
63
|
+
(0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("needs-auth");
|
|
64
|
+
} finally {
|
|
65
|
+
await connection.close();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
(0, import_vitest.test)("warm headless client refreshes an expired bearer and reconnects", async () => {
|
|
69
|
+
const authorizations = [];
|
|
70
|
+
const fetch = import_vitest.vi.fn(async (_input, init) => {
|
|
71
|
+
const authorization = new Headers(init?.headers).get("authorization");
|
|
72
|
+
authorizations.push(authorization);
|
|
73
|
+
if (authorization === "Bearer expired-token") {
|
|
74
|
+
return response({
|
|
75
|
+
error: "expired bearer"
|
|
76
|
+
}, 401);
|
|
77
|
+
}
|
|
78
|
+
return response({
|
|
79
|
+
cookie: 1,
|
|
80
|
+
lastMutationIDChanges: {},
|
|
81
|
+
rowsPatch: []
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
const refreshAuth = import_vitest.vi.fn(async () => "fresh-token");
|
|
85
|
+
const client = (0, import_createZeroClient.createZeroClient)({
|
|
86
|
+
schema,
|
|
87
|
+
models: {},
|
|
88
|
+
groupedQueries: {},
|
|
89
|
+
instanceName: "http-auth-refresh"
|
|
90
|
+
});
|
|
91
|
+
const connection = client.connectHeadless({
|
|
92
|
+
userID: "authorized-user",
|
|
93
|
+
auth: "expired-token",
|
|
94
|
+
cacheURL: "https://http-auth-refresh.orez.test/zero",
|
|
95
|
+
kvStore: "mem",
|
|
96
|
+
transport: (0, import_client.createZeroClientTransport)({
|
|
97
|
+
fetch
|
|
98
|
+
}),
|
|
99
|
+
refreshAuth
|
|
100
|
+
});
|
|
101
|
+
try {
|
|
102
|
+
await eventually(() => (0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("connected"));
|
|
103
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
|
|
104
|
+
(0, import_vitest.expect)(authorizations).toEqual(["Bearer expired-token", "Bearer fresh-token"]);
|
|
105
|
+
} finally {
|
|
106
|
+
await connection.close();
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
(0, import_vitest.test)("three rejected replacement bearers leave a real HTTP client parked", async () => {
|
|
110
|
+
const authorizations = [];
|
|
111
|
+
let replacement = 0;
|
|
112
|
+
const fetch = import_vitest.vi.fn(async (_input, init) => {
|
|
113
|
+
authorizations.push(new Headers(init?.headers).get("authorization"));
|
|
114
|
+
return response({
|
|
115
|
+
error: "project access required"
|
|
116
|
+
}, 403);
|
|
117
|
+
});
|
|
118
|
+
const refreshAuth = import_vitest.vi.fn(async () => `replacement-token-${++replacement}`);
|
|
119
|
+
const client = (0, import_createZeroClient.createZeroClient)({
|
|
120
|
+
schema,
|
|
121
|
+
models: {},
|
|
122
|
+
groupedQueries: {},
|
|
123
|
+
instanceName: "http-auth-bounded"
|
|
124
|
+
});
|
|
125
|
+
const connection = client.connectHeadless({
|
|
126
|
+
userID: "unauthorized-user",
|
|
127
|
+
auth: "expired-token",
|
|
128
|
+
cacheURL: "https://http-auth-bounded.orez.test/zero",
|
|
129
|
+
kvStore: "mem",
|
|
130
|
+
transport: (0, import_client.createZeroClientTransport)({
|
|
131
|
+
fetch
|
|
132
|
+
}),
|
|
133
|
+
refreshAuth
|
|
134
|
+
});
|
|
135
|
+
try {
|
|
136
|
+
await eventually(() => (0, import_vitest.expect)(authorizations).toHaveLength(4));
|
|
137
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
138
|
+
(0, import_vitest.expect)(authorizations).toEqual(["Bearer expired-token", "Bearer replacement-token-1", "Bearer replacement-token-2", "Bearer replacement-token-3"]);
|
|
139
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(3);
|
|
140
|
+
(0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("needs-auth");
|
|
141
|
+
} finally {
|
|
142
|
+
await connection.close();
|
|
143
|
+
}
|
|
144
|
+
});
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var import_zero = require("@rocicorp/zero");
|
|
4
|
+
var import_client = require("orez-lite/client");
|
|
5
|
+
var import_vitest = require("vitest");
|
|
6
|
+
var import_createZeroClient = require("./createZeroClient.native.js");
|
|
7
|
+
var noteTable = (0, import_zero.table)("note").columns({
|
|
8
|
+
id: (0, import_zero.string)()
|
|
9
|
+
}).primaryKey("id");
|
|
10
|
+
var schema = (0, import_zero.createSchema)({
|
|
11
|
+
tables: [noteTable]
|
|
12
|
+
});
|
|
13
|
+
function response(body) {
|
|
14
|
+
var status = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 200;
|
|
15
|
+
return new Response(JSON.stringify(body), {
|
|
16
|
+
status,
|
|
17
|
+
headers: {
|
|
18
|
+
"content-type": "application/json"
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async function eventually(assertion) {
|
|
23
|
+
var timeoutMs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 2e3;
|
|
24
|
+
var deadline = Date.now() + timeoutMs;
|
|
25
|
+
var lastError;
|
|
26
|
+
while (Date.now() < deadline) {
|
|
27
|
+
try {
|
|
28
|
+
assertion();
|
|
29
|
+
return;
|
|
30
|
+
} catch (error) {
|
|
31
|
+
lastError = error;
|
|
32
|
+
await new Promise(function (resolve) {
|
|
33
|
+
return setTimeout(resolve, 5);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
throw lastError;
|
|
38
|
+
}
|
|
39
|
+
(0, import_vitest.test)("unchanged unauthorized auth parks after one real HTTP transport request", async function () {
|
|
40
|
+
var authorizations = [];
|
|
41
|
+
var fetch = import_vitest.vi.fn(async function (_input, init) {
|
|
42
|
+
authorizations.push(new Headers(init === null || init === void 0 ? void 0 : init.headers).get("authorization"));
|
|
43
|
+
return response({
|
|
44
|
+
error: "missing authentication"
|
|
45
|
+
}, 401);
|
|
46
|
+
});
|
|
47
|
+
var refreshAuth = import_vitest.vi.fn(async function () {
|
|
48
|
+
return "expired-token";
|
|
49
|
+
});
|
|
50
|
+
var client = (0, import_createZeroClient.createZeroClient)({
|
|
51
|
+
schema,
|
|
52
|
+
models: {},
|
|
53
|
+
groupedQueries: {},
|
|
54
|
+
instanceName: "http-auth-unchanged"
|
|
55
|
+
});
|
|
56
|
+
var connection = client.connectHeadless({
|
|
57
|
+
userID: "unauthorized-user",
|
|
58
|
+
auth: "expired-token",
|
|
59
|
+
cacheURL: "https://http-auth-unchanged.orez.test/zero",
|
|
60
|
+
kvStore: "mem",
|
|
61
|
+
transport: (0, import_client.createZeroClientTransport)({
|
|
62
|
+
fetch
|
|
63
|
+
}),
|
|
64
|
+
refreshAuth
|
|
65
|
+
});
|
|
66
|
+
try {
|
|
67
|
+
await eventually(function () {
|
|
68
|
+
return (0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("needs-auth");
|
|
69
|
+
});
|
|
70
|
+
await new Promise(function (resolve) {
|
|
71
|
+
return setTimeout(resolve, 100);
|
|
72
|
+
});
|
|
73
|
+
(0, import_vitest.expect)(authorizations).toEqual(["Bearer expired-token"]);
|
|
74
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
|
|
75
|
+
(0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("needs-auth");
|
|
76
|
+
} finally {
|
|
77
|
+
await connection.close();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
(0, import_vitest.test)("warm headless client refreshes an expired bearer and reconnects", async function () {
|
|
81
|
+
var authorizations = [];
|
|
82
|
+
var fetch = import_vitest.vi.fn(async function (_input, init) {
|
|
83
|
+
var authorization = new Headers(init === null || init === void 0 ? void 0 : init.headers).get("authorization");
|
|
84
|
+
authorizations.push(authorization);
|
|
85
|
+
if (authorization === "Bearer expired-token") {
|
|
86
|
+
return response({
|
|
87
|
+
error: "expired bearer"
|
|
88
|
+
}, 401);
|
|
89
|
+
}
|
|
90
|
+
return response({
|
|
91
|
+
cookie: 1,
|
|
92
|
+
lastMutationIDChanges: {},
|
|
93
|
+
rowsPatch: []
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
var refreshAuth = import_vitest.vi.fn(async function () {
|
|
97
|
+
return "fresh-token";
|
|
98
|
+
});
|
|
99
|
+
var client = (0, import_createZeroClient.createZeroClient)({
|
|
100
|
+
schema,
|
|
101
|
+
models: {},
|
|
102
|
+
groupedQueries: {},
|
|
103
|
+
instanceName: "http-auth-refresh"
|
|
104
|
+
});
|
|
105
|
+
var connection = client.connectHeadless({
|
|
106
|
+
userID: "authorized-user",
|
|
107
|
+
auth: "expired-token",
|
|
108
|
+
cacheURL: "https://http-auth-refresh.orez.test/zero",
|
|
109
|
+
kvStore: "mem",
|
|
110
|
+
transport: (0, import_client.createZeroClientTransport)({
|
|
111
|
+
fetch
|
|
112
|
+
}),
|
|
113
|
+
refreshAuth
|
|
114
|
+
});
|
|
115
|
+
try {
|
|
116
|
+
await eventually(function () {
|
|
117
|
+
return (0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("connected");
|
|
118
|
+
});
|
|
119
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
|
|
120
|
+
(0, import_vitest.expect)(authorizations).toEqual(["Bearer expired-token", "Bearer fresh-token"]);
|
|
121
|
+
} finally {
|
|
122
|
+
await connection.close();
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
(0, import_vitest.test)("three rejected replacement bearers leave a real HTTP client parked", async function () {
|
|
126
|
+
var authorizations = [];
|
|
127
|
+
var replacement = 0;
|
|
128
|
+
var fetch = import_vitest.vi.fn(async function (_input, init) {
|
|
129
|
+
authorizations.push(new Headers(init === null || init === void 0 ? void 0 : init.headers).get("authorization"));
|
|
130
|
+
return response({
|
|
131
|
+
error: "project access required"
|
|
132
|
+
}, 403);
|
|
133
|
+
});
|
|
134
|
+
var refreshAuth = import_vitest.vi.fn(async function () {
|
|
135
|
+
return `replacement-token-${++replacement}`;
|
|
136
|
+
});
|
|
137
|
+
var client = (0, import_createZeroClient.createZeroClient)({
|
|
138
|
+
schema,
|
|
139
|
+
models: {},
|
|
140
|
+
groupedQueries: {},
|
|
141
|
+
instanceName: "http-auth-bounded"
|
|
142
|
+
});
|
|
143
|
+
var connection = client.connectHeadless({
|
|
144
|
+
userID: "unauthorized-user",
|
|
145
|
+
auth: "expired-token",
|
|
146
|
+
cacheURL: "https://http-auth-bounded.orez.test/zero",
|
|
147
|
+
kvStore: "mem",
|
|
148
|
+
transport: (0, import_client.createZeroClientTransport)({
|
|
149
|
+
fetch
|
|
150
|
+
}),
|
|
151
|
+
refreshAuth
|
|
152
|
+
});
|
|
153
|
+
try {
|
|
154
|
+
await eventually(function () {
|
|
155
|
+
return (0, import_vitest.expect)(authorizations).toHaveLength(4);
|
|
156
|
+
});
|
|
157
|
+
await new Promise(function (resolve) {
|
|
158
|
+
return setTimeout(resolve, 100);
|
|
159
|
+
});
|
|
160
|
+
(0, import_vitest.expect)(authorizations).toEqual(["Bearer expired-token", "Bearer replacement-token-1", "Bearer replacement-token-2", "Bearer replacement-token-3"]);
|
|
161
|
+
(0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(3);
|
|
162
|
+
(0, import_vitest.expect)(connection.zero.connection.state.current.name).toBe("needs-auth");
|
|
163
|
+
} finally {
|
|
164
|
+
await connection.close();
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=createZeroClient.httpAuth.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_zero","require","import_client","import_vitest","import_createZeroClient","noteTable","table","columns","id","string","primaryKey","schema","createSchema","tables","response","body","status","arguments","length","Response","JSON","stringify","headers","eventually","assertion","timeoutMs","deadline","Date","now","lastError","error","Promise","resolve","setTimeout","test","authorizations","fetch","vi","fn","_input","init","push","Headers","get","refreshAuth","client","createZeroClient","models","groupedQueries","instanceName","connection","connectHeadless","userID","auth","cacheURL","kvStore","transport","createZeroClientTransport","expect","zero","state","current","name","toBe","toEqual","toHaveBeenCalledTimes","close","authorization","cookie","lastMutationIDChanges","rowsPatch"],"sources":["../../src/createZeroClient.httpAuth.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|