Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@replit/crosis

Package Overview
Dependencies
Maintainers
29
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@replit/crosis - npm Package Compare versions

Comparing version
13.3.0
to
13.3.1
+1
dist/__tests__/regressions.test.d.ts
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":";;;;;AAEA,0BAAyF;AACzF,4DAAyD;AACzD,gDAAqD;AACrD,8FAAsE;AAGtE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AAG3B,MAAM,cAAc,GAAuB,EAAE,CAAC;AAG9C,SAAS,SAAS,CAAa,IAAuB;IACpD,MAAM,CAAC,GAAG,IAAI,UAAM,EAAO,CAAC;IAC5B,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACrC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IACzC,GAAG,IAAA,+BAAqB,GAAE;IAC1B,KAAK,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE;IACZ,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,IAAA,uBAAU,EAAC,wDAAwD,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAKlF,IAAI,cAAc,GAAkD,IAAI,CAAC;IACzE,MAAM,eAAe,GAAG,CAAC,WAAwB,EAAE,EAAE;QACnD,IAAI,cAAc,EAAE;YAClB,OAAO,cAAc,CAAC;SACvB;QAED,cAAc,GAAG,IAAI,OAAO,CAAgC,CAAC,OAAO,EAAE,EAAE;YACtE,IAAI,WAAW,CAAC,OAAO,EAAE;gBACvB,OAAO,CAAC;oBACN,KAAK,EAAE,gCAA4B,CAAC,OAAO;iBAC5C,CAAC,CAAC;gBAEH,OAAO;aACR;YAED,OAAO,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxC,IAAI,WAAW,CAAC,OAAO,EAAE;oBACvB,OAAO,CAAC;wBACN,KAAK,EAAE,gCAA4B,CAAC,OAAO;qBAC5C,CAAC,CAAC;oBAEH,OAAO;iBACR;gBAED,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,IAAI,eAAe,GAAkD,IAAI,CAAC;IAC1E,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,eAAe,EAAE;YACnB,OAAO,eAAe,CAAC;SACxB;QAED,eAAe,GAAG,IAAI,OAAO,CAAgC,CAAC,OAAO,EAAE,EAAE;YACvE,OAAO,CAAC;gBACN,KAAK,EAAE,gCAA4B,CAAC,OAAO;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAuB,IAAI,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAG;QACb,uBAAuB,EAAE,qBAAqB;QAC9C,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,GAAG;KACb,CAAC;IACF,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,MAAM,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,EACxD,IAAA,mBAAY,EAAC,IAAI,EAAE,GAAG,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,CAAC,IAAI,CAGT,EAAE,GAAG,MAAM,EAAE,uBAAuB,EAAE,eAAe,EAAE,EACvD,IAAA,mBAAY,EAAC,IAAI,EAAE,GAAG,EAAE;QAItB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC5C,CAAC,CAAC,CACH,CAAC;IAIF,MAAM,eAAe,CAAC;IAItB,MAAM,CAAC,KAAK,EAAE,CAAC;IAIf,MAAM,cAAc,CAAC;IAErB,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEH,IAAA,uBAAU,EAAC,uDAAuD,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAKjF,MAAM,eAAe,GAAG,CAAC,WAAwB,EAAE,EAAE;QACnD,OAAO,IAAI,OAAO,CAAgC,CAAC,OAAO,EAAE,EAAE;YAC5D,OAAO,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxC,IAAI,WAAW,CAAC,OAAO,EAAE;oBACvB,OAAO,CAAC;wBACN,KAAK,EAAE,gCAA4B,CAAC,OAAO;qBAC5C,CAAC,CAAC;iBACJ;gBACD,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,eAAe,GAAkD,IAAI,CAAC;IAC1E,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,eAAe,EAAE;YACnB,OAAO,eAAe,CAAC;SACxB;QAED,eAAe,GAAG,IAAI,OAAO,CAAgC,CAAC,OAAO,EAAE,EAAE;YACvE,OAAO,CAAC;gBACN,KAAK,EAAE,gCAA4B,CAAC,OAAO;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,SAAS,CAAuB,IAAI,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEjC,MAAM,MAAM,GAAG;QACb,uBAAuB,EAAE,qBAAqB;QAC9C,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,GAAG;KACb,CAAC;IACF,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,MAAM,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,EACxD,IAAA,mBAAY,EAAC,IAAI,EAAE,GAAG,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,CAAC,IAAI,CAET,EAAE,GAAG,MAAM,EAAE,uBAAuB,EAAE,eAAe,EAAE,EACvD,IAAA,mBAAY,EAAC,IAAI,EAAE,GAAG,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,eAAe,CAAC;IAGtB,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC"}
"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;
}
"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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"}
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;

"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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"}
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';
"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"}
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 {

"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"}
{
"name": "@replit/crosis",
"version": "13.3.0",
"version": "13.3.1",
"description": "Goval connection and channel manager",

@@ -5,0 +5,0 @@ "files": [