@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 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 | Min | Max | Notes |
468
- | -------------------------- | --------- | --- | ------ | --------------------------- |
469
- | `visibilityTimeoutSeconds` | 30 | 0 | 3,600 | 0 = immediate re-visibility |
470
- | `limit` | 1 | 1 | 10 | Messages per request |
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-C7IKe67P.mjs';
2
- export { i as BadRequestError, B as BufferTransport, j as ConcurrencyLimitError, k as ConsumerDiscoveryError, l as ConsumerRegistryNotConfiguredError, m as DuplicateMessageError, F as ForbiddenError, I as InternalServerError, n as InvalidLimitError, J as JsonTransport, o as MessageAlreadyProcessedError, p as MessageCorruptedError, q as MessageLockedError, u as MessageMetadata, r as MessageNotAvailableError, s as MessageNotFoundError, t as QueueEmptyError, h as StreamTransport, U as UnauthorizedError } from './types-C7IKe67P.mjs';
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-C7IKe67P.js';
2
- export { i as BadRequestError, B as BufferTransport, j as ConcurrencyLimitError, k as ConsumerDiscoveryError, l as ConsumerRegistryNotConfiguredError, m as DuplicateMessageError, F as ForbiddenError, I as InternalServerError, n as InvalidLimitError, J as JsonTransport, o as MessageAlreadyProcessedError, p as MessageCorruptedError, q as MessageLockedError, u as MessageMetadata, r as MessageNotAvailableError, s as MessageNotFoundError, t as QueueEmptyError, h as StreamTransport, U as UnauthorizedError } from './types-C7IKe67P.js';
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,