@azure/storage-queue 12.27.0-alpha.20250617.1 → 12.27.0-alpha.20250717.2

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 (101) hide show
  1. package/dist/browser/AccountSASSignatureValues.d.ts +1 -1
  2. package/dist/browser/AccountSASSignatureValues.d.ts.map +1 -1
  3. package/dist/browser/AccountSASSignatureValues.js.map +1 -1
  4. package/dist/browser/Pipeline.d.ts +2 -3
  5. package/dist/browser/Pipeline.d.ts.map +1 -1
  6. package/dist/browser/Pipeline.js +1 -9
  7. package/dist/browser/Pipeline.js.map +1 -1
  8. package/dist/browser/QueueClient.d.ts +2 -2
  9. package/dist/browser/QueueClient.d.ts.map +1 -1
  10. package/dist/browser/QueueClient.js +2 -2
  11. package/dist/browser/QueueClient.js.map +1 -1
  12. package/dist/browser/QueueSASSignatureValues.d.ts +1 -1
  13. package/dist/browser/QueueSASSignatureValues.d.ts.map +1 -1
  14. package/dist/browser/QueueSASSignatureValues.js.map +1 -1
  15. package/dist/browser/QueueServiceClient.d.ts +2 -2
  16. package/dist/browser/QueueServiceClient.d.ts.map +1 -1
  17. package/dist/browser/QueueServiceClient.js +2 -2
  18. package/dist/browser/QueueServiceClient.js.map +1 -1
  19. package/dist/browser/StorageClient.d.ts +2 -2
  20. package/dist/browser/StorageClient.d.ts.map +1 -1
  21. package/dist/browser/StorageClient.js.map +1 -1
  22. package/dist/browser/index-browser.d.mts.map +1 -1
  23. package/dist/browser/index-browser.mjs.map +1 -1
  24. package/dist/browser/index.d.ts +1 -7
  25. package/dist/browser/index.js +1 -7
  26. package/dist/commonjs/AccountSASSignatureValues.d.ts +1 -1
  27. package/dist/commonjs/AccountSASSignatureValues.d.ts.map +1 -1
  28. package/dist/commonjs/AccountSASSignatureValues.js.map +1 -1
  29. package/dist/commonjs/Pipeline.d.ts +2 -3
  30. package/dist/commonjs/Pipeline.d.ts.map +1 -1
  31. package/dist/commonjs/Pipeline.js +12 -20
  32. package/dist/commonjs/Pipeline.js.map +1 -1
  33. package/dist/commonjs/QueueClient.d.ts +2 -2
  34. package/dist/commonjs/QueueClient.d.ts.map +1 -1
  35. package/dist/commonjs/QueueClient.js +9 -9
  36. package/dist/commonjs/QueueClient.js.map +1 -1
  37. package/dist/commonjs/QueueSASSignatureValues.d.ts +1 -1
  38. package/dist/commonjs/QueueSASSignatureValues.d.ts.map +1 -1
  39. package/dist/commonjs/QueueSASSignatureValues.js.map +1 -1
  40. package/dist/commonjs/QueueServiceClient.d.ts +2 -2
  41. package/dist/commonjs/QueueServiceClient.d.ts.map +1 -1
  42. package/dist/commonjs/QueueServiceClient.js +9 -9
  43. package/dist/commonjs/QueueServiceClient.js.map +1 -1
  44. package/dist/commonjs/StorageClient.d.ts +2 -2
  45. package/dist/commonjs/StorageClient.d.ts.map +1 -1
  46. package/dist/commonjs/StorageClient.js.map +1 -1
  47. package/dist/commonjs/index.d.ts +1 -9
  48. package/dist/commonjs/index.d.ts.map +1 -1
  49. package/dist/commonjs/index.js +13 -19
  50. package/dist/commonjs/index.js.map +1 -1
  51. package/dist/esm/AccountSASSignatureValues.d.ts +1 -1
  52. package/dist/esm/AccountSASSignatureValues.d.ts.map +1 -1
  53. package/dist/esm/AccountSASSignatureValues.js.map +1 -1
  54. package/dist/esm/Pipeline.d.ts +2 -3
  55. package/dist/esm/Pipeline.d.ts.map +1 -1
  56. package/dist/esm/Pipeline.js +1 -9
  57. package/dist/esm/Pipeline.js.map +1 -1
  58. package/dist/esm/QueueClient.d.ts +2 -2
  59. package/dist/esm/QueueClient.d.ts.map +1 -1
  60. package/dist/esm/QueueClient.js +2 -2
  61. package/dist/esm/QueueClient.js.map +1 -1
  62. package/dist/esm/QueueSASSignatureValues.d.ts +1 -1
  63. package/dist/esm/QueueSASSignatureValues.d.ts.map +1 -1
  64. package/dist/esm/QueueSASSignatureValues.js.map +1 -1
  65. package/dist/esm/QueueServiceClient.d.ts +2 -2
  66. package/dist/esm/QueueServiceClient.d.ts.map +1 -1
  67. package/dist/esm/QueueServiceClient.js +2 -2
  68. package/dist/esm/QueueServiceClient.js.map +1 -1
  69. package/dist/esm/StorageClient.d.ts +2 -2
  70. package/dist/esm/StorageClient.d.ts.map +1 -1
  71. package/dist/esm/StorageClient.js.map +1 -1
  72. package/dist/esm/index.d.ts +1 -9
  73. package/dist/esm/index.d.ts.map +1 -1
  74. package/dist/esm/index.js +1 -9
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/react-native/AccountSASSignatureValues.d.ts +1 -1
  77. package/dist/react-native/AccountSASSignatureValues.d.ts.map +1 -1
  78. package/dist/react-native/AccountSASSignatureValues.js.map +1 -1
  79. package/dist/react-native/Pipeline.d.ts +2 -3
  80. package/dist/react-native/Pipeline.d.ts.map +1 -1
  81. package/dist/react-native/Pipeline.js +1 -9
  82. package/dist/react-native/Pipeline.js.map +1 -1
  83. package/dist/react-native/QueueClient.d.ts +2 -2
  84. package/dist/react-native/QueueClient.d.ts.map +1 -1
  85. package/dist/react-native/QueueClient.js +2 -2
  86. package/dist/react-native/QueueClient.js.map +1 -1
  87. package/dist/react-native/QueueSASSignatureValues.d.ts +1 -1
  88. package/dist/react-native/QueueSASSignatureValues.d.ts.map +1 -1
  89. package/dist/react-native/QueueSASSignatureValues.js.map +1 -1
  90. package/dist/react-native/QueueServiceClient.d.ts +2 -2
  91. package/dist/react-native/QueueServiceClient.d.ts.map +1 -1
  92. package/dist/react-native/QueueServiceClient.js +2 -2
  93. package/dist/react-native/QueueServiceClient.js.map +1 -1
  94. package/dist/react-native/StorageClient.d.ts +2 -2
  95. package/dist/react-native/StorageClient.d.ts.map +1 -1
  96. package/dist/react-native/StorageClient.js.map +1 -1
  97. package/dist/react-native/index.d.ts +1 -9
  98. package/dist/react-native/index.d.ts.map +1 -1
  99. package/dist/react-native/index.js +1 -9
  100. package/dist/react-native/index.js.map +1 -1
  101. package/package.json +1 -2
@@ -1,5 +1,5 @@
1
1
  import { AccountSASPermissions } from "./AccountSASPermissions.js";
2
- import type { StorageSharedKeyCredential } from "@azure/storage-blob";
2
+ import type { StorageSharedKeyCredential } from "@azure/storage-common";
3
3
  import type { SasIPRange } from "./SasIPRange.js";
4
4
  import type { SASProtocol } from "./SASQueryParameters.js";
