@vercel/queue 0.0.0-alpha.36 → 0.0.0-alpha.37
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/README.md +4 -14
- package/dist/index.d.mts +2 -7
- package/dist/index.d.ts +2 -7
- package/dist/index.js +2 -62
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -61
- package/dist/index.mjs.map +1 -1
- package/dist/nextjs-pages.d.mts +1 -1
- package/dist/nextjs-pages.d.ts +1 -1
- package/dist/nextjs-pages.js +2 -60
- package/dist/nextjs-pages.js.map +1 -1
- package/dist/nextjs-pages.mjs +2 -60
- package/dist/nextjs-pages.mjs.map +1 -1
- package/dist/{types-C7IKe67P.d.mts → types-CAA8nT8x.d.mts} +1 -25
- package/dist/{types-C7IKe67P.d.ts → types-CAA8nT8x.d.ts} +1 -25
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -346,7 +346,6 @@ The queue client provides specific error types:
|
|
|
346
346
|
- **`UnauthorizedError`**: Authentication failed (invalid or missing token)
|
|
347
347
|
- **`ForbiddenError`**: Access denied (wrong environment or project)
|
|
348
348
|
- **`DuplicateMessageError`**: Idempotency key was already used
|
|
349
|
-
- **`ConcurrencyLimitError`**: Too many in-flight messages
|
|
350
349
|
- **`ConsumerDiscoveryError`**: Could not reach the consumer deployment
|
|
351
350
|
- **`ConsumerRegistryNotConfiguredError`**: Project not configured for queues
|
|
352
351
|
- **`InternalServerError`**: Unexpected server error
|
|
@@ -357,7 +356,6 @@ Example error handling:
|
|
|
357
356
|
```typescript
|
|
358
357
|
import {
|
|
359
358
|
BadRequestError,
|
|
360
|
-
ConcurrencyLimitError,
|
|
361
359
|
DuplicateMessageError,
|
|
362
360
|
ForbiddenError,
|
|
363
361
|
InternalServerError,
|
|
@@ -375,13 +373,6 @@ try {
|
|
|
375
373
|
console.log("Invalid parameters:", error.message);
|
|
376
374
|
} else if (error instanceof DuplicateMessageError) {
|
|
377
375
|
console.log("Duplicate message:", error.idempotencyKey);
|
|
378
|
-
} else if (error instanceof ConcurrencyLimitError) {
|
|
379
|
-
console.log(
|
|
380
|
-
"Rate limited:",
|
|
381
|
-
error.currentInflight,
|
|
382
|
-
"/",
|
|
383
|
-
error.maxConcurrency,
|
|
384
|
-
);
|
|
385
376
|
} else if (error instanceof InternalServerError) {
|
|
386
377
|
console.log("Server error - retry with backoff");
|
|
387
378
|
}
|
|
@@ -464,11 +455,10 @@ interface MessageMetadata {
|
|
|
464
455
|
|
|
465
456
|
#### Receiving Messages
|
|
466
457
|
|
|
467
|
-
| Parameter | Default
|
|
468
|
-
| -------------------------- |
|
|
469
|
-
| `visibilityTimeoutSeconds` | 30
|
|
470
|
-
| `limit` | 1
|
|
471
|
-
| `maxConcurrency` | unlimited | 1 | 10,000 | In-flight message limit |
|
|
458
|
+
| Parameter | Default | Min | Max | Notes |
|
|
459
|
+
| -------------------------- | ------- | --- | ----- | --------------------------- |
|
|
460
|
+
| `visibilityTimeoutSeconds` | 30 | 0 | 3,600 | 0 = immediate re-visibility |
|
|
461
|
+
| `limit` | 1 | 1 | 10 | Messages per request |
|
|
472
462
|
|
|
473
463
|
#### Visibility Extension
|
|
474
464
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Q as QueueClientOptions, S as SendMessageOptions, T as Transport, a as SendMessageResponse, R as ReceiveMessagesOptions, M as Message, b as ReceiveMessageByIdOptions, c as ReceiveMessageByIdResponse, D as DeleteMessageOptions, d as DeleteMessageResponse, C as ChangeVisibilityOptions, e as ChangeVisibilityResponse, f as MessageHandler, P as PublishOptions, g as ConsumerGroupOptions } from './types-
|
|
2
|
-
export { i as BadRequestError, B as BufferTransport, j as
|
|
1
|
+
import { Q as QueueClientOptions, S as SendMessageOptions, T as Transport, a as SendMessageResponse, R as ReceiveMessagesOptions, M as Message, b as ReceiveMessageByIdOptions, c as ReceiveMessageByIdResponse, D as DeleteMessageOptions, d as DeleteMessageResponse, C as ChangeVisibilityOptions, e as ChangeVisibilityResponse, f as MessageHandler, P as PublishOptions, g as ConsumerGroupOptions } from './types-CAA8nT8x.mjs';
|
|
2
|
+
export { i as BadRequestError, B as BufferTransport, j as ConsumerDiscoveryError, k as ConsumerRegistryNotConfiguredError, l as DuplicateMessageError, F as ForbiddenError, I as InternalServerError, m as InvalidLimitError, J as JsonTransport, n as MessageAlreadyProcessedError, o as MessageCorruptedError, p as MessageLockedError, t as MessageMetadata, q as MessageNotAvailableError, r as MessageNotFoundError, s as QueueEmptyError, h as StreamTransport, U as UnauthorizedError } from './types-CAA8nT8x.mjs';
|
|
3
3
|
|
|
4
4
|
declare class QueueClient {
|
|
5
5
|
private baseUrl;
|
|
@@ -42,12 +42,10 @@ declare class QueueClient {
|
|
|
42
42
|
* @param options.consumerGroup - Consumer group name (pattern: `[A-Za-z0-9_-]+`)
|
|
43
43
|
* @param options.visibilityTimeoutSeconds - Lock duration (default: 30, min: 0, max: 3600)
|
|
44
44
|
* @param options.limit - Max messages to retrieve (default: 1, min: 1, max: 10)
|
|
45
|
-
* @param options.maxConcurrency - Max in-flight messages (default: unlimited, min: 1)
|
|
46
45
|
* @param transport - Deserializer for message payloads
|
|
47
46
|
* @yields Message objects with payload, messageId, receiptHandle, etc.
|
|
48
47
|
* @throws {QueueEmptyError} When no messages available
|
|
49
48
|
* @throws {InvalidLimitError} When limit is outside 1-10 range
|
|
50
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
51
49
|
* @throws {BadRequestError} When parameters are invalid
|
|
52
50
|
* @throws {UnauthorizedError} When authentication fails
|
|
53
51
|
* @throws {ForbiddenError} When access is denied
|
|
@@ -62,13 +60,11 @@ declare class QueueClient {
|
|
|
62
60
|
* @param options.consumerGroup - Consumer group name (pattern: `[A-Za-z0-9_-]+`)
|
|
63
61
|
* @param options.messageId - Message ID to retrieve
|
|
64
62
|
* @param options.visibilityTimeoutSeconds - Lock duration (default: 30, min: 0, max: 3600)
|
|
65
|
-
* @param options.maxConcurrency - Max in-flight messages (default: unlimited, min: 1)
|
|
66
63
|
* @param transport - Deserializer for the message payload
|
|
67
64
|
* @returns Promise with the message
|
|
68
65
|
* @throws {MessageNotFoundError} When message doesn't exist
|
|
69
66
|
* @throws {MessageNotAvailableError} When message is in wrong state or was a duplicate
|
|
70
67
|
* @throws {MessageAlreadyProcessedError} When message was already processed
|
|
71
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
72
68
|
* @throws {BadRequestError} When parameters are invalid
|
|
73
69
|
* @throws {UnauthorizedError} When authentication fails
|
|
74
70
|
* @throws {ForbiddenError} When access is denied
|
|
@@ -397,7 +393,6 @@ interface ReceiveOptions<T = unknown> extends ConsumerGroupOptions<T>, ConsumeOp
|
|
|
397
393
|
* @param options.transport - Payload deserializer (default: JsonTransport)
|
|
398
394
|
* @returns Promise that resolves when the message is processed and deleted
|
|
399
395
|
* @throws {QueueEmptyError} When no messages available
|
|
400
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
401
396
|
*/
|
|
402
397
|
declare function receive<T = unknown>(topicName: string, consumerGroup: string, handler: MessageHandler<T>, options?: ReceiveOptions<T>): Promise<void>;
|
|
403
398
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Q as QueueClientOptions, S as SendMessageOptions, T as Transport, a as SendMessageResponse, R as ReceiveMessagesOptions, M as Message, b as ReceiveMessageByIdOptions, c as ReceiveMessageByIdResponse, D as DeleteMessageOptions, d as DeleteMessageResponse, C as ChangeVisibilityOptions, e as ChangeVisibilityResponse, f as MessageHandler, P as PublishOptions, g as ConsumerGroupOptions } from './types-
|
|
2
|
-
export { i as BadRequestError, B as BufferTransport, j as
|
|
1
|
+
import { Q as QueueClientOptions, S as SendMessageOptions, T as Transport, a as SendMessageResponse, R as ReceiveMessagesOptions, M as Message, b as ReceiveMessageByIdOptions, c as ReceiveMessageByIdResponse, D as DeleteMessageOptions, d as DeleteMessageResponse, C as ChangeVisibilityOptions, e as ChangeVisibilityResponse, f as MessageHandler, P as PublishOptions, g as ConsumerGroupOptions } from './types-CAA8nT8x.js';
|
|
2
|
+
export { i as BadRequestError, B as BufferTransport, j as ConsumerDiscoveryError, k as ConsumerRegistryNotConfiguredError, l as DuplicateMessageError, F as ForbiddenError, I as InternalServerError, m as InvalidLimitError, J as JsonTransport, n as MessageAlreadyProcessedError, o as MessageCorruptedError, p as MessageLockedError, t as MessageMetadata, q as MessageNotAvailableError, r as MessageNotFoundError, s as QueueEmptyError, h as StreamTransport, U as UnauthorizedError } from './types-CAA8nT8x.js';
|
|
3
3
|
|
|
4
4
|
declare class QueueClient {
|
|
5
5
|
private baseUrl;
|
|
@@ -42,12 +42,10 @@ declare class QueueClient {
|
|
|
42
42
|
* @param options.consumerGroup - Consumer group name (pattern: `[A-Za-z0-9_-]+`)
|
|
43
43
|
* @param options.visibilityTimeoutSeconds - Lock duration (default: 30, min: 0, max: 3600)
|
|
44
44
|
* @param options.limit - Max messages to retrieve (default: 1, min: 1, max: 10)
|
|
45
|
-
* @param options.maxConcurrency - Max in-flight messages (default: unlimited, min: 1)
|
|
46
45
|
* @param transport - Deserializer for message payloads
|
|
47
46
|
* @yields Message objects with payload, messageId, receiptHandle, etc.
|
|
48
47
|
* @throws {QueueEmptyError} When no messages available
|
|
49
48
|
* @throws {InvalidLimitError} When limit is outside 1-10 range
|
|
50
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
51
49
|
* @throws {BadRequestError} When parameters are invalid
|
|
52
50
|
* @throws {UnauthorizedError} When authentication fails
|
|
53
51
|
* @throws {ForbiddenError} When access is denied
|
|
@@ -62,13 +60,11 @@ declare class QueueClient {
|
|
|
62
60
|
* @param options.consumerGroup - Consumer group name (pattern: `[A-Za-z0-9_-]+`)
|
|
63
61
|
* @param options.messageId - Message ID to retrieve
|
|
64
62
|
* @param options.visibilityTimeoutSeconds - Lock duration (default: 30, min: 0, max: 3600)
|
|
65
|
-
* @param options.maxConcurrency - Max in-flight messages (default: unlimited, min: 1)
|
|
66
63
|
* @param transport - Deserializer for the message payload
|
|
67
64
|
* @returns Promise with the message
|
|
68
65
|
* @throws {MessageNotFoundError} When message doesn't exist
|
|
69
66
|
* @throws {MessageNotAvailableError} When message is in wrong state or was a duplicate
|
|
70
67
|
* @throws {MessageAlreadyProcessedError} When message was already processed
|
|
71
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
72
68
|
* @throws {BadRequestError} When parameters are invalid
|
|
73
69
|
* @throws {UnauthorizedError} When authentication fails
|
|
74
70
|
* @throws {ForbiddenError} When access is denied
|
|
@@ -397,7 +393,6 @@ interface ReceiveOptions<T = unknown> extends ConsumerGroupOptions<T>, ConsumeOp
|
|
|
397
393
|
* @param options.transport - Payload deserializer (default: JsonTransport)
|
|
398
394
|
* @returns Promise that resolves when the message is processed and deleted
|
|
399
395
|
* @throws {QueueEmptyError} When no messages available
|
|
400
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
401
396
|
*/
|
|
402
397
|
declare function receive<T = unknown>(topicName: string, consumerGroup: string, handler: MessageHandler<T>, options?: ReceiveOptions<T>): Promise<void>;
|
|
403
398
|
/**
|
package/dist/index.js
CHANGED
|
@@ -33,7 +33,6 @@ __export(index_exports, {
|
|
|
33
33
|
BadRequestError: () => BadRequestError,
|
|
34
34
|
BufferTransport: () => BufferTransport,
|
|
35
35
|
Client: () => Client,
|
|
36
|
-
ConcurrencyLimitError: () => ConcurrencyLimitError,
|
|
37
36
|
ConsumerDiscoveryError: () => ConsumerDiscoveryError,
|
|
38
37
|
ConsumerRegistryNotConfiguredError: () => ConsumerRegistryNotConfiguredError,
|
|
39
38
|
DuplicateMessageError: () => DuplicateMessageError,
|
|
@@ -211,18 +210,6 @@ var MessageAlreadyProcessedError = class extends Error {
|
|
|
211
210
|
this.name = "MessageAlreadyProcessedError";
|
|
212
211
|
}
|
|
213
212
|
};
|
|
214
|
-
var ConcurrencyLimitError = class extends Error {
|
|
215
|
-
/** Current number of in-flight messages for this consumer group. */
|
|
216
|
-
currentInflight;
|
|
217
|
-
/** Maximum allowed concurrent messages (as configured). */
|
|
218
|
-
maxConcurrency;
|
|
219
|
-
constructor(message = "Concurrency limit exceeded", currentInflight, maxConcurrency) {
|
|
220
|
-
super(message);
|
|
221
|
-
this.name = "ConcurrencyLimitError";
|
|
222
|
-
this.currentInflight = currentInflight;
|
|
223
|
-
this.maxConcurrency = maxConcurrency;
|
|
224
|
-
}
|
|
225
|
-
};
|
|
226
213
|
var DuplicateMessageError = class extends Error {
|
|
227
214
|
idempotencyKey;
|
|
228
215
|
constructor(message, idempotencyKey) {
|
|
@@ -707,25 +694,17 @@ var QueueClient = class {
|
|
|
707
694
|
* @param options.consumerGroup - Consumer group name (pattern: `[A-Za-z0-9_-]+`)
|
|
708
695
|
* @param options.visibilityTimeoutSeconds - Lock duration (default: 30, min: 0, max: 3600)
|
|
709
696
|
* @param options.limit - Max messages to retrieve (default: 1, min: 1, max: 10)
|
|
710
|
-
* @param options.maxConcurrency - Max in-flight messages (default: unlimited, min: 1)
|
|
711
697
|
* @param transport - Deserializer for message payloads
|
|
712
698
|
* @yields Message objects with payload, messageId, receiptHandle, etc.
|
|
713
699
|
* @throws {QueueEmptyError} When no messages available
|
|
714
700
|
* @throws {InvalidLimitError} When limit is outside 1-10 range
|
|
715
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
716
701
|
* @throws {BadRequestError} When parameters are invalid
|
|
717
702
|
* @throws {UnauthorizedError} When authentication fails
|
|
718
703
|
* @throws {ForbiddenError} When access is denied
|
|
719
704
|
* @throws {InternalServerError} When server encounters an error
|
|
720
705
|
*/
|
|
721
706
|
async *receiveMessages(options, transport) {
|
|
722
|
-
const {
|
|
723
|
-
queueName,
|
|
724
|
-
consumerGroup,
|
|
725
|
-
visibilityTimeoutSeconds,
|
|
726
|
-
limit,
|
|
727
|
-
maxConcurrency
|
|
728
|
-
} = options;
|
|
707
|
+
const { queueName, consumerGroup, visibilityTimeoutSeconds, limit } = options;
|
|
729
708
|
if (limit !== void 0 && (limit < 1 || limit > 10)) {
|
|
730
709
|
throw new InvalidLimitError(limit);
|
|
731
710
|
}
|
|
@@ -743,9 +722,6 @@ var QueueClient = class {
|
|
|
743
722
|
if (limit !== void 0) {
|
|
744
723
|
headers.set("Vqs-Max-Messages", limit.toString());
|
|
745
724
|
}
|
|
746
|
-
if (maxConcurrency !== void 0) {
|
|
747
|
-
headers.set("Vqs-Max-Concurrency", maxConcurrency.toString());
|
|
748
|
-
}
|
|
749
725
|
const effectiveDeploymentId = this.getConsumeDeploymentId();
|
|
750
726
|
if (effectiveDeploymentId) {
|
|
751
727
|
headers.set("Vqs-Deployment-Id", effectiveDeploymentId);
|
|
@@ -762,18 +738,6 @@ var QueueClient = class {
|
|
|
762
738
|
}
|
|
763
739
|
if (!response.ok) {
|
|
764
740
|
const errorText = await response.text();
|
|
765
|
-
if (response.status === 429) {
|
|
766
|
-
let errorData = {};
|
|
767
|
-
try {
|
|
768
|
-
errorData = JSON.parse(errorText);
|
|
769
|
-
} catch {
|
|
770
|
-
}
|
|
771
|
-
throw new ConcurrencyLimitError(
|
|
772
|
-
errorData.error || "Concurrency limit exceeded or throttled",
|
|
773
|
-
errorData.currentInflight,
|
|
774
|
-
errorData.maxConcurrency
|
|
775
|
-
);
|
|
776
|
-
}
|
|
777
741
|
throwCommonHttpError(
|
|
778
742
|
response.status,
|
|
779
743
|
response.statusText,
|
|
@@ -811,26 +775,18 @@ var QueueClient = class {
|
|
|
811
775
|
* @param options.consumerGroup - Consumer group name (pattern: `[A-Za-z0-9_-]+`)
|
|
812
776
|
* @param options.messageId - Message ID to retrieve
|
|
813
777
|
* @param options.visibilityTimeoutSeconds - Lock duration (default: 30, min: 0, max: 3600)
|
|
814
|
-
* @param options.maxConcurrency - Max in-flight messages (default: unlimited, min: 1)
|
|
815
778
|
* @param transport - Deserializer for the message payload
|
|
816
779
|
* @returns Promise with the message
|
|
817
780
|
* @throws {MessageNotFoundError} When message doesn't exist
|
|
818
781
|
* @throws {MessageNotAvailableError} When message is in wrong state or was a duplicate
|
|
819
782
|
* @throws {MessageAlreadyProcessedError} When message was already processed
|
|
820
|
-
* @throws {ConcurrencyLimitError} When maxConcurrency exceeded
|
|
821
783
|
* @throws {BadRequestError} When parameters are invalid
|
|
822
784
|
* @throws {UnauthorizedError} When authentication fails
|
|
823
785
|
* @throws {ForbiddenError} When access is denied
|
|
824
786
|
* @throws {InternalServerError} When server encounters an error
|
|
825
787
|
*/
|
|
826
788
|
async receiveMessageById(options, transport) {
|
|
827
|
-
const {
|
|
828
|
-
queueName,
|
|
829
|
-
consumerGroup,
|
|
830
|
-
messageId,
|
|
831
|
-
visibilityTimeoutSeconds,
|
|
832
|
-
maxConcurrency
|
|
833
|
-
} = options;
|
|
789
|
+
const { queueName, consumerGroup, messageId, visibilityTimeoutSeconds } = options;
|
|
834
790
|
const headers = new Headers({
|
|
835
791
|
Authorization: `Bearer ${await this.getToken()}`,
|
|
836
792
|
Accept: "multipart/mixed",
|
|
@@ -842,9 +798,6 @@ var QueueClient = class {
|
|
|
842
798
|
visibilityTimeoutSeconds.toString()
|
|
843
799
|
);
|
|
844
800
|
}
|
|
845
|
-
if (maxConcurrency !== void 0) {
|
|
846
|
-
headers.set("Vqs-Max-Concurrency", maxConcurrency.toString());
|
|
847
|
-
}
|
|
848
801
|
const effectiveDeploymentId = this.getConsumeDeploymentId();
|
|
849
802
|
if (effectiveDeploymentId) {
|
|
850
803
|
headers.set("Vqs-Deployment-Id", effectiveDeploymentId);
|
|
@@ -878,18 +831,6 @@ var QueueClient = class {
|
|
|
878
831
|
if (response.status === 410) {
|
|
879
832
|
throw new MessageAlreadyProcessedError(messageId);
|
|
880
833
|
}
|
|
881
|
-
if (response.status === 429) {
|
|
882
|
-
let errorData = {};
|
|
883
|
-
try {
|
|
884
|
-
errorData = JSON.parse(errorText);
|
|
885
|
-
} catch {
|
|
886
|
-
}
|
|
887
|
-
throw new ConcurrencyLimitError(
|
|
888
|
-
errorData.error || "Concurrency limit exceeded or throttled",
|
|
889
|
-
errorData.currentInflight,
|
|
890
|
-
errorData.maxConcurrency
|
|
891
|
-
);
|
|
892
|
-
}
|
|
893
834
|
throwCommonHttpError(
|
|
894
835
|
response.status,
|
|
895
836
|
response.statusText,
|
|
@@ -1571,7 +1512,6 @@ var Client = class {
|
|
|
1571
1512
|
BadRequestError,
|
|
1572
1513
|
BufferTransport,
|
|
1573
1514
|
Client,
|
|
1574
|
-
ConcurrencyLimitError,
|
|
1575
1515
|
ConsumerDiscoveryError,
|
|
1576
1516
|
ConsumerRegistryNotConfiguredError,
|
|
1577
1517
|
DuplicateMessageError,
|