@superblocksteam/shared 0.9598.0 → 0.9598.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dbfs/types.d.ts +33 -0
- package/dist/dbfs/types.d.ts.map +1 -1
- package/dist/socket/protocol.d.ts +2 -1
- package/dist/socket/protocol.d.ts.map +1 -1
- package/dist/socket/protocol.js.map +1 -1
- package/dist/socket/socket.test.js +37 -0
- package/dist/socket/socket.test.js.map +1 -1
- package/dist/socket/socketWithClientAuth.d.ts +1 -0
- package/dist/socket/socketWithClientAuth.d.ts.map +1 -1
- package/dist/socket/socketWithClientAuth.js +6 -1
- package/dist/socket/socketWithClientAuth.js.map +1 -1
- package/dist/types/git/index.d.ts.map +1 -1
- package/dist/types/git/index.js +2 -0
- package/dist/types/git/index.js.map +1 -1
- package/dist/types/git/index.test.d.ts +2 -0
- package/dist/types/git/index.test.d.ts.map +1 -0
- package/dist/types/git/index.test.js +13 -0
- package/dist/types/git/index.test.js.map +1 -0
- package/dist-esm/dbfs/types.d.ts +33 -0
- package/dist-esm/dbfs/types.d.ts.map +1 -1
- package/dist-esm/socket/protocol.d.ts +2 -1
- package/dist-esm/socket/protocol.d.ts.map +1 -1
- package/dist-esm/socket/protocol.js.map +1 -1
- package/dist-esm/socket/socket.test.js +37 -0
- package/dist-esm/socket/socket.test.js.map +1 -1
- package/dist-esm/socket/socketWithClientAuth.d.ts +1 -0
- package/dist-esm/socket/socketWithClientAuth.d.ts.map +1 -1
- package/dist-esm/socket/socketWithClientAuth.js +6 -1
- package/dist-esm/socket/socketWithClientAuth.js.map +1 -1
- package/dist-esm/types/git/index.d.ts.map +1 -1
- package/dist-esm/types/git/index.js +2 -0
- package/dist-esm/types/git/index.js.map +1 -1
- package/dist-esm/types/git/index.test.d.ts +2 -0
- package/dist-esm/types/git/index.test.d.ts.map +1 -0
- package/dist-esm/types/git/index.test.js +11 -0
- package/dist-esm/types/git/index.test.js.map +1 -0
- package/package.json +1 -1
- package/src/dbfs/types.ts +39 -0
- package/src/socket/protocol.ts +8 -1
- package/src/socket/socket.test.ts +43 -0
- package/src/socket/socketWithClientAuth.ts +6 -1
- package/src/types/git/index.test.ts +15 -0
- package/src/types/git/index.ts +2 -0
package/dist/dbfs/types.d.ts
CHANGED
|
@@ -36,5 +36,38 @@ export interface PutManyResponsePayload {
|
|
|
36
36
|
hash: string;
|
|
37
37
|
}[];
|
|
38
38
|
}
|
|
39
|
+
export interface GetManyRequestPayload {
|
|
40
|
+
rootHash: string;
|
|
41
|
+
paths: string[];
|
|
42
|
+
/**
|
|
43
|
+
* Maximum aggregate size of decoded file contents and serialized metadata in
|
|
44
|
+
* the response.
|
|
45
|
+
*/
|
|
46
|
+
maxBytes?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Maximum number of requested objects plus entries nested in returned
|
|
49
|
+
* directory listings.
|
|
50
|
+
*/
|
|
51
|
+
maxObjects?: number;
|
|
52
|
+
}
|
|
53
|
+
export type GetManyItemPayload = {
|
|
54
|
+
type: 'directoryContents';
|
|
55
|
+
path: string;
|
|
56
|
+
hash: string;
|
|
57
|
+
contents: DirectoryEntry[];
|
|
58
|
+
} | {
|
|
59
|
+
type: 'fileContents';
|
|
60
|
+
path: string;
|
|
61
|
+
hash: string;
|
|
62
|
+
executable: boolean;
|
|
63
|
+
contents: string;
|
|
64
|
+
} | {
|
|
65
|
+
type: 'symlink';
|
|
66
|
+
path: string;
|
|
67
|
+
target: string;
|
|
68
|
+
};
|
|
69
|
+
export interface GetManyResponsePayload {
|
|
70
|
+
items: GetManyItemPayload[];
|
|
71
|
+
}
|
|
39
72
|
export {};
|
|
40
73
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/dbfs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dbfs/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAE/F,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,UAAU,uBAAuB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,4BAA4B;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,KAAK,WAAW,GAAG,uBAAuB,GAAG,4BAA4B,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dbfs/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAE/F,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,UAAU,uBAAuB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,4BAA4B;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,KAAK,WAAW,GAAG,uBAAuB,GAAG,4BAA4B,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DirectoryEntry, PutManyRequestPayload, PutManyResponsePayload } from '../dbfs/types.js';
|
|
1
|
+
import { DirectoryEntry, GetManyRequestPayload, GetManyResponsePayload, PutManyRequestPayload, PutManyResponsePayload } from '../dbfs/types.js';
|
|
2
2
|
import { ApiToSign, ApiToVerify, AppToSign, AppToVerify, ApplicationSignatureTreeSigned, Signature } from '../signing/constants.js';
|
|
3
3
|
import { ApplicationConfiguration, ApplicationPageClonePayload, CreateApplicationPageResponseBody, CreateApplicationPageSocketPayload, GetMultiPageApplicationResponseBody, GetApiResponseBody, IApplicationV2Dto, PageSummary, PostApiBranchCreateResponseBody, PostApplicationBranchCreateResponseBody, PostApplicationCreateRequestBody, RemoteCommitDto, ResponseMeta, ExportedMultiPageApplicationDto, ExportViewMode, ExportedApiV3Dto, ModifyEntitiesPayload, ModifyEntitiesResponse, GetAppBranchLockResponseBody, LockInfo, DegradedMode, CheckpointSkipReason } from '../types';
|
|
4
4
|
import { AiChatMessageDto, AiChatMessagePayload, AiPromptCostRequest, AiPromptCostResponse, AiWorkflowEvent, AiResolveAttachmentLeasesRequest, AiResolveAttachmentLeasesResponse, FactCreate, FactDto, FactListQuery, ListFactsResponse, NpmInstallBlockedAuditReport } from '../types/index.js';
|
|
@@ -109,6 +109,7 @@ export interface ServerMethods {
|
|
|
109
109
|
hash: string;
|
|
110
110
|
}>;
|
|
111
111
|
};
|
|
112
|
+
getMany: ServerMethodSchema<GetManyRequestPayload, GetManyResponsePayload>;
|
|
112
113
|
/**
|
|
113
114
|
* This method is used to put multiple files and directories at once. It is more efficient than calling the put method
|
|
114
115
|
* for each file and directory. The response is a list of hashes for the items that were put, in the same order as the items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":";AAAA,6GAA6G;;;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":";AAAA,6GAA6G;;;AAkDhG,QAAA,YAAY,GAAG,WAAW,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const api_1 = require("@opentelemetry/api");
|
|
3
4
|
const vitest_1 = require("vitest");
|
|
4
5
|
const socket_js_1 = require("./socket.js");
|
|
6
|
+
const socketWithClientAuth_js_1 = require("./socketWithClientAuth.js");
|
|
5
7
|
const PING_TIMEOUT_CLOSE_REASON = 'Ping timeout';
|
|
6
8
|
(0, vitest_1.describe)('ISocket', () => {
|
|
7
9
|
(0, vitest_1.it)('preserves the transport-close marker when rejecting pending requests with a reason', async () => {
|
|
@@ -20,4 +22,39 @@ const PING_TIMEOUT_CLOSE_REASON = 'Ping timeout';
|
|
|
20
22
|
(0, vitest_1.expect)(ws.close).toHaveBeenCalledWith(socket_js_1.INTENTIONAL_CLOSE_CODE, PING_TIMEOUT_CLOSE_REASON);
|
|
21
23
|
});
|
|
22
24
|
});
|
|
25
|
+
(0, vitest_1.describe)('ISocketWithClientAuth', () => {
|
|
26
|
+
(0, vitest_1.it)('still sends a refreshed token when an older in-flight request resolves after setAuthorization', async () => {
|
|
27
|
+
let messageHandler;
|
|
28
|
+
const sentMessages = [];
|
|
29
|
+
const ws = {
|
|
30
|
+
addEventListener: vitest_1.vi.fn((event, handler) => {
|
|
31
|
+
if (event === 'message') {
|
|
32
|
+
messageHandler = handler;
|
|
33
|
+
}
|
|
34
|
+
}),
|
|
35
|
+
close: vitest_1.vi.fn(),
|
|
36
|
+
send: vitest_1.vi.fn((message) => {
|
|
37
|
+
sentMessages.push(JSON.parse(message));
|
|
38
|
+
})
|
|
39
|
+
};
|
|
40
|
+
const socket = new socketWithClientAuth_js_1.ISocketWithClientAuth(ws, 'Bearer old-token', {}, [], api_1.trace.getTracer('test'), { onClose: vitest_1.vi.fn() });
|
|
41
|
+
const firstRequest = socket.request('editor.ping', {});
|
|
42
|
+
(0, vitest_1.expect)(sentMessages[0].request.setAuthorization).toBe('Bearer old-token');
|
|
43
|
+
socket.setAuthorization('Bearer new-token');
|
|
44
|
+
messageHandler?.({
|
|
45
|
+
data: JSON.stringify({
|
|
46
|
+
response: { id: 1, payload: undefined, error: null }
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
await firstRequest;
|
|
50
|
+
const secondRequest = socket.request('editor.ping', {});
|
|
51
|
+
(0, vitest_1.expect)(sentMessages[1].request.setAuthorization).toBe('Bearer new-token');
|
|
52
|
+
messageHandler?.({
|
|
53
|
+
data: JSON.stringify({
|
|
54
|
+
response: { id: 2, payload: undefined, error: null }
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
await secondRequest;
|
|
58
|
+
});
|
|
59
|
+
});
|
|
23
60
|
//# sourceMappingURL=socket.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.test.js","sourceRoot":"","sources":["../../src/socket/socket.test.ts"],"names":[],"mappings":";;AAAA,mCAAkD;AAElD,2CAA8D;
|
|
1
|
+
{"version":3,"file":"socket.test.js","sourceRoot":"","sources":["../../src/socket/socket.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { TracedSocket } from './tracedSocket.js';
|
|
|
4
4
|
import { GenericMiddleware, ISocketClient, MethodHandlers, RequestContextBase, SocketTimeouts } from './types.js';
|
|
5
5
|
export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestContext extends RequestContextBase> extends TracedSocket<ImplementedMethods, CallableMethods, RequestContext> {
|
|
6
6
|
private authorization?;
|
|
7
|
+
private authorizationVersion;
|
|
7
8
|
private hasSentAuth;
|
|
8
9
|
constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
|
|
9
10
|
onClose: (event: WebSocket.CloseEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;IAOG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;IAOG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9E;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAK7D;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EACf,kBAAkB,EAClB,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAE9D,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpH,GACA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
|
|
@@ -9,6 +9,7 @@ const util_js_1 = require("./util.js");
|
|
|
9
9
|
// this is useful for client-side sockets that need to authenticate
|
|
10
10
|
class ISocketWithClientAuth extends tracedSocket_js_1.TracedSocket {
|
|
11
11
|
authorization;
|
|
12
|
+
authorizationVersion = 0;
|
|
12
13
|
hasSentAuth = false;
|
|
13
14
|
constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, options) {
|
|
14
15
|
super(ws, requestHandlers, globalMiddlewares, tracer, options);
|
|
@@ -17,9 +18,12 @@ class ISocketWithClientAuth extends tracedSocket_js_1.TracedSocket {
|
|
|
17
18
|
// override `request` from the base class to send `authorization` when appropriate
|
|
18
19
|
async request(method, params) {
|
|
19
20
|
// only send `authorization` on the first request
|
|
21
|
+
const authorizationVersion = this.authorizationVersion;
|
|
20
22
|
const authorization = this.hasSentAuth ? undefined : this.authorization;
|
|
21
23
|
const result = await super.request(method, params, authorization);
|
|
22
|
-
this.
|
|
24
|
+
if (this.authorizationVersion === authorizationVersion) {
|
|
25
|
+
this.hasSentAuth = true;
|
|
26
|
+
}
|
|
23
27
|
return result;
|
|
24
28
|
}
|
|
25
29
|
/**
|
|
@@ -30,6 +34,7 @@ class ISocketWithClientAuth extends tracedSocket_js_1.TracedSocket {
|
|
|
30
34
|
*/
|
|
31
35
|
setAuthorization(newAuthorization) {
|
|
32
36
|
this.authorization = newAuthorization;
|
|
37
|
+
this.authorizationVersion++;
|
|
33
38
|
this.hasSentAuth = false;
|
|
34
39
|
}
|
|
35
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":";;;AAgEA,0DAmBC;AAhFD,2CAAkD;AAClD,uDAAiD;AAEjD,uCAA6C;AAE7C,sEAAsE;AACtE,mEAAmE;AACnE,MAAa,qBAAsG,SAAQ,8BAI1H;IACS,aAAa,CAAU;IACvB,oBAAoB,GAAG,CAAC,CAAC;IACzB,WAAW,GAAG,KAAK,CAAC;IAE5B,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;QAED,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,iDAAiD;QACjD,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,oBAAoB,KAAK,oBAAoB,EAAE,CAAC;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAoC;QACnD,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;QACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAhDD,sDAgDC;AAED;;;GAGG;AACI,KAAK,UAAU,uBAAuB,CAK3C,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,OAAO,IAAA,+BAAmB,EAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAQpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAW1D,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInE"}
|
package/dist/types/git/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":";;;AA8CA,sDAIC;AAKD,kEAIC;AA/CD;;;GAGG;AACU,QAAA,uBAAuB,GAAsB;IACxD,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,2BAA2B;IAC3B,iBAAiB;IACjB,0CAA0C;IAC1C,KAAK;CACN,CAAC;AAEF;;;GAGG;AACU,QAAA,6BAA6B,GAAsB;IAC9D,WAAW;IACX,eAAe;IACf,uCAAuC;IACvC,2BAA2B;IAC3B,iBAAiB;IACjB,0BAA0B;IAC1B,yBAAyB;IACzB,sCAAsC;IACtC,4BAA4B;IAC5B,uBAAuB;CACxB,CAAC;AAEF;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAc;IAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,+BAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CAAC,KAAc;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,qCAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/types/git/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const index_js_1 = require("./index.js");
|
|
5
|
+
(0, vitest_1.describe)('isGitAuthErrorMessage', () => {
|
|
6
|
+
(0, vitest_1.it)('matches fine-grained GitHub invalid username or token errors', () => {
|
|
7
|
+
(0, vitest_1.expect)((0, index_js_1.isGitAuthErrorMessage)(new Error('remote: Invalid username or token. Password authentication is not supported for Git operations.'))).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
(0, vitest_1.it)('matches password authentication is not supported errors', () => {
|
|
10
|
+
(0, vitest_1.expect)((0, index_js_1.isGitAuthErrorMessage)(new Error('fatal: Password authentication is not supported for Git operations.'))).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/types/git/index.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAE9C,yCAAmD;AAEnD,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAA,WAAE,EAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,IAAA,eAAM,EACJ,IAAA,gCAAqB,EAAC,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC,CACpI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,IAAA,eAAM,EAAC,IAAA,gCAAqB,EAAC,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7H,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist-esm/dbfs/types.d.ts
CHANGED
|
@@ -36,5 +36,38 @@ export interface PutManyResponsePayload {
|
|
|
36
36
|
hash: string;
|
|
37
37
|
}[];
|
|
38
38
|
}
|
|
39
|
+
export interface GetManyRequestPayload {
|
|
40
|
+
rootHash: string;
|
|
41
|
+
paths: string[];
|
|
42
|
+
/**
|
|
43
|
+
* Maximum aggregate size of decoded file contents and serialized metadata in
|
|
44
|
+
* the response.
|
|
45
|
+
*/
|
|
46
|
+
maxBytes?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Maximum number of requested objects plus entries nested in returned
|
|
49
|
+
* directory listings.
|
|
50
|
+
*/
|
|
51
|
+
maxObjects?: number;
|
|
52
|
+
}
|
|
53
|
+
export type GetManyItemPayload = {
|
|
54
|
+
type: 'directoryContents';
|
|
55
|
+
path: string;
|
|
56
|
+
hash: string;
|
|
57
|
+
contents: DirectoryEntry[];
|
|
58
|
+
} | {
|
|
59
|
+
type: 'fileContents';
|
|
60
|
+
path: string;
|
|
61
|
+
hash: string;
|
|
62
|
+
executable: boolean;
|
|
63
|
+
contents: string;
|
|
64
|
+
} | {
|
|
65
|
+
type: 'symlink';
|
|
66
|
+
path: string;
|
|
67
|
+
target: string;
|
|
68
|
+
};
|
|
69
|
+
export interface GetManyResponsePayload {
|
|
70
|
+
items: GetManyItemPayload[];
|
|
71
|
+
}
|
|
39
72
|
export {};
|
|
40
73
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dbfs/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAE/F,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,UAAU,uBAAuB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,4BAA4B;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,KAAK,WAAW,GAAG,uBAAuB,GAAG,4BAA4B,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dbfs/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAE/F,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,UAAU,uBAAuB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,4BAA4B;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,KAAK,WAAW,GAAG,uBAAuB,GAAG,4BAA4B,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DirectoryEntry, PutManyRequestPayload, PutManyResponsePayload } from '../dbfs/types.js';
|
|
1
|
+
import { DirectoryEntry, GetManyRequestPayload, GetManyResponsePayload, PutManyRequestPayload, PutManyResponsePayload } from '../dbfs/types.js';
|
|
2
2
|
import { ApiToSign, ApiToVerify, AppToSign, AppToVerify, ApplicationSignatureTreeSigned, Signature } from '../signing/constants.js';
|
|
3
3
|
import { ApplicationConfiguration, ApplicationPageClonePayload, CreateApplicationPageResponseBody, CreateApplicationPageSocketPayload, GetMultiPageApplicationResponseBody, GetApiResponseBody, IApplicationV2Dto, PageSummary, PostApiBranchCreateResponseBody, PostApplicationBranchCreateResponseBody, PostApplicationCreateRequestBody, RemoteCommitDto, ResponseMeta, ExportedMultiPageApplicationDto, ExportViewMode, ExportedApiV3Dto, ModifyEntitiesPayload, ModifyEntitiesResponse, GetAppBranchLockResponseBody, LockInfo, DegradedMode, CheckpointSkipReason } from '../types';
|
|
4
4
|
import { AiChatMessageDto, AiChatMessagePayload, AiPromptCostRequest, AiPromptCostResponse, AiWorkflowEvent, AiResolveAttachmentLeasesRequest, AiResolveAttachmentLeasesResponse, FactCreate, FactDto, FactListQuery, ListFactsResponse, NpmInstallBlockedAuditReport } from '../types/index.js';
|
|
@@ -109,6 +109,7 @@ export interface ServerMethods {
|
|
|
109
109
|
hash: string;
|
|
110
110
|
}>;
|
|
111
111
|
};
|
|
112
|
+
getMany: ServerMethodSchema<GetManyRequestPayload, GetManyResponsePayload>;
|
|
112
113
|
/**
|
|
113
114
|
* This method is used to put multiple files and directories at once. It is more efficient than calling the put method
|
|
114
115
|
* for each file and directory. The response is a list of hashes for the items that were put, in the same order as the items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":"AAAA,6GAA6G;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/socket/protocol.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAkD7G,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { trace } from '@opentelemetry/api';
|
|
1
2
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
3
|
import { INTENTIONAL_CLOSE_CODE, ISocket } from './socket.js';
|
|
4
|
+
import { ISocketWithClientAuth } from './socketWithClientAuth.js';
|
|
3
5
|
const PING_TIMEOUT_CLOSE_REASON = 'Ping timeout';
|
|
4
6
|
describe('ISocket', () => {
|
|
5
7
|
it('preserves the transport-close marker when rejecting pending requests with a reason', async () => {
|
|
@@ -18,4 +20,39 @@ describe('ISocket', () => {
|
|
|
18
20
|
expect(ws.close).toHaveBeenCalledWith(INTENTIONAL_CLOSE_CODE, PING_TIMEOUT_CLOSE_REASON);
|
|
19
21
|
});
|
|
20
22
|
});
|
|
23
|
+
describe('ISocketWithClientAuth', () => {
|
|
24
|
+
it('still sends a refreshed token when an older in-flight request resolves after setAuthorization', async () => {
|
|
25
|
+
let messageHandler;
|
|
26
|
+
const sentMessages = [];
|
|
27
|
+
const ws = {
|
|
28
|
+
addEventListener: vi.fn((event, handler) => {
|
|
29
|
+
if (event === 'message') {
|
|
30
|
+
messageHandler = handler;
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
33
|
+
close: vi.fn(),
|
|
34
|
+
send: vi.fn((message) => {
|
|
35
|
+
sentMessages.push(JSON.parse(message));
|
|
36
|
+
})
|
|
37
|
+
};
|
|
38
|
+
const socket = new ISocketWithClientAuth(ws, 'Bearer old-token', {}, [], trace.getTracer('test'), { onClose: vi.fn() });
|
|
39
|
+
const firstRequest = socket.request('editor.ping', {});
|
|
40
|
+
expect(sentMessages[0].request.setAuthorization).toBe('Bearer old-token');
|
|
41
|
+
socket.setAuthorization('Bearer new-token');
|
|
42
|
+
messageHandler?.({
|
|
43
|
+
data: JSON.stringify({
|
|
44
|
+
response: { id: 1, payload: undefined, error: null }
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
await firstRequest;
|
|
48
|
+
const secondRequest = socket.request('editor.ping', {});
|
|
49
|
+
expect(sentMessages[1].request.setAuthorization).toBe('Bearer new-token');
|
|
50
|
+
messageHandler?.({
|
|
51
|
+
data: JSON.stringify({
|
|
52
|
+
response: { id: 2, payload: undefined, error: null }
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
await secondRequest;
|
|
56
|
+
});
|
|
57
|
+
});
|
|
21
58
|
//# sourceMappingURL=socket.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket.test.js","sourceRoot":"","sources":["../../src/socket/socket.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"socket.test.js","sourceRoot":"","sources":["../../src/socket/socket.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { TracedSocket } from './tracedSocket.js';
|
|
|
4
4
|
import { GenericMiddleware, ISocketClient, MethodHandlers, RequestContextBase, SocketTimeouts } from './types.js';
|
|
5
5
|
export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestContext extends RequestContextBase> extends TracedSocket<ImplementedMethods, CallableMethods, RequestContext> {
|
|
6
6
|
private authorization?;
|
|
7
|
+
private authorizationVersion;
|
|
7
8
|
private hasSentAuth;
|
|
8
9
|
constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
|
|
9
10
|
onClose: (event: WebSocket.CloseEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;IAOG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKlH,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;IAOG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9E;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAK7D;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EACf,kBAAkB,EAClB,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAE9D,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpH,GACA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
|
|
@@ -5,6 +5,7 @@ import { connectWebSocket } from './util.js';
|
|
|
5
5
|
// this is useful for client-side sockets that need to authenticate
|
|
6
6
|
export class ISocketWithClientAuth extends TracedSocket {
|
|
7
7
|
authorization;
|
|
8
|
+
authorizationVersion = 0;
|
|
8
9
|
hasSentAuth = false;
|
|
9
10
|
constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, options) {
|
|
10
11
|
super(ws, requestHandlers, globalMiddlewares, tracer, options);
|
|
@@ -13,9 +14,12 @@ export class ISocketWithClientAuth extends TracedSocket {
|
|
|
13
14
|
// override `request` from the base class to send `authorization` when appropriate
|
|
14
15
|
async request(method, params) {
|
|
15
16
|
// only send `authorization` on the first request
|
|
17
|
+
const authorizationVersion = this.authorizationVersion;
|
|
16
18
|
const authorization = this.hasSentAuth ? undefined : this.authorization;
|
|
17
19
|
const result = await super.request(method, params, authorization);
|
|
18
|
-
this.
|
|
20
|
+
if (this.authorizationVersion === authorizationVersion) {
|
|
21
|
+
this.hasSentAuth = true;
|
|
22
|
+
}
|
|
19
23
|
return result;
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
@@ -26,6 +30,7 @@ export class ISocketWithClientAuth extends TracedSocket {
|
|
|
26
30
|
*/
|
|
27
31
|
setAuthorization(newAuthorization) {
|
|
28
32
|
this.authorization = newAuthorization;
|
|
33
|
+
this.authorizationVersion++;
|
|
29
34
|
this.hasSentAuth = false;
|
|
30
35
|
}
|
|
31
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,OAAO,qBAAsG,SAAQ,YAI1H;IACS,aAAa,CAAU;IACvB,WAAW,GAAG,KAAK,CAAC;IAE5B,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;QAED,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,iDAAiD;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,sEAAsE;AACtE,mEAAmE;AACnE,MAAM,OAAO,qBAAsG,SAAQ,YAI1H;IACS,aAAa,CAAU;IACvB,oBAAoB,GAAG,CAAC,CAAC;IACzB,WAAW,GAAG,KAAK,CAAC;IAE5B,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;QAED,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,iDAAiD;QACjD,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,oBAAoB,KAAK,oBAAoB,EAAE,CAAC;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,gBAAoC;QACnD,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;QACtC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAK3C,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;IAED,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAQpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAW1D,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI7D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,KAAK;CACN,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAsB;IAC9D,WAAW;IACX,eAAe;IACf,uCAAuC;IACvC,2BAA2B;IAC3B,iBAAiB;IACjB,0BAA0B;IAC1B,yBAAyB;IACzB,sCAAsC;IACtC,4BAA4B;IAC5B,uBAAuB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,6BAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClF,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/git/index.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,uBAAuB;IACvB,yBAAyB;IACzB,qBAAqB;IACrB,2BAA2B;IAC3B,iBAAiB;IACjB,0CAA0C;IAC1C,KAAK;CACN,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAsB;IAC9D,WAAW;IACX,eAAe;IACf,uCAAuC;IACvC,2BAA2B;IAC3B,iBAAiB;IACjB,0BAA0B;IAC1B,yBAAyB;IACzB,sCAAsC;IACtC,4BAA4B;IAC5B,uBAAuB;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,6BAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/types/git/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { isGitAuthErrorMessage } from './index.js';
|
|
3
|
+
describe('isGitAuthErrorMessage', () => {
|
|
4
|
+
it('matches fine-grained GitHub invalid username or token errors', () => {
|
|
5
|
+
expect(isGitAuthErrorMessage(new Error('remote: Invalid username or token. Password authentication is not supported for Git operations.'))).toBe(true);
|
|
6
|
+
});
|
|
7
|
+
it('matches password authentication is not supported errors', () => {
|
|
8
|
+
expect(isGitAuthErrorMessage(new Error('fatal: Password authentication is not supported for Git operations.'))).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/types/git/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CACJ,qBAAqB,CAAC,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC,CACpI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7H,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/dbfs/types.ts
CHANGED
|
@@ -47,3 +47,42 @@ export interface PutManyRequestPayload {
|
|
|
47
47
|
export interface PutManyResponsePayload {
|
|
48
48
|
items: { hash: string }[];
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
export interface GetManyRequestPayload {
|
|
52
|
+
rootHash: string;
|
|
53
|
+
paths: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Maximum aggregate size of decoded file contents and serialized metadata in
|
|
56
|
+
* the response.
|
|
57
|
+
*/
|
|
58
|
+
maxBytes?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Maximum number of requested objects plus entries nested in returned
|
|
61
|
+
* directory listings.
|
|
62
|
+
*/
|
|
63
|
+
maxObjects?: number;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export type GetManyItemPayload =
|
|
67
|
+
| {
|
|
68
|
+
type: 'directoryContents';
|
|
69
|
+
path: string;
|
|
70
|
+
hash: string;
|
|
71
|
+
contents: DirectoryEntry[];
|
|
72
|
+
}
|
|
73
|
+
| {
|
|
74
|
+
type: 'fileContents';
|
|
75
|
+
path: string;
|
|
76
|
+
hash: string;
|
|
77
|
+
executable: boolean;
|
|
78
|
+
contents: string;
|
|
79
|
+
}
|
|
80
|
+
| {
|
|
81
|
+
type: 'symlink';
|
|
82
|
+
path: string;
|
|
83
|
+
target: string;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export interface GetManyResponsePayload {
|
|
87
|
+
items: GetManyItemPayload[];
|
|
88
|
+
}
|
package/src/socket/protocol.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
// This file contains the definition of the protocol used for communication between the SB server and clients
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
DirectoryEntry,
|
|
5
|
+
GetManyRequestPayload,
|
|
6
|
+
GetManyResponsePayload,
|
|
7
|
+
PutManyRequestPayload,
|
|
8
|
+
PutManyResponsePayload
|
|
9
|
+
} from '../dbfs/types.js';
|
|
4
10
|
import { ApiToSign, ApiToVerify, AppToSign, AppToVerify, ApplicationSignatureTreeSigned, Signature } from '../signing/constants.js';
|
|
5
11
|
import {
|
|
6
12
|
ApplicationConfiguration,
|
|
@@ -123,6 +129,7 @@ export interface ServerMethods {
|
|
|
123
129
|
getByPath: ServerMethodSchema<{ directoryHash: string; path: string }, { contents: DirectoryEntry[] }>;
|
|
124
130
|
put: ServerMethodSchema<{ contents: DirectoryEntry[] }, { hash: string }>;
|
|
125
131
|
};
|
|
132
|
+
getMany: ServerMethodSchema<GetManyRequestPayload, GetManyResponsePayload>;
|
|
126
133
|
/**
|
|
127
134
|
* This method is used to put multiple files and directories at once. It is more efficient than calling the put method
|
|
128
135
|
* for each file and directory. The response is a list of hashes for the items that were put, in the same order as the items
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { trace } from '@opentelemetry/api';
|
|
1
2
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
3
|
|
|
3
4
|
import { INTENTIONAL_CLOSE_CODE, ISocket } from './socket.js';
|
|
5
|
+
import { ISocketWithClientAuth } from './socketWithClientAuth.js';
|
|
4
6
|
|
|
5
7
|
const PING_TIMEOUT_CLOSE_REASON = 'Ping timeout';
|
|
6
8
|
|
|
@@ -23,3 +25,44 @@ describe('ISocket', () => {
|
|
|
23
25
|
expect(ws.close).toHaveBeenCalledWith(INTENTIONAL_CLOSE_CODE, PING_TIMEOUT_CLOSE_REASON);
|
|
24
26
|
});
|
|
25
27
|
});
|
|
28
|
+
|
|
29
|
+
describe('ISocketWithClientAuth', () => {
|
|
30
|
+
it('still sends a refreshed token when an older in-flight request resolves after setAuthorization', async () => {
|
|
31
|
+
let messageHandler: ((event: { data: string }) => void) | undefined;
|
|
32
|
+
const sentMessages: Array<{
|
|
33
|
+
request: { id: number; setAuthorization?: string };
|
|
34
|
+
}> = [];
|
|
35
|
+
const ws = {
|
|
36
|
+
addEventListener: vi.fn((event: string, handler: (event: { data: string }) => void) => {
|
|
37
|
+
if (event === 'message') {
|
|
38
|
+
messageHandler = handler;
|
|
39
|
+
}
|
|
40
|
+
}),
|
|
41
|
+
close: vi.fn(),
|
|
42
|
+
send: vi.fn((message: string) => {
|
|
43
|
+
sentMessages.push(JSON.parse(message));
|
|
44
|
+
})
|
|
45
|
+
};
|
|
46
|
+
const socket = new ISocketWithClientAuth(ws as never, 'Bearer old-token', {}, [], trace.getTracer('test'), { onClose: vi.fn() });
|
|
47
|
+
|
|
48
|
+
const firstRequest = socket.request('editor.ping', {});
|
|
49
|
+
expect(sentMessages[0].request.setAuthorization).toBe('Bearer old-token');
|
|
50
|
+
|
|
51
|
+
socket.setAuthorization('Bearer new-token');
|
|
52
|
+
messageHandler?.({
|
|
53
|
+
data: JSON.stringify({
|
|
54
|
+
response: { id: 1, payload: undefined, error: null }
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
await firstRequest;
|
|
58
|
+
|
|
59
|
+
const secondRequest = socket.request('editor.ping', {});
|
|
60
|
+
expect(sentMessages[1].request.setAuthorization).toBe('Bearer new-token');
|
|
61
|
+
messageHandler?.({
|
|
62
|
+
data: JSON.stringify({
|
|
63
|
+
response: { id: 2, payload: undefined, error: null }
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
await secondRequest;
|
|
67
|
+
});
|
|
68
|
+
});
|
|
@@ -14,6 +14,7 @@ export class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestC
|
|
|
14
14
|
RequestContext
|
|
15
15
|
> {
|
|
16
16
|
private authorization?: string;
|
|
17
|
+
private authorizationVersion = 0;
|
|
17
18
|
private hasSentAuth = false;
|
|
18
19
|
|
|
19
20
|
constructor(
|
|
@@ -35,9 +36,12 @@ export class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestC
|
|
|
35
36
|
// override `request` from the base class to send `authorization` when appropriate
|
|
36
37
|
async request<Params, Result>(method: string, params: Params): Promise<Result> {
|
|
37
38
|
// only send `authorization` on the first request
|
|
39
|
+
const authorizationVersion = this.authorizationVersion;
|
|
38
40
|
const authorization = this.hasSentAuth ? undefined : this.authorization;
|
|
39
41
|
const result = await super.request<Params, Result>(method, params, authorization);
|
|
40
|
-
this.
|
|
42
|
+
if (this.authorizationVersion === authorizationVersion) {
|
|
43
|
+
this.hasSentAuth = true;
|
|
44
|
+
}
|
|
41
45
|
return result;
|
|
42
46
|
}
|
|
43
47
|
|
|
@@ -49,6 +53,7 @@ export class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestC
|
|
|
49
53
|
*/
|
|
50
54
|
setAuthorization(newAuthorization: string | undefined): void {
|
|
51
55
|
this.authorization = newAuthorization;
|
|
56
|
+
this.authorizationVersion++;
|
|
52
57
|
this.hasSentAuth = false;
|
|
53
58
|
}
|
|
54
59
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
|
|
3
|
+
import { isGitAuthErrorMessage } from './index.js';
|
|
4
|
+
|
|
5
|
+
describe('isGitAuthErrorMessage', () => {
|
|
6
|
+
it('matches fine-grained GitHub invalid username or token errors', () => {
|
|
7
|
+
expect(
|
|
8
|
+
isGitAuthErrorMessage(new Error('remote: Invalid username or token. Password authentication is not supported for Git operations.'))
|
|
9
|
+
).toBe(true);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('matches password authentication is not supported errors', () => {
|
|
13
|
+
expect(isGitAuthErrorMessage(new Error('fatal: Password authentication is not supported for Git operations.'))).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
});
|
package/src/types/git/index.ts
CHANGED
|
@@ -18,7 +18,9 @@ export const GIT_AUTH_ERROR_PATTERNS: readonly string[] = [
|
|
|
18
18
|
'authentication failed',
|
|
19
19
|
'could not read username',
|
|
20
20
|
'invalid credentials',
|
|
21
|
+
'invalid username or token',
|
|
21
22
|
'bad credentials',
|
|
23
|
+
'password authentication is not supported',
|
|
22
24
|
'401'
|
|
23
25
|
];
|
|
24
26
|
|