@matdata/yasqe 5.4.0 → 5.6.0
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/build/ts/src/__tests__/auth-test.d.ts +1 -0
- package/build/ts/src/__tests__/auth-test.js +342 -0
- package/build/ts/src/__tests__/auth-test.js.map +1 -0
- package/build/ts/src/__tests__/basicauth-test.d.ts +1 -0
- package/build/ts/src/__tests__/basicauth-test.js +52 -0
- package/build/ts/src/__tests__/basicauth-test.js.map +1 -0
- package/build/ts/src/defaults.js +3 -0
- package/build/ts/src/defaults.js.map +1 -1
- package/build/ts/src/index.d.ts +16 -1
- package/build/ts/src/index.js +8 -20
- package/build/ts/src/index.js.map +1 -1
- package/build/ts/src/sparql.d.ts +6 -1
- package/build/ts/src/sparql.js +126 -16
- package/build/ts/src/sparql.js.map +1 -1
- package/build/yasqe.min.css.map +1 -1
- package/build/yasqe.min.js +45 -45
- package/build/yasqe.min.js.map +3 -3
- package/package.json +1 -1
- package/src/__tests__/auth-test.ts +452 -0
- package/src/__tests__/basicauth-test.ts +66 -0
- package/src/defaults.ts +3 -0
- package/src/index.ts +24 -21
- package/src/sparql.ts +177 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { describe, it } from "mocha";
|
|
2
|
+
import { expect } from "chai";
|
|
3
|
+
describe("Authentication", () => {
|
|
4
|
+
describe("Basic Authentication", () => {
|
|
5
|
+
describe("Base64 Encoding", () => {
|
|
6
|
+
it("should encode credentials correctly", () => {
|
|
7
|
+
const username = "testuser";
|
|
8
|
+
const password = "testpass";
|
|
9
|
+
const credentials = `${username}:${password}`;
|
|
10
|
+
const encoded = btoa(credentials);
|
|
11
|
+
const expected = "dGVzdHVzZXI6dGVzdHBhc3M=";
|
|
12
|
+
expect(encoded).to.equal(expected);
|
|
13
|
+
});
|
|
14
|
+
it("should handle special characters", () => {
|
|
15
|
+
const username = "user@example.com";
|
|
16
|
+
const password = "p@ss:word!";
|
|
17
|
+
const credentials = `${username}:${password}`;
|
|
18
|
+
const encoded = btoa(credentials);
|
|
19
|
+
const decoded = atob(encoded);
|
|
20
|
+
expect(decoded).to.equal(credentials);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
describe("Authorization Header Format", () => {
|
|
24
|
+
it("should create proper Basic auth header", () => {
|
|
25
|
+
const username = "admin";
|
|
26
|
+
const password = "secret";
|
|
27
|
+
const credentials = `${username}:${password}`;
|
|
28
|
+
const encoded = btoa(credentials);
|
|
29
|
+
const header = `Basic ${encoded}`;
|
|
30
|
+
expect(header).to.equal("Basic YWRtaW46c2VjcmV0");
|
|
31
|
+
expect(header).to.match(/^Basic [A-Za-z0-9+/=]+$/);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe("Empty Credentials", () => {
|
|
35
|
+
it("should handle empty username", () => {
|
|
36
|
+
const username = "";
|
|
37
|
+
const password = "password";
|
|
38
|
+
const credentials = `${username}:${password}`;
|
|
39
|
+
const encoded = btoa(credentials);
|
|
40
|
+
expect(encoded).to.be.a("string");
|
|
41
|
+
expect(encoded.length).to.be.greaterThan(0);
|
|
42
|
+
});
|
|
43
|
+
it("should handle empty password", () => {
|
|
44
|
+
const username = "user";
|
|
45
|
+
const password = "";
|
|
46
|
+
const credentials = `${username}:${password}`;
|
|
47
|
+
const encoded = btoa(credentials);
|
|
48
|
+
expect(encoded).to.be.a("string");
|
|
49
|
+
expect(encoded.length).to.be.greaterThan(0);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
describe("Bearer Token Authentication", () => {
|
|
54
|
+
describe("Authorization Header Format", () => {
|
|
55
|
+
it("should create proper Bearer auth header", () => {
|
|
56
|
+
const token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
|
|
57
|
+
const header = `Bearer ${token}`;
|
|
58
|
+
expect(header).to.equal(`Bearer ${token}`);
|
|
59
|
+
expect(header).to.match(/^Bearer .+$/);
|
|
60
|
+
});
|
|
61
|
+
it("should handle various token formats", () => {
|
|
62
|
+
const tokens = [
|
|
63
|
+
"simple-token-123",
|
|
64
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0",
|
|
65
|
+
"ghp_1234567890abcdefghijklmnopqrstuv",
|
|
66
|
+
"Bearer_prefix_should_not_be_duplicated",
|
|
67
|
+
];
|
|
68
|
+
tokens.forEach((token) => {
|
|
69
|
+
const header = `Bearer ${token}`;
|
|
70
|
+
expect(header).to.match(/^Bearer .+$/);
|
|
71
|
+
expect(header).to.equal(`Bearer ${token}`);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe("Token Validation", () => {
|
|
76
|
+
it("should accept non-empty tokens", () => {
|
|
77
|
+
const validTokens = [
|
|
78
|
+
"abc123",
|
|
79
|
+
"very-long-token-with-many-characters-1234567890",
|
|
80
|
+
"token.with.dots",
|
|
81
|
+
"token_with_underscores",
|
|
82
|
+
];
|
|
83
|
+
validTokens.forEach((token) => {
|
|
84
|
+
expect(token).to.be.a("string");
|
|
85
|
+
expect(token.length).to.be.greaterThan(0);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
describe("API Key Authentication", () => {
|
|
91
|
+
describe("Custom Header Format", () => {
|
|
92
|
+
it("should create proper X-API-Key header", () => {
|
|
93
|
+
const headerName = "X-API-Key";
|
|
94
|
+
const apiKey = "abcdef123456";
|
|
95
|
+
expect(headerName).to.be.a("string");
|
|
96
|
+
expect(apiKey).to.be.a("string");
|
|
97
|
+
expect(headerName.length).to.be.greaterThan(0);
|
|
98
|
+
expect(apiKey.length).to.be.greaterThan(0);
|
|
99
|
+
});
|
|
100
|
+
it("should support various header names", () => {
|
|
101
|
+
const headers = [
|
|
102
|
+
{ name: "X-API-Key", value: "key123" },
|
|
103
|
+
{ name: "X-Auth-Token", value: "token456" },
|
|
104
|
+
{ name: "API-Key", value: "apikey789" },
|
|
105
|
+
{ name: "Authorization", value: "ApiKey xyz" },
|
|
106
|
+
{ name: "X-Custom-Auth", value: "custom-value" },
|
|
107
|
+
];
|
|
108
|
+
headers.forEach((header) => {
|
|
109
|
+
expect(header.name).to.be.a("string");
|
|
110
|
+
expect(header.value).to.be.a("string");
|
|
111
|
+
expect(header.name.length).to.be.greaterThan(0);
|
|
112
|
+
expect(header.value.length).to.be.greaterThan(0);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe("API Key Validation", () => {
|
|
117
|
+
it("should accept alphanumeric keys", () => {
|
|
118
|
+
const validKeys = ["abc123", "API-KEY-12345", "key_with_underscores", "key.with.dots", "UPPERCASE_KEY"];
|
|
119
|
+
validKeys.forEach((key) => {
|
|
120
|
+
expect(key).to.be.a("string");
|
|
121
|
+
expect(key.length).to.be.greaterThan(0);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
describe("Authentication Priority", () => {
|
|
127
|
+
it("should prioritize Bearer token over Basic auth", () => {
|
|
128
|
+
const basicAuthHeader = "Basic dGVzdDp0ZXN0";
|
|
129
|
+
const bearerAuthHeader = "Bearer token123";
|
|
130
|
+
expect(bearerAuthHeader).to.not.equal(basicAuthHeader);
|
|
131
|
+
expect(bearerAuthHeader).to.match(/^Bearer .+$/);
|
|
132
|
+
});
|
|
133
|
+
it("should allow API Key to coexist with Authorization header", () => {
|
|
134
|
+
const authHeader = "Authorization";
|
|
135
|
+
const apiKeyHeader = "X-API-Key";
|
|
136
|
+
expect(authHeader).to.not.equal(apiKeyHeader);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
describe("Authentication Implementation Tests", () => {
|
|
140
|
+
describe("Bearer Token Authentication", () => {
|
|
141
|
+
it("should create correct header format with token", () => {
|
|
142
|
+
const token = "test-token-123";
|
|
143
|
+
const header = `Bearer ${token}`;
|
|
144
|
+
expect(header).to.equal("Bearer test-token-123");
|
|
145
|
+
expect(header).to.match(/^Bearer .+$/);
|
|
146
|
+
});
|
|
147
|
+
it("should handle whitespace trimming in token", () => {
|
|
148
|
+
const token = " test-token-456 ";
|
|
149
|
+
const trimmedToken = token.trim();
|
|
150
|
+
const header = `Bearer ${trimmedToken}`;
|
|
151
|
+
expect(header).to.equal("Bearer test-token-456");
|
|
152
|
+
expect(header).to.not.include(" ");
|
|
153
|
+
expect(trimmedToken).to.equal("test-token-456");
|
|
154
|
+
});
|
|
155
|
+
it("should validate empty token", () => {
|
|
156
|
+
const token = "";
|
|
157
|
+
const trimmedToken = token.trim();
|
|
158
|
+
const isValid = trimmedToken.length > 0;
|
|
159
|
+
expect(isValid).to.be.false;
|
|
160
|
+
});
|
|
161
|
+
it("should validate whitespace-only token", () => {
|
|
162
|
+
const token = " ";
|
|
163
|
+
const trimmedToken = token.trim();
|
|
164
|
+
const isValid = trimmedToken.length > 0;
|
|
165
|
+
expect(isValid).to.be.false;
|
|
166
|
+
});
|
|
167
|
+
it("should validate non-empty token", () => {
|
|
168
|
+
const token = "valid-token";
|
|
169
|
+
const trimmedToken = token.trim();
|
|
170
|
+
const isValid = trimmedToken.length > 0;
|
|
171
|
+
expect(isValid).to.be.true;
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
describe("API Key Authentication", () => {
|
|
175
|
+
it("should create correct custom header with API key", () => {
|
|
176
|
+
const headerName = "X-API-Key";
|
|
177
|
+
const apiKey = "my-api-key-123";
|
|
178
|
+
const headers = {};
|
|
179
|
+
headers[headerName] = apiKey;
|
|
180
|
+
expect(headers["X-API-Key"]).to.equal("my-api-key-123");
|
|
181
|
+
});
|
|
182
|
+
it("should handle whitespace trimming in header name and API key", () => {
|
|
183
|
+
const headerName = " X-Custom-Key ";
|
|
184
|
+
const apiKey = " key-value ";
|
|
185
|
+
const trimmedHeaderName = headerName.trim();
|
|
186
|
+
const trimmedApiKey = apiKey.trim();
|
|
187
|
+
const headers = {};
|
|
188
|
+
headers[trimmedHeaderName] = trimmedApiKey;
|
|
189
|
+
expect(headers["X-Custom-Key"]).to.equal("key-value");
|
|
190
|
+
expect(trimmedHeaderName).to.equal("X-Custom-Key");
|
|
191
|
+
expect(trimmedApiKey).to.equal("key-value");
|
|
192
|
+
});
|
|
193
|
+
it("should validate empty API key", () => {
|
|
194
|
+
const apiKey = "";
|
|
195
|
+
const trimmedApiKey = apiKey.trim();
|
|
196
|
+
const isValid = trimmedApiKey.length > 0;
|
|
197
|
+
expect(isValid).to.be.false;
|
|
198
|
+
});
|
|
199
|
+
it("should validate empty header name", () => {
|
|
200
|
+
const headerName = "";
|
|
201
|
+
const trimmedHeaderName = headerName.trim();
|
|
202
|
+
const isValid = trimmedHeaderName.length > 0;
|
|
203
|
+
expect(isValid).to.be.false;
|
|
204
|
+
});
|
|
205
|
+
it("should validate whitespace-only header name and key", () => {
|
|
206
|
+
const headerName = " ";
|
|
207
|
+
const apiKey = " ";
|
|
208
|
+
const isHeaderNameValid = headerName.trim().length > 0;
|
|
209
|
+
const isApiKeyValid = apiKey.trim().length > 0;
|
|
210
|
+
expect(isHeaderNameValid).to.be.false;
|
|
211
|
+
expect(isApiKeyValid).to.be.false;
|
|
212
|
+
});
|
|
213
|
+
it("should support various header names", () => {
|
|
214
|
+
const headerNames = ["X-API-Key", "X-Auth-Token", "API-Key", "X-Custom-Auth"];
|
|
215
|
+
headerNames.forEach((headerName) => {
|
|
216
|
+
const headers = {};
|
|
217
|
+
headers[headerName] = "test-key";
|
|
218
|
+
expect(headers[headerName]).to.equal("test-key");
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
describe("Basic Authentication", () => {
|
|
223
|
+
it("should create correct Basic auth header format", () => {
|
|
224
|
+
const username = "testuser";
|
|
225
|
+
const password = "testpass";
|
|
226
|
+
const credentials = `${username}:${password}`;
|
|
227
|
+
const encoded = btoa(credentials);
|
|
228
|
+
const header = `Basic ${encoded}`;
|
|
229
|
+
expect(header).to.match(/^Basic [A-Za-z0-9+/=]+$/);
|
|
230
|
+
expect(header).to.equal("Basic dGVzdHVzZXI6dGVzdHBhc3M=");
|
|
231
|
+
});
|
|
232
|
+
it("should validate credentials are provided", () => {
|
|
233
|
+
const username = "user";
|
|
234
|
+
const password = "pass";
|
|
235
|
+
const hasCredentials = !!(username && password);
|
|
236
|
+
expect(hasCredentials).to.be.true;
|
|
237
|
+
});
|
|
238
|
+
it("should detect missing credentials", () => {
|
|
239
|
+
const username = "";
|
|
240
|
+
const password = "pass";
|
|
241
|
+
const hasCredentials = !!(username && password);
|
|
242
|
+
expect(hasCredentials).to.be.false;
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
describe("Authentication Priority and Collision Detection", () => {
|
|
246
|
+
it("should verify Bearer takes priority over Basic by checking Authorization header usage", () => {
|
|
247
|
+
const bearerToken = "bearer-token";
|
|
248
|
+
const bearerHeader = `Bearer ${bearerToken}`;
|
|
249
|
+
const basicHeader = "Basic " + btoa("user:pass");
|
|
250
|
+
expect(bearerHeader).to.not.equal(basicHeader);
|
|
251
|
+
expect(bearerHeader).to.include("Bearer");
|
|
252
|
+
expect(basicHeader).to.include("Basic");
|
|
253
|
+
});
|
|
254
|
+
it("should verify API Key can coexist with Bearer token using different headers", () => {
|
|
255
|
+
const authorizationHeader = "Authorization";
|
|
256
|
+
const apiKeyHeader = "X-API-Key";
|
|
257
|
+
expect(authorizationHeader).to.not.equal(apiKeyHeader);
|
|
258
|
+
});
|
|
259
|
+
it("should verify API Key can coexist with Basic auth using different headers", () => {
|
|
260
|
+
const authorizationHeader = "Authorization";
|
|
261
|
+
const apiKeyHeader = "X-API-Key";
|
|
262
|
+
expect(authorizationHeader).to.not.equal(apiKeyHeader);
|
|
263
|
+
});
|
|
264
|
+
it("should validate header collision detection logic", () => {
|
|
265
|
+
const headers = { Authorization: "existing-value" };
|
|
266
|
+
const headerExists = headers["Authorization"] !== undefined;
|
|
267
|
+
expect(headerExists).to.be.true;
|
|
268
|
+
if (headerExists) {
|
|
269
|
+
expect(headers["Authorization"]).to.equal("existing-value");
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
it("should validate custom header collision detection", () => {
|
|
273
|
+
const headers = { "X-API-Key": "existing-key" };
|
|
274
|
+
const headerExists = headers["X-API-Key"] !== undefined;
|
|
275
|
+
expect(headerExists).to.be.true;
|
|
276
|
+
if (headerExists) {
|
|
277
|
+
expect(headers["X-API-Key"]).to.equal("existing-key");
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
describe("Error Handling and Edge Cases", () => {
|
|
282
|
+
it("should validate undefined auth config handling", () => {
|
|
283
|
+
const bearerAuth = undefined;
|
|
284
|
+
const apiKeyAuth = undefined;
|
|
285
|
+
expect(bearerAuth).to.be.undefined;
|
|
286
|
+
expect(apiKeyAuth).to.be.undefined;
|
|
287
|
+
});
|
|
288
|
+
it("should validate null token handling", () => {
|
|
289
|
+
const token = null;
|
|
290
|
+
const isValid = !!(token && token.trim && token.trim().length > 0);
|
|
291
|
+
expect(isValid).to.be.false;
|
|
292
|
+
});
|
|
293
|
+
it("should validate function-based config pattern", () => {
|
|
294
|
+
const getBearerConfig = () => ({ token: "dynamic-token" });
|
|
295
|
+
const getApiKeyConfig = () => ({ headerName: "X-Key", apiKey: "dynamic-key" });
|
|
296
|
+
const bearerConfig = getBearerConfig();
|
|
297
|
+
const apiKeyConfig = getApiKeyConfig();
|
|
298
|
+
expect(bearerConfig.token).to.equal("dynamic-token");
|
|
299
|
+
expect(apiKeyConfig.headerName).to.equal("X-Key");
|
|
300
|
+
expect(apiKeyConfig.apiKey).to.equal("dynamic-key");
|
|
301
|
+
});
|
|
302
|
+
it("should validate error handling in function-based config", () => {
|
|
303
|
+
const getAuthConfigWithError = () => {
|
|
304
|
+
throw new Error("Config error");
|
|
305
|
+
};
|
|
306
|
+
try {
|
|
307
|
+
getAuthConfigWithError();
|
|
308
|
+
expect.fail("Should have thrown error");
|
|
309
|
+
}
|
|
310
|
+
catch (error) {
|
|
311
|
+
expect(error).to.be.instanceOf(Error);
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
describe("Trimming Behavior Verification", () => {
|
|
316
|
+
it("should verify trimmed values are used in headers not originals", () => {
|
|
317
|
+
const originalToken = " token-with-spaces ";
|
|
318
|
+
const trimmedToken = originalToken.trim();
|
|
319
|
+
const header = `Bearer ${trimmedToken}`;
|
|
320
|
+
expect(header).to.equal("Bearer token-with-spaces");
|
|
321
|
+
expect(header).to.not.include(" ");
|
|
322
|
+
});
|
|
323
|
+
it("should verify trimmed header name is used not original", () => {
|
|
324
|
+
const originalHeaderName = " X-API-Key ";
|
|
325
|
+
const trimmedHeaderName = originalHeaderName.trim();
|
|
326
|
+
const headers = {};
|
|
327
|
+
headers[trimmedHeaderName] = "value";
|
|
328
|
+
expect(headers["X-API-Key"]).to.equal("value");
|
|
329
|
+
expect(headers[" X-API-Key "]).to.be.undefined;
|
|
330
|
+
});
|
|
331
|
+
it("should verify trimmed API key is used not original", () => {
|
|
332
|
+
const originalKey = " key-value ";
|
|
333
|
+
const trimmedKey = originalKey.trim();
|
|
334
|
+
const headers = {};
|
|
335
|
+
headers["X-API-Key"] = trimmedKey;
|
|
336
|
+
expect(headers["X-API-Key"]).to.equal("key-value");
|
|
337
|
+
expect(headers["X-API-Key"]).to.not.include(" ");
|
|
338
|
+
});
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
});
|
|
342
|
+
//# sourceMappingURL=auth-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-test.js","sourceRoot":"","sources":["../../../../../../packages/yasqe/src/__tests__/auth-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { describe, it } from "mocha";
|
|
2
|
+
import { expect } from "chai";
|
|
3
|
+
describe("Basic Authentication", () => {
|
|
4
|
+
describe("Base64 Encoding", () => {
|
|
5
|
+
it("should encode credentials correctly", () => {
|
|
6
|
+
const username = "testuser";
|
|
7
|
+
const password = "testpass";
|
|
8
|
+
const credentials = `${username}:${password}`;
|
|
9
|
+
const encoded = btoa(credentials);
|
|
10
|
+
const expected = "dGVzdHVzZXI6dGVzdHBhc3M=";
|
|
11
|
+
expect(encoded).to.equal(expected);
|
|
12
|
+
});
|
|
13
|
+
it("should handle special characters", () => {
|
|
14
|
+
const username = "user@example.com";
|
|
15
|
+
const password = "p@ss:word!";
|
|
16
|
+
const credentials = `${username}:${password}`;
|
|
17
|
+
const encoded = btoa(credentials);
|
|
18
|
+
const decoded = atob(encoded);
|
|
19
|
+
expect(decoded).to.equal(credentials);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe("Authorization Header Format", () => {
|
|
23
|
+
it("should create proper Basic auth header", () => {
|
|
24
|
+
const username = "admin";
|
|
25
|
+
const password = "secret";
|
|
26
|
+
const credentials = `${username}:${password}`;
|
|
27
|
+
const encoded = btoa(credentials);
|
|
28
|
+
const header = `Basic ${encoded}`;
|
|
29
|
+
expect(header).to.equal("Basic YWRtaW46c2VjcmV0");
|
|
30
|
+
expect(header).to.match(/^Basic [A-Za-z0-9+/=]+$/);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe("Empty Credentials", () => {
|
|
34
|
+
it("should handle empty username", () => {
|
|
35
|
+
const username = "";
|
|
36
|
+
const password = "password";
|
|
37
|
+
const credentials = `${username}:${password}`;
|
|
38
|
+
const encoded = btoa(credentials);
|
|
39
|
+
expect(encoded).to.be.a("string");
|
|
40
|
+
expect(encoded.length).to.be.greaterThan(0);
|
|
41
|
+
});
|
|
42
|
+
it("should handle empty password", () => {
|
|
43
|
+
const username = "user";
|
|
44
|
+
const password = "";
|
|
45
|
+
const credentials = `${username}:${password}`;
|
|
46
|
+
const encoded = btoa(credentials);
|
|
47
|
+
expect(encoded).to.be.a("string");
|
|
48
|
+
expect(encoded.length).to.be.greaterThan(0);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=basicauth-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicauth-test.js","sourceRoot":"","sources":["../../../../../../packages/yasqe/src/__tests__/basicauth-test.ts"],"names":[],"mappings":"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"}
|
package/build/ts/src/defaults.js
CHANGED
|
@@ -149,6 +149,9 @@ SELECT * WHERE {
|
|
|
149
149
|
headers: {},
|
|
150
150
|
withCredentials: false,
|
|
151
151
|
adjustQueryBeforeRequest: false,
|
|
152
|
+
basicAuth: undefined,
|
|
153
|
+
bearerAuth: undefined,
|
|
154
|
+
apiKeyAuth: undefined,
|
|
152
155
|
};
|
|
153
156
|
return Object.assign(Object.assign({}, config), { requestConfig });
|
|
154
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../../packages/yasqe/src/defaults.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../../../packages/yasqe/src/defaults.ts"],"names":[],"mappings":"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"}
|
package/build/ts/src/index.d.ts
CHANGED
|
@@ -107,6 +107,7 @@ export declare class Yasqe extends CodeMirror {
|
|
|
107
107
|
hideNotification(key: string): void;
|
|
108
108
|
setSnippetsBarVisible(visible: boolean): void;
|
|
109
109
|
getSnippetsBarVisible(): boolean;
|
|
110
|
+
refreshSnippetsBar(): void;
|
|
110
111
|
enableCompleter(name: string): Promise<void>;
|
|
111
112
|
disableCompleter(name: string): void;
|
|
112
113
|
autocomplete(fromAutoShow?: boolean): void;
|
|
@@ -258,6 +259,18 @@ export interface HintConfig {
|
|
|
258
259
|
}) => void;
|
|
259
260
|
};
|
|
260
261
|
}
|
|
262
|
+
export interface BasicAuthConfig {
|
|
263
|
+
username: string;
|
|
264
|
+
password: string;
|
|
265
|
+
}
|
|
266
|
+
export interface BearerAuthConfig {
|
|
267
|
+
token: string;
|
|
268
|
+
}
|
|
269
|
+
export interface ApiKeyAuthConfig {
|
|
270
|
+
headerName: string;
|
|
271
|
+
apiKey: string;
|
|
272
|
+
}
|
|
273
|
+
export type AuthConfig = BasicAuthConfig | BearerAuthConfig | ApiKeyAuthConfig;
|
|
261
274
|
export interface RequestConfig<Y> {
|
|
262
275
|
queryArgument: string | ((yasqe: Y) => string) | undefined;
|
|
263
276
|
endpoint: string | ((yasqe: Y) => string);
|
|
@@ -281,6 +294,9 @@ export interface RequestConfig<Y> {
|
|
|
281
294
|
});
|
|
282
295
|
withCredentials: boolean | ((yasqe: Y) => boolean);
|
|
283
296
|
adjustQueryBeforeRequest: ((yasqe: Y) => string) | false;
|
|
297
|
+
basicAuth: BasicAuthConfig | ((yasqe: Y) => BasicAuthConfig | undefined) | undefined;
|
|
298
|
+
bearerAuth: BearerAuthConfig | ((yasqe: Y) => BearerAuthConfig | undefined) | undefined;
|
|
299
|
+
apiKeyAuth: ApiKeyAuthConfig | ((yasqe: Y) => ApiKeyAuthConfig | undefined) | undefined;
|
|
284
300
|
}
|
|
285
301
|
export type PlainRequestConfig = {
|
|
286
302
|
[K in keyof RequestConfig<any>]: Exclude<RequestConfig<any>[K], Function>;
|
|
@@ -328,6 +344,5 @@ export interface PersistentConfig {
|
|
|
328
344
|
editorHeight: string;
|
|
329
345
|
formatterType?: "sparql-formatter" | "legacy";
|
|
330
346
|
autoformatOnQuery?: boolean;
|
|
331
|
-
showSnippetsBar?: boolean;
|
|
332
347
|
}
|
|
333
348
|
export default Yasqe;
|
package/build/ts/src/index.js
CHANGED
|
@@ -342,10 +342,8 @@ export class Yasqe extends CodeMirror {
|
|
|
342
342
|
this.focus();
|
|
343
343
|
}
|
|
344
344
|
drawSnippetsBar() {
|
|
345
|
-
var _a
|
|
346
|
-
const shouldShow = this.config.showSnippetsBar &&
|
|
347
|
-
(((_a = this.persistentConfig) === null || _a === void 0 ? void 0 : _a.showSnippetsBar) === undefined || this.persistentConfig.showSnippetsBar) &&
|
|
348
|
-
this.config.snippets.length > 0;
|
|
345
|
+
var _a;
|
|
346
|
+
const shouldShow = this.config.showSnippetsBar && this.config.snippets.length > 0;
|
|
349
347
|
if (!shouldShow) {
|
|
350
348
|
if (this.snippetsBar) {
|
|
351
349
|
this.snippetsBar.remove();
|
|
@@ -357,7 +355,7 @@ export class Yasqe extends CodeMirror {
|
|
|
357
355
|
this.snippetsBar = document.createElement("div");
|
|
358
356
|
addClass(this.snippetsBar, "yasqe_snippetsBar");
|
|
359
357
|
const cmWrapper = this.getWrapperElement();
|
|
360
|
-
(
|
|
358
|
+
(_a = cmWrapper.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.snippetsBar, cmWrapper);
|
|
361
359
|
}
|
|
362
360
|
this.snippetsBar.innerHTML = "";
|
|
363
361
|
const snippets = this.config.snippets;
|
|
@@ -882,24 +880,14 @@ export class Yasqe extends CodeMirror {
|
|
|
882
880
|
}
|
|
883
881
|
}
|
|
884
882
|
setSnippetsBarVisible(visible) {
|
|
885
|
-
|
|
886
|
-
this.persistentConfig = {
|
|
887
|
-
query: this.getValue(),
|
|
888
|
-
editorHeight: this.config.editorHeight,
|
|
889
|
-
showSnippetsBar: visible,
|
|
890
|
-
};
|
|
891
|
-
}
|
|
892
|
-
else {
|
|
893
|
-
this.persistentConfig.showSnippetsBar = visible;
|
|
894
|
-
}
|
|
895
|
-
this.saveQuery();
|
|
883
|
+
this.config.showSnippetsBar = visible;
|
|
896
884
|
this.drawSnippetsBar();
|
|
897
885
|
}
|
|
898
886
|
getSnippetsBarVisible() {
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
887
|
+
return this.config.showSnippetsBar && this.config.snippets.length > 0;
|
|
888
|
+
}
|
|
889
|
+
refreshSnippetsBar() {
|
|
890
|
+
this.drawSnippetsBar();
|
|
903
891
|
}
|
|
904
892
|
enableCompleter(name) {
|
|
905
893
|
if (!Yasqe.Autocompleters[name])
|