@replit/crosis
Advanced tools
| export {}; |
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const __1 = require(".."); | ||
| const concurrent_1 = require("../__testutils__/concurrent"); | ||
| const done_1 = require("../__testutils__/done"); | ||
| const genConnectionMetadata_1 = __importDefault(require("../../debug/genConnectionMetadata")); | ||
| const WebSocket = require('ws'); | ||
| jest.setTimeout(30 * 1000); | ||
| const testingClients = []; | ||
| function getClient(done) { | ||
| const c = new __1.Client(); | ||
| c.setUnrecoverableErrorHandler(done); | ||
| testingClients.push(c); | ||
| return c; | ||
| } | ||
| const getConnectionMetadata = async () => ({ | ||
| ...(0, genConnectionMetadata_1.default)(), | ||
| error: null, | ||
| }); | ||
| afterAll(() => { | ||
| testingClients.forEach((c) => c.destroy()); | ||
| }); | ||
| (0, concurrent_1.concurrent)("interlaced connections don't throw - abort during case", async (done) => { | ||
| let waitingPromise = null; | ||
| const waitingMetadata = (abortSignal) => { | ||
| if (waitingPromise) { | ||
| return waitingPromise; | ||
| } | ||
| waitingPromise = new Promise((resolve) => { | ||
| if (abortSignal.aborted) { | ||
| resolve({ | ||
| error: __1.FetchConnectionMetadataError.Aborted, | ||
| }); | ||
| return; | ||
| } | ||
| return getConnectionMetadata().then((r) => { | ||
| if (abortSignal.aborted) { | ||
| resolve({ | ||
| error: __1.FetchConnectionMetadataError.Aborted, | ||
| }); | ||
| return; | ||
| } | ||
| resolve(r); | ||
| }); | ||
| }); | ||
| return waitingPromise; | ||
| }; | ||
| let abortingPromise = null; | ||
| const abortingMetadata = () => { | ||
| if (abortingPromise) { | ||
| return abortingPromise; | ||
| } | ||
| abortingPromise = new Promise((resolve) => { | ||
| resolve({ | ||
| error: __1.FetchConnectionMetadataError.Aborted, | ||
| }); | ||
| }); | ||
| return abortingPromise; | ||
| }; | ||
| const client = getClient(done); | ||
| const ctx = { username: 'zyzz' }; | ||
| const params = { | ||
| fetchConnectionMetadata: getConnectionMetadata, | ||
| WebSocketClass: WebSocket, | ||
| context: ctx, | ||
| }; | ||
| client.open({ ...params, fetchConnectionMetadata: abortingMetadata }, (0, done_1.wrapWithDone)(done, () => { | ||
| throw new Error('Expected to never get here (abort+instant close).'); | ||
| })); | ||
| client.close(); | ||
| client.open({ ...params, fetchConnectionMetadata: waitingMetadata }, (0, done_1.wrapWithDone)(done, () => { | ||
| console.log('reached second client.open'); | ||
| })); | ||
| await abortingPromise; | ||
| client.close(); | ||
| await waitingPromise; | ||
| done(); | ||
| }); | ||
| (0, concurrent_1.concurrent)("interlaced connections don't throw - abort after case", async (done) => { | ||
| const waitingMetadata = (abortSignal) => { | ||
| return new Promise((resolve) => { | ||
| return getConnectionMetadata().then((r) => { | ||
| if (abortSignal.aborted) { | ||
| resolve({ | ||
| error: __1.FetchConnectionMetadataError.Aborted, | ||
| }); | ||
| } | ||
| resolve(r); | ||
| }); | ||
| }); | ||
| }; | ||
| let abortingPromise = null; | ||
| const abortingMetadata = () => { | ||
| if (abortingPromise) { | ||
| return abortingPromise; | ||
| } | ||
| abortingPromise = new Promise((resolve) => { | ||
| resolve({ | ||
| error: __1.FetchConnectionMetadataError.Aborted, | ||
| }); | ||
| }); | ||
| return abortingPromise; | ||
| }; | ||
| const client = getClient(done); | ||
| const ctx = { username: 'zyzz' }; | ||
| const params = { | ||
| fetchConnectionMetadata: getConnectionMetadata, | ||
| WebSocketClass: WebSocket, | ||
| context: ctx, | ||
| }; | ||
| client.open({ ...params, fetchConnectionMetadata: abortingMetadata }, (0, done_1.wrapWithDone)(done, () => { | ||
| throw new Error('Expected to never get here (abort+instant close).'); | ||
| })); | ||
| client.close(); | ||
| client.open({ ...params, fetchConnectionMetadata: waitingMetadata }, (0, done_1.wrapWithDone)(done, () => { | ||
| throw new Error('Expected to never get here (instant close).'); | ||
| })); | ||
| client.close(); | ||
| await abortingPromise; | ||
| done(); | ||
| }); | ||
| //# sourceMappingURL=regressions.test.js.map |
| {"version":3,"file":"regressions.test.js","sourceRoot":"","sources":["../../src/__tests__/regressions.test.ts"],"names":[],"mappings":"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"} |
| export {}; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const client_1 = require("../client"); | ||
| const types_1 = require("../types"); | ||
| describe('sortByPriority', () => { | ||
| [ | ||
| { | ||
| input: [{ priority: types_1.ChannelRequestPriority.Low }, { priority: types_1.ChannelRequestPriority.High }], | ||
| expected: [ | ||
| { priority: types_1.ChannelRequestPriority.High }, | ||
| { priority: types_1.ChannelRequestPriority.Low }, | ||
| ], | ||
| }, | ||
| { | ||
| input: [ | ||
| { priority: types_1.ChannelRequestPriority.Low }, | ||
| { priority: types_1.ChannelRequestPriority.Medium }, | ||
| ], | ||
| expected: [ | ||
| { priority: types_1.ChannelRequestPriority.Medium }, | ||
| { priority: types_1.ChannelRequestPriority.Low }, | ||
| ], | ||
| }, | ||
| { | ||
| input: [ | ||
| { priority: types_1.ChannelRequestPriority.Medium }, | ||
| { priority: types_1.ChannelRequestPriority.High }, | ||
| ], | ||
| expected: [ | ||
| { priority: types_1.ChannelRequestPriority.High }, | ||
| { priority: types_1.ChannelRequestPriority.Medium }, | ||
| ], | ||
| }, | ||
| ].forEach(({ input, expected }, index) => { | ||
| it(`sorts by priority: ${index}`, () => { | ||
| expect(input.sort(client_1.sortByPriority)).toEqual(expected); | ||
| }); | ||
| }); | ||
| }); | ||
| //# sourceMappingURL=sortByPriority.test.js.map |
| {"version":3,"file":"sortByPriority.test.js","sourceRoot":"","sources":["../../src/__tests__/sortByPriority.test.ts"],"names":[],"mappings":";;AAAA,sCAA2C;AAC3C,oCAAkD;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B;QACE;YACE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,8BAAsB,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,8BAAsB,CAAC,IAAI,EAAE,CAAC;YAC5F,QAAQ,EAAE;gBACR,EAAE,QAAQ,EAAE,8BAAsB,CAAC,IAAI,EAAE;gBACzC,EAAE,QAAQ,EAAE,8BAAsB,CAAC,GAAG,EAAE;aACzC;SACF;QACD;YACE,KAAK,EAAE;gBACL,EAAE,QAAQ,EAAE,8BAAsB,CAAC,GAAG,EAAE;gBACxC,EAAE,QAAQ,EAAE,8BAAsB,CAAC,MAAM,EAAE;aAC5C;YACD,QAAQ,EAAE;gBACR,EAAE,QAAQ,EAAE,8BAAsB,CAAC,MAAM,EAAE;gBAC3C,EAAE,QAAQ,EAAE,8BAAsB,CAAC,GAAG,EAAE;aACzC;SACF;QACD;YACE,KAAK,EAAE;gBACL,EAAE,QAAQ,EAAE,8BAAsB,CAAC,MAAM,EAAE;gBAC3C,EAAE,QAAQ,EAAE,8BAAsB,CAAC,IAAI,EAAE;aAC1C;YACD,QAAQ,EAAE;gBACR,EAAE,QAAQ,EAAE,8BAAsB,CAAC,IAAI,EAAE;gBACzC,EAAE,QAAQ,EAAE,8BAAsB,CAAC,MAAM,EAAE;aAC5C;SACF;KACF,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE;QACvC,EAAE,CAAC,sBAAsB,KAAK,EAAE,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAc,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} |
| export default class CrosisError extends Error { | ||
| readonly extras: Record<string, unknown> | null; | ||
| readonly tags: Record<string, string> | null; | ||
| constructor(message: string, extras?: Record<string, unknown> | null, tags?: Record<string, string> | null); | ||
| static fromError(error: Error): CrosisError; | ||
| } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| class CrosisError extends Error { | ||
| constructor(message, extras = null, tags = null) { | ||
| super(message); | ||
| this.name = 'CrosisError'; | ||
| this.extras = extras; | ||
| this.tags = tags; | ||
| } | ||
| static fromError(error) { | ||
| const crosisError = new CrosisError(error.message); | ||
| crosisError.stack = error.stack; | ||
| return crosisError; | ||
| } | ||
| } | ||
| exports.default = CrosisError; | ||
| //# sourceMappingURL=CrosisError.js.map |
| {"version":3,"file":"CrosisError.js","sourceRoot":"","sources":["../../src/util/CrosisError.ts"],"names":[],"mappings":";;AAAA,MAAqB,WAAY,SAAQ,KAAK;IAM5C,YACE,OAAe,EAEf,SAAyC,IAAI,EAC7C,OAAsC,IAAI;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAY;QAC3B,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAEhC,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAzBD,8BAyBC"} |
+166
-137
@@ -51,6 +51,5 @@ "use strict"; | ||
| context: ctx, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error, context }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, context }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(context).toBe(ctx); | ||
| expect(error).toEqual(null); | ||
| client.close(); | ||
@@ -81,7 +80,6 @@ return () => { | ||
| context: ctx, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error, context }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, context }) => { | ||
| expect(tryCount).toBe(2); | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(context).toBe(ctx); | ||
| expect(error).toEqual(null); | ||
| client.close(); | ||
@@ -110,6 +108,5 @@ return () => { | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(tryCount).toBe(2); | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toEqual(null); | ||
| client.close(); | ||
@@ -124,7 +121,14 @@ return () => { | ||
| const fetchConnectionMetadata = jest.fn(); | ||
| const onConnect = jest.fn(); | ||
| let reconnectCount = 0; | ||
| client.onDebugLog((log) => { | ||
| if (log.type !== 'breadcrumb' || log.message !== 'retrying') { | ||
| if (log.type === 'breadcrumb' && log.message === 'status:closed') { | ||
| expect(fetchConnectionMetadata).toHaveBeenCalledTimes(1); | ||
| expect(onConnect).not.toHaveBeenCalled(); | ||
| done(); | ||
| return; | ||
| } | ||
| if (log.type !== 'breadcrumb' || log.message !== 'status:retrying') { | ||
| return; | ||
| } | ||
| reconnectCount += 1; | ||
@@ -146,2 +150,3 @@ if (reconnectCount >= 2) { | ||
| conmanURL: 'http://invalid.example.com', | ||
| dotdevHostname: 'https://invalid-00-replittesting.invalid.replit.dev', | ||
| error: null, | ||
@@ -152,9 +157,3 @@ }; | ||
| context: null, | ||
| }, ({ error }) => { | ||
| expect(fetchConnectionMetadata).toHaveBeenCalledTimes(1); | ||
| expect(error).toBeTruthy(); | ||
| expect(error === null || error === void 0 ? void 0 : error.message).toBe('Failed to open'); | ||
| done(); | ||
| return () => { }; | ||
| }); | ||
| }, onConnect); | ||
| }); | ||
@@ -164,7 +163,14 @@ (0, concurrent_1.concurrent)('client retries but does not cache tokens', (done) => { | ||
| const fetchConnectionMetadata = jest.fn(); | ||
| const onConnect = jest.fn(); | ||
| let reconnectCount = 0; | ||
| client.onDebugLog((log) => { | ||
| if (log.type !== 'breadcrumb' || log.message !== 'retrying') { | ||
| if (log.type === 'breadcrumb' && log.message === 'status:closed') { | ||
| expect(fetchConnectionMetadata.mock.calls.length).toBeGreaterThan(1); | ||
| expect(onConnect).not.toHaveBeenCalled(); | ||
| done(); | ||
| return; | ||
| } | ||
| if (log.type !== 'breadcrumb' || log.message !== 'status:retrying') { | ||
| return; | ||
| } | ||
| reconnectCount += 1; | ||
@@ -185,2 +191,3 @@ if (reconnectCount >= 2) { | ||
| conmanURL: 'http://invalid.example.com', | ||
| dotdevHostname: 'https://invalid-00-replittesting.invalid.replit.dev', | ||
| error: null, | ||
@@ -191,9 +198,3 @@ }; | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ error }) => { | ||
| expect(fetchConnectionMetadata.mock.calls.length).toBeGreaterThan(1); | ||
| expect(error).toBeTruthy(); | ||
| expect(error === null || error === void 0 ? void 0 : error.message).toBe('Failed to open'); | ||
| done(); | ||
| return () => { }; | ||
| })); | ||
| }, onConnect); | ||
| }); | ||
@@ -206,5 +207,4 @@ (0, concurrent_1.concurrent)('client requests new connection metadata after intentional close', (done) => { | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toEqual(null); | ||
| client.close(); | ||
@@ -224,5 +224,4 @@ return () => { | ||
| context: null, | ||
| }, ({ channel: c2, error: e2 }) => { | ||
| }, ({ channel: c2 }) => { | ||
| expect(c2 === null || c2 === void 0 ? void 0 : c2.status).toBe('open'); | ||
| expect(e2).toEqual(null); | ||
| expect(didCallFetchConnectionMetadata).toBeTruthy(); | ||
@@ -251,5 +250,4 @@ client.close(); | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| clientOpenCount += 1; | ||
| expect(error).toEqual(null); | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
@@ -275,5 +273,4 @@ if (!disconnectTriggered) { | ||
| })); | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| channelOpenCount += 1; | ||
| expect(error).toBe(null); | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
@@ -293,4 +290,3 @@ return (0, done_1.wrapWithDone)(done, ({ willReconnect }) => { | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(error).toEqual(null); | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
@@ -302,5 +298,4 @@ return (0, done_1.wrapWithDone)(done, () => { | ||
| })); | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toBe(null); | ||
| setTimeout(() => { | ||
@@ -326,4 +321,3 @@ close(); | ||
| context, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(error).toEqual(null); | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
@@ -340,5 +334,4 @@ return (0, done_1.wrapWithDone)(done, () => { | ||
| }), | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toBe(null); | ||
| setTimeout((0, done_1.wrapWithDone)(done, () => { | ||
@@ -363,4 +356,3 @@ close(); | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(error).toEqual(null); | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
@@ -372,5 +364,4 @@ return (0, done_1.wrapWithDone)(done, () => { | ||
| })); | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toBe(null); | ||
| close(); | ||
@@ -393,4 +384,3 @@ expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('closing'); | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(error).toEqual(null); | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
@@ -402,5 +392,4 @@ return () => { | ||
| })); | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| const close = client.openChannel({ service: 'shell' }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toBe(null); | ||
| close(); | ||
@@ -429,4 +418,3 @@ expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('closing'); | ||
| context: ctx, | ||
| }, (0, done_1.wrapWithDone)(done, ({ error }) => { | ||
| expect(error).toBeNull(); | ||
| }, (0, done_1.wrapWithDone)(done, () => { | ||
| setTimeout(() => { | ||
@@ -456,6 +444,5 @@ expect(skipfn).toHaveBeenCalledTimes(1); | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| clientOpenCount += 1; | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toEqual(null); | ||
| if (unexpectedDisconnectTriggered) { | ||
@@ -476,3 +463,3 @@ client.close(); | ||
| service: 'shell', | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| if (!unexpectedDisconnectTriggered) { | ||
@@ -483,3 +470,2 @@ setTimeout(() => { | ||
| }); | ||
| expect(error).toBe(null); | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
@@ -489,4 +475,3 @@ channelOpenCount += 1; | ||
| } | ||
| expect(error).toBeTruthy(); | ||
| expect(error === null || error === void 0 ? void 0 : error.message).toBe('Failed to open'); | ||
| done(new Error('Expected not to get here.')); | ||
| })); | ||
@@ -558,10 +543,8 @@ }); | ||
| const name = Math.random().toString(); | ||
| let calledFirstWithError = false; | ||
| const close = client.openChannel({ name, service: 'exec' }, ({ error }) => { | ||
| calledFirstWithError = Boolean(error); | ||
| }); | ||
| const firstOnConnect = jest.fn(); | ||
| const close = client.openChannel({ name, service: 'exec' }, firstOnConnect); | ||
| close(); | ||
| client.openChannel({ name, service: 'exec' }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel).toBeTruthy(); | ||
| expect(calledFirstWithError).toBeTruthy(); | ||
| expect(firstOnConnect).not.toHaveBeenCalled(); | ||
| client.close(); | ||
@@ -579,3 +562,3 @@ done(); | ||
| }); | ||
| (0, concurrent_1.concurrent)('allows opening channel with the same name after others are closing others and client is connected', (done) => { | ||
| (0, concurrent_1.concurrent)('allows opening channel with the same name after closing (connected, wait for open)', (done) => { | ||
| const client = getClient(done); | ||
@@ -589,7 +572,49 @@ client.open({ | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ error }) => { | ||
| if (error) { | ||
| done(error); | ||
| return () => { }; | ||
| } | ||
| }, (0, done_1.wrapWithDone)(done, () => { | ||
| (async () => { | ||
| const name = Math.random().toString(); | ||
| let firstChannel; | ||
| await new Promise((resolve) => { | ||
| const close = client.openChannel({ name, service: 'exec' }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel).toBeTruthy(); | ||
| if (!channel) { | ||
| throw new Error('appease typescript'); | ||
| } | ||
| firstChannel = channel; | ||
| close(); | ||
| expect(firstChannel.status).toEqual('closing'); | ||
| resolve(); | ||
| })); | ||
| }); | ||
| const close2 = client.openChannel({ name, service: 'exec' }, (0, done_1.wrapWithDone)(done, ({ channel: secondChannel }) => { | ||
| expect(firstChannel).toBeTruthy(); | ||
| expect(secondChannel).toBeTruthy(); | ||
| expect(secondChannel === null || secondChannel === void 0 ? void 0 : secondChannel.status).toEqual('open'); | ||
| expect(secondChannel).not.toEqual(firstChannel); | ||
| close2(); | ||
| expect(secondChannel === null || secondChannel === void 0 ? void 0 : secondChannel.status).toEqual('closing'); | ||
| const close3 = client.openChannel({ name, service: 'exec' }, (0, done_1.wrapWithDone)(done, ({ channel: finalChannel }) => { | ||
| expect(finalChannel).toBeTruthy(); | ||
| expect(finalChannel === null || finalChannel === void 0 ? void 0 : finalChannel.status).toEqual('open'); | ||
| expect(finalChannel).not.toEqual(firstChannel); | ||
| expect(finalChannel).not.toEqual(secondChannel); | ||
| close3(); | ||
| client.close(); | ||
| done(); | ||
| })); | ||
| })); | ||
| })(); | ||
| return () => { }; | ||
| })); | ||
| }); | ||
| (0, concurrent_1.concurrent)('allows opening channel with the same name after closing (connected, do not wait for open)', (done) => { | ||
| const client = getClient(done); | ||
| client.open({ | ||
| fetchConnectionMetadata: () => Promise.resolve({ | ||
| ...(0, genConnectionMetadata_1.default)(), | ||
| error: null, | ||
| }), | ||
| WebSocketClass: WebSocket, | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, () => { | ||
| const name = Math.random().toString(); | ||
@@ -600,11 +625,9 @@ let firstChannel; | ||
| if (!channel) { | ||
| throw new Error('apease typescript'); | ||
| throw new Error('appease typescript'); | ||
| } | ||
| firstChannel = channel; | ||
| expect(firstChannel.status).toEqual('closing'); | ||
| })); | ||
| close(); | ||
| const close2 = client.openChannel({ name, service: 'exec' }, (0, done_1.wrapWithDone)(done, ({ channel: secondChannel }) => { | ||
| expect(firstChannel).toBeTruthy(); | ||
| expect(secondChannel).toBeTruthy(); | ||
| expect(firstChannel).not.toEqual(secondChannel); | ||
| expect(secondChannel === null || secondChannel === void 0 ? void 0 : secondChannel.status).toEqual('open'); | ||
@@ -648,3 +671,3 @@ expect(secondChannel).not.toEqual(firstChannel); | ||
| if (firstOpened) { | ||
| doneOnce(new Error('exepected channel to open only once')); | ||
| doneOnce(new Error('expected channel to open only once')); | ||
| return; | ||
@@ -660,3 +683,3 @@ } | ||
| if (secondOpened) { | ||
| doneOnce(new Error('exepected channel to open only once')); | ||
| doneOnce(new Error('expected channel to open only once')); | ||
| return; | ||
@@ -683,4 +706,3 @@ } | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(error).toEqual(null); | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toEqual('open'); | ||
@@ -716,2 +738,41 @@ timesConnected += 1; | ||
| }); | ||
| (0, concurrent_1.concurrent)('client handles user handled (expectReconnect = true) reconnects', async (done) => { | ||
| const client = getClient(done); | ||
| const connectArgs = { | ||
| fetchConnectionMetadata: getConnectionMetadata, | ||
| WebSocketClass: WebSocket, | ||
| context: null, | ||
| }; | ||
| let hasClosed = false; | ||
| await new Promise((resolve) => { | ||
| client.open(connectArgs, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toEqual('open'); | ||
| if (!channel) { | ||
| throw new Error('Expected channel to be defined'); | ||
| } | ||
| resolve(channel); | ||
| if (!hasClosed) { | ||
| client.close({ | ||
| expectReconnect: true, | ||
| }); | ||
| } | ||
| else { | ||
| client.close(); | ||
| } | ||
| return (closeReason) => { | ||
| if (closeReason.initiator !== 'client') { | ||
| throw new Error('Expected "client" initiator'); | ||
| } | ||
| if (hasClosed) { | ||
| expect(closeReason.willReconnect).toEqual(false); | ||
| done(); | ||
| } | ||
| else { | ||
| expect(closeReason.willReconnect).toEqual(true); | ||
| hasClosed = true; | ||
| } | ||
| }; | ||
| })); | ||
| }); | ||
| }); | ||
| (0, concurrent_1.concurrent)('client is closed while reconnecting', (done) => { | ||
@@ -721,3 +782,3 @@ const onOpen = jest.fn(); | ||
| client.onDebugLog((log) => { | ||
| if (log.type === 'breadcrumb' && log.message === 'reconnecting') { | ||
| if (log.type === 'breadcrumb' && log.message === 'status:reconnecting') { | ||
| setTimeout(() => { | ||
@@ -746,34 +807,2 @@ client.close(); | ||
| }); | ||
| (0, concurrent_1.concurrent)('closing before ever connecting', (done) => { | ||
| const client = getClient(done); | ||
| client.onDebugLog((log) => { | ||
| if (log.type === 'breadcrumb' && log.message === 'connecting') { | ||
| setTimeout(() => { | ||
| client.close(); | ||
| }); | ||
| } | ||
| }); | ||
| const open = jest.fn(); | ||
| const openError = jest.fn(); | ||
| const close = jest.fn(); | ||
| client.open({ | ||
| fetchConnectionMetadata: getConnectionMetadata, | ||
| WebSocketClass: WebSocket, | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ error }) => { | ||
| if (error) { | ||
| openError(); | ||
| expect(open).not.toHaveBeenCalled(); | ||
| expect(openError).toHaveBeenCalledTimes(1); | ||
| expect(close).not.toHaveBeenCalled(); | ||
| done(); | ||
| } | ||
| else { | ||
| open(); | ||
| } | ||
| return () => { | ||
| close(); | ||
| }; | ||
| })); | ||
| }); | ||
| (0, concurrent_1.concurrent)('fallback to polling', (done) => { | ||
@@ -784,3 +813,3 @@ const client = getClient(done); | ||
| client.onDebugLog((log) => { | ||
| if (log.type === 'breadcrumb' && log.message === 'polling fallback') { | ||
| if (log.type === 'breadcrumb' && log.message === 'websocket:polling fallback') { | ||
| didLogFallback = true; | ||
@@ -798,4 +827,3 @@ } | ||
| pollingHost: 'gp-v2.replit.com', | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(error).toBeNull(); | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel).not.toBeNull(); | ||
@@ -808,6 +836,14 @@ expect(didLogFallback).toBe(true); | ||
| })); | ||
| }, 50000); | ||
| }, 70000); | ||
| (0, concurrent_1.concurrent)('does not fallback to polling if host is unset', (done) => { | ||
| const client = getClient(done); | ||
| const onConnect = jest.fn(); | ||
| client.setUnrecoverableErrorHandler(() => { }); | ||
| client.onDebugLog((log) => { | ||
| if (log.type === 'breadcrumb' && log.message === 'status:closed') { | ||
| expect(didLogFallback).toBe(false); | ||
| expect(onConnect).not.toHaveBeenCalled(); | ||
| done(); | ||
| } | ||
| }); | ||
| const WebsocketThatNeverConnects = getWebsocketClassThatNeverConnects(); | ||
@@ -818,3 +854,3 @@ let didLogFallback = false; | ||
| if (log.type === 'breadcrumb' && | ||
| log.message === 'connecting' && | ||
| log.message === 'status:connecting' && | ||
| ((_a = log.data) === null || _a === void 0 ? void 0 : _a.connectTries) === 4) { | ||
@@ -825,3 +861,3 @@ setTimeout(() => { | ||
| } | ||
| if (log.type === 'breadcrumb' && log.message === 'polling fallback') { | ||
| if (log.type === 'breadcrumb' && log.message === 'websocket:polling fallback') { | ||
| didLogFallback = true; | ||
@@ -835,8 +871,3 @@ } | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(didLogFallback).toBe(false); | ||
| expect(channel).toBeNull(); | ||
| expect(error).not.toBeNull(); | ||
| done(); | ||
| })); | ||
| }, onConnect); | ||
| }, 40000); | ||
@@ -848,3 +879,3 @@ (0, concurrent_1.concurrent)('cancels connection timeout when closing', (done) => { | ||
| client.onDebugLog((log) => { | ||
| if (log.type === 'breadcrumb' && log.message === 'connecting') { | ||
| if (log.type === 'breadcrumb' && log.message === 'status:connecting') { | ||
| setTimeout(() => { | ||
@@ -872,3 +903,3 @@ client.close(); | ||
| client.setUnrecoverableErrorHandler((0, done_1.wrapWithDone)(done, (e) => { | ||
| expect(chan0Cb).toHaveBeenCalledTimes(1); | ||
| expect(chan0Cb).toHaveBeenCalledTimes(0); | ||
| expect(e.message).toContain('fail'); | ||
@@ -888,2 +919,10 @@ done(); | ||
| const onAbort = jest.fn(); | ||
| const onConnect = jest.fn(); | ||
| client.onDebugLog((log) => { | ||
| if (log.type === 'breadcrumb' && log.message === 'status:closed') { | ||
| expect(onAbort).toHaveBeenCalledTimes(1); | ||
| expect(onConnect).not.toHaveBeenCalled(); | ||
| done(); | ||
| } | ||
| }); | ||
| client.open({ | ||
@@ -903,10 +942,3 @@ fetchConnectionMetadata: (abortSignal) => new Promise((r) => { | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| expect(channel).toBe(null); | ||
| expect(error).toBeTruthy(); | ||
| expect(error === null || error === void 0 ? void 0 : error.message).toBe('Failed to open'); | ||
| expect(onAbort).toHaveBeenCalledTimes(1); | ||
| done(); | ||
| return () => { }; | ||
| })); | ||
| }, onConnect); | ||
| }); | ||
@@ -932,8 +964,3 @@ (0, concurrent_1.concurrent)('can close and open in synchronously without aborting fetch token', (done) => { | ||
| expect(onAbort).toHaveBeenCalledTimes(1); | ||
| expect(firstChan0Cb).toHaveBeenCalledTimes(1); | ||
| expect(firstChan0Cb).toHaveBeenLastCalledWith(expect.objectContaining({ | ||
| channel: null, | ||
| context: null, | ||
| error: expect.any(Error), | ||
| })); | ||
| expect(firstChan0Cb).toHaveBeenCalledTimes(0); | ||
| client.open({ | ||
@@ -943,8 +970,7 @@ fetchConnectionMetadata: getConnectionMetadata, | ||
| context: null, | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel, error }) => { | ||
| }, (0, done_1.wrapWithDone)(done, ({ channel }) => { | ||
| expect(channel === null || channel === void 0 ? void 0 : channel.status).toBe('open'); | ||
| expect(error).toEqual(null); | ||
| client.close(); | ||
| return (0, done_1.wrapWithDone)(done, () => { | ||
| expect(firstChan0Cb).toHaveBeenCalledTimes(1); | ||
| expect(firstChan0Cb).toHaveBeenCalledTimes(0); | ||
| done(); | ||
@@ -959,2 +985,5 @@ }); | ||
| client.onBootStatus((0, done_1.wrapWithDone)(done, (bootStatus) => { | ||
| if (bootStatus.stage === protocol_1.api.BootStatus.Stage.PROXY) { | ||
| return; | ||
| } | ||
| count++; | ||
@@ -961,0 +990,0 @@ if (count === 1) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"} |
@@ -37,2 +37,3 @@ "use strict"; | ||
| const server = new jest_websocket_mock_1.default(addr + '/wsv2/'); | ||
| const onConnect = jest.fn(); | ||
| let tryCount = 0; | ||
@@ -50,7 +51,8 @@ const connectionMetadata = genConnectionMetadataWithGurl(addr); | ||
| context: ctx, | ||
| }, ({ error }) => { | ||
| expect(tryCount).toBe(1); | ||
| expect(error === null || error === void 0 ? void 0 : error.message).toBe('Failed to open'); | ||
| done(); | ||
| return () => { }; | ||
| }, onConnect); | ||
| client.onDebugLog((log) => { | ||
| if (log.type === 'breadcrumb' && log.message === 'onUnrecoverableError') { | ||
| expect(tryCount).toBe(1); | ||
| done(); | ||
| } | ||
| }); | ||
@@ -57,0 +59,0 @@ server.on('connection', function () { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../src/__tests__/retry.test.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"retry.test.js","sourceRoot":"","sources":["../../src/__tests__/retry.test.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"concurrent.js","sourceRoot":"","sources":["../../src/__testutils__/concurrent.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CACxB,IAAY,EACZ,EAAqD,EACrD,OAAgB;IAEhB,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,GAAG,EAAE,CAEH,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,SAAS,IAAI,CAAC,GAAS;YACrB,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;QACH,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI;YACF,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;SAChB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;IACH,CAAC,CAAC,EACJ,OAAO,CACR,CAAC;AACJ,CAAC;AA1BD,gCA0BC"} | ||
| {"version":3,"file":"concurrent.js","sourceRoot":"","sources":["../../src/__testutils__/concurrent.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CACxB,IAAY,EACZ,EAAqD,EACrD,OAAgB;IAEhB,IAAI,CAAC,UAAU,CACb,IAAI,EACJ,GAAG,EAAE,CAEH,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAE1C,SAAS,IAAI,CAAC,GAAS;YACrB,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;QACH,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI;YACF,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;SAChB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;IACH,CAAC,CAAC,EACJ,OAAO,CACR,CAAC;AACJ,CAAC;AA3BD,gCA2BC"} |
| import { api } from '@replit/protocol'; | ||
| import type { ChannelCloseReason, RequestResult } from './types'; | ||
| import CrosisError from './util/CrosisError'; | ||
| export declare class Channel { | ||
| id: number; | ||
| readonly name?: string; | ||
| readonly service?: string; | ||
| readonly service: string; | ||
| status: 'open' | 'closed' | 'closing'; | ||
@@ -15,5 +16,5 @@ private sendToContainer; | ||
| name?: string; | ||
| service?: string; | ||
| service: string; | ||
| send: (cmd: api.Command) => void; | ||
| onUnrecoverableError: (e: Error) => void; | ||
| onUnrecoverableError: (e: CrosisError) => void; | ||
| }); | ||
@@ -25,2 +26,3 @@ onCommand: (listener: (cmd: api.Command) => void) => (() => void); | ||
| handleClose: (reason: ChannelCloseReason) => void; | ||
| private getExtras; | ||
| } |
+21
-3
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Channel = void 0; | ||
| const protocol_1 = require("@replit/protocol"); | ||
| const CrosisError_1 = __importDefault(require("./util/CrosisError")); | ||
| class Channel { | ||
@@ -9,3 +13,3 @@ constructor({ id, name, service, send, onUnrecoverableError, }) { | ||
| if (this.status === 'closed') { | ||
| const e = new Error('Trying to listen to commands on a closed channel'); | ||
| const e = new CrosisError_1.default('Trying to listen to commands on a closed channel for ' + this.service, this.getExtras(), { service: this.service }); | ||
| this.onUnrecoverableError(e); | ||
@@ -21,3 +25,3 @@ throw e; | ||
| if (this.status === 'closed') { | ||
| const e = new Error('Calling send on closed channel'); | ||
| const e = new CrosisError_1.default('Calling send on closed channel for ' + this.service, this.getExtras(cmdJson), { service: this.service }); | ||
| this.onUnrecoverableError(e); | ||
@@ -27,3 +31,3 @@ throw e; | ||
| if (this.status === 'closing') { | ||
| const e = new Error('Cannot send any more commands after a close request'); | ||
| const e = new CrosisError_1.default('Cannot send any more commands after a close request on channel for ' + this.service, this.getExtras(cmdJson), { service: this.service }); | ||
| this.onUnrecoverableError(e); | ||
@@ -66,2 +70,16 @@ throw e; | ||
| }; | ||
| this.getExtras = (cmd = null) => { | ||
| const commandExtras = cmd | ||
| ? { | ||
| command: cmd, | ||
| commandRef: cmd.ref, | ||
| commandKeys: Object.keys(cmd), | ||
| } | ||
| : {}; | ||
| return { | ||
| ...commandExtras, | ||
| channelName: this.name, | ||
| channelId: this.id, | ||
| }; | ||
| }; | ||
| this.id = id; | ||
@@ -68,0 +86,0 @@ this.name = name; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"} |
+16
-5
| import { api } from '@replit/protocol'; | ||
| import { Channel } from './channel'; | ||
| import { ConnectionState } from './types'; | ||
| import { ConnectionState, ChannelRequestPriority } from './types'; | ||
| import type { GovalMetadata, OpenChannelCb, ChannelOptions, DebugLog, OpenOptions } from './types'; | ||
| import CrosisError from './util/CrosisError'; | ||
| export declare function sortByPriority<R extends { | ||
| priority: ChannelRequestPriority; | ||
| }>(a: R, b: R): number; | ||
| export declare class Client<Ctx = null> { | ||
| connectionState: ConnectionState; | ||
| private connectionState; | ||
| private connectionStateChangeFuncs; | ||
| private ws; | ||
@@ -18,6 +23,7 @@ private connectOptions; | ||
| private connectTimeoutId; | ||
| private fetchTokenAbortController; | ||
| private fetchTokenAbortControllers; | ||
| private destroyed; | ||
| private connectionMetadata; | ||
| private redirectInitiatorURL; | ||
| private connectionId; | ||
| constructor(); | ||
@@ -28,3 +34,5 @@ open: (options: OpenOptions<Ctx>, cb: OpenChannelCb<Ctx>) => void; | ||
| private requestCloseChannel; | ||
| close: () => void; | ||
| close: ({ expectReconnect }?: { | ||
| expectReconnect: boolean; | ||
| }) => void; | ||
| destroy: () => void; | ||
@@ -34,5 +42,8 @@ getChannel: (id: number) => Channel; | ||
| onDebugLog: (debugFunc: (log: DebugLog<Ctx>) => void) => (() => void); | ||
| private setConnectionState; | ||
| onConnectionStateChange: (connectionStateChangeFunc: (connectionState: ConnectionState) => void) => (() => void); | ||
| getConnectionState: () => ConnectionState; | ||
| onBootStatus: (bootStatusFunc: (command: api.BootStatus) => void) => (() => void); | ||
| onFirewallDenied: () => void; | ||
| setUnrecoverableErrorHandler: (onUnrecoverableError: (e: Error) => void) => void; | ||
| setUnrecoverableErrorHandler: (onUnrecoverableError: (e: CrosisError) => void) => void; | ||
| getConnectionMetadata: () => GovalMetadata | null; | ||
@@ -39,0 +50,0 @@ private connect; |
+293
-191
| "use strict"; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Client = void 0; | ||
| exports.Client = exports.sortByPriority = void 0; | ||
| const protocol_1 = require("@replit/protocol"); | ||
@@ -9,9 +12,8 @@ const channel_1 = require("./channel"); | ||
| const types_1 = require("./types"); | ||
| const CrosisError_1 = __importDefault(require("./util/CrosisError")); | ||
| const MAX_RETRY_COUNT = 10; | ||
| var ClientCloseReason; | ||
| (function (ClientCloseReason) { | ||
| ClientCloseReason["Intentional"] = "Intentional"; | ||
| ClientCloseReason["Disconnected"] = "Disconnected"; | ||
| ClientCloseReason["Error"] = "Error"; | ||
| })(ClientCloseReason || (ClientCloseReason = {})); | ||
| function sortByPriority(a, b) { | ||
| return a.priority - b.priority; | ||
| } | ||
| exports.sortByPriority = sortByPriority; | ||
| class Client { | ||
@@ -21,3 +23,3 @@ constructor() { | ||
| if (this.chan0Cb) { | ||
| const error = new Error('You must call `close` before opening the client again'); | ||
| const error = new CrosisError_1.default('You must call `close` before opening the client again'); | ||
| this.onUnrecoverableError(error); | ||
@@ -27,6 +29,7 @@ throw error; | ||
| if (this.destroyed) { | ||
| const error = new Error('Client has been destroyed and cannot be re-used'); | ||
| const error = new CrosisError_1.default('Client has been destroyed and cannot be re-used'); | ||
| this.onUnrecoverableError(error); | ||
| throw error; | ||
| } | ||
| this.connectionId++; | ||
| this.connectOptions = { | ||
@@ -40,9 +43,9 @@ timeout: 10000, | ||
| type: 'breadcrumb', | ||
| message: 'open', | ||
| data: { polling: false }, | ||
| message: 'status:open', | ||
| }); | ||
| this.chan0Cb = cb; | ||
| this.connect({ tryCount: 0, websocketFailureCount: 0 }); | ||
| this.connect({ tryCount: 0, websocketFailureCount: 0, connectionId: this.connectionId }); | ||
| }; | ||
| this.openChannel = (options, cb) => { | ||
| var _a; | ||
| const sameNameChanRequests = options.name | ||
@@ -52,3 +55,3 @@ ? this.channelRequests.filter((cr) => cr.options.name === options.name) | ||
| if (sameNameChanRequests.some((cr) => !cr.closeRequested)) { | ||
| const error = new Error(`Channel with name ${options.name} already opened`); | ||
| const error = new CrosisError_1.default(`Channel with name ${options.name} already opened`); | ||
| this.onUnrecoverableError(error); | ||
@@ -58,3 +61,3 @@ throw error; | ||
| if (this.destroyed) { | ||
| const error = new Error('Client has been destroyed and is unusable'); | ||
| const error = new CrosisError_1.default('Client has been destroyed and is unusable'); | ||
| this.onUnrecoverableError(error); | ||
@@ -70,9 +73,31 @@ throw error; | ||
| closeRequested: false, | ||
| priority: (_a = options.priority) !== null && _a !== void 0 ? _a : types_1.ChannelRequestPriority.Medium, | ||
| }; | ||
| this.channelRequests.push(channelRequest); | ||
| if (this.connectionState === types_1.ConnectionState.CONNECTED && !sameNameChanRequests.length) { | ||
| this.channelRequests.sort(sortByPriority); | ||
| if (this.getConnectionState() === types_1.ConnectionState.CONNECTED && !sameNameChanRequests.length) { | ||
| this.requestOpenChannel(channelRequest); | ||
| } | ||
| else { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'client:openChannel:delayed', | ||
| data: { | ||
| connectionState: this.getConnectionState(), | ||
| service: channelRequest.options.service, | ||
| name: channelRequest.options.name, | ||
| }, | ||
| }); | ||
| } | ||
| const closeChannel = () => { | ||
| if (channelRequest.closeRequested) { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'client:closeChannel:already requested', | ||
| data: { | ||
| channelId: channelRequest.channelId, | ||
| service: channelRequest.options.service, | ||
| name: channelRequest.options.name, | ||
| }, | ||
| }); | ||
| return; | ||
@@ -82,9 +107,14 @@ } | ||
| if (!channelRequest.isOpen) { | ||
| if (this.connectionState !== types_1.ConnectionState.CONNECTED) { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'client:closeChannel:channel not open', | ||
| data: { | ||
| connectionState: this.getConnectionState(), | ||
| channelId: channelRequest.channelId, | ||
| service: channelRequest.options.service, | ||
| name: channelRequest.options.name, | ||
| }, | ||
| }); | ||
| if (this.getConnectionState() !== types_1.ConnectionState.CONNECTED) { | ||
| this.channelRequests = this.channelRequests.filter((cr) => cr !== channelRequest); | ||
| channelRequest.openChannelCb({ | ||
| error: new Error('Channel closed before opening'), | ||
| channel: null, | ||
| context: this.connectOptions ? this.connectOptions.context : null, | ||
| }); | ||
| } | ||
@@ -100,3 +130,3 @@ return; | ||
| if (!this.connectOptions) { | ||
| this.onUnrecoverableError(new Error('Expected connectionOptions')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected connectionOptions')); | ||
| return; | ||
@@ -106,2 +136,10 @@ } | ||
| if (skip && skip(this.connectOptions.context)) { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'requestOpenChannel:explicit skip', | ||
| data: { | ||
| service: options.service, | ||
| name: options.name, | ||
| }, | ||
| }); | ||
| return; | ||
@@ -117,3 +155,3 @@ } | ||
| if (channelRequest.channelId) { | ||
| this.onUnrecoverableError(new Error('Unexpected channelId')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Unexpected channelId')); | ||
| return; | ||
@@ -124,2 +162,3 @@ } | ||
| : options.service(this.connectOptions.context); | ||
| const ref = Number(Math.random().toString().split('.')[1]).toString(36); | ||
| this.debug({ | ||
@@ -132,6 +171,6 @@ type: 'breadcrumb', | ||
| action, | ||
| ref, | ||
| }, | ||
| }); | ||
| const chan0 = this.getChannel(0); | ||
| const ref = Number(Math.random().toString().split('.')[1]).toString(36); | ||
| chan0.send({ | ||
@@ -151,19 +190,32 @@ ref, | ||
| if (cmd.openChanRes == null) { | ||
| this.onUnrecoverableError(new Error('Expected openChanRes on command')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected openChanRes on command')); | ||
| return; | ||
| } | ||
| const { id, state, error } = cmd.openChanRes; | ||
| this.debug({ type: 'breadcrumb', message: 'openChanres' }); | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'requestOpenChannel:openChanRes', | ||
| data: { | ||
| id, | ||
| state, | ||
| error, | ||
| ref, | ||
| }, | ||
| }); | ||
| if (!this.connectOptions) { | ||
| this.onUnrecoverableError(new Error('Expected connectionOptions')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected connectionOptions')); | ||
| return; | ||
| } | ||
| if (state === protocol_1.api.OpenChannelRes.State.ERROR) { | ||
| this.onUnrecoverableError(new Error(`Channel open resulted with an error: ${error || 'with no message'}`)); | ||
| this.onUnrecoverableError(new CrosisError_1.default(`Channel open resulted with an error: ${error || 'with no message'}`)); | ||
| return; | ||
| } | ||
| if (typeof id !== 'number' || typeof state !== 'number') { | ||
| this.onUnrecoverableError(new Error('Expected state and channel id')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected state and channel id')); | ||
| return; | ||
| } | ||
| if (this.channels[id] != null) { | ||
| this.onUnrecoverableError(new CrosisError_1.default(`Channel with id ${id} already exists`)); | ||
| return; | ||
| } | ||
| const channel = new channel_1.Channel({ | ||
@@ -182,6 +234,6 @@ id, | ||
| this.requestCloseChannel(channelRequest); | ||
| return; | ||
| } | ||
| channelRequest.cleanupCb = openChannelCb({ | ||
| channel, | ||
| error: null, | ||
| context: this.connectOptions.context, | ||
@@ -193,3 +245,3 @@ }); | ||
| if (!channelRequest.isOpen) { | ||
| this.onUnrecoverableError(new Error('Tried to request a channel close before opening')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Tried to request a channel close before opening')); | ||
| return; | ||
@@ -202,3 +254,3 @@ } | ||
| if (!chan0) { | ||
| this.onUnrecoverableError(new Error('Tried to request a channel close but there was no chan0')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Tried to request a channel close but there was no chan0')); | ||
| return; | ||
@@ -208,3 +260,3 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'requestChannelClose', | ||
| message: 'requestCloseChannel', | ||
| data: { | ||
@@ -225,3 +277,3 @@ id: channelId, | ||
| type: 'breadcrumb', | ||
| message: 'requestChannelClose:chan0Closed', | ||
| message: 'requestCloseChannel:chan0Closed', | ||
| data: { | ||
@@ -236,3 +288,3 @@ id: channelId, | ||
| if (res.closeChanRes == null) { | ||
| this.onUnrecoverableError(new Error('Expected closeChanRes')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected closeChanRes')); | ||
| return; | ||
@@ -242,7 +294,7 @@ } | ||
| if (id == null) { | ||
| this.onUnrecoverableError(new Error(`Expected id, got ${id}`)); | ||
| this.onUnrecoverableError(new CrosisError_1.default(`Expected id, got ${id}`)); | ||
| return; | ||
| } | ||
| if (id !== channelId) { | ||
| this.onUnrecoverableError(new Error(`Expected id from closeChanRes to be ${channelId} got ${id}`)); | ||
| this.onUnrecoverableError(new CrosisError_1.default(`Expected id from closeChanRes to be ${channelId} got ${id}`)); | ||
| return; | ||
@@ -252,3 +304,3 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'requestChannelClose:closeChanRes', | ||
| message: 'requestCloseChannel:closeChanRes', | ||
| data: { | ||
@@ -277,6 +329,9 @@ id: channelId, | ||
| }; | ||
| this.close = () => { | ||
| this.debug({ type: 'breadcrumb', message: 'user close' }); | ||
| this.close = ({ expectReconnect } = { expectReconnect: false }) => { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: expectReconnect ? 'close:temporary' : 'close:intentional', | ||
| }); | ||
| if (!this.chan0Cb || !this.connectOptions) { | ||
| const error = new Error('Must call client.open before closing'); | ||
| const error = new CrosisError_1.default('Must call client.open before closing'); | ||
| this.onUnrecoverableError(error); | ||
@@ -286,11 +341,21 @@ throw error; | ||
| this.connectionMetadata = null; | ||
| this.handleClose({ closeReason: ClientCloseReason.Intentional }); | ||
| if (expectReconnect) { | ||
| this.handleClose({ | ||
| closeReason: types_1.ClientCloseReason.Temporary, | ||
| }); | ||
| } | ||
| else { | ||
| this.handleClose({ closeReason: types_1.ClientCloseReason.Intentional }); | ||
| } | ||
| }; | ||
| this.destroy = () => { | ||
| this.destroyed = true; | ||
| this.debug({ type: 'breadcrumb', message: 'destroy' }); | ||
| if (this.connectionState !== types_1.ConnectionState.DISCONNECTED) { | ||
| this.close(); | ||
| this.debug({ type: 'breadcrumb', message: 'status:destroy' }); | ||
| if (this.getConnectionState() !== types_1.ConnectionState.DISCONNECTED) { | ||
| this.close({ | ||
| expectReconnect: false, | ||
| }); | ||
| } | ||
| this.debug = () => { }; | ||
| this.connectionStateChangeFuncs = []; | ||
| this.userUnrecoverableErrorHandler = null; | ||
@@ -303,3 +368,3 @@ this.channelRequests = []; | ||
| if (!chan) { | ||
| const error = new Error(`No channel with number ${id}`); | ||
| const error = new CrosisError_1.default(`No channel with number ${id}`); | ||
| this.onUnrecoverableError(error); | ||
@@ -322,2 +387,18 @@ throw error; | ||
| }; | ||
| this.setConnectionState = (connectionState) => { | ||
| this.connectionState = connectionState; | ||
| setTimeout(() => { | ||
| this.connectionStateChangeFuncs.forEach((f) => f(connectionState)); | ||
| }, 0); | ||
| }; | ||
| this.onConnectionStateChange = (connectionStateChangeFunc) => { | ||
| this.connectionStateChangeFuncs.push(connectionStateChangeFunc); | ||
| return () => { | ||
| const idx = this.connectionStateChangeFuncs.indexOf(connectionStateChangeFunc); | ||
| if (idx > -1) { | ||
| this.connectionStateChangeFuncs.splice(idx, 1); | ||
| } | ||
| }; | ||
| }; | ||
| this.getConnectionState = () => this.connectionState; | ||
| this.onBootStatus = (bootStatusFunc) => { | ||
@@ -333,3 +414,3 @@ this.bootStatusFuncs.push(bootStatusFunc); | ||
| this.onFirewallDenied = () => { | ||
| this.onUnrecoverableError(new Error("Can't connect to unfirewalled repl from firewall mode")); | ||
| this.onUnrecoverableError(new CrosisError_1.default("Can't connect to unfirewalled repl from firewall mode")); | ||
| }; | ||
@@ -340,6 +421,6 @@ this.setUnrecoverableErrorHandler = (onUnrecoverableError) => { | ||
| this.getConnectionMetadata = () => this.connectionMetadata; | ||
| this.connect = async ({ tryCount, websocketFailureCount, }) => { | ||
| this.connect = async ({ tryCount, websocketFailureCount, connectionId, }) => { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'connecting', | ||
| message: 'status:connecting', | ||
| data: { | ||
@@ -353,4 +434,4 @@ connectionState: this.connectionState, | ||
| }); | ||
| if (this.connectionState !== types_1.ConnectionState.DISCONNECTED) { | ||
| const error = new Error('Client must be disconnected to connect'); | ||
| if (this.getConnectionState() !== types_1.ConnectionState.DISCONNECTED) { | ||
| const error = new CrosisError_1.default('Client must be disconnected to connect'); | ||
| this.onUnrecoverableError(error); | ||
@@ -360,3 +441,3 @@ throw error; | ||
| if (this.ws) { | ||
| const error = new Error('Unexpected existing websocket instance'); | ||
| const error = new CrosisError_1.default('Unexpected existing websocket instance'); | ||
| this.onUnrecoverableError(error); | ||
@@ -366,3 +447,3 @@ throw error; | ||
| if (!this.connectOptions) { | ||
| const error = new Error('Expected connectionOptions'); | ||
| const error = new CrosisError_1.default('Expected connectionOptions'); | ||
| this.onUnrecoverableError(error); | ||
@@ -372,25 +453,26 @@ throw error; | ||
| if (!this.chan0Cb) { | ||
| this.onUnrecoverableError(new Error('Expected chan0Cb')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected chan0Cb')); | ||
| return; | ||
| } | ||
| if (this.chan0CleanupCb) { | ||
| this.onUnrecoverableError(new Error('Unexpected chan0CleanupCb, are you sure you closed')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Unexpected chan0CleanupCb, are you sure you closed')); | ||
| return; | ||
| } | ||
| if (this.channelRequests.some((cr) => cr.isOpen)) { | ||
| this.onUnrecoverableError(new Error('All channels should be closed when we connect')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('All channels should be closed when we connect')); | ||
| return; | ||
| } | ||
| if (Object.keys(this.channels).length) { | ||
| this.onUnrecoverableError(new Error('Found an an unexpected existing channels')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Found an an unexpected existing channels')); | ||
| return; | ||
| } | ||
| if (this.connectTimeoutId) { | ||
| this.onUnrecoverableError(new Error('Unexpected connectTimeoutId')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Unexpected connectTimeoutId')); | ||
| return; | ||
| } | ||
| this.connectionState = types_1.ConnectionState.CONNECTING; | ||
| this.setConnectionState(types_1.ConnectionState.CONNECTING); | ||
| const chan0 = new channel_1.Channel({ | ||
| id: 0, | ||
| name: 'chan0', | ||
| service: 'chan0', | ||
| onUnrecoverableError: this.onUnrecoverableError, | ||
@@ -413,8 +495,8 @@ send: this.send, | ||
| if (!this.connectOptions.reuseConnectionMetadata || this.connectionMetadata === null) { | ||
| if (this.fetchTokenAbortController) { | ||
| this.onUnrecoverableError(new Error('Expected fetchTokenAbortController to be null')); | ||
| if (this.fetchTokenAbortControllers.get(connectionId)) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected fetchTokenAbortController to be null')); | ||
| return; | ||
| } | ||
| const abortController = new AbortController(); | ||
| this.fetchTokenAbortController = abortController; | ||
| this.fetchTokenAbortControllers.set(connectionId, abortController); | ||
| let connectionMetadataFetchResult; | ||
@@ -426,5 +508,8 @@ try { | ||
| let err; | ||
| if (e instanceof Error) { | ||
| if (e instanceof CrosisError_1.default) { | ||
| err = e; | ||
| } | ||
| else if (e instanceof Error) { | ||
| err = new CrosisError_1.default(e.message); | ||
| } | ||
| else if (e && | ||
@@ -434,25 +519,21 @@ typeof e === 'object' && | ||
| typeof e.message === 'string') { | ||
| err = new Error(e.message); | ||
| err = new CrosisError_1.default(e.message); | ||
| } | ||
| else if (typeof e === 'string') { | ||
| err = new Error(e); | ||
| err = new CrosisError_1.default(e); | ||
| } | ||
| else { | ||
| err = new Error('Unknown error when fetching connection metadata'); | ||
| err = new CrosisError_1.default('Unknown error when fetching connection metadata'); | ||
| } | ||
| err = new CrosisError_1.default(err.message, { ...err.extras, from: 'fetchConnectionMetadata' }, err.tags); | ||
| this.onUnrecoverableError(err); | ||
| return; | ||
| } | ||
| this.fetchTokenAbortController = null; | ||
| this.fetchTokenAbortControllers.delete(connectionId); | ||
| const connectionMetadata = connectionMetadataFetchResult; | ||
| const aborted = connectionMetadata.error === types_1.FetchConnectionMetadataError.Aborted; | ||
| if (abortController.signal.aborted !== aborted) { | ||
| if (abortController.signal.aborted) { | ||
| this.onUnrecoverableError(new Error('Expected abort returned from fetchConnectionMetadata to be truthy when the controller aborts')); | ||
| return; | ||
| } | ||
| this.onUnrecoverableError(new Error('Abort should only be truthy returned when the abort signal is triggered')); | ||
| if (abortController.signal.aborted) { | ||
| return; | ||
| } | ||
| if (connectionMetadata.error === types_1.FetchConnectionMetadataError.Aborted) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('Client received abort from fetchConnectionMetadata, but the request was not aborted.')); | ||
| return; | ||
@@ -465,12 +546,14 @@ } | ||
| chan0, | ||
| error: new Error('Retriable error'), | ||
| error: new CrosisError_1.default('Retriable error'), | ||
| connectionId: connectionId, | ||
| }); | ||
| return; | ||
| } | ||
| if (this.connectionState !== types_1.ConnectionState.CONNECTING) { | ||
| this.onUnrecoverableError(new Error('Client was closed before connecting')); | ||
| if (this.getConnectionState() !== types_1.ConnectionState.CONNECTING) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('Client entered wrong state during connect(); connected=' + | ||
| (this.getConnectionState() === types_1.ConnectionState.CONNECTED ? 'true' : 'false'))); | ||
| return; | ||
| } | ||
| if (connectionMetadata.error) { | ||
| this.onUnrecoverableError(connectionMetadata.error); | ||
| this.onUnrecoverableError(CrosisError_1.default.fromError(connectionMetadata.error)); | ||
| return; | ||
@@ -483,3 +566,3 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'polling fallback', | ||
| message: 'websocket:polling fallback', | ||
| }); | ||
@@ -501,10 +584,10 @@ } | ||
| if (!onFailed) { | ||
| this.onUnrecoverableError(new Error('Got websocket error but no `onFailed` cb')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Got websocket error but no `onFailed` cb')); | ||
| return; | ||
| } | ||
| onFailed(new Error('WebSocket errored')); | ||
| onFailed(new CrosisError_1.default('WebSocket errored')); | ||
| }; | ||
| ws.onclose = (event) => { | ||
| if (!onFailed) { | ||
| this.onUnrecoverableError(new Error('Got websocket closure but no `onFailed` cb')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Got websocket closure but no `onFailed` cb')); | ||
| return; | ||
@@ -538,3 +621,3 @@ } | ||
| } | ||
| onFailed(new Error(errorMessage), retriable); | ||
| onFailed(new CrosisError_1.default(errorMessage), retriable); | ||
| }; | ||
@@ -552,3 +635,3 @@ ws.onopen = () => { | ||
| cancelTimeout = () => { | ||
| this.debug({ type: 'breadcrumb', message: 'cancel timeout' }); | ||
| this.debug({ type: 'breadcrumb', message: 'timeout:cancel' }); | ||
| if (this.connectTimeoutId) { | ||
@@ -560,3 +643,3 @@ clearTimeout(this.connectTimeoutId); | ||
| resetTimeout = () => { | ||
| this.debug({ type: 'breadcrumb', message: 'reset timeout' }); | ||
| this.debug({ type: 'breadcrumb', message: 'timeout:reset' }); | ||
| if (this.connectTimeoutId) { | ||
@@ -566,8 +649,8 @@ clearTimeout(this.connectTimeoutId); | ||
| this.connectTimeoutId = setTimeout(() => { | ||
| this.debug({ type: 'breadcrumb', message: 'connect timeout' }); | ||
| this.debug({ type: 'breadcrumb', message: 'timeout:hit' }); | ||
| if (!onFailed) { | ||
| this.onUnrecoverableError(new Error('Connecting timed out but there was no `onFailed` cb')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Connecting timed out but there was no `onFailed` cb')); | ||
| return; | ||
| } | ||
| onFailed(new Error('timeout')); | ||
| onFailed(new CrosisError_1.default('timeout')); | ||
| }, timeout); | ||
@@ -588,3 +671,3 @@ }; | ||
| if (cmd.containerState.state == null) { | ||
| this.onUnrecoverableError(new Error('Got containterState but state was not defined')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Got containerState but state was not defined')); | ||
| return; | ||
@@ -595,3 +678,3 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'containerState', | ||
| message: 'container:state', | ||
| data: state, | ||
@@ -604,25 +687,3 @@ }); | ||
| cancelTimeout(); | ||
| if (!this.connectOptions) { | ||
| this.onUnrecoverableError(new Error('Expected connectionOptions')); | ||
| return; | ||
| } | ||
| if (!chan0) { | ||
| this.onUnrecoverableError(new Error('Expected chan0 to be truthy')); | ||
| return; | ||
| } | ||
| if (!this.chan0Cb) { | ||
| this.onUnrecoverableError(new Error('Expected chan0Cb to be truthy')); | ||
| return; | ||
| } | ||
| this.handleConnect(); | ||
| const originalClose = this.close; | ||
| this.close = () => setTimeout(() => { | ||
| originalClose(); | ||
| }, 0); | ||
| this.chan0CleanupCb = this.chan0Cb({ | ||
| channel: chan0, | ||
| error: null, | ||
| context: this.connectOptions.context, | ||
| }); | ||
| this.close = originalClose; | ||
| this.handleConnect(chan0); | ||
| break; | ||
@@ -632,6 +693,6 @@ } | ||
| if (!onFailed) { | ||
| this.onUnrecoverableError(new Error('Got SLEEP but there was no `onFailed` cb')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Got SLEEP but there was no `onFailed` cb')); | ||
| return; | ||
| } | ||
| onFailed(new Error('Got SLEEP as container state')); | ||
| onFailed(new CrosisError_1.default('Got SLEEP as container state')); | ||
| break; | ||
@@ -649,3 +710,3 @@ default: | ||
| if (this.connectOptions !== currentConnectOptions || this.getChannel(0) !== currentChan0) { | ||
| this.onUnrecoverableError(new Error('onFailed got called but client is in a different connecting context')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('onFailed got called but client is in a different connecting context')); | ||
| return; | ||
@@ -662,16 +723,17 @@ } | ||
| error, | ||
| connectionId, | ||
| }); | ||
| }; | ||
| }; | ||
| this.retryConnect = ({ tryCount, websocketFailureCount, chan0, error, }) => { | ||
| this.retryConnect = ({ tryCount, websocketFailureCount, chan0, error, connectionId, }) => { | ||
| if (this.retryTimeoutId) { | ||
| this.onUnrecoverableError(new Error('Unexpected existing retryTimeoutId')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Unexpected existing retryTimeoutId')); | ||
| return; | ||
| } | ||
| if (!this.chan0Cb) { | ||
| this.onUnrecoverableError(new Error('Expected chan0Cb when scheduling a retry')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected chan0Cb when scheduling a retry')); | ||
| return; | ||
| } | ||
| if (!this.connectOptions) { | ||
| this.onUnrecoverableError(new Error('Expected connectOptions when scheduling a retry')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected connectOptions when scheduling a retry')); | ||
| return; | ||
@@ -682,3 +744,3 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'redirectInitiatorFallback', | ||
| message: 'client:redirectInitiatorFallback', | ||
| data: { | ||
@@ -696,3 +758,3 @@ connectionState: this.connectionState, | ||
| if (!this.chan0Cb) { | ||
| this.onUnrecoverableError(new Error('Scheduled retry is called after we closed?')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Scheduled retry is called after we closed?')); | ||
| return; | ||
@@ -703,3 +765,3 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'retrying', | ||
| message: 'status:retrying', | ||
| data: { | ||
@@ -715,4 +777,4 @@ connectionState: this.connectionState, | ||
| delete this.channels[0]; | ||
| this.connectionState = types_1.ConnectionState.DISCONNECTED; | ||
| this.connect({ tryCount, websocketFailureCount }); | ||
| this.setConnectionState(types_1.ConnectionState.DISCONNECTED); | ||
| this.connect({ tryCount, websocketFailureCount, connectionId }); | ||
| }, this.connectOptions.getNextRetryDelayMs(tryCount)); | ||
@@ -737,10 +799,3 @@ }; | ||
| if (this.ws == null) { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'calling send on a closed client', | ||
| data: { | ||
| channelId: cmd.channel, | ||
| }, | ||
| }); | ||
| this.onUnrecoverableError(new Error('Calling send on a closed client')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Calling send on a closed client')); | ||
| return; | ||
@@ -768,12 +823,22 @@ } | ||
| }; | ||
| this.handleConnect = () => { | ||
| this.connectionState = types_1.ConnectionState.CONNECTED; | ||
| this.debug({ type: 'breadcrumb', message: 'connected!' }); | ||
| this.handleConnect = (chan0) => { | ||
| if (!this.ws) { | ||
| this.onUnrecoverableError(new Error('Expected Websocket instance')); | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected Websocket instance')); | ||
| return; | ||
| } | ||
| if (!this.connectOptions) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected connectionOptions')); | ||
| return; | ||
| } | ||
| if (!chan0) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected chan0 to be truthy')); | ||
| return; | ||
| } | ||
| if (!this.chan0Cb) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('Expected chan0Cb to be truthy')); | ||
| return; | ||
| } | ||
| const onClose = (event) => { | ||
| if (this.connectionState === types_1.ConnectionState.DISCONNECTED) { | ||
| this.onUnrecoverableError(new Error('Got a close event on socket but client is in disconnected state')); | ||
| if (this.getConnectionState() === types_1.ConnectionState.DISCONNECTED) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('Got a close event on socket but client is in disconnected state')); | ||
| return; | ||
@@ -783,3 +848,3 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'wsclose', | ||
| message: 'websocket:close', | ||
| data: { | ||
@@ -790,3 +855,3 @@ event, | ||
| this.handleClose({ | ||
| closeReason: ClientCloseReason.Disconnected, | ||
| closeReason: types_1.ClientCloseReason.Disconnected, | ||
| wsEvent: event, | ||
@@ -797,17 +862,37 @@ }); | ||
| this.ws.onerror = onClose; | ||
| const originalClose = this.close; | ||
| this.close = (args) => setTimeout(() => { | ||
| originalClose(args); | ||
| }, 0); | ||
| this.setConnectionState(types_1.ConnectionState.CONNECTED); | ||
| this.debug({ type: 'breadcrumb', message: 'status:connected' }); | ||
| this.channelRequests.forEach((channelRequest) => { | ||
| this.requestOpenChannel(channelRequest); | ||
| }); | ||
| this.chan0CleanupCb = this.chan0Cb({ | ||
| channel: chan0, | ||
| context: this.connectOptions.context, | ||
| }); | ||
| this.close = originalClose; | ||
| }; | ||
| this.handleClose = (closeResult) => { | ||
| if (closeResult.closeReason !== ClientCloseReason.Error) { | ||
| if (this.connectionState === types_1.ConnectionState.DISCONNECTED) { | ||
| this.onUnrecoverableError(new Error('handleClose is called but client already disconnected')); | ||
| if (closeResult.closeReason !== types_1.ClientCloseReason.Error) { | ||
| if (this.getConnectionState() === types_1.ConnectionState.DISCONNECTED) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('handleClose is called but client already disconnected')); | ||
| return; | ||
| } | ||
| if (this.ws && this.fetchTokenAbortController) { | ||
| this.onUnrecoverableError(new Error('fetchTokenAbortController and websocket exist simultaneously')); | ||
| const abortController = this.fetchTokenAbortControllers.get(this.connectionId); | ||
| if (this.ws && abortController) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('fetchTokenAbortController and websocket exist simultaneously')); | ||
| return; | ||
| } | ||
| } | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'client:handleClose', | ||
| data: { | ||
| closeReason: closeResult.closeReason, | ||
| connectionState: this.getConnectionState(), | ||
| }, | ||
| }); | ||
| this.cleanupSocket(); | ||
@@ -822,7 +907,9 @@ if (this.retryTimeoutId) { | ||
| } | ||
| if (this.fetchTokenAbortController) { | ||
| this.fetchTokenAbortController.abort(); | ||
| this.fetchTokenAbortController = null; | ||
| const abortController = this.fetchTokenAbortControllers.get(this.connectionId); | ||
| if (abortController) { | ||
| abortController.abort(); | ||
| this.fetchTokenAbortControllers.delete(this.connectionId); | ||
| } | ||
| const willClientReconnect = closeResult.closeReason === ClientCloseReason.Disconnected; | ||
| const willClientReconnect = closeResult.closeReason === types_1.ClientCloseReason.Disconnected || | ||
| closeResult.closeReason === types_1.ClientCloseReason.Temporary; | ||
| this.channelRequests.forEach((channelRequest) => { | ||
@@ -832,8 +919,11 @@ const willChannelReconnect = willClientReconnect && !channelRequest.closeRequested; | ||
| type: 'breadcrumb', | ||
| message: 'handle channel close', | ||
| message: 'client:handleClose:closing channel', | ||
| data: { | ||
| channelId: channelRequest.channelId, | ||
| service: channelRequest.options.service, | ||
| name: channelRequest.options.name, | ||
| closeRequested: channelRequest.closeRequested, | ||
| channelRequestIsOpen: channelRequest.isOpen, | ||
| willChannelReconnect, | ||
| hasWs: Boolean(this.ws), | ||
| channelId: channelRequest.channelId, | ||
| }, | ||
@@ -849,9 +939,2 @@ }); | ||
| } | ||
| else if (!willChannelReconnect) { | ||
| channelRequest.openChannelCb({ | ||
| channel: null, | ||
| error: new Error('Failed to open'), | ||
| context: this.connectOptions ? this.connectOptions.context : null, | ||
| }); | ||
| } | ||
| const { cleanupCb, closeRequested } = channelRequest; | ||
@@ -880,7 +963,17 @@ channelRequest.channelId = null; | ||
| if (Object.keys(this.channels).length !== 0) { | ||
| for (const channel of Object.values(this.channels)) { | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'client:handleClose:out of sync', | ||
| data: { | ||
| channelId: channel.id, | ||
| status: channel.status, | ||
| service: channel.service, | ||
| name: channel.name, | ||
| }, | ||
| }); | ||
| } | ||
| this.channels = {}; | ||
| if (closeResult.closeReason !== ClientCloseReason.Error) { | ||
| this.onUnrecoverableError(new Error('channels object should be empty after channelRequests and chan0 cleanup')); | ||
| return; | ||
| } | ||
| this.onUnrecoverableError(new CrosisError_1.default('channels out of sync, should have been cleaned up by channelRequests')); | ||
| return; | ||
| } | ||
@@ -894,19 +987,19 @@ if (this.chan0CleanupCb) { | ||
| } | ||
| else if (!willClientReconnect) { | ||
| if (this.chan0Cb) { | ||
| this.chan0Cb({ | ||
| channel: null, | ||
| error: new Error('Failed to open'), | ||
| context: this.connectOptions ? this.connectOptions.context : null, | ||
| }); | ||
| } | ||
| else if (closeResult.closeReason !== ClientCloseReason.Error) { | ||
| this.onUnrecoverableError(new Error('open should have been called before `handleClose`')); | ||
| return; | ||
| } | ||
| else if (!this.chan0Cb && closeResult.closeReason !== types_1.ClientCloseReason.Error) { | ||
| this.onUnrecoverableError(new CrosisError_1.default('`open` should have been called before `handleClose` (no cleanup or callback function, ' + | ||
| (willClientReconnect ? 'would reconnect' : 'would not reconnect') + | ||
| ')', { | ||
| closeReason: closeResult.closeReason, | ||
| connectionState: this.getConnectionState(), | ||
| })); | ||
| return; | ||
| } | ||
| this.connectionState = types_1.ConnectionState.DISCONNECTED; | ||
| this.setConnectionState(types_1.ConnectionState.DISCONNECTED); | ||
| if (!willClientReconnect) { | ||
| this.chan0Cb = null; | ||
| this.connectOptions = null; | ||
| this.debug({ | ||
| type: 'breadcrumb', | ||
| message: 'status:closed', | ||
| }); | ||
| return; | ||
@@ -916,5 +1009,10 @@ } | ||
| type: 'breadcrumb', | ||
| message: 'reconnecting', | ||
| message: 'status:reconnecting', | ||
| }); | ||
| this.connect({ tryCount: 0, websocketFailureCount: 0 }); | ||
| this.connectionId++; | ||
| this.connect({ | ||
| tryCount: 0, | ||
| websocketFailureCount: 0, | ||
| connectionId: this.connectionId, | ||
| }); | ||
| }; | ||
@@ -925,3 +1023,3 @@ this.cleanupSocket = () => { | ||
| type: 'breadcrumb', | ||
| message: 'cleanupSocket', | ||
| message: 'websocket:cleanup', | ||
| data: { | ||
@@ -944,3 +1042,3 @@ hasWs: Boolean(ws), | ||
| type: 'breadcrumb', | ||
| message: 'wsclose', | ||
| message: 'websocket:close', | ||
| }); | ||
@@ -953,3 +1051,3 @@ ws.close(); | ||
| type: 'breadcrumb', | ||
| message: 'unrecoverable error', | ||
| message: 'onUnrecoverableError', | ||
| data: { | ||
@@ -960,6 +1058,6 @@ message: e.message, | ||
| this.redirectInitiatorURL = null; | ||
| if (this.connectionState !== types_1.ConnectionState.DISCONNECTED) { | ||
| if (this.getConnectionState() !== types_1.ConnectionState.DISCONNECTED) { | ||
| try { | ||
| this.handleClose({ | ||
| closeReason: ClientCloseReason.Error, | ||
| closeReason: types_1.ClientCloseReason.Error, | ||
| error: e, | ||
@@ -982,9 +1080,9 @@ }); | ||
| if (!this.connectionMetadata) { | ||
| return this.onUnrecoverableError(new Error("client's connectionMetadata is null when redirecting to initiator")); | ||
| return this.onUnrecoverableError(new CrosisError_1.default("client's connectionMetadata is null when redirecting to initiator")); | ||
| } | ||
| if (!this.connectOptions) { | ||
| return this.onUnrecoverableError(new Error("client's connectOptions is null when redirecting to initiator")); | ||
| return this.onUnrecoverableError(new CrosisError_1.default("client's connectOptions is null when redirecting to initiator")); | ||
| } | ||
| if (!this.chan0Cb) { | ||
| return this.onUnrecoverableError(new Error("client's chan0Cb is null when redirecting to initiator")); | ||
| return this.onUnrecoverableError(new CrosisError_1.default("client's chan0Cb is null when redirecting to initiator")); | ||
| } | ||
@@ -997,2 +1095,3 @@ const context = this.connectOptions.context; | ||
| gurl: this.connectionMetadata.gurl, | ||
| dotdevHostname: this.connectionMetadata.dotdevHostname, | ||
| }; | ||
@@ -1014,3 +1113,3 @@ this.redirectInitiatorURL = null; | ||
| type: 'breadcrumb', | ||
| message: 'handling redirect', | ||
| message: 'client:handleRedirect', | ||
| data: { | ||
@@ -1021,9 +1120,9 @@ connectionMetadata: this.connectionMetadata, | ||
| if (!this.connectionMetadata) { | ||
| return this.onUnrecoverableError(new Error("client's connectionMetadata is null when redirecting")); | ||
| return this.onUnrecoverableError(new CrosisError_1.default("client's connectionMetadata is null when redirecting")); | ||
| } | ||
| if (!this.connectOptions) { | ||
| return this.onUnrecoverableError(new Error("client's connectOptions is null when redirecting")); | ||
| return this.onUnrecoverableError(new CrosisError_1.default("client's connectOptions is null when redirecting")); | ||
| } | ||
| if (!this.chan0Cb) { | ||
| return this.onUnrecoverableError(new Error("client's chan0Cb is null when redirecting")); | ||
| return this.onUnrecoverableError(new CrosisError_1.default("client's chan0Cb is null when redirecting")); | ||
| } | ||
@@ -1036,2 +1135,3 @@ const context = this.connectOptions.context; | ||
| gurl: url, | ||
| dotdevHostname: this.connectionMetadata.dotdevHostname, | ||
| }; | ||
@@ -1056,2 +1156,3 @@ this.redirectInitiatorURL = this.connectionMetadata.gurl; | ||
| this.connectionState = types_1.ConnectionState.DISCONNECTED; | ||
| this.connectionStateChangeFuncs = []; | ||
| this.debugFuncs = []; | ||
@@ -1063,6 +1164,7 @@ this.bootStatusFuncs = []; | ||
| this.connectTimeoutId = null; | ||
| this.fetchTokenAbortController = null; | ||
| this.fetchTokenAbortControllers = new Map(); | ||
| this.destroyed = false; | ||
| this.connectionMetadata = null; | ||
| this.redirectInitiatorURL = null; | ||
| this.connectionId = 0; | ||
| this.debug({ type: 'breadcrumb', message: 'constructor' }); | ||
@@ -1069,0 +1171,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"} |
+1
-1
| import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; | ||
| export { Client } from './client'; | ||
| export { Channel } from './channel'; | ||
| export { FetchConnectionMetadataError, FetchConnectionMetadataResult, DebugLog, OpenOptions, GovalMetadata, ConnectionState, ChannelOptions, OpenChannelCb, ChannelCloseReason, RequestResult, } from './types'; | ||
| export { FetchConnectionMetadataError, FetchConnectionMetadataResult, DebugLog, OpenOptions, GovalMetadata, ConnectionState, ChannelOptions, OpenChannelCb, ChannelCloseReason, RequestResult, ChannelRequestPriority, } from './types'; |
+2
-1
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.ConnectionState = exports.FetchConnectionMetadataError = exports.Channel = exports.Client = void 0; | ||
| exports.ChannelRequestPriority = exports.ConnectionState = exports.FetchConnectionMetadataError = exports.Channel = exports.Client = void 0; | ||
| require("abortcontroller-polyfill/dist/abortcontroller-polyfill-only"); | ||
@@ -12,2 +12,3 @@ var client_1 = require("./client"); | ||
| Object.defineProperty(exports, "ConnectionState", { enumerable: true, get: function () { return types_1.ConnectionState; } }); | ||
| Object.defineProperty(exports, "ChannelRequestPriority", { enumerable: true, get: function () { return types_1.ChannelRequestPriority; } }); | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uEAAqE;AAErE,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,iCAWiB;AAVf,qHAAA,4BAA4B,OAAA;AAK5B,wGAAA,eAAe,OAAA"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uEAAqE;AAErE,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,iCAYiB;AAXf,qHAAA,4BAA4B,OAAA;AAK5B,wGAAA,eAAe,OAAA;AAKf,+GAAA,sBAAsB,OAAA"} |
+99
-41
| import type { api } from '@replit/protocol'; | ||
| import type { Channel } from './channel'; | ||
| import CrosisError from './util/CrosisError'; | ||
| export declare enum ConnectionState { | ||
@@ -16,2 +17,3 @@ CONNECTING = 0, | ||
| conmanURL: string; | ||
| dotdevHostname: string; | ||
| } | ||
@@ -43,14 +45,24 @@ export declare type Result<Res, Err = Error> = (Res & { | ||
| } | ||
| export declare enum ClientCloseReason { | ||
| Intentional = "Intentional", | ||
| Temporary = "Temporary", | ||
| Disconnected = "Disconnected", | ||
| Error = "Error" | ||
| } | ||
| export declare type DebugLogBreadcrumb<Ctx> = { | ||
| type: 'breadcrumb'; | ||
| message: 'constructor' | 'openChanres' | 'connected!' | 'user close' | 'cancel timeout' | 'reset timeout' | 'connect timeout' | 'polling fallback' | 'reconnecting' | 'destroy'; | ||
| message: 'constructor' | 'status:open' | 'status:connected' | 'status:closed' | 'status:reconnecting' | 'status:destroy' | 'close:intentional' | 'close:temporary' | 'timeout:cancel' | 'timeout:reset' | 'timeout:hit' | 'websocket:polling fallback'; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'open'; | ||
| message: 'status:connecting'; | ||
| data: { | ||
| polling: false; | ||
| connectionState: ConnectionState; | ||
| connectTries: number; | ||
| websocketFailureCount: number; | ||
| readyState: WebSocket['readyState'] | undefined; | ||
| chan0CbExists: boolean; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'connecting'; | ||
| message: 'status:retrying'; | ||
| data: { | ||
@@ -60,7 +72,25 @@ connectionState: ConnectionState; | ||
| websocketFailureCount: number; | ||
| readyState: WebSocket['readyState'] | undefined; | ||
| chan0CbExists: boolean; | ||
| error: CrosisError; | ||
| wsReadyState?: WebSocket['readyState']; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'container:state'; | ||
| data: api.ContainerState.State; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'websocket:close'; | ||
| data?: { | ||
| event: CloseEvent | Event; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'websocket:cleanup'; | ||
| data: { | ||
| hasWs: boolean; | ||
| readyState: WebSocket['readyState'] | null; | ||
| connectionState: ConnectionState; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'requestOpenChannel'; | ||
@@ -71,9 +101,26 @@ data?: { | ||
| action: ChannelOptions<Ctx>['action']; | ||
| ref: string; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'requestChannelClose'; | ||
| message: 'requestOpenChannel:openChanRes'; | ||
| data: { | ||
| id: number; | ||
| state: api.OpenChannelRes['state']; | ||
| error: string; | ||
| ref: string; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'requestOpenChannel:explicit skip'; | ||
| data: { | ||
| service: ChannelOptions<Ctx>['service']; | ||
| name: ChannelOptions<Ctx>['name']; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'requestCloseChannel'; | ||
| data: { | ||
| id: number; | ||
| name: ChannelOptions<Ctx>['name']; | ||
| service: ChannelOptions<Ctx>['service']; | ||
@@ -83,3 +130,3 @@ }; | ||
| type: 'breadcrumb'; | ||
| message: 'requestChannelClose:chan0Closed'; | ||
| message: 'requestCloseChannel:chan0Closed'; | ||
| data: { | ||
@@ -92,3 +139,3 @@ id: number; | ||
| type: 'breadcrumb'; | ||
| message: 'requestChannelClose:closeChanRes'; | ||
| message: 'requestCloseChannel:closeChanRes'; | ||
| data: { | ||
@@ -102,3 +149,3 @@ id: number; | ||
| type: 'breadcrumb'; | ||
| message: 'retrying'; | ||
| message: 'client:redirectInitiatorFallback'; | ||
| data: { | ||
@@ -108,3 +155,3 @@ connectionState: ConnectionState; | ||
| websocketFailureCount: number; | ||
| error: Error; | ||
| error: CrosisError; | ||
| wsReadyState?: WebSocket['readyState']; | ||
@@ -114,54 +161,64 @@ }; | ||
| type: 'breadcrumb'; | ||
| message: 'redirectInitiatorFallback'; | ||
| message: 'client:handleRedirect'; | ||
| data: { | ||
| connectionState: ConnectionState; | ||
| connectTries: number; | ||
| websocketFailureCount: number; | ||
| error: Error; | ||
| wsReadyState?: WebSocket['readyState']; | ||
| connectionMetadata: GovalMetadata | null; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'containerState'; | ||
| data: api.ContainerState.State; | ||
| message: 'client:handleClose'; | ||
| data: { | ||
| closeReason: ClientCloseReason; | ||
| connectionState: ConnectionState; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'wsclose'; | ||
| data?: { | ||
| event: CloseEvent | Event; | ||
| message: 'client:handleClose:closing channel'; | ||
| data: { | ||
| channelId: number | null; | ||
| service: ChannelOptions<Ctx>['service']; | ||
| name: ChannelOptions<Ctx>['name']; | ||
| closeRequested: boolean; | ||
| channelRequestIsOpen: boolean; | ||
| willChannelReconnect: boolean; | ||
| hasWs: boolean; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'cleanupSocket'; | ||
| message: 'client:handleClose:out of sync'; | ||
| data: { | ||
| hasWs: boolean; | ||
| readyState: WebSocket['readyState'] | null; | ||
| connectionState: ConnectionState; | ||
| channelId: number | null; | ||
| status: string; | ||
| service: string | undefined; | ||
| name: ChannelOptions<Ctx>['name']; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'unrecoverable error'; | ||
| message: 'client:openChannel:delayed'; | ||
| data: { | ||
| message: string; | ||
| service: ChannelOptions<Ctx>['service']; | ||
| name: ChannelOptions<Ctx>['name']; | ||
| connectionState: ConnectionState; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'handling redirect'; | ||
| message: 'client:closeChannel:channel not open'; | ||
| data: { | ||
| connectionMetadata: GovalMetadata | null; | ||
| channelId: number | null; | ||
| service: ChannelOptions<Ctx>['service']; | ||
| name: ChannelOptions<Ctx>['name']; | ||
| connectionState: ConnectionState; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'handle channel close'; | ||
| message: 'client:closeChannel:already requested'; | ||
| data: { | ||
| channelRequestIsOpen: boolean; | ||
| willChannelReconnect: boolean; | ||
| hasWs: boolean; | ||
| channelId: number | null; | ||
| service: ChannelOptions<Ctx>['service']; | ||
| name: ChannelOptions<Ctx>['name']; | ||
| }; | ||
| } | { | ||
| type: 'breadcrumb'; | ||
| message: 'calling send on a closed client'; | ||
| message: 'onUnrecoverableError'; | ||
| data: { | ||
| channelId: number; | ||
| message: string; | ||
| }; | ||
@@ -191,2 +248,7 @@ }; | ||
| } | ||
| export declare enum ChannelRequestPriority { | ||
| High = 0, | ||
| Medium = 1, | ||
| Low = 2 | ||
| } | ||
| export interface ChannelOptions<Ctx> { | ||
@@ -197,11 +259,7 @@ name?: string; | ||
| skip?: (context: Ctx) => boolean; | ||
| priority?: ChannelRequestPriority; | ||
| } | ||
| export declare type OpenChannelCb<Ctx> = (res: { | ||
| error: null; | ||
| channel: Channel; | ||
| context: Ctx; | ||
| } | { | ||
| error: Error; | ||
| channel: null; | ||
| context: Ctx | null; | ||
| }) => void | ((reason: ChannelCloseReason) => void); | ||
@@ -208,0 +266,0 @@ export interface RequestResult extends api.Command { |
+14
-1
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.CloseCode = exports.FetchConnectionMetadataError = exports.ConnectionState = void 0; | ||
| exports.CloseCode = exports.ChannelRequestPriority = exports.ClientCloseReason = exports.FetchConnectionMetadataError = exports.ConnectionState = void 0; | ||
| var ConnectionState; | ||
@@ -15,2 +15,15 @@ (function (ConnectionState) { | ||
| })(FetchConnectionMetadataError = exports.FetchConnectionMetadataError || (exports.FetchConnectionMetadataError = {})); | ||
| var ClientCloseReason; | ||
| (function (ClientCloseReason) { | ||
| ClientCloseReason["Intentional"] = "Intentional"; | ||
| ClientCloseReason["Temporary"] = "Temporary"; | ||
| ClientCloseReason["Disconnected"] = "Disconnected"; | ||
| ClientCloseReason["Error"] = "Error"; | ||
| })(ClientCloseReason = exports.ClientCloseReason || (exports.ClientCloseReason = {})); | ||
| var ChannelRequestPriority; | ||
| (function (ChannelRequestPriority) { | ||
| ChannelRequestPriority[ChannelRequestPriority["High"] = 0] = "High"; | ||
| ChannelRequestPriority[ChannelRequestPriority["Medium"] = 1] = "Medium"; | ||
| ChannelRequestPriority[ChannelRequestPriority["Low"] = 2] = "Low"; | ||
| })(ChannelRequestPriority = exports.ChannelRequestPriority || (exports.ChannelRequestPriority = {})); | ||
| exports.CloseCode = { | ||
@@ -17,0 +30,0 @@ INVALID_UPSTREAM_RESPONSE: 1014, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAGA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,iEAAc,CAAA;IACd,+DAAa,CAAA;IACb,qEAAgB,CAAA;AAClB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAED,IAAY,4BAWX;AAXD,WAAY,4BAA4B;IAItC,mDAAmB,CAAA;IAMnB,uDAAuB,CAAA;AACzB,CAAC,EAXW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAWvC;AA4QY,QAAA,SAAS,GAAG;IACvB,yBAAyB,EAAE,IAAI;IAC/B,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,UAAU,EAAE,IAAI;IAChB,qBAAqB,EAAE,IAAI;CAC5B,CAAC"} | ||
| {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAIA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,iEAAc,CAAA;IACd,+DAAa,CAAA;IACb,qEAAgB,CAAA;AAClB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAED,IAAY,4BAYX;AAZD,WAAY,4BAA4B;IAKtC,mDAAmB,CAAA;IAMnB,uDAAuB,CAAA;AACzB,CAAC,EAZW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAYvC;AAgDD,IAAY,iBAiBX;AAjBD,WAAY,iBAAiB;IAI3B,gDAA2B,CAAA;IAI3B,4CAAuB,CAAA;IAIvB,kDAA6B,CAAA;IAI7B,oCAAe,CAAA;AACjB,CAAC,EAjBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAiB5B;AAiQD,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,mEAAI,CAAA;IACJ,uEAAM,CAAA;IACN,iEAAG,CAAA;AACL,CAAC,EAJW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAIjC;AAyBY,QAAA,SAAS,GAAG;IACvB,yBAAyB,EAAE,IAAI;IAC/B,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,UAAU,EAAE,IAAI;IAChB,qBAAqB,EAAE,IAAI;CAC5B,CAAC"} |
@@ -25,5 +25,9 @@ "use strict"; | ||
| }; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.getConnectionStr = exports.getWebSocketClass = exports.defaultGetNextRetryDelay = void 0; | ||
| const urllib = __importStar(require("url")); | ||
| const CrosisError_1 = __importDefault(require("./CrosisError")); | ||
| const BACKOFF_FACTOR = 1.7; | ||
@@ -49,3 +53,3 @@ const MAX_BACKOFF = 15000; | ||
| if (!isWebSocket(WebSocketClass)) { | ||
| throw new Error('Passed in WebSocket does not look like a standard WebSocket'); | ||
| throw new CrosisError_1.default('Passed in WebSocket does not look like a standard WebSocket'); | ||
| } | ||
@@ -56,7 +60,7 @@ return WebSocketClass; | ||
| if (!isWebSocket(WebSocket)) { | ||
| throw new Error('Global WebSocket does not look like a standard WebSocket'); | ||
| throw new CrosisError_1.default('Global WebSocket does not look like a standard WebSocket'); | ||
| } | ||
| return WebSocket; | ||
| } | ||
| throw new Error('Please pass in a WebSocket class or add it to global'); | ||
| throw new CrosisError_1.default('Please pass in a WebSocket class or add it to global'); | ||
| } | ||
@@ -63,0 +67,0 @@ exports.getWebSocketClass = getWebSocketClass; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/util/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAG9B,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,WAAW,GAAG,KAAK,CAAC;AAK1B,SAAgB,wBAAwB,CAAC,WAAmB;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,cAAc,IAAI,WAAW,GAAG,IAAI,CAAC;IAErD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC;AACnD,CAAC;AALD,4DAKC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;QACpD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,CAAC,EAAE;QACN,OAAO,KAAK,CAAC;KACd;IAED,OAAO,MAAM,IAAI,CAAC,IAAK,CAAe,CAAC,IAAI,KAAK,CAAC,CAAC;AACpD,CAAC;AAKD,SAAgB,iBAAiB,CAC/B,cAAyD;IAEzD,IAAI,cAAc,EAAE;QAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAChF;QAED,OAAO,cAAc,CAAC;KACvB;IAED,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;QACpC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC7E;QAED,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AAC1E,CAAC;AApBD,8CAoBC;AAMD,SAAgB,gBAAgB,CAAC,kBAAiC,EAAE,WAAoB;IACtF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,WAAW,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,kBAAkB,CAAC,KAAK,IAAI,kBAAkB,CACrE,kBAAkB,CAAC,IAAI,CACxB,EAAE,CAAC;KACL;SAAM;QACL,IAAI,CAAC,QAAQ,GAAG,SAAS,kBAAkB,CAAC,KAAK,EAAE,CAAC;KACrD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAbD,4CAaC"} | ||
| {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/util/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAE9B,gEAAwC;AAExC,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,WAAW,GAAG,KAAK,CAAC;AAK1B,SAAgB,wBAAwB,CAAC,WAAmB;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,cAAc,IAAI,WAAW,GAAG,IAAI,CAAC;IAErD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC;AACnD,CAAC;AALD,4DAKC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;QACpD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,CAAC,EAAE;QACN,OAAO,KAAK,CAAC;KACd;IAED,OAAO,MAAM,IAAI,CAAC,IAAK,CAAe,CAAC,IAAI,KAAK,CAAC,CAAC;AACpD,CAAC;AAKD,SAAgB,iBAAiB,CAC/B,cAAyD;IAEzD,IAAI,cAAc,EAAE;QAClB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;YAChC,MAAM,IAAI,qBAAW,CAAC,6DAA6D,CAAC,CAAC;SACtF;QAED,OAAO,cAAc,CAAC;KACvB;IAED,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;QACpC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YAC3B,MAAM,IAAI,qBAAW,CAAC,0DAA0D,CAAC,CAAC;SACnF;QAED,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,IAAI,qBAAW,CAAC,sDAAsD,CAAC,CAAC;AAChF,CAAC;AApBD,8CAoBC;AAMD,SAAgB,gBAAgB,CAAC,kBAAiC,EAAE,WAAoB;IACtF,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,WAAW,EAAE;QACf,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,kBAAkB,CAAC,KAAK,IAAI,kBAAkB,CACrE,kBAAkB,CAAC,IAAI,CACxB,EAAE,CAAC;KACL;SAAM;QACL,IAAI,CAAC,QAAQ,GAAG,SAAS,kBAAkB,CAAC,KAAK,EAAE,CAAC;KACrD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAbD,4CAaC"} |
+1
-1
| { | ||
| "name": "@replit/crosis", | ||
| "version": "13.3.0", | ||
| "version": "13.3.1", | ||
| "description": "Goval connection and channel manager", | ||
@@ -5,0 +5,0 @@ "files": [ |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
240164
13.47%49
22.5%3385
14.44%