5
5
  import { SASQueryParameters } from "./SASQueryParameters.js";
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSASSignatureValues.d.ts","sourceRoot":"","sources":["../../src/AccountSASSignatureValues.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAEhB;;;OAGG;IACH,WAAW,EAAE,qBAAqB,CAAC;IAEnC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAC/C,yBAAyB,EAAE,yBAAyB,EACpD,mBAAmB,EAAE,0BAA0B,GAC9C,kBAAkB,CAGpB;AAED,wBAAgB,yCAAyC,CACvD,yBAAyB,EAAE,yBAAyB,EACpD,mBAAmB,EAAE,0BAA0B,GAC9C;IAAE,kBAAkB,EAAE,kBAAkB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAgElE"}
1
+ {"version":3,"file":"AccountSASSignatureValues.d.ts","sourceRoot":"","sources":["../../src/AccountSASSignatureValues.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,IAAI,CAAC;IAEhB;;;OAGG;IACH,WAAW,EAAE,qBAAqB,CAAC;IAEnC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAC/C,yBAAyB,EAAE,yBAAyB,EACpD,mBAAmB,EAAE,0BAA0B,GAC9C,kBAAkB,CAGpB;AAED,wBAAgB,yCAAyC,CACvD,yBAAyB,EAAE,yBAAyB,EACpD,mBAAmB,EAAE,0BAA0B,GAC9C;IAAE,kBAAkB,EAAE,kBAAkB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAgElE"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSASSignatureValues.js","sourceRoot":"","sources":["../../src/AccountSASSignatureValues.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AA8D/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iCAAiC,CAC/C,yBAAoD,EACpD,mBAA+C;IAE/C,OAAO,yCAAyC,CAAC,yBAAyB,EAAE,mBAAmB,CAAC;SAC7F,kBAAkB,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,yCAAyC,CACvD,yBAAoD,EACpD,mBAA+C;IAE/C,MAAM,OAAO,GAAG,yBAAyB,CAAC,OAAO;QAC/C,CAAC,CAAC,yBAAyB,CAAC,OAAO;QACnC,CAAC,CAAC,eAAe,CAAC;IAEpB,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CACnD,yBAAyB,CAAC,WAAW,CAAC,QAAQ,EAAE,CACjD,CAAC,QAAQ,EAAE,CAAC;IACb,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/F,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,KAAK,CACvD,yBAAyB,CAAC,aAAa,CACxC,CAAC,QAAQ,EAAE,CAAC;IAEb,IAAI,YAAoB,CAAC;IAEzB,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,YAAY,GAAG;YACb,mBAAmB,CAAC,WAAW;YAC/B,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,yBAAyB,CAAC,QAAQ;gBAChC,CAAC,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACjE,CAAC,CAAC,EAAE;YACN,oBAAoB,CAAC,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC;YAChE,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3F,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC5E,OAAO;YACP,EAAE,EAAE,gCAAgC;YACpC,EAAE,EAAE,uDAAuD;SAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;SAAM,CAAC;QACN,YAAY,GAAG;YACb,mBAAmB,CAAC,WAAW;YAC/B,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,yBAAyB,CAAC,QAAQ;gBAChC,CAAC,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACjE,CAAC,CAAC,EAAE;YACN,oBAAoB,CAAC,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC;YAChE,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3F,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YAC5E,OAAO;YACP,EAAE,EAAE,uDAAuD;SAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAW,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAE9E,OAAO;QACL,kBAAkB,EAAE,IAAI,kBAAkB,CACxC,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,yBAAyB,CAAC,QAAQ,EAClC,yBAAyB,CAAC,QAAQ,EAClC,yBAAyB,CAAC,SAAS,EACnC,yBAAyB,CAAC,OAAO,CAClC;QACD,YAAY,EAAE,YAAY;KAC3B,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AccountSASPermissions } from \"./AccountSASPermissions.js\";\nimport { AccountSASResourceTypes } from \"./AccountSASResourceTypes.js\";\nimport { AccountSASServices } from \"./AccountSASServices.js\";\nimport type { StorageSharedKeyCredential } from \"@azure/storage-blob\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport type { SASProtocol } from \"./SASQueryParameters.js\";\nimport { SASQueryParameters } from \"./SASQueryParameters.js\";\nimport { SERVICE_VERSION } from \"./utils/constants.js\";\nimport { truncatedISO8061Date } from \"./utils/utils.common.js\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * AccountSASSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage account. Once\n * all the values here are set appropriately, call generateSASQueryParameters() to obtain a representation of the SAS\n * which can actually be applied to queue urls. Note: that both this class and {@link SASQueryParameters} exist because\n * the former is mutable and a logical representation while the latter is immutable and used to generate actual REST\n * requests.\n *\n * @see https://learn.microsoft.com/azure/storage/common/storage-dotnet-shared-access-signature-part-1\n * for more conceptual information on SAS\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-an-account-sas\n * for descriptions of the parameters, including which are required\n */\nexport interface AccountSASSignatureValues {\n /**\n * If not provided, this defaults to the service version targeted by this version of the library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * The time after which the SAS will no longer work.\n */\n expiresOn: Date;\n\n /**\n * Specifies which operations the SAS user may perform. Please refer to {@link AccountSASPermissions} for help\n * constructing the permissions string.\n */\n permissions: AccountSASPermissions;\n\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n\n /**\n * The values that indicate the services accessible with this SAS. Please refer to {@link AccountSASServices} to\n * construct this value.\n */\n services: string;\n\n /**\n * The values that indicate the resource types accessible with this SAS. Please refer\n * to {@link AccountSASResourceTypes} to construct this value.\n */\n resourceTypes: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Generates a {@link SASQueryParameters} object which contains all SAS query parameters needed to make an actual\n * REST request.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-an-account-sas\n *\n * @param accountSASSignatureValues - SAS Signature values of the account\n * @param sharedKeyCredential - Shared key credential.\n */\nexport function generateAccountSASQueryParameters(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters {\n return generateAccountSASQueryParametersInternal(accountSASSignatureValues, sharedKeyCredential)\n .sasQueryParameters;\n}\n\nexport function generateAccountSASQueryParametersInternal(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n const version = accountSASSignatureValues.version\n ? accountSASSignatureValues.version\n : SERVICE_VERSION;\n\n const parsedPermissions = AccountSASPermissions.parse(\n accountSASSignatureValues.permissions.toString(),\n ).toString();\n const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString();\n const parsedResourceTypes = AccountSASResourceTypes.parse(\n accountSASSignatureValues.resourceTypes,\n ).toString();\n\n let stringToSign: string;\n\n if (version >= \"2020-12-06\") {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Reserved for encryption scope\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n } else {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n }\n\n const signature: string = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.protocol,\n accountSASSignatureValues.startsOn,\n accountSASSignatureValues.expiresOn,\n accountSASSignatureValues.ipRange,\n ),\n stringToSign: stringToSign,\n };\n}\n"]}
1
+ {"version":3,"file":"AccountSASSignatureValues.js","sourceRoot":"","sources":["../../src/AccountSASSignatureValues.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { AccountSASPermissions } from \"./AccountSASPermissions.js\";\nimport { AccountSASResourceTypes } from \"./AccountSASResourceTypes.js\";\nimport { AccountSASServices } from \"./AccountSASServices.js\";\nimport type { StorageSharedKeyCredential } from \"@azure/storage-common\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport { ipRangeToString } from \"./SasIPRange.js\";\nimport type { SASProtocol } from \"./SASQueryParameters.js\";\nimport { SASQueryParameters } from \"./SASQueryParameters.js\";\nimport { SERVICE_VERSION } from \"./utils/constants.js\";\nimport { truncatedISO8061Date } from \"./utils/utils.common.js\";\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * AccountSASSignatureValues is used to generate a Shared Access Signature (SAS) for an Azure Storage account. Once\n * all the values here are set appropriately, call generateSASQueryParameters() to obtain a representation of the SAS\n * which can actually be applied to queue urls. Note: that both this class and {@link SASQueryParameters} exist because\n * the former is mutable and a logical representation while the latter is immutable and used to generate actual REST\n * requests.\n *\n * @see https://learn.microsoft.com/azure/storage/common/storage-dotnet-shared-access-signature-part-1\n * for more conceptual information on SAS\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-an-account-sas\n * for descriptions of the parameters, including which are required\n */\nexport interface AccountSASSignatureValues {\n /**\n * If not provided, this defaults to the service version targeted by this version of the library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols allowed.\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * The time after which the SAS will no longer work.\n */\n expiresOn: Date;\n\n /**\n * Specifies which operations the SAS user may perform. Please refer to {@link AccountSASPermissions} for help\n * constructing the permissions string.\n */\n permissions: AccountSASPermissions;\n\n /**\n * Optional. IP range allowed.\n */\n ipRange?: SasIPRange;\n\n /**\n * The values that indicate the services accessible with this SAS. Please refer to {@link AccountSASServices} to\n * construct this value.\n */\n services: string;\n\n /**\n * The values that indicate the resource types accessible with this SAS. Please refer\n * to {@link AccountSASResourceTypes} to construct this value.\n */\n resourceTypes: string;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * Generates a {@link SASQueryParameters} object which contains all SAS query parameters needed to make an actual\n * REST request.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-an-account-sas\n *\n * @param accountSASSignatureValues - SAS Signature values of the account\n * @param sharedKeyCredential - Shared key credential.\n */\nexport function generateAccountSASQueryParameters(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): SASQueryParameters {\n return generateAccountSASQueryParametersInternal(accountSASSignatureValues, sharedKeyCredential)\n .sasQueryParameters;\n}\n\nexport function generateAccountSASQueryParametersInternal(\n accountSASSignatureValues: AccountSASSignatureValues,\n sharedKeyCredential: StorageSharedKeyCredential,\n): { sasQueryParameters: SASQueryParameters; stringToSign: string } {\n const version = accountSASSignatureValues.version\n ? accountSASSignatureValues.version\n : SERVICE_VERSION;\n\n const parsedPermissions = AccountSASPermissions.parse(\n accountSASSignatureValues.permissions.toString(),\n ).toString();\n const parsedServices = AccountSASServices.parse(accountSASSignatureValues.services).toString();\n const parsedResourceTypes = AccountSASResourceTypes.parse(\n accountSASSignatureValues.resourceTypes,\n ).toString();\n\n let stringToSign: string;\n\n if (version >= \"2020-12-06\") {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Reserved for encryption scope\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n } else {\n stringToSign = [\n sharedKeyCredential.accountName,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.startsOn\n ? truncatedISO8061Date(accountSASSignatureValues.startsOn, false)\n : \"\",\n truncatedISO8061Date(accountSASSignatureValues.expiresOn, false),\n accountSASSignatureValues.ipRange ? ipRangeToString(accountSASSignatureValues.ipRange) : \"\",\n accountSASSignatureValues.protocol ? accountSASSignatureValues.protocol : \"\",\n version,\n \"\", // Account SAS requires an additional newline character\n ].join(\"\\n\");\n }\n\n const signature: string = sharedKeyCredential.computeHMACSHA256(stringToSign);\n\n return {\n sasQueryParameters: new SASQueryParameters(\n version,\n signature,\n parsedPermissions,\n parsedServices,\n parsedResourceTypes,\n accountSASSignatureValues.protocol,\n accountSASSignatureValues.startsOn,\n accountSASSignatureValues.expiresOn,\n accountSASSignatureValues.ipRange,\n ),\n stringToSign: stringToSign,\n };\n}\n"]}
@@ -3,9 +3,8 @@ import { CompatResponse as HttpOperationResponse, RequestPolicy as IHttpClient,
3
3
  import type { ProxySettings as ProxyOptions, UserAgentPolicyOptions as UserAgentOptions } from "@azure/core-rest-pipeline";
4
4
  import { RequestBodyType as HttpRequestBody } from "@azure/core-rest-pipeline";
5
5
  import type { TokenCredential } from "@azure/core-auth";
6
- import type { StorageRetryOptions } from "@azure/storage-blob";
7
- import { StorageSharedKeyCredential } from "@azure/storage-blob";
8
- import { AnonymousCredential } from "@azure/storage-blob";
6
+ import type { StorageRetryOptions } from "@azure/storage-common";
7
+ import { StorageSharedKeyCredential, AnonymousCredential } from "@azure/storage-common";
9
8
  import { StorageOAuthScopes } from "./utils/constants.js";
10
9
  export { StorageOAuthScopes, IHttpClient, HttpHeaders, HttpRequestBody, HttpOperationResponse, WebResource, RequestPolicyFactory, RequestPolicy, RequestPolicyOptions, };
11
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Pipeline.d.ts","sourceRoot":"","sources":["../../src/Pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Pipeline.d.ts","sourceRoot":"","sources":["../../src/Pipeline.ts"],"names":[],"mappings":"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"}
@@ -7,16 +7,8 @@ import { authorizeRequestOnTenantChallenge, createClientPipeline } from "@azure/
7
7
  import { parseXML, stringifyXML } from "@azure/core-xml";
8
8
  import { isTokenCredential } from "@azure/core-auth";
9
9
  import { logger } from "./log.js";
10
- import { StorageRetryPolicyFactory } from "@azure/storage-blob";
11
- import { StorageSharedKeyCredential } from "@azure/storage-blob";
12
- import { AnonymousCredential } from "@azure/storage-blob";
10
+ import { StorageRetryPolicyFactory, StorageSharedKeyCredential, AnonymousCredential, getCachedDefaultHttpClient, storageBrowserPolicy, storageRetryPolicy, storageSharedKeyCredentialPolicy, StorageBrowserPolicyFactory, storageCorrectContentLengthPolicy, } from "@azure/storage-common";
13
11
  import { StorageOAuthScopes, StorageQueueLoggingAllowedHeaderNames, StorageQueueLoggingAllowedQueryParameters, SDK_VERSION, } from "./utils/constants.js";
14
- import { getCachedDefaultHttpClient } from "@azure/storage-common";
15
- import { storageBrowserPolicy } from "@azure/storage-blob";
16
- import { storageRetryPolicy } from "@azure/storage-blob";
17
- import { storageSharedKeyCredentialPolicy } from "@azure/storage-blob";
18
- import { StorageBrowserPolicyFactory } from "@azure/storage-blob";
19
- import { storageCorrectContentLengthPolicy } from "@azure/storage-blob";
20
12
  // Export following interfaces and types for customers who want to implement their
21
13
  // own RequestPolicy or HTTPClient
22
14
  export { StorageOAuthScopes, };
@@ -1 +1 @@
1
- {"version":3,"file":"Pipeline.js","sourceRoot":"","sources":["../../src/Pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n KeepAliveOptions,\n ExtendedServiceClientOptions,\n HttpPipelineLogLevel,\n} from \"@azure/core-http-compat\";\nimport {\n CompatResponse as HttpOperationResponse,\n RequestPolicy as IHttpClient,\n HttpHeadersLike as HttpHeaders,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n convertHttpClient,\n createRequestPolicyFactoryPolicy,\n} from \"@azure/core-http-compat\";\nimport type {\n ProxySettings as ProxyOptions,\n UserAgentPolicyOptions as UserAgentOptions,\n Pipeline as CorePipeline,\n PipelinePolicy,\n HttpClient,\n} from \"@azure/core-rest-pipeline\";\nimport {\n RequestBodyType as HttpRequestBody,\n bearerTokenAuthenticationPolicy,\n decompressResponsePolicyName,\n} from \"@azure/core-rest-pipeline\";\nimport { authorizeRequestOnTenantChallenge, createClientPipeline } from \"@azure/core-client\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\n\nimport { logger } from \"./log.js\";\nimport type { StorageRetryOptions } from \"@azure/storage-blob\";\nimport { StorageRetryPolicyFactory } from \"@azure/storage-blob\";\nimport { StorageSharedKeyCredential } from \"@azure/storage-blob\";\nimport { AnonymousCredential } from \"@azure/storage-blob\";\nimport {\n StorageOAuthScopes,\n StorageQueueLoggingAllowedHeaderNames,\n StorageQueueLoggingAllowedQueryParameters,\n SDK_VERSION,\n} from \"./utils/constants.js\";\nimport { getCachedDefaultHttpClient } from \"@azure/storage-common\";\nimport { storageBrowserPolicy } from \"@azure/storage-blob\";\nimport { storageRetryPolicy } from \"@azure/storage-blob\";\nimport { storageSharedKeyCredentialPolicy } from \"@azure/storage-blob\";\nimport { StorageBrowserPolicyFactory } from \"@azure/storage-blob\";\nimport { storageCorrectContentLengthPolicy } from \"@azure/storage-blob\";\n\n// Export following interfaces and types for customers who want to implement their\n// own RequestPolicy or HTTPClient\nexport {\n StorageOAuthScopes,\n IHttpClient,\n HttpHeaders,\n HttpRequestBody,\n HttpOperationResponse,\n WebResource,\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions,\n};\n\n/**\n * A subset of `@azure/core-http` ServiceClientOptions\n */\nexport interface ServiceClientOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * Optional. Overrides the default policy factories.\n */\n requestPolicyFactories?:\n | RequestPolicyFactory[]\n | ((defaultRequestPolicyFactories: RequestPolicyFactory[]) => void | RequestPolicyFactory[]);\n}\n\n/**\n * Option interface for Pipeline constructor.\n */\nexport interface PipelineOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n}\n\n/**\n * An interface for the {@link Pipeline} class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport interface PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n readonly options: PipelineOptions;\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n toServiceClientOptions(): ServiceClientOptions;\n}\n\n/**\n * A helper to decide if a given argument satisfies the Pipeline contract\n * @param pipeline - An argument that may be a Pipeline\n * @returns true when the argument satisfies the Pipeline contract\n */\nexport function isPipelineLike(pipeline: unknown): pipeline is PipelineLike {\n if (!pipeline || typeof pipeline !== \"object\") {\n return false;\n }\n\n const castPipeline = pipeline as PipelineLike;\n\n return (\n Array.isArray(castPipeline.factories) &&\n typeof castPipeline.options === \"object\" &&\n typeof castPipeline.toServiceClientOptions === \"function\"\n );\n}\n\n/**\n * A Pipeline class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport class Pipeline implements PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n public readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n public readonly options: PipelineOptions;\n\n /**\n * Creates an instance of Pipeline. Customize HTTPClient by implementing IHttpClient interface.\n *\n * @param factories -\n * @param options -\n */\n constructor(factories: RequestPolicyFactory[], options: PipelineOptions = {}) {\n this.factories = factories;\n this.options = options;\n }\n\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n public toServiceClientOptions(): ServiceClientOptions {\n return {\n httpClient: this.options.httpClient,\n requestPolicyFactories: this.factories,\n };\n }\n}\n\n/**\n * Options interface for the {@link newPipeline} function.\n */\nexport interface StoragePipelineOptions {\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxyOptions;\n /**\n * Options for adding user agent details to outgoing requests.\n */\n userAgentOptions?: UserAgentOptions;\n /**\n * Configures the built-in retry policy behavior.\n */\n retryOptions?: StorageRetryOptions;\n /**\n * Keep alive configurations. Default keep-alive is enabled.\n */\n keepAliveOptions?: KeepAliveOptions;\n /**\n * Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * The audience used to retrieve an AAD token.\n * By default, audience 'https://storage.azure.com/.default' will be used.\n */\n audience?: string;\n}\n\n/**\n * Creates a new Pipeline object with Credential provided.\n *\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param pipelineOptions - Optional. Options.\n * @returns A new Pipeline object.\n */\nexport function newPipeline(\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n pipelineOptions: StoragePipelineOptions = {},\n): Pipeline {\n if (!credential) {\n credential = new AnonymousCredential();\n }\n const pipeline = new Pipeline([], pipelineOptions);\n (pipeline as any)._credential = credential;\n return pipeline;\n}\n\nfunction processDownlevelPipeline(\n pipeline: PipelineLike,\n): { wrappedPolicies: PipelinePolicy; afterRetry: boolean } | undefined {\n const knownFactoryFunctions = [\n isAnonymousCredential,\n isStorageSharedKeyCredential,\n isCoreHttpBearerTokenFactory,\n isStorageBrowserPolicyFactory,\n isStorageRetryPolicyFactory,\n isStorageTelemetryPolicyFactory,\n isCoreHttpPolicyFactory,\n ];\n if (pipeline.factories.length) {\n const novelFactories = pipeline.factories.filter((factory) => {\n return !knownFactoryFunctions.some((knownFactory) => knownFactory(factory));\n });\n if (novelFactories.length) {\n const hasInjector = novelFactories.some((factory) => isInjectorPolicyFactory(factory));\n // if there are any left over, wrap in a requestPolicyFactoryPolicy\n return {\n wrappedPolicies: createRequestPolicyFactoryPolicy(novelFactories),\n afterRetry: hasInjector,\n };\n }\n }\n return undefined;\n}\n\nexport function getCoreClientOptions(pipeline: PipelineLike): ExtendedServiceClientOptions {\n const { httpClient: v1Client, ...restOptions } = pipeline.options as StoragePipelineOptions;\n\n let httpClient: HttpClient = (pipeline as any)._coreHttpClient;\n if (!httpClient) {\n httpClient = v1Client ? convertHttpClient(v1Client) : getCachedDefaultHttpClient();\n (pipeline as any)._coreHttpClient = httpClient;\n }\n\n let corePipeline: CorePipeline = (pipeline as any)._corePipeline;\n if (!corePipeline) {\n const packageDetails = `azsdk-js-azure-storage-blob/${SDK_VERSION}`;\n const userAgentPrefix =\n restOptions.userAgentOptions && restOptions.userAgentOptions.userAgentPrefix\n ? `${restOptions.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n corePipeline = createClientPipeline({\n ...restOptions,\n loggingOptions: {\n additionalAllowedHeaderNames: StorageQueueLoggingAllowedHeaderNames,\n additionalAllowedQueryParameters: StorageQueueLoggingAllowedQueryParameters,\n logger: logger.info,\n },\n userAgentOptions: {\n userAgentPrefix,\n },\n serializationOptions: {\n stringifyXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n deserializationOptions: {\n parseXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n });\n corePipeline.removePolicy({ phase: \"Retry\" });\n corePipeline.removePolicy({ name: decompressResponsePolicyName });\n corePipeline.addPolicy(storageCorrectContentLengthPolicy());\n corePipeline.addPolicy(storageRetryPolicy(restOptions.retryOptions), { phase: \"Retry\" });\n corePipeline.addPolicy(storageBrowserPolicy());\n const downlevelResults = processDownlevelPipeline(pipeline);\n if (downlevelResults) {\n corePipeline.addPolicy(\n downlevelResults.wrappedPolicies,\n downlevelResults.afterRetry ? { afterPhase: \"Retry\" } : undefined,\n );\n }\n const credential = getCredentialFromPipeline(pipeline);\n if (isTokenCredential(credential)) {\n corePipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: restOptions.audience ?? StorageOAuthScopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n { phase: \"Sign\" },\n );\n } else if (credential instanceof StorageSharedKeyCredential) {\n corePipeline.addPolicy(\n storageSharedKeyCredentialPolicy({\n accountName: credential.accountName,\n accountKey: (credential as any).accountKey,\n }),\n { phase: \"Sign\" },\n );\n }\n (pipeline as any)._corePipeline = corePipeline;\n }\n return {\n ...restOptions,\n allowInsecureConnection: true,\n httpClient,\n pipeline: corePipeline,\n };\n}\n\nexport function getCredentialFromPipeline(\n pipeline: PipelineLike,\n): StorageSharedKeyCredential | AnonymousCredential | TokenCredential {\n // see if we squirreled one away on the type itself\n if ((pipeline as any)._credential) {\n return (pipeline as any)._credential;\n }\n // if it came from another package, loop over the factories and look for one like before\n let credential = new AnonymousCredential();\n for (const factory of pipeline.factories) {\n if (isTokenCredential((factory as any).credential)) {\n // Only works if the factory has been attached a \"credential\" property.\n // We do that in newPipeline() when using TokenCredential.\n credential = (factory as any).credential;\n } else if (isStorageSharedKeyCredential(factory)) {\n return factory;\n }\n }\n return credential;\n}\n\nfunction isStorageSharedKeyCredential(\n factory: RequestPolicyFactory,\n): factory is StorageSharedKeyCredential {\n if (factory instanceof StorageSharedKeyCredential) {\n return true;\n }\n return factory.constructor.name === \"StorageSharedKeyCredential\";\n}\n\nfunction isAnonymousCredential(factory: RequestPolicyFactory): factory is AnonymousCredential {\n if (factory instanceof AnonymousCredential) {\n return true;\n }\n return factory.constructor.name === \"AnonymousCredential\";\n}\n\nfunction isCoreHttpBearerTokenFactory(factory: RequestPolicyFactory): boolean {\n return isTokenCredential((factory as any).credential);\n}\n\nfunction isStorageBrowserPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageBrowserPolicyFactory {\n if (factory instanceof StorageBrowserPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageBrowserPolicyFactory\";\n}\n\nfunction isStorageRetryPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageRetryPolicyFactory {\n if (factory instanceof StorageRetryPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageRetryPolicyFactory\";\n}\n\nfunction isStorageTelemetryPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"TelemetryPolicyFactory\";\n}\n\nfunction isInjectorPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"InjectorPolicyFactory\";\n}\n\nfunction isCoreHttpPolicyFactory(factory: RequestPolicyFactory): boolean {\n const knownPolicies = [\n \"GenerateClientRequestIdPolicy\",\n \"TracingPolicy\",\n \"LogPolicy\",\n \"ProxyPolicy\",\n \"DisableResponseDecompressionPolicy\",\n \"KeepAlivePolicy\",\n \"DeserializationPolicy\",\n ];\n\n const mockHttpClient: IHttpClient = {\n sendRequest: async (request: WebResource) => {\n return {\n request,\n headers: request.headers.clone(),\n status: 500,\n };\n },\n };\n const mockRequestPolicyOptions: RequestPolicyOptions = {\n log(_logLevel: HttpPipelineLogLevel, _message: string): void {\n /* do nothing */\n },\n shouldLog(_logLevel: HttpPipelineLogLevel): boolean {\n return false;\n },\n };\n const policyInstance = factory.create(mockHttpClient, mockRequestPolicyOptions);\n const policyName = policyInstance.constructor.name;\n // bundlers sometimes add a custom suffix to the class name to make it unique\n return knownPolicies.some((knownPolicyName) => {\n return policyName.startsWith(knownPolicyName);\n });\n}\n"]}
1
+ {"version":3,"file":"Pipeline.js","sourceRoot":"","sources":["../../src/Pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n KeepAliveOptions,\n ExtendedServiceClientOptions,\n HttpPipelineLogLevel,\n} from \"@azure/core-http-compat\";\nimport {\n CompatResponse as HttpOperationResponse,\n RequestPolicy as IHttpClient,\n HttpHeadersLike as HttpHeaders,\n RequestPolicy,\n RequestPolicyFactory,\n RequestPolicyOptionsLike as RequestPolicyOptions,\n WebResourceLike as WebResource,\n convertHttpClient,\n createRequestPolicyFactoryPolicy,\n} from \"@azure/core-http-compat\";\nimport type {\n ProxySettings as ProxyOptions,\n UserAgentPolicyOptions as UserAgentOptions,\n Pipeline as CorePipeline,\n PipelinePolicy,\n HttpClient,\n} from \"@azure/core-rest-pipeline\";\nimport {\n RequestBodyType as HttpRequestBody,\n bearerTokenAuthenticationPolicy,\n decompressResponsePolicyName,\n} from \"@azure/core-rest-pipeline\";\nimport { authorizeRequestOnTenantChallenge, createClientPipeline } from \"@azure/core-client\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\n\nimport { logger } from \"./log.js\";\nimport type { StorageRetryOptions } from \"@azure/storage-common\";\nimport {\n StorageRetryPolicyFactory,\n StorageSharedKeyCredential,\n AnonymousCredential,\n getCachedDefaultHttpClient,\n storageBrowserPolicy,\n storageRetryPolicy,\n storageSharedKeyCredentialPolicy,\n StorageBrowserPolicyFactory,\n storageCorrectContentLengthPolicy,\n} from \"@azure/storage-common\";\nimport {\n StorageOAuthScopes,\n StorageQueueLoggingAllowedHeaderNames,\n StorageQueueLoggingAllowedQueryParameters,\n SDK_VERSION,\n} from \"./utils/constants.js\";\nimport {} from \"@azure/storage-common\";\n\n// Export following interfaces and types for customers who want to implement their\n// own RequestPolicy or HTTPClient\nexport {\n StorageOAuthScopes,\n IHttpClient,\n HttpHeaders,\n HttpRequestBody,\n HttpOperationResponse,\n WebResource,\n RequestPolicyFactory,\n RequestPolicy,\n RequestPolicyOptions,\n};\n\n/**\n * A subset of `@azure/core-http` ServiceClientOptions\n */\nexport interface ServiceClientOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * Optional. Overrides the default policy factories.\n */\n requestPolicyFactories?:\n | RequestPolicyFactory[]\n | ((defaultRequestPolicyFactories: RequestPolicyFactory[]) => void | RequestPolicyFactory[]);\n}\n\n/**\n * Option interface for Pipeline constructor.\n */\nexport interface PipelineOptions {\n /**\n * Optional. Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n}\n\n/**\n * An interface for the {@link Pipeline} class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport interface PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n readonly options: PipelineOptions;\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n toServiceClientOptions(): ServiceClientOptions;\n}\n\n/**\n * A helper to decide if a given argument satisfies the Pipeline contract\n * @param pipeline - An argument that may be a Pipeline\n * @returns true when the argument satisfies the Pipeline contract\n */\nexport function isPipelineLike(pipeline: unknown): pipeline is PipelineLike {\n if (!pipeline || typeof pipeline !== \"object\") {\n return false;\n }\n\n const castPipeline = pipeline as PipelineLike;\n\n return (\n Array.isArray(castPipeline.factories) &&\n typeof castPipeline.options === \"object\" &&\n typeof castPipeline.toServiceClientOptions === \"function\"\n );\n}\n\n/**\n * A Pipeline class containing HTTP request policies.\n * You can create a default Pipeline by calling {@link newPipeline}.\n * Or you can create a Pipeline with your own policies by the constructor of Pipeline.\n *\n * Refer to {@link newPipeline} and provided policies before implementing your\n * customized Pipeline.\n */\nexport class Pipeline implements PipelineLike {\n /**\n * A list of chained request policy factories.\n */\n public readonly factories: RequestPolicyFactory[];\n /**\n * Configures pipeline logger and HTTP client.\n */\n public readonly options: PipelineOptions;\n\n /**\n * Creates an instance of Pipeline. Customize HTTPClient by implementing IHttpClient interface.\n *\n * @param factories -\n * @param options -\n */\n constructor(factories: RequestPolicyFactory[], options: PipelineOptions = {}) {\n this.factories = factories;\n this.options = options;\n }\n\n /**\n * Transfer Pipeline object to ServiceClientOptions object which is required by\n * ServiceClient constructor.\n *\n * @returns The ServiceClientOptions object from this Pipeline.\n */\n public toServiceClientOptions(): ServiceClientOptions {\n return {\n httpClient: this.options.httpClient,\n requestPolicyFactories: this.factories,\n };\n }\n}\n\n/**\n * Options interface for the {@link newPipeline} function.\n */\nexport interface StoragePipelineOptions {\n /**\n * Options to configure a proxy for outgoing requests.\n */\n proxyOptions?: ProxyOptions;\n /**\n * Options for adding user agent details to outgoing requests.\n */\n userAgentOptions?: UserAgentOptions;\n /**\n * Configures the built-in retry policy behavior.\n */\n retryOptions?: StorageRetryOptions;\n /**\n * Keep alive configurations. Default keep-alive is enabled.\n */\n keepAliveOptions?: KeepAliveOptions;\n /**\n * Configures the HTTP client to send requests and receive responses.\n */\n httpClient?: IHttpClient;\n /**\n * The audience used to retrieve an AAD token.\n * By default, audience 'https://storage.azure.com/.default' will be used.\n */\n audience?: string;\n}\n\n/**\n * Creates a new Pipeline object with Credential provided.\n *\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param pipelineOptions - Optional. Options.\n * @returns A new Pipeline object.\n */\nexport function newPipeline(\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n pipelineOptions: StoragePipelineOptions = {},\n): Pipeline {\n if (!credential) {\n credential = new AnonymousCredential();\n }\n const pipeline = new Pipeline([], pipelineOptions);\n (pipeline as any)._credential = credential;\n return pipeline;\n}\n\nfunction processDownlevelPipeline(\n pipeline: PipelineLike,\n): { wrappedPolicies: PipelinePolicy; afterRetry: boolean } | undefined {\n const knownFactoryFunctions = [\n isAnonymousCredential,\n isStorageSharedKeyCredential,\n isCoreHttpBearerTokenFactory,\n isStorageBrowserPolicyFactory,\n isStorageRetryPolicyFactory,\n isStorageTelemetryPolicyFactory,\n isCoreHttpPolicyFactory,\n ];\n if (pipeline.factories.length) {\n const novelFactories = pipeline.factories.filter((factory) => {\n return !knownFactoryFunctions.some((knownFactory) => knownFactory(factory));\n });\n if (novelFactories.length) {\n const hasInjector = novelFactories.some((factory) => isInjectorPolicyFactory(factory));\n // if there are any left over, wrap in a requestPolicyFactoryPolicy\n return {\n wrappedPolicies: createRequestPolicyFactoryPolicy(novelFactories),\n afterRetry: hasInjector,\n };\n }\n }\n return undefined;\n}\n\nexport function getCoreClientOptions(pipeline: PipelineLike): ExtendedServiceClientOptions {\n const { httpClient: v1Client, ...restOptions } = pipeline.options as StoragePipelineOptions;\n\n let httpClient: HttpClient = (pipeline as any)._coreHttpClient;\n if (!httpClient) {\n httpClient = v1Client ? convertHttpClient(v1Client) : getCachedDefaultHttpClient();\n (pipeline as any)._coreHttpClient = httpClient;\n }\n\n let corePipeline: CorePipeline = (pipeline as any)._corePipeline;\n if (!corePipeline) {\n const packageDetails = `azsdk-js-azure-storage-blob/${SDK_VERSION}`;\n const userAgentPrefix =\n restOptions.userAgentOptions && restOptions.userAgentOptions.userAgentPrefix\n ? `${restOptions.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n corePipeline = createClientPipeline({\n ...restOptions,\n loggingOptions: {\n additionalAllowedHeaderNames: StorageQueueLoggingAllowedHeaderNames,\n additionalAllowedQueryParameters: StorageQueueLoggingAllowedQueryParameters,\n logger: logger.info,\n },\n userAgentOptions: {\n userAgentPrefix,\n },\n serializationOptions: {\n stringifyXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n deserializationOptions: {\n parseXML,\n serializerOptions: {\n xml: {\n // Use customized XML char key of \"#\" so we can deserialize metadata\n // with \"_\" key\n xmlCharKey: \"#\",\n },\n },\n },\n });\n corePipeline.removePolicy({ phase: \"Retry\" });\n corePipeline.removePolicy({ name: decompressResponsePolicyName });\n corePipeline.addPolicy(storageCorrectContentLengthPolicy());\n corePipeline.addPolicy(storageRetryPolicy(restOptions.retryOptions), { phase: \"Retry\" });\n corePipeline.addPolicy(storageBrowserPolicy());\n const downlevelResults = processDownlevelPipeline(pipeline);\n if (downlevelResults) {\n corePipeline.addPolicy(\n downlevelResults.wrappedPolicies,\n downlevelResults.afterRetry ? { afterPhase: \"Retry\" } : undefined,\n );\n }\n const credential = getCredentialFromPipeline(pipeline);\n if (isTokenCredential(credential)) {\n corePipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: restOptions.audience ?? StorageOAuthScopes,\n challengeCallbacks: { authorizeRequestOnChallenge: authorizeRequestOnTenantChallenge },\n }),\n { phase: \"Sign\" },\n );\n } else if (credential instanceof StorageSharedKeyCredential) {\n corePipeline.addPolicy(\n storageSharedKeyCredentialPolicy({\n accountName: credential.accountName,\n accountKey: (credential as any).accountKey,\n }),\n { phase: \"Sign\" },\n );\n }\n (pipeline as any)._corePipeline = corePipeline;\n }\n return {\n ...restOptions,\n allowInsecureConnection: true,\n httpClient,\n pipeline: corePipeline,\n };\n}\n\nexport function getCredentialFromPipeline(\n pipeline: PipelineLike,\n): StorageSharedKeyCredential | AnonymousCredential | TokenCredential {\n // see if we squirreled one away on the type itself\n if ((pipeline as any)._credential) {\n return (pipeline as any)._credential;\n }\n // if it came from another package, loop over the factories and look for one like before\n let credential = new AnonymousCredential();\n for (const factory of pipeline.factories) {\n if (isTokenCredential((factory as any).credential)) {\n // Only works if the factory has been attached a \"credential\" property.\n // We do that in newPipeline() when using TokenCredential.\n credential = (factory as any).credential;\n } else if (isStorageSharedKeyCredential(factory)) {\n return factory;\n }\n }\n return credential;\n}\n\nfunction isStorageSharedKeyCredential(\n factory: RequestPolicyFactory,\n): factory is StorageSharedKeyCredential {\n if (factory instanceof StorageSharedKeyCredential) {\n return true;\n }\n return factory.constructor.name === \"StorageSharedKeyCredential\";\n}\n\nfunction isAnonymousCredential(factory: RequestPolicyFactory): factory is AnonymousCredential {\n if (factory instanceof AnonymousCredential) {\n return true;\n }\n return factory.constructor.name === \"AnonymousCredential\";\n}\n\nfunction isCoreHttpBearerTokenFactory(factory: RequestPolicyFactory): boolean {\n return isTokenCredential((factory as any).credential);\n}\n\nfunction isStorageBrowserPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageBrowserPolicyFactory {\n if (factory instanceof StorageBrowserPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageBrowserPolicyFactory\";\n}\n\nfunction isStorageRetryPolicyFactory(\n factory: RequestPolicyFactory,\n): factory is StorageRetryPolicyFactory {\n if (factory instanceof StorageRetryPolicyFactory) {\n return true;\n }\n return factory.constructor.name === \"StorageRetryPolicyFactory\";\n}\n\nfunction isStorageTelemetryPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"TelemetryPolicyFactory\";\n}\n\nfunction isInjectorPolicyFactory(factory: RequestPolicyFactory): boolean {\n return factory.constructor.name === \"InjectorPolicyFactory\";\n}\n\nfunction isCoreHttpPolicyFactory(factory: RequestPolicyFactory): boolean {\n const knownPolicies = [\n \"GenerateClientRequestIdPolicy\",\n \"TracingPolicy\",\n \"LogPolicy\",\n \"ProxyPolicy\",\n \"DisableResponseDecompressionPolicy\",\n \"KeepAlivePolicy\",\n \"DeserializationPolicy\",\n ];\n\n const mockHttpClient: IHttpClient = {\n sendRequest: async (request: WebResource) => {\n return {\n request,\n headers: request.headers.clone(),\n status: 500,\n };\n },\n };\n const mockRequestPolicyOptions: RequestPolicyOptions = {\n log(_logLevel: HttpPipelineLogLevel, _message: string): void {\n /* do nothing */\n },\n shouldLog(_logLevel: HttpPipelineLogLevel): boolean {\n return false;\n },\n };\n const policyInstance = factory.create(mockHttpClient, mockRequestPolicyOptions);\n const policyName = policyInstance.constructor.name;\n // bundlers sometimes add a custom suffix to the class name to make it unique\n return knownPolicies.some((knownPolicyName) => {\n return policyName.startsWith(knownPolicyName);\n });\n}\n"]}
@@ -5,8 +5,8 @@ import type { StoragePipelineOptions, Pipeline } from "./Pipeline.js";
5
5
  import type { CommonOptions } from "./StorageClient.js";
6
6
  import { StorageClient } from "./StorageClient.js";
7
7
  import type { WithResponse } from "./utils/utils.common.js";
8
- import { StorageSharedKeyCredential } from "@azure/storage-blob";
9
- import { AnonymousCredential } from "@azure/storage-blob";
8
+ import { StorageSharedKeyCredential } from "@azure/storage-common";
9
+ import { AnonymousCredential } from "@azure/storage-common";
10
10
  import type { Metadata } from "./models.js";
11
11
  import type { SasIPRange } from "./SasIPRange.js";
12
12
  import type { QueueSASPermissions } from "./QueueSASPermissions.js";
@@ -1 +1 @@
1
- {"version":3,"file":"QueueClient.d.ts","sourceRoot":"","sources":["../../src/QueueClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueueClient.d.ts","sourceRoot":"","sources":["../../src/QueueClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EAEjB,mBAAmB,EACnB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EAQpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAS5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IAChE;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,aAAa;IAChE;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,YAAY,EAAE;QACZ;;WAEG;QACH,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB;;WAEG;QACH,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,MAAM,4BAA4B,GAAG,YAAY,CAC7D;IACE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,GAAG,2BAA2B,EAC/B,2BAA2B,EAC3B,qBAAqB,EAAE,CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,2BAA2B;AAC3B,MAAM,WAAW,6BAA8B,SAAQ,aAAa;IAClE,mPAAmP;IACnP,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8JAA8J;IAC9J,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4dAA4d;IAC5d,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6WAA6W;IAC7W,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,6BAA6B,EAAE,aAAa;IAC3F;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,2BAA2B;AAC3B,MAAM,WAAW,6BAA8B,SAAQ,aAAa;IAClE,mPAAmP;IACnP,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8JAA8J;IAC9J,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wQAAwQ;IACxQ,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oYAAoY;IACpY,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,6BAA6B,EAAE,aAAa;IAC9F;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,2BAA2B;AAC3B,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAC/D,mPAAmP;IACnP,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8JAA8J;IAC9J,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wQAAwQ;IACxQ,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,0BAA0B,EAAE,aAAa;IACzF;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,MAAM,wBAAwB,GAAG,YAAY,CACzD;IACE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,EAAE,IAAI,CAAC;IACjB;;;OAGG;IACH,SAAS,EAAE,IAAI,CAAC;IAChB;;;OAGG;IACH,aAAa,EAAE,IAAI,CAAC;CACrB,GAAG,sBAAsB,EAC1B,sBAAsB,EACtB,eAAe,EAAE,CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,OAAO,MAAM,2BAA2B,GAAG,YAAY,CAC5D;IACE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;CAC7C,GAAG,sBAAsB,EAC1B,sBAAsB,EACtB,mBAAmB,EAAE,CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,MAAM,yBAAyB,GAAG,YAAY,CAC1D;IACE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC,GAAG,mBAAmB,EACvB,mBAAmB,EACnB,iBAAiB,EAAE,CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,OAAO,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,OAAO,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACzE;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,aAAa;IAC5C;;OAEG;IACH,OAAO,CAAC,eAAe,CAAW;IAClC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;;;;;;;;OAWG;gBAGS,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;IACzF;;;;;;;;;OASG;gBAED,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,0BAA0B,GAAG,mBAAmB,GAAG,eAAe,EAG/E,OAAO,CAAC,EAAE,sBAAsB;IAElC;;;;;;;;;OASG;gBACS,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAqF3C,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,MAAM,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQnF;;;;;;OAMG;IACU,iBAAiB,CAC5B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,8BAA8B,CAAC;IAoC1C;;;;;OAKG;IACU,cAAc,CACzB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,2BAA2B,CAAC;IAqBvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,MAAM,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWnF;;;;;;;;OAQG;IACU,MAAM,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcvE;;;;;;;;;;;;OAYG;IACU,aAAa,CACxB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC;IAQtC;;;;;;;;;;OAUG;IACU,WAAW,CACtB,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC;IAWpC;;;;;;;;;;OAUG;IACU,eAAe,CAC1B,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,4BAA4B,CAAC;IAqDxC;;;;;;;OAOG;IACU,eAAe,CAC1B,QAAQ,CAAC,EAAE,gBAAgB,EAAE,EAC7B,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,4BAA4B,CAAC;IA+BxC;;;;;;OAMG;IACU,aAAa,CACxB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC;IAQtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACU,WAAW,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC;IA+BpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACU,eAAe,CAC1B,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,2BAA2B,CAAC;IA8BvC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,YAAY,CACvB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,yBAAyB,CAAC;IA0BrC;;;;;;;;OAQG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC;IAQtC;;;;;;;;;;;;;;;;OAgBG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC;IAgBtC,OAAO,CAAC,mBAAmB;IAoC3B;;;;;;;;;;OAUG;IACI,cAAc,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM;IAkBlE;;;;;;;;;;OAUG;IAEI,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM;CAe5E"}
@@ -5,8 +5,8 @@ import { isNode } from "@azure/core-util";
5
5
  import { newPipeline, isPipelineLike } from "./Pipeline.js";
6
6
  import { StorageClient, getStorageClientContext } from "./StorageClient.js";
7
7
  import { appendToURLPath, extractConnectionStringParts, isIpEndpointStyle, truncatedISO8061Date, appendToURLQuery, assertResponse, } from "./utils/utils.common.js";
8
- import { StorageSharedKeyCredential } from "@azure/storage-blob";
9
- import { AnonymousCredential } from "@azure/storage-blob";
8
+ import { StorageSharedKeyCredential } from "@azure/storage-common";
9
+ import { AnonymousCredential } from "@azure/storage-common";
10
10
  import { tracingClient } from "./utils/tracing.js";
11
11
  import { generateQueueSASQueryParameters, generateQueueSASQueryParametersInternal, } from "./QueueSASSignatureValues.js";
12
12
  import { getDefaultProxySettings } from "@azure/core-rest-pipeline";
@@ -1 +1 @@
1
- {"version":3,"file":"QueueClient.js","sourceRoot":"","sources":["../../src/QueueClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA8B1C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACL,+BAA+B,EAC/B,uCAAuC,GACxC,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA8WpE;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,aAAa;IAY5C;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IA6CD,YACE,qBAA6B,EAC7B,+BAKU;IACV,2FAA2F;IAC3F,iEAAiE;IACjE,OAAgC;QAEhC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAI,QAAkB,CAAC;QACvB,IAAI,GAAW,CAAC;QAChB,IAAI,cAAc,CAAC,+BAA+B,CAAC,EAAE,CAAC;YACpD,oCAAoC;YACpC,GAAG,GAAG,qBAAqB,CAAC;YAC5B,QAAQ,GAAG,+BAA+B,CAAC;QAC7C,CAAC;aAAM,IACL,CAAC,MAAM,IAAI,+BAA+B,YAAY,0BAA0B,CAAC;YACjF,+BAA+B,YAAY,mBAAmB;YAC9D,iBAAiB,CAAC,+BAA+B,CAAC,EAClD,CAAC;YACD,mIAAmI;YACnI,GAAG,GAAG,qBAAqB,CAAC;YAC5B,QAAQ,GAAG,WAAW,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;aAAM,IACL,CAAC,+BAA+B;YAChC,OAAO,+BAA+B,KAAK,QAAQ,EACnD,CAAC;YACD,mIAAmI;YACnI,+DAA+D;YAC/D,GAAG,GAAG,qBAAqB,CAAC;YAC5B,QAAQ,GAAG,WAAW,CAAC,IAAI,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;aAAM,IACL,+BAA+B;YAC/B,OAAO,+BAA+B,KAAK,QAAQ,EACnD,CAAC;YACD,yGAAyG;YACzG,MAAM,cAAc,GAAG,4BAA4B,CAAC,qBAAqB,CAAC,CAAC;YAC3E,IAAI,cAAc,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAChD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,SAAS,GAAG,+BAA+B,CAAC;oBAClD,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CACxD,cAAc,CAAC,WAAW,EAC1B,cAAc,CAAC,UAAU,CAC1B,CAAC;oBACF,GAAG,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAErD,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;wBAC1B,OAAO,CAAC,YAAY,GAAG,uBAAuB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBAC1E,CAAC;oBAED,QAAQ,GAAG,WAAW,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;iBAAM,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACnD,MAAM,SAAS,GAAG,+BAA+B,CAAC;gBAClD,GAAG,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC;gBACvF,QAAQ,GAAG,WAAW,CAAC,IAAI,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAEpD,kBAAkB;QAClB,gCAAgC;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE/C,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;IAC5F,CAAC;IAEO,mBAAmB,CAAC,SAAiB;QAC3C,+BAA+B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAE9C,OAAO,uBAAuB,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,KAAK,CAAC,MAAM,CAAC,UAA8B,EAAE;QAClD,OAAO,aAAa,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACpF,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,iBAAiB,CAC5B,UAA8B,EAAE;QAEhC,OAAO,aAAa,CAAC,QAAQ,CAC3B,+BAA+B,EAC/B,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;;YACvB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAEnD,iIAAiI;gBACjI,yIAAyI;gBACzI,2GAA2G;gBAC3G,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBACtC,uBACE,SAAS,EAAE,KAAK,IACb,QAAQ,EACX;gBACJ,CAAC;gBACD,uBACE,SAAS,EAAE,IAAI,IACZ,QAAQ,EACX;YACJ,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,SAAS,MAAK,oBAAoB,EAAE,CAAC;oBAClD,qCACE,SAAS,EAAE,KAAK,IACb,MAAA,CAAC,CAAC,QAAQ,0CAAE,aAAa,KAC5B,SAAS,EAAE,CAAC,CAAC,QAAQ,IACrB;gBACJ,CAAC;gBAED,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CACzB,UAA8B,EAAE;QAEhC,OAAO,aAAa,CAAC,QAAQ,CAAC,4BAA4B,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;;YAC5F,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC9C,uBACE,SAAS,EAAE,IAAI,IACZ,GAAG,EACN;YACJ,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAA,MAAA,CAAC,CAAC,OAAO,0CAAE,SAAS,MAAK,eAAe,EAAE,CAAC;oBAC7C,qCACE,SAAS,EAAE,KAAK,IACb,MAAA,CAAC,CAAC,QAAQ,0CAAE,aAAa,KAC5B,SAAS,EAAE,CAAC,CAAC,QAAQ,IACrB;gBACJ,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,KAAK,CAAC,MAAM,CAAC,UAA8B,EAAE;QAClD,OAAO,aAAa,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACpF,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC7B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,cAAc,EAAE,cAAc,CAAC,cAAc;aAC9C,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,MAAM,CAAC,UAA8B,EAAE;QAClD,OAAO,aAAa,CAAC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACpF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,aAAa,CACxB,UAAqC,EAAE;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAAC,2BAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC3F,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,cAAc,CAAC,CACtD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,WAAW,CACtB,QAAmB,EACnB,UAAmC,EAAE;QAErC,OAAO,aAAa,CAAC,QAAQ,CAAC,yBAAyB,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACzF,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,iCAC9B,cAAc,KACjB,QAAQ,IACR,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,eAAe,CAC1B,UAAuC,EAAE;QAEzC,OAAO,aAAa,CAAC,QAAQ,CAC3B,6BAA6B,EAC7B,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,cAAc,CAK7B,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBACtC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,cAAc,EAAE,cAAc,CAAC,cAAc;aAC9C,CAAC,CACH,CAAC;YAEF,MAAM,GAAG,GAAiC;gBACxC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;YAEF,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;gBAClC,IAAI,YAAY,GAAQ,SAAS,CAAC;gBAClC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;oBAC5B,YAAY,GAAG;wBACb,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW;qBACjD,CAAC;oBAEF,IAAI,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;wBACtC,YAAY,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBACvE,CAAC;oBAED,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;wBACrC,YAAY,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBACzB,YAAY;oBACZ,EAAE,EAAE,UAAU,CAAC,EAAE;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,eAAe,CAC1B,QAA6B,EAC7B,UAAuC,EAAE;QAEzC,OAAO,aAAa,CAAC,QAAQ,CAC3B,6BAA6B,EAC7B,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,MAAM,UAAU,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;gBACxC,GAAG,CAAC,IAAI,CAAC;oBACP,YAAY,EAAE;wBACZ,SAAS,EAAE,UAAU,CAAC,YAAY,CAAC,SAAS;4BAC1C,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;4BACzD,CAAC,CAAC,SAAS;wBACb,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,WAAW;wBAChD,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,QAAQ;4BACxC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;4BACxD,CAAC,CAAC,SAAS;qBACd;oBACD,EAAE,EAAE,UAAU,CAAC,EAAE;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,iCAClC,cAAc,KACjB,QAAQ,EAAE,GAAG,IACb,CACH,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CACxB,UAAqC,EAAE;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAAC,2BAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC3F,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CACjD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,KAAK,CAAC,WAAW,CACtB,WAAmB,EACnB,UAAmC,EAAE;QAErC,OAAO,aAAa,CAAC,QAAQ,CAAC,yBAAyB,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACzF,MAAM,QAAQ,GAAG,cAAc,CAK7B,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAChC;gBACE,WAAW,EAAE,WAAW;aACzB,EACD,cAAc,CACf,CACF,CAAC;YACF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO;gBACL,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACI,KAAK,CAAC,eAAe,CAC1B,UAAsC,EAAE;QAExC,OAAO,aAAa,CAAC,QAAQ,CAC3B,6BAA6B,EAC7B,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,cAAc,CAI7B,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;YAEtD,MAAM,GAAG,GAAgC;gBACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,oBAAoB,EAAE,EAAE;gBACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,KAAK,CAAC,YAAY,CACvB,UAAoC,EAAE;QAEtC,OAAO,aAAa,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC1F,MAAM,QAAQ,GAAG,cAAc,CAI7B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAEnD,MAAM,GAAG,GAA8B;gBACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,kBAAkB,EAAE,EAAE;gBACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;aAC9B,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,UAAkB,EAClB,UAAqC,EAAE;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAAC,2BAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC3F,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAC7E,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,UAAkB,EAClB,OAAgB,EAChB,iBAA0B,EAC1B,UAAqC,EAAE;QAEvC,OAAO,aAAa,CAAC,QAAQ,CAAC,2BAA2B,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC3F,IAAI,YAAY,GAAG,SAAS,CAAC;YAC7B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,YAAY,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;YAC1C,CAAC;YACD,OAAO,cAAc,CACnB,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,iBAAiB,IAAI,CAAC,EAAE;gBACnF,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,cAAc,EAAE,cAAc,CAAC,cAAc;gBAC7C,YAAY;aACb,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB;QACzB,IAAI,SAAS,CAAC;QACd,IAAI,CAAC;YACH,mCAAmC;YACnC,gEAAgE;YAChE,sDAAsD;YACtD,yFAAyF;YACzF,oDAAoD;YAEpD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEpC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;gBACjD,wDAAwD;gBACxD,2BAA2B;gBAC3B,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,0FAA0F;gBAC1F,oHAAoH;gBACpH,4CAA4C;gBAC5C,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,2BAA2B;gBAC3B,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACI,cAAc,CAAC,OAAmC;QACvD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,0BAA0B,CAAC,EAAE,CAAC;YAC7D,MAAM,UAAU,CACd,uFAAuF,CACxF,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,+BAA+B,iBAEvC,SAAS,EAAE,IAAI,CAAC,IAAI,IACjB,OAAO,GAEZ,IAAI,CAAC,UAAU,CAChB,CAAC,QAAQ,EAAE,CAAC;QAEb,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;OAUG;IACH,gEAAgE;IACzD,uBAAuB,CAAC,OAAmC;QAChE,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,YAAY,0BAA0B,CAAC,EAAE,CAAC;YAC7D,MAAM,UAAU,CACd,uFAAuF,CACxF,CAAC;QACJ,CAAC;QAED,OAAO,uCAAuC,iBAE1C,SAAS,EAAE,IAAI,CAAC,IAAI,IACjB,OAAO,GAEZ,IAAI,CAAC,UAAU,CAChB,CAAC,YAAY,CAAC;IACjB,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { isNode } from \"@azure/core-util\";\nimport type {\n EnqueuedMessage,\n DequeuedMessageItem,\n MessagesDequeueHeaders,\n MessagesEnqueueHeaders,\n MessagesPeekHeaders,\n MessageIdUpdateResponse,\n MessageIdDeleteResponse,\n MessagesClearResponse,\n PeekedMessageItem,\n QueueCreateHeaders,\n QueueDeleteResponse,\n QueueGetAccessPolicyHeaders,\n QueueGetPropertiesResponse,\n QueueSetAccessPolicyResponse,\n QueueSetMetadataResponse,\n SignedIdentifierModel,\n QueueCreateResponse,\n QueueDeleteHeaders,\n QueueSetMetadataHeaders,\n QueueGetPropertiesHeaders,\n QueueSetAccessPolicyHeaders,\n MessagesClearHeaders,\n MessageIdDeleteHeaders,\n MessageIdUpdateHeaders,\n} from \"./generatedModels.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { Messages, MessageId, Queue } from \"./generated/src/operationsInterfaces/index.js\";\nimport type { StoragePipelineOptions, Pipeline } from \"./Pipeline.js\";\nimport { newPipeline, isPipelineLike } from \"./Pipeline.js\";\nimport type { CommonOptions } from \"./StorageClient.js\";\nimport { StorageClient, getStorageClientContext } from \"./StorageClient.js\";\nimport type { WithResponse } from \"./utils/utils.common.js\";\nimport {\n appendToURLPath,\n extractConnectionStringParts,\n isIpEndpointStyle,\n truncatedISO8061Date,\n appendToURLQuery,\n assertResponse,\n} from \"./utils/utils.common.js\";\nimport { StorageSharedKeyCredential } from \"@azure/storage-blob\";\nimport { AnonymousCredential } from \"@azure/storage-blob\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport type { Metadata } from \"./models.js\";\nimport {\n generateQueueSASQueryParameters,\n generateQueueSASQueryParametersInternal,\n} from \"./QueueSASSignatureValues.js\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport type { QueueSASPermissions } from \"./QueueSASPermissions.js\";\nimport type { SASProtocol } from \"./SASQueryParameters.js\";\nimport { getDefaultProxySettings } from \"@azure/core-rest-pipeline\";\n\n/**\n * Options to configure {@link QueueClient.create} operation\n */\nexport interface QueueCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the queue object.\n * The keys need to be lower-case.\n */\n metadata?: Metadata;\n}\n\n/**\n * Options to configure {@link QueueClient.exists} operation\n */\nexport interface QueueExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.getProperties} operation\n */\nexport interface QueueGetPropertiesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.delete} operation\n */\nexport interface QueueDeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.getAccessPolicy} operation\n */\nexport interface QueueGetAccessPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.setAccessPolicy} operation\n */\nexport interface QueueSetAccessPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.setMetadata} operation\n */\nexport interface QueueSetMetadataOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Signed identifier.\n */\nexport interface SignedIdentifier {\n /**\n * a unique id\n */\n id: string;\n /**\n * Access Policy\n */\n accessPolicy: {\n /**\n * the date-time the policy is active.\n */\n startsOn?: Date;\n /**\n * the date-time the policy expires.\n */\n expiresOn?: Date;\n /**\n * the permissions for the acl policy\n * @see https://learn.microsoft.com/rest/api/storageservices/set-queue-acl\n */\n permissions?: string;\n };\n}\n\n/**\n * Contains response data for the {@link QueueClient.getAccessPolicy} operation.\n */\nexport declare type QueueGetAccessPolicyResponse = WithResponse<\n {\n signedIdentifiers: SignedIdentifier[];\n } & QueueGetAccessPolicyHeaders,\n QueueGetAccessPolicyHeaders,\n SignedIdentifierModel[]\n>;\n\n/**\n * Options to configure {@link QueueClient.clearMessages} operation\n */\nexport interface QueueClearMessagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/** Optional parameters. */\nexport interface MessagesEnqueueOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. If specified, the request must be made using an x-ms-version of 2011-08-18 or later. If not specified, the default value is 0. Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message cannot be set to a value later than the expiry time. visibilitytimeout should be set to a value smaller than the time-to-live value. */\n visibilityTimeout?: number;\n /** Optional. Specifies the time-to-live interval for the message, in seconds. Prior to version 2017-07-29, the maximum time-to-live allowed is 7 days. For version 2017-07-29 or later, the maximum time-to-live can be any positive number, as well as -1 indicating that the message does not expire. If this parameter is omitted, the default time-to-live is 7 days. */\n messageTimeToLive?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.sendMessage} operation\n */\nexport interface QueueSendMessageOptions extends MessagesEnqueueOptionalParams, CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/** Optional parameters. */\nexport interface MessagesDequeueOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, a single message is retrieved from the queue with this operation. */\n numberOfMessages?: number;\n /** Optional. Specifies the new visibility timeout value, in seconds, relative to server time. The default value is 30 seconds. A specified value must be larger than or equal to 1 second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to version 2011-08-18. The visibility timeout of a message can be set to a value later than the expiry time. */\n visibilityTimeout?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.receiveMessages} operation\n */\nexport interface QueueReceiveMessageOptions extends MessagesDequeueOptionalParams, CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/** Optional parameters. */\nexport interface MessagesPeekOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, a single message is retrieved from the queue with this operation. */\n numberOfMessages?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.peekMessages} operation\n */\nexport interface QueuePeekMessagesOptions extends MessagesPeekOptionalParams, CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Contains the response data for the {@link QueueClient.sendMessage} operation.\n */\nexport declare type QueueSendMessageResponse = WithResponse<\n {\n /**\n * The ID of the sent Message.\n */\n messageId: string;\n /**\n * This value is required to delete the Message.\n * If deletion fails using this popreceipt then the message has been received\n * by another client.\n */\n popReceipt: string;\n /**\n * The time that the message was inserted into the\n * Queue.\n */\n insertedOn: Date;\n /**\n * The time that the message will expire and be\n * automatically deleted.\n */\n expiresOn: Date;\n /**\n * The time that the message will again become\n * visible in the Queue.\n */\n nextVisibleOn: Date;\n } & MessagesEnqueueHeaders,\n MessagesEnqueueHeaders,\n EnqueuedMessage[]\n>;\n\n/**\n * The object returned in the `receivedMessageItems` array when calling {@link QueueClient.receiveMessages}.\n *\n * See: {@link QueueReceiveMessageResponse}\n */\nexport declare type ReceivedMessageItem = DequeuedMessageItem;\n\n/**\n * Contains the response data for the {@link QueueClient.receiveMessages} operation.\n */\nexport declare type QueueReceiveMessageResponse = WithResponse<\n {\n receivedMessageItems: ReceivedMessageItem[];\n } & MessagesDequeueHeaders,\n MessagesDequeueHeaders,\n ReceivedMessageItem[]\n>;\n\n/**\n * Contains the response data for the {@link QueueClient.peekMessages} operation.\n */\nexport declare type QueuePeekMessagesResponse = WithResponse<\n {\n peekedMessageItems: PeekedMessageItem[];\n } & MessagesPeekHeaders,\n MessagesPeekHeaders,\n PeekedMessageItem[]\n>;\n\n/**\n * Options to configure the {@link QueueClient.deleteMessage} operation\n */\nexport interface QueueDeleteMessageOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Contains response data for the {@link QueueClient.updateMessage} operation.\n */\nexport declare type QueueUpdateMessageResponse = MessageIdUpdateResponse;\n\n/**\n * Contains response data for the {@link QueueClient.deleteMessage} operation.\n */\nexport declare type QueueDeleteMessageResponse = MessageIdDeleteResponse;\n\n/**\n * Contains response data for the {@link QueueClient.clearMessages} operation.\n */\nexport declare type QueueClearMessagesResponse = MessagesClearResponse;\n\n/**\n * Options to configure {@link QueueClient.updateMessage} operation\n */\nexport interface QueueUpdateMessageOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Contains response data for the {@link QueueClient.createIfNotExists} operation.\n */\nexport interface QueueCreateIfNotExistsResponse extends QueueCreateResponse {\n /**\n * Indicate whether the queue is successfully created. Is false when the queue is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link QueueClient.deleteIfExists} operation.\n */\nexport interface QueueDeleteIfExistsResponse extends QueueDeleteResponse {\n /**\n * Indicate whether the queue is successfully deleted. Is false if the queue does not exist in the first place.\n */\n succeeded: boolean;\n}\n\n/**\n * Options to configure {@link QueueClient.generateSasUrl} operation.\n */\nexport interface QueueGenerateSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link QueueSASPermissions} for help constructing the permissions string.\n */\n permissions?: QueueSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the queue this SAS references if any.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n}\n\n/**\n * A QueueClient represents a URL to an Azure Storage Queue's messages allowing you to manipulate its messages.\n */\nexport class QueueClient extends StorageClient {\n /**\n * messagesContext provided by protocol layer.\n */\n private messagesContext: Messages;\n /**\n * queueContext provided by protocol layer.\n */\n private queueContext: Queue;\n private _name: string;\n private _messagesUrl: string;\n\n /**\n * The name of the queue.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * Creates an instance of QueueClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param queueName - Queue name.\n * @param options - Options to configure the HTTP pipeline.\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n constructor(connectionString: string, queueName: string, options?: StoragePipelineOptions);\n /**\n * Creates an instance of QueueClient.\n *\n * @param url - A URL string pointing to Azure Storage queue, such as\n * \"https://myaccount.queue.core.windows.net/myqueue\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n /**\n * Creates an instance of QueueClient.\n *\n * @param url - A URL string pointing to Azure Storage queue, such as\n * \"https://myaccount.queue.core.windows.net/myqueue\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrQueueName?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline\n | string,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n options = options || {};\n let pipeline: Pipeline;\n let url: string;\n if (isPipelineLike(credentialOrPipelineOrQueueName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrQueueName;\n } else if (\n (isNode && credentialOrPipelineOrQueueName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrQueueName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrQueueName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n pipeline = newPipeline(credentialOrPipelineOrQueueName, options);\n } else if (\n !credentialOrPipelineOrQueueName &&\n typeof credentialOrPipelineOrQueueName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrQueueName &&\n typeof credentialOrPipelineOrQueueName === \"string\"\n ) {\n // (connectionString: string, containerName: string, queueName: string, options?: StoragePipelineOptions)\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const queueName = credentialOrPipelineOrQueueName;\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName,\n extractedCreds.accountKey,\n );\n url = appendToURLPath(extractedCreds.url, queueName);\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n const queueName = credentialOrPipelineOrQueueName;\n url = appendToURLPath(extractedCreds.url, queueName) + \"?\" + extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\",\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for queueName parameter\");\n }\n super(url, pipeline);\n this._name = this.getQueueNameFromUrl();\n this.queueContext = this.storageClientContext.queue;\n\n // MessagesContext\n // Build the url with \"messages\"\n const partsOfUrl = this.url.split(\"?\");\n this._messagesUrl = partsOfUrl[1]\n ? appendToURLPath(partsOfUrl[0], \"messages\") + \"?\" + partsOfUrl[1]\n : appendToURLPath(partsOfUrl[0], \"messages\");\n\n this.messagesContext = getStorageClientContext(this._messagesUrl, this.pipeline).messages;\n }\n\n private getMessageIdContext(messageId: string): MessageId {\n // Build the url with messageId\n const partsOfUrl = this._messagesUrl.split(\"?\");\n const urlWithMessageId = partsOfUrl[1]\n ? appendToURLPath(partsOfUrl[0], messageId) + \"?\" + partsOfUrl[1]\n : appendToURLPath(partsOfUrl[0], messageId);\n\n return getStorageClientContext(urlWithMessageId, this.pipeline).messageId;\n }\n\n /**\n * Creates a new queue under the specified account.\n * @see https://learn.microsoft.com/rest/api/storageservices/create-queue4\n *\n * @param options - Options to Queue create operation.\n * @returns Response data for the Queue create operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleCreateQueue\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const createQueueResponse = await queueClient.create();\n * console.log(\n * `Created queue ${queueName} successfully, service assigned request Id: ${createQueueResponse.requestId}`,\n * );\n * ```\n */\n public async create(options: QueueCreateOptions = {}): Promise<QueueCreateResponse> {\n return tracingClient.withSpan(\"QueueClient-create\", options, async (updatedOptions) => {\n return assertResponse<QueueCreateHeaders, QueueCreateHeaders>(\n await this.queueContext.create(updatedOptions),\n );\n });\n }\n\n /**\n * Creates a new queue under the specified account if it doesn't already exist.\n * If the queue already exists, it is not changed.\n * @see https://learn.microsoft.com/rest/api/storageservices/create-queue4\n *\n * @param options -\n */\n public async createIfNotExists(\n options: QueueCreateOptions = {},\n ): Promise<QueueCreateIfNotExistsResponse> {\n return tracingClient.withSpan(\n \"QueueClient-createIfNotExists\",\n options,\n async (updatedOptions) => {\n try {\n const response = await this.create(updatedOptions);\n\n // When a queue with the specified name already exists, the Queue service checks the metadata associated with the existing queue.\n // If the existing metadata is identical to the metadata specified on the Create Queue request, status code 204 (No Content) is returned.\n // If the existing metadata does not match, the operation fails and status code 409 (Conflict) is returned.\n if (response._response.status === 204) {\n return {\n succeeded: false,\n ...response,\n };\n }\n return {\n succeeded: true,\n ...response,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"QueueAlreadyExists\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n\n throw e;\n }\n },\n );\n }\n\n /**\n * Deletes the specified queue permanently if it exists.\n * @see https://learn.microsoft.com/rest/api/storageservices/delete-queue3\n *\n * @param options -\n */\n public async deleteIfExists(\n options: QueueDeleteOptions = {},\n ): Promise<QueueDeleteIfExistsResponse> {\n return tracingClient.withSpan(\"QueueClient-deleteIfExists\", options, async (updatedOptions) => {\n try {\n const res = await this.delete(updatedOptions);\n return {\n succeeded: true,\n ...res,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"QueueNotFound\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n throw e;\n }\n });\n }\n\n /**\n * Deletes the specified queue permanently.\n * @see https://learn.microsoft.com/rest/api/storageservices/delete-queue3\n *\n * @param options - Options to Queue delete operation.\n * @returns Response data for the Queue delete operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleDeleteQueue\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const deleteQueueResponse = await queueClient.delete();\n * console.log(\n * `Deleted queue successfully, service assigned request Id: ${deleteQueueResponse.requestId}`,\n * );\n * ```\n */\n public async delete(options: QueueDeleteOptions = {}): Promise<QueueDeleteResponse> {\n return tracingClient.withSpan(\"QueueClient-delete\", options, async (updatedOptions) => {\n return assertResponse<QueueDeleteHeaders, QueueDeleteHeaders>(\n await this.queueContext.delete({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n });\n }\n\n /**\n * Returns true if the specified queue exists; false otherwise.\n *\n * NOTE: use this function with care since an existing queue might be deleted by other clients or\n * applications. Vice versa new queues might be added by other clients or applications after this\n * function completes.\n *\n * @param options - options to Exists operation.\n */\n public async exists(options: QueueExistsOptions = {}): Promise<boolean> {\n return tracingClient.withSpan(\"QueueClient-exists\", options, async (updatedOptions) => {\n try {\n await this.getProperties(updatedOptions);\n return true;\n } catch (e: any) {\n if (e.statusCode === 404) {\n return false;\n }\n throw e;\n }\n });\n }\n\n /**\n * Gets all user-defined metadata and system properties for the specified\n * queue. Metadata is associated with the queue as name-values pairs.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-queue-metadata\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the `listQueues` method of {@link QueueServiceClient} using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @param options - Options to Queue get properties operation.\n * @returns Response data for the Queue get properties operation.\n */\n public async getProperties(\n options: QueueGetPropertiesOptions = {},\n ): Promise<QueueGetPropertiesResponse> {\n return tracingClient.withSpan(\"QueueClient-getProperties\", options, async (updatedOptions) => {\n return assertResponse<QueueGetPropertiesHeaders, QueueGetPropertiesHeaders>(\n await this.queueContext.getProperties(updatedOptions),\n );\n });\n }\n\n /**\n * Sets one or more user-defined name-value pairs for the specified queue.\n *\n * If no option provided, or no metadata defined in the option parameter, the queue\n * metadata will be removed.\n * @see https://learn.microsoft.com/rest/api/storageservices/set-queue-metadata\n *\n * @param metadata - If no metadata provided, all existing metadata will be removed.\n * @param options - Options to Queue set metadata operation.\n * @returns Response data for the Queue set metadata operation.\n */\n public async setMetadata(\n metadata?: Metadata,\n options: QueueSetMetadataOptions = {},\n ): Promise<QueueSetMetadataResponse> {\n return tracingClient.withSpan(\"QueueClient-setMetadata\", options, async (updatedOptions) => {\n return assertResponse<QueueSetMetadataHeaders, QueueSetMetadataHeaders>(\n await this.queueContext.setMetadata({\n ...updatedOptions,\n metadata,\n }),\n );\n });\n }\n\n /**\n * Gets details about any stored access policies specified on the queue that may be used with Shared Access Signatures.\n *\n * WARNING: JavaScript Date will potential lost precision when parsing start and expiry string.\n * For example, new Date(\"2018-12-31T03:44:23.8827891Z\").toISOString() will get \"2018-12-31T03:44:23.882Z\".\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/get-queue-acl\n *\n * @param options - Options to Queue get access policy operation.\n * @returns Response data for the Queue get access policy operation.\n */\n public async getAccessPolicy(\n options: QueueGetAccessPolicyOptions = {},\n ): Promise<QueueGetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"QueueClient-getAccessPolicy\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n QueueGetAccessPolicyHeaders & SignedIdentifierModel[],\n QueueGetAccessPolicyHeaders,\n SignedIdentifierModel[]\n >(\n await this.queueContext.getAccessPolicy({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n\n const res: QueueGetAccessPolicyResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n signedIdentifiers: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const identifier of response) {\n let accessPolicy: any = undefined;\n if (identifier.accessPolicy) {\n accessPolicy = {\n permissions: identifier.accessPolicy.permissions,\n };\n\n if (identifier.accessPolicy.expiresOn) {\n accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn);\n }\n\n if (identifier.accessPolicy.startsOn) {\n accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn);\n }\n }\n\n res.signedIdentifiers.push({\n accessPolicy,\n id: identifier.id,\n });\n }\n\n return res;\n },\n );\n }\n\n /**\n * Sets stored access policies for the queue that may be used with Shared Access Signatures.\n * @see https://learn.microsoft.com/rest/api/storageservices/set-queue-acl\n *\n * @param queueAcl -\n * @param options - Options to Queue set access policy operation.\n * @returns Response data for the Queue set access policy operation.\n */\n public async setAccessPolicy(\n queueAcl?: SignedIdentifier[],\n options: QueueSetAccessPolicyOptions = {},\n ): Promise<QueueSetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"QueueClient-setAccessPolicy\",\n options,\n async (updatedOptions) => {\n const acl: SignedIdentifierModel[] = [];\n for (const identifier of queueAcl || []) {\n acl.push({\n accessPolicy: {\n expiresOn: identifier.accessPolicy.expiresOn\n ? truncatedISO8061Date(identifier.accessPolicy.expiresOn)\n : undefined,\n permissions: identifier.accessPolicy.permissions,\n startsOn: identifier.accessPolicy.startsOn\n ? truncatedISO8061Date(identifier.accessPolicy.startsOn)\n : undefined,\n },\n id: identifier.id,\n });\n }\n\n return assertResponse<QueueSetAccessPolicyHeaders, QueueSetAccessPolicyHeaders>(\n await this.queueContext.setAccessPolicy({\n ...updatedOptions,\n queueAcl: acl,\n }),\n );\n },\n );\n }\n\n /**\n * Clear deletes all messages from a queue.\n * @see https://learn.microsoft.com/rest/api/storageservices/clear-messages\n *\n * @param options - Options to clear messages operation.\n * @returns Response data for the clear messages operation.\n */\n public async clearMessages(\n options: QueueClearMessagesOptions = {},\n ): Promise<QueueClearMessagesResponse> {\n return tracingClient.withSpan(\"QueueClient-clearMessages\", options, async (updatedOptions) => {\n return assertResponse<MessagesClearHeaders, MessagesClearHeaders>(\n await this.messagesContext.clear(updatedOptions),\n );\n });\n }\n\n /**\n * sendMessage adds a new message to the back of a queue. The visibility timeout specifies how long\n * the message should be invisible to Dequeue and Peek operations.\n * The message content is up to 64KB in size, and must be in a format that can be included in an XML request with UTF-8 encoding.\n * To include markup in the message, the contents of the message must either be XML-escaped or Base64-encode.\n * @see https://learn.microsoft.com/rest/api/storageservices/put-message\n *\n * @param messageText - Text of the message to send\n * @param options - Options to send messages operation.\n * @returns Response data for the send messages operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleSendMessage\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * // Send a message into the queue using the sendMessage method.\n * const sendMessageResponse = await queueClient.sendMessage(\"Hello World!\");\n * console.log(\n * `Sent message successfully, service assigned message Id: ${sendMessageResponse.messageId}, service assigned request Id: ${sendMessageResponse.requestId}`,\n * );\n * ```\n */\n public async sendMessage(\n messageText: string,\n options: QueueSendMessageOptions = {},\n ): Promise<QueueSendMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-sendMessage\", options, async (updatedOptions) => {\n const response = assertResponse<\n MessagesEnqueueHeaders & EnqueuedMessage[],\n MessagesEnqueueHeaders,\n EnqueuedMessage[]\n >(\n await this.messagesContext.enqueue(\n {\n messageText: messageText,\n },\n updatedOptions,\n ),\n );\n const item = response[0];\n return {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n version: response.version,\n errorCode: response.errorCode,\n messageId: item.messageId,\n popReceipt: item.popReceipt,\n nextVisibleOn: item.nextVisibleOn,\n insertedOn: item.insertedOn,\n expiresOn: item.expiresOn,\n };\n });\n }\n\n /**\n * receiveMessages retrieves one or more messages from the front of the queue.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-messages\n *\n * @param options - Options to receive messages operation.\n * @returns Response data for the receive messages operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleReceiveMessage\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const response = await queueClient.receiveMessages();\n * if (response.receivedMessageItems.length === 1) {\n * const receivedMessageItem = response.receivedMessageItems[0];\n * console.log(`Processing & deleting message with content: ${receivedMessageItem.messageText}`);\n * const deleteMessageResponse = await queueClient.deleteMessage(\n * receivedMessageItem.messageId,\n * receivedMessageItem.popReceipt,\n * );\n * console.log(\n * `Delete message successfully, service assigned request Id: ${deleteMessageResponse.requestId}`,\n * );\n * }\n * ```\n */\n public async receiveMessages(\n options: QueueReceiveMessageOptions = {},\n ): Promise<QueueReceiveMessageResponse> {\n return tracingClient.withSpan(\n \"QueueClient-receiveMessages\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n MessagesDequeueHeaders & DequeuedMessageItem[],\n MessagesDequeueHeaders,\n DequeuedMessageItem[]\n >(await this.messagesContext.dequeue(updatedOptions));\n\n const res: QueueReceiveMessageResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n receivedMessageItems: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const item of response) {\n res.receivedMessageItems.push(item);\n }\n\n return res;\n },\n );\n }\n\n /**\n * peekMessages retrieves one or more messages from the front of the queue but does not alter the visibility of the message.\n * @see https://learn.microsoft.com/rest/api/storageservices/peek-messages\n *\n * @param options - Options to peek messages operation.\n * @returns Response data for the peek messages operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSamplePeekMessage\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const peekMessagesResponse = await queueClient.peekMessages();\n * console.log(`The peeked message is: ${peekMessagesResponse.peekedMessageItems[0].messageText}`);\n * ```\n */\n public async peekMessages(\n options: QueuePeekMessagesOptions = {},\n ): Promise<QueuePeekMessagesResponse> {\n return tracingClient.withSpan(\"QueueClient-peekMessages\", options, async (updatedOptions) => {\n const response = assertResponse<\n MessagesPeekHeaders & PeekedMessageItem[],\n MessagesPeekHeaders,\n PeekedMessageItem[]\n >(await this.messagesContext.peek(updatedOptions));\n\n const res: QueuePeekMessagesResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n peekedMessageItems: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const item of response) {\n res.peekedMessageItems.push(item);\n }\n\n return res;\n });\n }\n\n /**\n * deleteMessage permanently removes the specified message from its queue.\n * @see https://learn.microsoft.com/rest/api/storageservices/delete-message2\n *\n * @param messageId - Id of the message.\n * @param popReceipt - A valid pop receipt value returned from an earlier call to the receive messages or update message operation.\n * @param options - Options to delete message operation.\n * @returns Response data for the delete message operation.\n */\n public async deleteMessage(\n messageId: string,\n popReceipt: string,\n options: QueueDeleteMessageOptions = {},\n ): Promise<QueueDeleteMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-deleteMessage\", options, async (updatedOptions) => {\n return assertResponse<MessageIdDeleteHeaders, MessageIdDeleteHeaders>(\n await this.getMessageIdContext(messageId).delete(popReceipt, updatedOptions),\n );\n });\n }\n\n /**\n * Update changes a message's visibility timeout and contents.\n * The message content is up to 64KB in size, and must be in a format that can be included in an XML request with UTF-8 encoding.\n * To include markup in the message, the contents of the message must either be XML-escaped or Base64-encode.\n * @see https://learn.microsoft.com/rest/api/storageservices/update-message\n *\n * @param messageId - Id of the message\n * @param popReceipt - A valid pop receipt value returned from an earlier call to the receive messages or update message operation.\n * @param message - Message to update. If this parameter is undefined, then the content of the message won't be updated.\n * @param visibilityTimeout - Specifies the new visibility timeout value, in seconds,\n * relative to server time. The new value must be larger than or equal to 0,\n * and cannot be larger than 7 days. The visibility timeout of a message cannot\n * be set to a value later than the expiry time.\n * A message can be updated until it has been deleted or has expired.\n * @param options - Options to update message operation.\n * @returns Response data for the update message operation.\n */\n public async updateMessage(\n messageId: string,\n popReceipt: string,\n message?: string,\n visibilityTimeout?: number,\n options: QueueUpdateMessageOptions = {},\n ): Promise<QueueUpdateMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-updateMessage\", options, async (updatedOptions) => {\n let queueMessage = undefined;\n if (message !== undefined) {\n queueMessage = { messageText: message };\n }\n return assertResponse<MessageIdUpdateHeaders, MessageIdUpdateHeaders>(\n await this.getMessageIdContext(messageId).update(popReceipt, visibilityTimeout || 0, {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n queueMessage,\n }),\n );\n });\n }\n\n private getQueueNameFromUrl(): string {\n let queueName;\n try {\n // URL may look like the following\n // \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n // \"https://myaccount.queue.core.windows.net/myqueue\".\n // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10001/devstoreaccount1/myqueue`\n // http://localhost:10001/devstoreaccount1/queuename\n\n const parsedUrl = new URL(this.url);\n\n if (parsedUrl.hostname.split(\".\")[1] === \"queue\") {\n // \"https://myaccount.queue.core.windows.net/queuename\".\n // .getPath() -> /queuename\n queueName = parsedUrl.pathname.split(\"/\")[1];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/queuename\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/queuename\n // .getPath() -> /devstoreaccount1/queuename\n queueName = parsedUrl.pathname.split(\"/\")[2];\n } else {\n // \"https://customdomain.com/queuename\".\n // .getPath() -> /queuename\n queueName = parsedUrl.pathname.split(\"/\")[1];\n }\n\n if (!queueName) {\n throw new Error(\"Provided queueName is invalid.\");\n }\n\n return queueName;\n } catch (error: any) {\n throw new Error(\"Unable to extract queueName with provided information.\");\n }\n }\n\n /**\n * Only available for QueueClient constructed with a shared key credential.\n *\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: QueueGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n const sas = generateQueueSASQueryParameters(\n {\n queueName: this.name,\n ...options,\n },\n this.credential,\n ).toString();\n\n return appendToURLQuery(this.url, sas);\n }\n\n /**\n * Only available for QueueClient constructed with a shared key credential.\n *\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n public generateSasStringToSign(options: QueueGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n return generateQueueSASQueryParametersInternal(\n {\n queueName: this.name,\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n}\n"]}
1
+ {"version":3,"file":"QueueClient.js","sourceRoot":"","sources":["../../src/QueueClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport { isNode } from \"@azure/core-util\";\nimport type {\n EnqueuedMessage,\n DequeuedMessageItem,\n MessagesDequeueHeaders,\n MessagesEnqueueHeaders,\n MessagesPeekHeaders,\n MessageIdUpdateResponse,\n MessageIdDeleteResponse,\n MessagesClearResponse,\n PeekedMessageItem,\n QueueCreateHeaders,\n QueueDeleteResponse,\n QueueGetAccessPolicyHeaders,\n QueueGetPropertiesResponse,\n QueueSetAccessPolicyResponse,\n QueueSetMetadataResponse,\n SignedIdentifierModel,\n QueueCreateResponse,\n QueueDeleteHeaders,\n QueueSetMetadataHeaders,\n QueueGetPropertiesHeaders,\n QueueSetAccessPolicyHeaders,\n MessagesClearHeaders,\n MessageIdDeleteHeaders,\n MessageIdUpdateHeaders,\n} from \"./generatedModels.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { Messages, MessageId, Queue } from \"./generated/src/operationsInterfaces/index.js\";\nimport type { StoragePipelineOptions, Pipeline } from \"./Pipeline.js\";\nimport { newPipeline, isPipelineLike } from \"./Pipeline.js\";\nimport type { CommonOptions } from \"./StorageClient.js\";\nimport { StorageClient, getStorageClientContext } from \"./StorageClient.js\";\nimport type { WithResponse } from \"./utils/utils.common.js\";\nimport {\n appendToURLPath,\n extractConnectionStringParts,\n isIpEndpointStyle,\n truncatedISO8061Date,\n appendToURLQuery,\n assertResponse,\n} from \"./utils/utils.common.js\";\nimport { StorageSharedKeyCredential } from \"@azure/storage-common\";\nimport { AnonymousCredential } from \"@azure/storage-common\";\nimport { tracingClient } from \"./utils/tracing.js\";\nimport type { Metadata } from \"./models.js\";\nimport {\n generateQueueSASQueryParameters,\n generateQueueSASQueryParametersInternal,\n} from \"./QueueSASSignatureValues.js\";\nimport type { SasIPRange } from \"./SasIPRange.js\";\nimport type { QueueSASPermissions } from \"./QueueSASPermissions.js\";\nimport type { SASProtocol } from \"./SASQueryParameters.js\";\nimport { getDefaultProxySettings } from \"@azure/core-rest-pipeline\";\n\n/**\n * Options to configure {@link QueueClient.create} operation\n */\nexport interface QueueCreateOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n /**\n * A collection of key-value string pair to associate with the queue object.\n * The keys need to be lower-case.\n */\n metadata?: Metadata;\n}\n\n/**\n * Options to configure {@link QueueClient.exists} operation\n */\nexport interface QueueExistsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.getProperties} operation\n */\nexport interface QueueGetPropertiesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.delete} operation\n */\nexport interface QueueDeleteOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.getAccessPolicy} operation\n */\nexport interface QueueGetAccessPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.setAccessPolicy} operation\n */\nexport interface QueueSetAccessPolicyOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Options to configure {@link QueueClient.setMetadata} operation\n */\nexport interface QueueSetMetadataOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Signed identifier.\n */\nexport interface SignedIdentifier {\n /**\n * a unique id\n */\n id: string;\n /**\n * Access Policy\n */\n accessPolicy: {\n /**\n * the date-time the policy is active.\n */\n startsOn?: Date;\n /**\n * the date-time the policy expires.\n */\n expiresOn?: Date;\n /**\n * the permissions for the acl policy\n * @see https://learn.microsoft.com/rest/api/storageservices/set-queue-acl\n */\n permissions?: string;\n };\n}\n\n/**\n * Contains response data for the {@link QueueClient.getAccessPolicy} operation.\n */\nexport declare type QueueGetAccessPolicyResponse = WithResponse<\n {\n signedIdentifiers: SignedIdentifier[];\n } & QueueGetAccessPolicyHeaders,\n QueueGetAccessPolicyHeaders,\n SignedIdentifierModel[]\n>;\n\n/**\n * Options to configure {@link QueueClient.clearMessages} operation\n */\nexport interface QueueClearMessagesOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/** Optional parameters. */\nexport interface MessagesEnqueueOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. If specified, the request must be made using an x-ms-version of 2011-08-18 or later. If not specified, the default value is 0. Specifies the new visibility timeout value, in seconds, relative to server time. The new value must be larger than or equal to 0, and cannot be larger than 7 days. The visibility timeout of a message cannot be set to a value later than the expiry time. visibilitytimeout should be set to a value smaller than the time-to-live value. */\n visibilityTimeout?: number;\n /** Optional. Specifies the time-to-live interval for the message, in seconds. Prior to version 2017-07-29, the maximum time-to-live allowed is 7 days. For version 2017-07-29 or later, the maximum time-to-live can be any positive number, as well as -1 indicating that the message does not expire. If this parameter is omitted, the default time-to-live is 7 days. */\n messageTimeToLive?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.sendMessage} operation\n */\nexport interface QueueSendMessageOptions extends MessagesEnqueueOptionalParams, CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/** Optional parameters. */\nexport interface MessagesDequeueOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, a single message is retrieved from the queue with this operation. */\n numberOfMessages?: number;\n /** Optional. Specifies the new visibility timeout value, in seconds, relative to server time. The default value is 30 seconds. A specified value must be larger than or equal to 1 second, and cannot be larger than 7 days, or larger than 2 hours on REST protocol versions prior to version 2011-08-18. The visibility timeout of a message can be set to a value later than the expiry time. */\n visibilityTimeout?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.receiveMessages} operation\n */\nexport interface QueueReceiveMessageOptions extends MessagesDequeueOptionalParams, CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/** Optional parameters. */\nexport interface MessagesPeekOptionalParams extends CommonOptions {\n /** The The timeout parameter is expressed in seconds. For more information, see <a href=\"https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-queue-service-operations\">Setting Timeouts for Queue Service Operations.</a> */\n timeoutInSeconds?: number;\n /** Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled. */\n requestId?: string;\n /** Optional. A nonzero integer value that specifies the number of messages to retrieve from the queue, up to a maximum of 32. If fewer are visible, the visible messages are returned. By default, a single message is retrieved from the queue with this operation. */\n numberOfMessages?: number;\n}\n\n/**\n * Options to configure {@link QueueClient.peekMessages} operation\n */\nexport interface QueuePeekMessagesOptions extends MessagesPeekOptionalParams, CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Contains the response data for the {@link QueueClient.sendMessage} operation.\n */\nexport declare type QueueSendMessageResponse = WithResponse<\n {\n /**\n * The ID of the sent Message.\n */\n messageId: string;\n /**\n * This value is required to delete the Message.\n * If deletion fails using this popreceipt then the message has been received\n * by another client.\n */\n popReceipt: string;\n /**\n * The time that the message was inserted into the\n * Queue.\n */\n insertedOn: Date;\n /**\n * The time that the message will expire and be\n * automatically deleted.\n */\n expiresOn: Date;\n /**\n * The time that the message will again become\n * visible in the Queue.\n */\n nextVisibleOn: Date;\n } & MessagesEnqueueHeaders,\n MessagesEnqueueHeaders,\n EnqueuedMessage[]\n>;\n\n/**\n * The object returned in the `receivedMessageItems` array when calling {@link QueueClient.receiveMessages}.\n *\n * See: {@link QueueReceiveMessageResponse}\n */\nexport declare type ReceivedMessageItem = DequeuedMessageItem;\n\n/**\n * Contains the response data for the {@link QueueClient.receiveMessages} operation.\n */\nexport declare type QueueReceiveMessageResponse = WithResponse<\n {\n receivedMessageItems: ReceivedMessageItem[];\n } & MessagesDequeueHeaders,\n MessagesDequeueHeaders,\n ReceivedMessageItem[]\n>;\n\n/**\n * Contains the response data for the {@link QueueClient.peekMessages} operation.\n */\nexport declare type QueuePeekMessagesResponse = WithResponse<\n {\n peekedMessageItems: PeekedMessageItem[];\n } & MessagesPeekHeaders,\n MessagesPeekHeaders,\n PeekedMessageItem[]\n>;\n\n/**\n * Options to configure the {@link QueueClient.deleteMessage} operation\n */\nexport interface QueueDeleteMessageOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Contains response data for the {@link QueueClient.updateMessage} operation.\n */\nexport declare type QueueUpdateMessageResponse = MessageIdUpdateResponse;\n\n/**\n * Contains response data for the {@link QueueClient.deleteMessage} operation.\n */\nexport declare type QueueDeleteMessageResponse = MessageIdDeleteResponse;\n\n/**\n * Contains response data for the {@link QueueClient.clearMessages} operation.\n */\nexport declare type QueueClearMessagesResponse = MessagesClearResponse;\n\n/**\n * Options to configure {@link QueueClient.updateMessage} operation\n */\nexport interface QueueUpdateMessageOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * Contains response data for the {@link QueueClient.createIfNotExists} operation.\n */\nexport interface QueueCreateIfNotExistsResponse extends QueueCreateResponse {\n /**\n * Indicate whether the queue is successfully created. Is false when the queue is not changed as it already exists.\n */\n succeeded: boolean;\n}\n\n/**\n * Contains response data for the {@link QueueClient.deleteIfExists} operation.\n */\nexport interface QueueDeleteIfExistsResponse extends QueueDeleteResponse {\n /**\n * Indicate whether the queue is successfully deleted. Is false if the queue does not exist in the first place.\n */\n succeeded: boolean;\n}\n\n/**\n * Options to configure {@link QueueClient.generateSasUrl} operation.\n */\nexport interface QueueGenerateSasUrlOptions {\n /**\n * The version of the service this SAS will target. If not specified, it will default to the version targeted by the\n * library.\n */\n version?: string;\n\n /**\n * Optional. SAS protocols, HTTPS only or HTTPSandHTTP\n */\n protocol?: SASProtocol;\n\n /**\n * Optional. When the SAS will take effect.\n */\n startsOn?: Date;\n\n /**\n * Optional only when identifier is provided. The time after which the SAS will no longer work.\n */\n expiresOn?: Date;\n\n /**\n * Optional only when identifier is provided.\n * Please refer to {@link QueueSASPermissions} for help constructing the permissions string.\n */\n permissions?: QueueSASPermissions;\n\n /**\n * Optional. IP ranges allowed in this SAS.\n */\n ipRange?: SasIPRange;\n\n /**\n * Optional. The name of the access policy on the queue this SAS references if any.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/establishing-a-stored-access-policy\n */\n identifier?: string;\n}\n\n/**\n * A QueueClient represents a URL to an Azure Storage Queue's messages allowing you to manipulate its messages.\n */\nexport class QueueClient extends StorageClient {\n /**\n * messagesContext provided by protocol layer.\n */\n private messagesContext: Messages;\n /**\n * queueContext provided by protocol layer.\n */\n private queueContext: Queue;\n private _name: string;\n private _messagesUrl: string;\n\n /**\n * The name of the queue.\n */\n public get name(): string {\n return this._name;\n }\n\n /**\n * Creates an instance of QueueClient.\n *\n * @param connectionString - Account connection string or a SAS connection string of an Azure storage account.\n * [ Note - Account connection string can only be used in NODE.JS runtime. ]\n * Account connection string example -\n * `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`\n * SAS connection string example -\n * `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`\n * @param queueName - Queue name.\n * @param options - Options to configure the HTTP pipeline.\n */\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n constructor(connectionString: string, queueName: string, options?: StoragePipelineOptions);\n /**\n * Creates an instance of QueueClient.\n *\n * @param url - A URL string pointing to Azure Storage queue, such as\n * \"https://myaccount.queue.core.windows.net/myqueue\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n * @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.\n * @param options - Options to configure the HTTP pipeline.\n */\n constructor(\n url: string,\n credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n );\n /**\n * Creates an instance of QueueClient.\n *\n * @param url - A URL string pointing to Azure Storage queue, such as\n * \"https://myaccount.queue.core.windows.net/myqueue\". You can\n * append a SAS if using AnonymousCredential, such as\n * \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n * @param pipeline - Call newPipeline() to create a default\n * pipeline, or provide a customized pipeline.\n */\n constructor(url: string, pipeline: Pipeline);\n constructor(\n urlOrConnectionString: string,\n credentialOrPipelineOrQueueName?:\n | StorageSharedKeyCredential\n | AnonymousCredential\n | TokenCredential\n | Pipeline\n | string,\n // Legacy, no way to fix the eslint error without breaking. Disable the rule for this line.\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options */\n options?: StoragePipelineOptions,\n ) {\n options = options || {};\n let pipeline: Pipeline;\n let url: string;\n if (isPipelineLike(credentialOrPipelineOrQueueName)) {\n // (url: string, pipeline: Pipeline)\n url = urlOrConnectionString;\n pipeline = credentialOrPipelineOrQueueName;\n } else if (\n (isNode && credentialOrPipelineOrQueueName instanceof StorageSharedKeyCredential) ||\n credentialOrPipelineOrQueueName instanceof AnonymousCredential ||\n isTokenCredential(credentialOrPipelineOrQueueName)\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n url = urlOrConnectionString;\n pipeline = newPipeline(credentialOrPipelineOrQueueName, options);\n } else if (\n !credentialOrPipelineOrQueueName &&\n typeof credentialOrPipelineOrQueueName !== \"string\"\n ) {\n // (url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)\n // The second parameter is undefined. Use anonymous credential.\n url = urlOrConnectionString;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else if (\n credentialOrPipelineOrQueueName &&\n typeof credentialOrPipelineOrQueueName === \"string\"\n ) {\n // (connectionString: string, containerName: string, queueName: string, options?: StoragePipelineOptions)\n const extractedCreds = extractConnectionStringParts(urlOrConnectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n if (isNode) {\n const queueName = credentialOrPipelineOrQueueName;\n const sharedKeyCredential = new StorageSharedKeyCredential(\n extractedCreds.accountName,\n extractedCreds.accountKey,\n );\n url = appendToURLPath(extractedCreds.url, queueName);\n\n if (!options.proxyOptions) {\n options.proxyOptions = getDefaultProxySettings(extractedCreds.proxyUri);\n }\n\n pipeline = newPipeline(sharedKeyCredential, options);\n } else {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n }\n } else if (extractedCreds.kind === \"SASConnString\") {\n const queueName = credentialOrPipelineOrQueueName;\n url = appendToURLPath(extractedCreds.url, queueName) + \"?\" + extractedCreds.accountSas;\n pipeline = newPipeline(new AnonymousCredential(), options);\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\",\n );\n }\n } else {\n throw new Error(\"Expecting non-empty strings for queueName parameter\");\n }\n super(url, pipeline);\n this._name = this.getQueueNameFromUrl();\n this.queueContext = this.storageClientContext.queue;\n\n // MessagesContext\n // Build the url with \"messages\"\n const partsOfUrl = this.url.split(\"?\");\n this._messagesUrl = partsOfUrl[1]\n ? appendToURLPath(partsOfUrl[0], \"messages\") + \"?\" + partsOfUrl[1]\n : appendToURLPath(partsOfUrl[0], \"messages\");\n\n this.messagesContext = getStorageClientContext(this._messagesUrl, this.pipeline).messages;\n }\n\n private getMessageIdContext(messageId: string): MessageId {\n // Build the url with messageId\n const partsOfUrl = this._messagesUrl.split(\"?\");\n const urlWithMessageId = partsOfUrl[1]\n ? appendToURLPath(partsOfUrl[0], messageId) + \"?\" + partsOfUrl[1]\n : appendToURLPath(partsOfUrl[0], messageId);\n\n return getStorageClientContext(urlWithMessageId, this.pipeline).messageId;\n }\n\n /**\n * Creates a new queue under the specified account.\n * @see https://learn.microsoft.com/rest/api/storageservices/create-queue4\n *\n * @param options - Options to Queue create operation.\n * @returns Response data for the Queue create operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleCreateQueue\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const createQueueResponse = await queueClient.create();\n * console.log(\n * `Created queue ${queueName} successfully, service assigned request Id: ${createQueueResponse.requestId}`,\n * );\n * ```\n */\n public async create(options: QueueCreateOptions = {}): Promise<QueueCreateResponse> {\n return tracingClient.withSpan(\"QueueClient-create\", options, async (updatedOptions) => {\n return assertResponse<QueueCreateHeaders, QueueCreateHeaders>(\n await this.queueContext.create(updatedOptions),\n );\n });\n }\n\n /**\n * Creates a new queue under the specified account if it doesn't already exist.\n * If the queue already exists, it is not changed.\n * @see https://learn.microsoft.com/rest/api/storageservices/create-queue4\n *\n * @param options -\n */\n public async createIfNotExists(\n options: QueueCreateOptions = {},\n ): Promise<QueueCreateIfNotExistsResponse> {\n return tracingClient.withSpan(\n \"QueueClient-createIfNotExists\",\n options,\n async (updatedOptions) => {\n try {\n const response = await this.create(updatedOptions);\n\n // When a queue with the specified name already exists, the Queue service checks the metadata associated with the existing queue.\n // If the existing metadata is identical to the metadata specified on the Create Queue request, status code 204 (No Content) is returned.\n // If the existing metadata does not match, the operation fails and status code 409 (Conflict) is returned.\n if (response._response.status === 204) {\n return {\n succeeded: false,\n ...response,\n };\n }\n return {\n succeeded: true,\n ...response,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"QueueAlreadyExists\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n\n throw e;\n }\n },\n );\n }\n\n /**\n * Deletes the specified queue permanently if it exists.\n * @see https://learn.microsoft.com/rest/api/storageservices/delete-queue3\n *\n * @param options -\n */\n public async deleteIfExists(\n options: QueueDeleteOptions = {},\n ): Promise<QueueDeleteIfExistsResponse> {\n return tracingClient.withSpan(\"QueueClient-deleteIfExists\", options, async (updatedOptions) => {\n try {\n const res = await this.delete(updatedOptions);\n return {\n succeeded: true,\n ...res,\n };\n } catch (e: any) {\n if (e.details?.errorCode === \"QueueNotFound\") {\n return {\n succeeded: false,\n ...e.response?.parsedHeaders,\n _response: e.response,\n };\n }\n throw e;\n }\n });\n }\n\n /**\n * Deletes the specified queue permanently.\n * @see https://learn.microsoft.com/rest/api/storageservices/delete-queue3\n *\n * @param options - Options to Queue delete operation.\n * @returns Response data for the Queue delete operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleDeleteQueue\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const deleteQueueResponse = await queueClient.delete();\n * console.log(\n * `Deleted queue successfully, service assigned request Id: ${deleteQueueResponse.requestId}`,\n * );\n * ```\n */\n public async delete(options: QueueDeleteOptions = {}): Promise<QueueDeleteResponse> {\n return tracingClient.withSpan(\"QueueClient-delete\", options, async (updatedOptions) => {\n return assertResponse<QueueDeleteHeaders, QueueDeleteHeaders>(\n await this.queueContext.delete({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n });\n }\n\n /**\n * Returns true if the specified queue exists; false otherwise.\n *\n * NOTE: use this function with care since an existing queue might be deleted by other clients or\n * applications. Vice versa new queues might be added by other clients or applications after this\n * function completes.\n *\n * @param options - options to Exists operation.\n */\n public async exists(options: QueueExistsOptions = {}): Promise<boolean> {\n return tracingClient.withSpan(\"QueueClient-exists\", options, async (updatedOptions) => {\n try {\n await this.getProperties(updatedOptions);\n return true;\n } catch (e: any) {\n if (e.statusCode === 404) {\n return false;\n }\n throw e;\n }\n });\n }\n\n /**\n * Gets all user-defined metadata and system properties for the specified\n * queue. Metadata is associated with the queue as name-values pairs.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-queue-metadata\n *\n * WARNING: The `metadata` object returned in the response will have its keys in lowercase, even if\n * they originally contained uppercase characters. This differs from the metadata keys returned by\n * the `listQueues` method of {@link QueueServiceClient} using the `includeMetadata` option, which\n * will retain their original casing.\n *\n * @param options - Options to Queue get properties operation.\n * @returns Response data for the Queue get properties operation.\n */\n public async getProperties(\n options: QueueGetPropertiesOptions = {},\n ): Promise<QueueGetPropertiesResponse> {\n return tracingClient.withSpan(\"QueueClient-getProperties\", options, async (updatedOptions) => {\n return assertResponse<QueueGetPropertiesHeaders, QueueGetPropertiesHeaders>(\n await this.queueContext.getProperties(updatedOptions),\n );\n });\n }\n\n /**\n * Sets one or more user-defined name-value pairs for the specified queue.\n *\n * If no option provided, or no metadata defined in the option parameter, the queue\n * metadata will be removed.\n * @see https://learn.microsoft.com/rest/api/storageservices/set-queue-metadata\n *\n * @param metadata - If no metadata provided, all existing metadata will be removed.\n * @param options - Options to Queue set metadata operation.\n * @returns Response data for the Queue set metadata operation.\n */\n public async setMetadata(\n metadata?: Metadata,\n options: QueueSetMetadataOptions = {},\n ): Promise<QueueSetMetadataResponse> {\n return tracingClient.withSpan(\"QueueClient-setMetadata\", options, async (updatedOptions) => {\n return assertResponse<QueueSetMetadataHeaders, QueueSetMetadataHeaders>(\n await this.queueContext.setMetadata({\n ...updatedOptions,\n metadata,\n }),\n );\n });\n }\n\n /**\n * Gets details about any stored access policies specified on the queue that may be used with Shared Access Signatures.\n *\n * WARNING: JavaScript Date will potential lost precision when parsing start and expiry string.\n * For example, new Date(\"2018-12-31T03:44:23.8827891Z\").toISOString() will get \"2018-12-31T03:44:23.882Z\".\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/get-queue-acl\n *\n * @param options - Options to Queue get access policy operation.\n * @returns Response data for the Queue get access policy operation.\n */\n public async getAccessPolicy(\n options: QueueGetAccessPolicyOptions = {},\n ): Promise<QueueGetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"QueueClient-getAccessPolicy\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n QueueGetAccessPolicyHeaders & SignedIdentifierModel[],\n QueueGetAccessPolicyHeaders,\n SignedIdentifierModel[]\n >(\n await this.queueContext.getAccessPolicy({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n }),\n );\n\n const res: QueueGetAccessPolicyResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n signedIdentifiers: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const identifier of response) {\n let accessPolicy: any = undefined;\n if (identifier.accessPolicy) {\n accessPolicy = {\n permissions: identifier.accessPolicy.permissions,\n };\n\n if (identifier.accessPolicy.expiresOn) {\n accessPolicy.expiresOn = new Date(identifier.accessPolicy.expiresOn);\n }\n\n if (identifier.accessPolicy.startsOn) {\n accessPolicy.startsOn = new Date(identifier.accessPolicy.startsOn);\n }\n }\n\n res.signedIdentifiers.push({\n accessPolicy,\n id: identifier.id,\n });\n }\n\n return res;\n },\n );\n }\n\n /**\n * Sets stored access policies for the queue that may be used with Shared Access Signatures.\n * @see https://learn.microsoft.com/rest/api/storageservices/set-queue-acl\n *\n * @param queueAcl -\n * @param options - Options to Queue set access policy operation.\n * @returns Response data for the Queue set access policy operation.\n */\n public async setAccessPolicy(\n queueAcl?: SignedIdentifier[],\n options: QueueSetAccessPolicyOptions = {},\n ): Promise<QueueSetAccessPolicyResponse> {\n return tracingClient.withSpan(\n \"QueueClient-setAccessPolicy\",\n options,\n async (updatedOptions) => {\n const acl: SignedIdentifierModel[] = [];\n for (const identifier of queueAcl || []) {\n acl.push({\n accessPolicy: {\n expiresOn: identifier.accessPolicy.expiresOn\n ? truncatedISO8061Date(identifier.accessPolicy.expiresOn)\n : undefined,\n permissions: identifier.accessPolicy.permissions,\n startsOn: identifier.accessPolicy.startsOn\n ? truncatedISO8061Date(identifier.accessPolicy.startsOn)\n : undefined,\n },\n id: identifier.id,\n });\n }\n\n return assertResponse<QueueSetAccessPolicyHeaders, QueueSetAccessPolicyHeaders>(\n await this.queueContext.setAccessPolicy({\n ...updatedOptions,\n queueAcl: acl,\n }),\n );\n },\n );\n }\n\n /**\n * Clear deletes all messages from a queue.\n * @see https://learn.microsoft.com/rest/api/storageservices/clear-messages\n *\n * @param options - Options to clear messages operation.\n * @returns Response data for the clear messages operation.\n */\n public async clearMessages(\n options: QueueClearMessagesOptions = {},\n ): Promise<QueueClearMessagesResponse> {\n return tracingClient.withSpan(\"QueueClient-clearMessages\", options, async (updatedOptions) => {\n return assertResponse<MessagesClearHeaders, MessagesClearHeaders>(\n await this.messagesContext.clear(updatedOptions),\n );\n });\n }\n\n /**\n * sendMessage adds a new message to the back of a queue. The visibility timeout specifies how long\n * the message should be invisible to Dequeue and Peek operations.\n * The message content is up to 64KB in size, and must be in a format that can be included in an XML request with UTF-8 encoding.\n * To include markup in the message, the contents of the message must either be XML-escaped or Base64-encode.\n * @see https://learn.microsoft.com/rest/api/storageservices/put-message\n *\n * @param messageText - Text of the message to send\n * @param options - Options to send messages operation.\n * @returns Response data for the send messages operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleSendMessage\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * // Send a message into the queue using the sendMessage method.\n * const sendMessageResponse = await queueClient.sendMessage(\"Hello World!\");\n * console.log(\n * `Sent message successfully, service assigned message Id: ${sendMessageResponse.messageId}, service assigned request Id: ${sendMessageResponse.requestId}`,\n * );\n * ```\n */\n public async sendMessage(\n messageText: string,\n options: QueueSendMessageOptions = {},\n ): Promise<QueueSendMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-sendMessage\", options, async (updatedOptions) => {\n const response = assertResponse<\n MessagesEnqueueHeaders & EnqueuedMessage[],\n MessagesEnqueueHeaders,\n EnqueuedMessage[]\n >(\n await this.messagesContext.enqueue(\n {\n messageText: messageText,\n },\n updatedOptions,\n ),\n );\n const item = response[0];\n return {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n version: response.version,\n errorCode: response.errorCode,\n messageId: item.messageId,\n popReceipt: item.popReceipt,\n nextVisibleOn: item.nextVisibleOn,\n insertedOn: item.insertedOn,\n expiresOn: item.expiresOn,\n };\n });\n }\n\n /**\n * receiveMessages retrieves one or more messages from the front of the queue.\n * @see https://learn.microsoft.com/rest/api/storageservices/get-messages\n *\n * @param options - Options to receive messages operation.\n * @returns Response data for the receive messages operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSampleReceiveMessage\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const response = await queueClient.receiveMessages();\n * if (response.receivedMessageItems.length === 1) {\n * const receivedMessageItem = response.receivedMessageItems[0];\n * console.log(`Processing & deleting message with content: ${receivedMessageItem.messageText}`);\n * const deleteMessageResponse = await queueClient.deleteMessage(\n * receivedMessageItem.messageId,\n * receivedMessageItem.popReceipt,\n * );\n * console.log(\n * `Delete message successfully, service assigned request Id: ${deleteMessageResponse.requestId}`,\n * );\n * }\n * ```\n */\n public async receiveMessages(\n options: QueueReceiveMessageOptions = {},\n ): Promise<QueueReceiveMessageResponse> {\n return tracingClient.withSpan(\n \"QueueClient-receiveMessages\",\n options,\n async (updatedOptions) => {\n const response = assertResponse<\n MessagesDequeueHeaders & DequeuedMessageItem[],\n MessagesDequeueHeaders,\n DequeuedMessageItem[]\n >(await this.messagesContext.dequeue(updatedOptions));\n\n const res: QueueReceiveMessageResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n receivedMessageItems: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const item of response) {\n res.receivedMessageItems.push(item);\n }\n\n return res;\n },\n );\n }\n\n /**\n * peekMessages retrieves one or more messages from the front of the queue but does not alter the visibility of the message.\n * @see https://learn.microsoft.com/rest/api/storageservices/peek-messages\n *\n * @param options - Options to peek messages operation.\n * @returns Response data for the peek messages operation.\n *\n * Example usage:\n *\n * ```ts snippet:ReadmeSamplePeekMessage\n * import { QueueServiceClient } from \"@azure/storage-queue\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * const account = \"<account>\";\n * const queueServiceClient = new QueueServiceClient(\n * `https://${account}.queue.core.windows.net`,\n * new DefaultAzureCredential(),\n * );\n *\n * const queueName = \"<valid queue name>\";\n * const queueClient = queueServiceClient.getQueueClient(queueName);\n * const peekMessagesResponse = await queueClient.peekMessages();\n * console.log(`The peeked message is: ${peekMessagesResponse.peekedMessageItems[0].messageText}`);\n * ```\n */\n public async peekMessages(\n options: QueuePeekMessagesOptions = {},\n ): Promise<QueuePeekMessagesResponse> {\n return tracingClient.withSpan(\"QueueClient-peekMessages\", options, async (updatedOptions) => {\n const response = assertResponse<\n MessagesPeekHeaders & PeekedMessageItem[],\n MessagesPeekHeaders,\n PeekedMessageItem[]\n >(await this.messagesContext.peek(updatedOptions));\n\n const res: QueuePeekMessagesResponse = {\n _response: response._response,\n date: response.date,\n requestId: response.requestId,\n clientRequestId: response.clientRequestId,\n peekedMessageItems: [],\n version: response.version,\n errorCode: response.errorCode,\n };\n\n for (const item of response) {\n res.peekedMessageItems.push(item);\n }\n\n return res;\n });\n }\n\n /**\n * deleteMessage permanently removes the specified message from its queue.\n * @see https://learn.microsoft.com/rest/api/storageservices/delete-message2\n *\n * @param messageId - Id of the message.\n * @param popReceipt - A valid pop receipt value returned from an earlier call to the receive messages or update message operation.\n * @param options - Options to delete message operation.\n * @returns Response data for the delete message operation.\n */\n public async deleteMessage(\n messageId: string,\n popReceipt: string,\n options: QueueDeleteMessageOptions = {},\n ): Promise<QueueDeleteMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-deleteMessage\", options, async (updatedOptions) => {\n return assertResponse<MessageIdDeleteHeaders, MessageIdDeleteHeaders>(\n await this.getMessageIdContext(messageId).delete(popReceipt, updatedOptions),\n );\n });\n }\n\n /**\n * Update changes a message's visibility timeout and contents.\n * The message content is up to 64KB in size, and must be in a format that can be included in an XML request with UTF-8 encoding.\n * To include markup in the message, the contents of the message must either be XML-escaped or Base64-encode.\n * @see https://learn.microsoft.com/rest/api/storageservices/update-message\n *\n * @param messageId - Id of the message\n * @param popReceipt - A valid pop receipt value returned from an earlier call to the receive messages or update message operation.\n * @param message - Message to update. If this parameter is undefined, then the content of the message won't be updated.\n * @param visibilityTimeout - Specifies the new visibility timeout value, in seconds,\n * relative to server time. The new value must be larger than or equal to 0,\n * and cannot be larger than 7 days. The visibility timeout of a message cannot\n * be set to a value later than the expiry time.\n * A message can be updated until it has been deleted or has expired.\n * @param options - Options to update message operation.\n * @returns Response data for the update message operation.\n */\n public async updateMessage(\n messageId: string,\n popReceipt: string,\n message?: string,\n visibilityTimeout?: number,\n options: QueueUpdateMessageOptions = {},\n ): Promise<QueueUpdateMessageResponse> {\n return tracingClient.withSpan(\"QueueClient-updateMessage\", options, async (updatedOptions) => {\n let queueMessage = undefined;\n if (message !== undefined) {\n queueMessage = { messageText: message };\n }\n return assertResponse<MessageIdUpdateHeaders, MessageIdUpdateHeaders>(\n await this.getMessageIdContext(messageId).update(popReceipt, visibilityTimeout || 0, {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n queueMessage,\n }),\n );\n });\n }\n\n private getQueueNameFromUrl(): string {\n let queueName;\n try {\n // URL may look like the following\n // \"https://myaccount.queue.core.windows.net/myqueue?sasString\".\n // \"https://myaccount.queue.core.windows.net/myqueue\".\n // IPv4/IPv6 address hosts, Endpoints - `http://127.0.0.1:10001/devstoreaccount1/myqueue`\n // http://localhost:10001/devstoreaccount1/queuename\n\n const parsedUrl = new URL(this.url);\n\n if (parsedUrl.hostname.split(\".\")[1] === \"queue\") {\n // \"https://myaccount.queue.core.windows.net/queuename\".\n // .getPath() -> /queuename\n queueName = parsedUrl.pathname.split(\"/\")[1];\n } else if (isIpEndpointStyle(parsedUrl)) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/queuename\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/queuename\n // .getPath() -> /devstoreaccount1/queuename\n queueName = parsedUrl.pathname.split(\"/\")[2];\n } else {\n // \"https://customdomain.com/queuename\".\n // .getPath() -> /queuename\n queueName = parsedUrl.pathname.split(\"/\")[1];\n }\n\n if (!queueName) {\n throw new Error(\"Provided queueName is invalid.\");\n }\n\n return queueName;\n } catch (error: any) {\n throw new Error(\"Unable to extract queueName with provided information.\");\n }\n }\n\n /**\n * Only available for QueueClient constructed with a shared key credential.\n *\n * Generates a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n public generateSasUrl(options: QueueGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n const sas = generateQueueSASQueryParameters(\n {\n queueName: this.name,\n ...options,\n },\n this.credential,\n ).toString();\n\n return appendToURLQuery(this.url, sas);\n }\n\n /**\n * Only available for QueueClient constructed with a shared key credential.\n *\n * Generates string to sign for a Service Shared Access Signature (SAS) URI based on the client properties\n * and parameters passed in. The SAS is signed by the shared key credential of the client.\n *\n * @see https://learn.microsoft.com/rest/api/storageservices/constructing-a-service-sas\n *\n * @param options - Optional parameters.\n * @returns The SAS URI consisting of the URI to the resource represented by this client, followed by the generated SAS token.\n */\n /* eslint-disable-next-line @azure/azure-sdk/ts-naming-options*/\n public generateSasStringToSign(options: QueueGenerateSasUrlOptions): string {\n if (!(this.credential instanceof StorageSharedKeyCredential)) {\n throw RangeError(\n \"Can only generate the SAS when the client is initialized with a shared key credential\",\n );\n }\n\n return generateQueueSASQueryParametersInternal(\n {\n queueName: this.name,\n ...options,\n },\n this.credential,\n ).stringToSign;\n }\n}\n"]}