@webda/core 2.2.0 → 2.3.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.
Files changed (82) hide show
  1. package/lib/application.d.ts +51 -9
  2. package/lib/application.js +18 -1
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +4 -2
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +31 -5
  7. package/lib/core.js +62 -2
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +49 -1
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +2 -0
  12. package/lib/index.js +2 -0
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +1 -1
  15. package/lib/models/aclmodel.spec.js +10 -10
  16. package/lib/models/aclmodel.spec.js.map +1 -1
  17. package/lib/models/coremodel.d.ts +103 -25
  18. package/lib/models/coremodel.js +162 -18
  19. package/lib/models/coremodel.js.map +1 -1
  20. package/lib/models/coremodel.spec.js +89 -2
  21. package/lib/models/coremodel.spec.js.map +1 -1
  22. package/lib/models/user.d.ts +3 -3
  23. package/lib/models/user.js.map +1 -1
  24. package/lib/models/user.spec.js +1 -0
  25. package/lib/models/user.spec.js.map +1 -1
  26. package/lib/router.d.ts +1 -1
  27. package/lib/services/authentication.d.ts +1 -1
  28. package/lib/services/binary.d.ts +2 -2
  29. package/lib/services/cloudbinary.spec.js +1 -0
  30. package/lib/services/cloudbinary.spec.js.map +1 -1
  31. package/lib/services/configuration.d.ts +1 -1
  32. package/lib/services/oauth.d.ts +1 -1
  33. package/lib/services/service.d.ts +3 -3
  34. package/lib/stores/aliasstore.d.ts +108 -0
  35. package/lib/stores/aliasstore.js +153 -0
  36. package/lib/stores/aliasstore.js.map +1 -0
  37. package/lib/stores/aliasstore.spec.d.ts +11 -0
  38. package/lib/stores/aliasstore.spec.js +87 -0
  39. package/lib/stores/aliasstore.spec.js.map +1 -0
  40. package/lib/stores/file.spec.js +20 -113
  41. package/lib/stores/file.spec.js.map +1 -1
  42. package/lib/stores/mapper.d.ts +1 -1
  43. package/lib/stores/mapper.js +1 -1
  44. package/lib/stores/mapper.js.map +1 -1
  45. package/lib/stores/memory.spec.js +4 -2
  46. package/lib/stores/memory.spec.js.map +1 -1
  47. package/lib/stores/store.d.ts +58 -5
  48. package/lib/stores/store.js +104 -9
  49. package/lib/stores/store.js.map +1 -1
  50. package/lib/stores/store.spec.d.ts +2 -0
  51. package/lib/stores/store.spec.js +125 -0
  52. package/lib/stores/store.spec.js.map +1 -1
  53. package/lib/stores/webdaql/WebdaQLLexer.js +5 -5
  54. package/lib/stores/webdaql/WebdaQLLexer.js.map +1 -1
  55. package/lib/stores/webdaql/WebdaQLParserLexer.js +5 -5
  56. package/lib/stores/webdaql/WebdaQLParserLexer.js.map +1 -1
  57. package/lib/stores/webdaql/WebdaQLParserParser.js +4 -4
  58. package/lib/stores/webdaql/WebdaQLParserParser.js.map +1 -1
  59. package/lib/stores/webdaql/query.d.ts +16 -1
  60. package/lib/stores/webdaql/query.js +50 -1
  61. package/lib/stores/webdaql/query.js.map +1 -1
  62. package/lib/stores/webdaql/query.spec.js +20 -0
  63. package/lib/stores/webdaql/query.spec.js.map +1 -1
  64. package/lib/utils/context.d.ts +2 -2
  65. package/lib/utils/context.js +22 -22
  66. package/lib/utils/context.js.map +1 -1
  67. package/lib/utils/cookie.js +1 -1
  68. package/lib/utils/cookie.js.map +1 -1
  69. package/lib/utils/cookie.spec.js +5 -189
  70. package/lib/utils/cookie.spec.js.map +1 -1
  71. package/lib/utils/httpcontext.d.ts +2 -2
  72. package/lib/utils/serializers.spec.js +8 -0
  73. package/lib/utils/serializers.spec.js.map +1 -1
  74. package/lib/utils/throttler.d.ts +82 -0
  75. package/lib/utils/throttler.js +136 -0
  76. package/lib/utils/throttler.js.map +1 -0
  77. package/lib/utils/throttler.spec.d.ts +1 -0
  78. package/lib/utils/throttler.spec.js +47 -0
  79. package/lib/utils/throttler.spec.js.map +1 -0
  80. package/lib/utils/waiter.d.ts +2 -2
  81. package/package.json +3 -3
  82. package/webda.module.json +56 -2
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { suite, test } from "@testdeck/mocha";
8
8
  import * as assert from "assert";
9
9
  import { serialize as cookieSerialize } from "cookie";
10
- import { Context, SecureCookie } from "../index.js";
10
+ import { Context, CookieOptions, SecureCookie } from "../index.js";
11
11
  import { WebdaTest } from "../test.js";
12
12
  import { SimpleOperationContext } from "./context.js";
13
13
  import { HttpContext } from "./httpcontext.js";
@@ -19,194 +19,6 @@ let CookieTest = class CookieTest extends WebdaTest {
19
19
  this._ctx = await this.webda.newContext(new HttpContext("test.webda.io", "GET", "/"));
20
20
  this.webda.updateContextWithRoute(this._ctx);
21
21
  }
22
- /*
23
- @test("No changes") testNoChanges() {
24
- var cookie = new SecureCookie(
25
- "test",
26
- {
27
- secretOrPublicKey: SECRET
28
- },
29
- this._ctx,
30
- {
31
- title: "TITLE",
32
- desc: "DESCRIPTION"
33
- }
34
- ).getProxy();
35
- assert.strictEqual(cookie["title"], "TITLE");
36
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
37
- assert.strictEqual(cookie.needSave(), false);
38
- }
39
-
40
- @test("Add a value") testAddValue() {
41
- var cookie = new SecureCookie(
42
- "test",
43
- {
44
- secretOrPublicKey: SECRET
45
- },
46
- this._ctx,
47
- {
48
- title: "TITLE",
49
- desc: "DESCRIPTION"
50
- }
51
- ).getProxy();
52
- cookie.test = "PLOP";
53
- assert.strictEqual(cookie["title"], "TITLE");
54
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
55
- assert.strictEqual(cookie["test"], "PLOP");
56
- assert.strictEqual(cookie.needSave(), true);
57
- }
58
-
59
- @test("Change a value") testChangeValue() {
60
- var cookie = new SecureCookie(
61
- "test",
62
- {
63
- secretOrPublicKey: SECRET
64
- },
65
- this._ctx,
66
- {
67
- title: "TITLE",
68
- desc: "DESCRIPTION"
69
- }
70
- ).getProxy();
71
- cookie.title = "TITLE2";
72
- assert.strictEqual(cookie["title"], "TITLE2");
73
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
74
- assert.strictEqual(cookie.needSave(), true);
75
- }
76
-
77
- @test("Delete a value") testDeleteValue() {
78
- var cookie = new SecureCookie(
79
- "test",
80
- {
81
- secretOrPublicKey: SECRET
82
- },
83
- this._ctx,
84
- {
85
- title: "TITLE",
86
- desc: "DESCRIPTION"
87
- }
88
- ).getProxy();
89
- cookie["title"] = undefined;
90
- assert.strictEqual(cookie["title"], undefined);
91
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
92
- assert.strictEqual(cookie.needSave(), true);
93
- }
94
-
95
- @test("Empty cookie") testEmptyCookie() {
96
- var cookie = new SecureCookie(
97
- "test",
98
- {
99
- secretOrPublicKey: SECRET
100
- },
101
- this._ctx,
102
- {}
103
- );
104
- assert.strictEqual(cookie.needSave(), false);
105
- }
106
-
107
- @test("session cookie") sessionCookie() {
108
- var cookie = new SessionCookie(this._ctx);
109
- assert.strictEqual(cookie.isLogged(), false);
110
- cookie.login("plop", "");
111
- assert.strictEqual(cookie.isLogged(), true);
112
- }
113
-
114
- @test("Cookie parameters") async testCookieParameters() {
115
- var cookie = new SecureCookie(
116
- "test",
117
- {
118
- secretOrPublicKey: SECRET
119
- },
120
- this._ctx,
121
- {}
122
- ).getProxy();
123
- cookie["title"] = "plop";
124
- assert.strictEqual(cookie.needSave(), true);
125
- await cookie.save(this._ctx);
126
- assert.deepStrictEqual(this._ctx.getResponseCookies()["test"].options, {
127
- path: "/",
128
- domain: "test.webda.io",
129
- httpOnly: true,
130
- secure: false,
131
- maxAge: 604800,
132
- sameSite: "None"
133
- });
134
- cookie["title"] = "plop2";
135
- assert.strictEqual(cookie.needSave(), true);
136
- // @ts-ignore
137
- this._ctx.parameters.cookie = {
138
- maxAge: 3600
139
- };
140
- await cookie.save(this._ctx);
141
- assert.deepStrictEqual(this._ctx.getResponseCookies()["test"].options, {
142
- path: "/",
143
- domain: "test.webda.io",
144
- httpOnly: true,
145
- secure: false,
146
- maxAge: 3600,
147
- sameSite: "Lax"
148
- });
149
- }
150
-
151
- @test("bad cookie")
152
- testBad() {
153
- this._ctx.getHttpContext().cookies = {
154
- testor: "badCookie"
155
- };
156
- let stub = sinon.stub(this._ctx, "log").callsFake(() => {});
157
- try {
158
- new SecureCookie(
159
- "testor",
160
- {
161
- secretOrPublicKey: "plop".repeat(64)
162
- },
163
- this._ctx
164
- );
165
- assert.strictEqual(stub.getCall(0).args[0], "WARN");
166
- assert.ok(stub.getCall(0).args[1].match(/Ignoring bad cookie/));
167
- } finally {
168
- stub.restore();
169
- }
170
- }
171
-
172
- @test("Normal enc/dec") async testEncryption() {
173
- var cookie = new SecureCookie(
174
- "test",
175
- {
176
- secretOrPublicKey: SECRET
177
- },
178
- this._ctx,
179
- {
180
- title: "TITLE",
181
- desc: "DESCRIPTION"
182
- }
183
- ).getProxy();
184
- assert.strictEqual(cookie["title"], "TITLE");
185
- assert.strictEqual(cookie["desc"], "DESCRIPTION");
186
- // Force encryption
187
- // @ts-ignore
188
- cookie.changed = true;
189
- await cookie.save(this._ctx);
190
- let cookies = this._ctx.getResponseCookies();
191
- let httpContext = this._ctx.getHttpContext();
192
- httpContext.cookies = httpContext.cookies || {};
193
- for (let i in cookies) {
194
- httpContext.cookies[i] = cookies[i].value;
195
- }
196
- var cookie2 = new SecureCookie(
197
- "test",
198
- {
199
- secretOrPublicKey: SECRET
200
- },
201
- this._ctx
202
- );
203
- assert.strictEqual(cookie.title, cookie2.title);
204
- assert.strictEqual(cookie2.needSave(), false);
205
- assert.strictEqual(cookie.desc, cookie2.desc);
206
- }
207
-
208
-
209
- */
210
22
  async testBadSecret() {
211
23
  let ctx = await this.newContext();
212
24
  ctx.getHttpContext().cookies = {};
@@ -218,6 +30,10 @@ let CookieTest = class CookieTest extends WebdaTest {
218
30
  let session = await SecureCookie.load("test", new Context(this.webda, undefined, undefined), undefined);
219
31
  assert.strictEqual(Object.keys(session).length, 0);
220
32
  assert.strictEqual(await new SimpleOperationContext(this.webda).setInput(Buffer.from("plop")).getRawInputAsString(), "plop");
33
+ let ctx = await this.newContext();
34
+ assert.ok(!new CookieOptions({}, ctx.getHttpContext()).secure);
35
+ ctx.getHttpContext().protocol = "https:";
36
+ assert.ok(new CookieOptions({}, ctx.getHttpContext()).secure);
221
37
  }
222
38
  async testOversize() {
223
39
  var cookie = new Session().getProxy();
@@ -1 +1 @@
1
- {"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cookie.spec.js","sourceRoot":"","sources":["../../src/utils/cookie.spec.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@
4
4
  /// <reference types="node" />
5
5
  import { IncomingHttpHeaders } from "http";
6
6
  import { Readable } from "stream";
7
- export declare type HttpMethodType = "GET" | "OPTIONS" | "POST" | "PUT" | "PATCH" | "DELETE";
8
- declare type HeadersRequest = IncomingHttpHeaders & {
7
+ export type HttpMethodType = "GET" | "OPTIONS" | "POST" | "PUT" | "PATCH" | "DELETE";
8
+ type HeadersRequest = IncomingHttpHeaders & {
9
9
  [headerName: `x-${string}`]: string;
10
10
  };
11
11
  /**
@@ -86,6 +86,11 @@ let UtilsTest = class UtilsTest {
86
86
  throw new Error("BOUZOUF");
87
87
  }), /BOUZOUF/);
88
88
  }
89
+ octal() {
90
+ assert.deepEqual(YAMLUtils.parse(`
91
+ plop: 0o600
92
+ `), { plop: 384 });
93
+ }
89
94
  yaml() {
90
95
  assert.strictEqual(YAMLUtils.stringify({ plop: "test" }), `plop: test
91
96
  `);
@@ -118,6 +123,9 @@ __decorate([
118
123
  __decorate([
119
124
  test
120
125
  ], UtilsTest.prototype, "audience", null);
126
+ __decorate([
127
+ test("YAML octal")
128
+ ], UtilsTest.prototype, "octal", null);
121
129
  __decorate([
122
130
  test("YAML stringify")
123
131
  ], UtilsTest.prototype, "yaml", null);
@@ -1 +1 @@
1
- {"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializers.spec.js","sourceRoot":"","sources":["../../src/utils/serializers.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Represent an item within the Throttler
3
+ */
4
+ declare class ThrottlerItem {
5
+ method: () => Promise<any>;
6
+ callbacks: ((res?: any) => void)[];
7
+ name: string;
8
+ /**
9
+ * Once the promise is in progress
10
+ */
11
+ promise?: Promise<any>;
12
+ constructor(method: () => Promise<any>, callbacks: ((res?: any) => void)[], name: string);
13
+ toString(): string;
14
+ }
15
+ /**
16
+ * Promise Throttler
17
+ *
18
+ * Allow you to queue promise and execute them concurrently
19
+ *
20
+ * Several libraries does that
21
+ *
22
+ * The queue method still gives you a simple Promise linked to the resolution
23
+ * of your queued item, so you can still wait for the execution of the specific
24
+ * item
25
+ */
26
+ export declare class Throttler {
27
+ protected concurrency: number;
28
+ /**
29
+ * Current queue
30
+ */
31
+ protected _queue: ThrottlerItem[];
32
+ /**
33
+ * Number of promises in-progress
34
+ */
35
+ current: number;
36
+ /**
37
+ * Resolver for each call to waitForCompletion
38
+ */
39
+ protected _waiters: (() => void)[];
40
+ /**
41
+ *
42
+ * @param concurrency max concurrent promise to execute
43
+ */
44
+ constructor(concurrency?: number);
45
+ /**
46
+ * Queue a new promise
47
+ *
48
+ * @param method executor that return the promise to queue
49
+ * @param name of the task, usefull when calling getInProgress
50
+ * @returns
51
+ */
52
+ queue(method: () => Promise<any>, name?: string): Promise<any>;
53
+ /**
54
+ * Set the concurrency
55
+ * @param concurrency newValue
56
+ *
57
+ * If decreased, it will be in effect only when current promises resolve
58
+ * If increased, it will have immediate effect
59
+ */
60
+ setConcurrency(concurrency: number): void;
61
+ /**
62
+ * Get inprogress items
63
+ * @returns
64
+ */
65
+ getInProgress(): ThrottlerItem[];
66
+ /**
67
+ * Get global queue size
68
+ * @returns
69
+ */
70
+ getSize(): number;
71
+ /**
72
+ * Wait until every promise resolve
73
+ * @returns
74
+ */
75
+ waitForCompletion(): Promise<void>;
76
+ /**
77
+ * Internal manage the promise concurrency
78
+ * @returns
79
+ */
80
+ protected add(): void;
81
+ }
82
+ export {};
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Represent an item within the Throttler
3
+ */
4
+ class ThrottlerItem {
5
+ constructor(method, callbacks, name) {
6
+ this.method = method;
7
+ this.callbacks = callbacks;
8
+ this.name = name;
9
+ }
10
+ toString() {
11
+ return `${this.name}: ${this.promise ? "IN-PROGRESS" : "QUEUED"}`;
12
+ }
13
+ }
14
+ /**
15
+ * Promise Throttler
16
+ *
17
+ * Allow you to queue promise and execute them concurrently
18
+ *
19
+ * Several libraries does that
20
+ *
21
+ * The queue method still gives you a simple Promise linked to the resolution
22
+ * of your queued item, so you can still wait for the execution of the specific
23
+ * item
24
+ */
25
+ export class Throttler {
26
+ /**
27
+ *
28
+ * @param concurrency max concurrent promise to execute
29
+ */
30
+ constructor(concurrency = 10) {
31
+ this.concurrency = concurrency;
32
+ /**
33
+ * Current queue
34
+ */
35
+ this._queue = [];
36
+ /**
37
+ * Number of promises in-progress
38
+ */
39
+ this.current = 0;
40
+ /**
41
+ * Resolver for each call to waitForCompletion
42
+ */
43
+ this._waiters = [];
44
+ }
45
+ /**
46
+ * Queue a new promise
47
+ *
48
+ * @param method executor that return the promise to queue
49
+ * @param name of the task, usefull when calling getInProgress
50
+ * @returns
51
+ */
52
+ queue(method, name = `Promise_${this.getSize()}`) {
53
+ return new Promise((...callbacks) => {
54
+ this._queue.push(new ThrottlerItem(method, callbacks, name));
55
+ this.add();
56
+ });
57
+ }
58
+ /**
59
+ * Set the concurrency
60
+ * @param concurrency newValue
61
+ *
62
+ * If decreased, it will be in effect only when current promises resolve
63
+ * If increased, it will have immediate effect
64
+ */
65
+ setConcurrency(concurrency) {
66
+ let oldValue = this.concurrency;
67
+ this.concurrency = concurrency;
68
+ // Ensure we launch new promise if concurrency has increased
69
+ while (oldValue < this.concurrency) {
70
+ this.add();
71
+ oldValue++;
72
+ }
73
+ }
74
+ /**
75
+ * Get inprogress items
76
+ * @returns
77
+ */
78
+ getInProgress() {
79
+ return this._queue.filter(p => p.promise);
80
+ }
81
+ /**
82
+ * Get global queue size
83
+ * @returns
84
+ */
85
+ getSize() {
86
+ return this._queue.length;
87
+ }
88
+ /**
89
+ * Wait until every promise resolve
90
+ * @returns
91
+ */
92
+ async waitForCompletion() {
93
+ if (this.current === 0) {
94
+ return;
95
+ }
96
+ return new Promise(resolve => {
97
+ this._waiters.push(resolve);
98
+ });
99
+ }
100
+ /**
101
+ * Internal manage the promise concurrency
102
+ * @returns
103
+ */
104
+ add() {
105
+ if (this.current >= this.concurrency) {
106
+ return;
107
+ }
108
+ const next = this._queue.find(p => !p.promise);
109
+ if (!next) {
110
+ if (this.current === 0) {
111
+ // Call all waiters
112
+ this._waiters.forEach(p => p());
113
+ this._waiters = [];
114
+ }
115
+ return;
116
+ }
117
+ this.current++;
118
+ next.promise = next
119
+ .method()
120
+ .then(res => {
121
+ // Call the resolve
122
+ next.callbacks[0](res);
123
+ })
124
+ .catch(err => {
125
+ // Call the reject
126
+ next.callbacks[1](err);
127
+ })
128
+ .finally(() => {
129
+ this.current--;
130
+ // Remove from queue
131
+ this._queue.splice(this._queue.indexOf(next), 1);
132
+ this.add();
133
+ });
134
+ }
135
+ }
136
+ //# sourceMappingURL=throttler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttler.js","sourceRoot":"","sources":["../../src/utils/throttler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,47 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { suite, test } from "@testdeck/mocha";
8
+ import * as assert from "assert";
9
+ import { Throttler } from "./throttler.js";
10
+ let ThrottlerTest = class ThrottlerTest {
11
+ async test() {
12
+ let resolvers = [];
13
+ let t = new Throttler(2);
14
+ t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P1");
15
+ t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P2");
16
+ t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P3");
17
+ t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P4");
18
+ t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P5");
19
+ t.queue(() => new Promise((_, reject) => resolvers.push(reject)), "P6");
20
+ t.queue(() => new Promise(resolve => resolvers.push(resolve)), "P7");
21
+ assert.strictEqual(t.getSize(), 7);
22
+ // @ts-ignore
23
+ resolvers.shift()();
24
+ assert.strictEqual(t.getInProgress().length, 2);
25
+ t.setConcurrency(1);
26
+ // @ts-ignore
27
+ resolvers.shift()();
28
+ await new Promise(resolve => setImmediate(resolve));
29
+ let curs = t.getInProgress();
30
+ assert.strictEqual(curs.length, 1, `Currents ${curs}`);
31
+ t.setConcurrency(3);
32
+ assert.strictEqual(t.getInProgress().length, 3);
33
+ let p = t.waitForCompletion();
34
+ resolvers.forEach(r => r());
35
+ await new Promise(resolve => setImmediate(resolve));
36
+ resolvers.forEach(r => r());
37
+ await p;
38
+ await t.waitForCompletion();
39
+ }
40
+ };
41
+ __decorate([
42
+ test
43
+ ], ThrottlerTest.prototype, "test", null);
44
+ ThrottlerTest = __decorate([
45
+ suite
46
+ ], ThrottlerTest);
47
+ //# sourceMappingURL=throttler.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttler.spec.js","sourceRoot":"","sources":["../../src/utils/throttler.spec.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Logger } from "../index.js";
2
2
  /**
3
3
  * Function that define the amount of time between calls
4
4
  */
5
- export declare type WaitDelayer = (retries: number) => number;
5
+ export type WaitDelayer = (retries: number) => number;
6
6
  /**
7
7
  * Return a delayer that always wait for the same amount of time
8
8
  * @param pause amount of time to wait
@@ -18,7 +18,7 @@ export declare function WaitExponentialDelay(pause: number): WaitDelayer;
18
18
  /**
19
19
  * Delayer factory definition
20
20
  */
21
- export declare type WaitDelayerFactory = (interval: number) => WaitDelayer;
21
+ export type WaitDelayerFactory = (interval: number) => WaitDelayer;
22
22
  /**
23
23
  * WaitDelayer definition
24
24
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webda/core",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "description": "Expose API with Lambda",
5
5
  "keywords": [
6
6
  "aws",
@@ -38,7 +38,7 @@
38
38
  "global": "^4.4.0",
39
39
  "jsonc-parser": "^3.0.0",
40
40
  "jsonpath": "^1.1.1",
41
- "jsonwebtoken": "^8.5.1",
41
+ "jsonwebtoken": "^9.0.0",
42
42
  "merge": "^2.1.1",
43
43
  "mime-types": "^2.1.31",
44
44
  "mustache": "^4.2.0",
@@ -103,5 +103,5 @@
103
103
  "engines": {
104
104
  "node": ">=14.6.0"
105
105
  },
106
- "gitHead": "e507a18418e927daed6ccb4814412c56c870d951"
106
+ "gitHead": "0c1c9f9a2dc0b572f229a53d9ad1a33caef5d5aa"
107
107
  }