@azure/data-tables 13.3.1 → 13.3.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 (204) hide show
  1. package/dist/browser/TableClient.js +105 -61
  2. package/dist/browser/TableClient.js.map +1 -1
  3. package/dist/browser/TableServiceClient.js +59 -48
  4. package/dist/browser/TableServiceClient.js.map +1 -1
  5. package/dist/browser/TableTransaction.js +34 -9
  6. package/dist/browser/TableTransaction.js.map +1 -1
  7. package/dist/browser/generated/generatedClient.js +11 -3
  8. package/dist/browser/generated/generatedClient.js.map +1 -1
  9. package/dist/browser/generated/generatedClientContext.js +10 -3
  10. package/dist/browser/generated/generatedClientContext.js.map +1 -1
  11. package/dist/browser/generated/models/mappers.js +5 -2
  12. package/dist/browser/generated/models/mappers.js.map +1 -1
  13. package/dist/browser/generated/operations/service.js +1 -0
  14. package/dist/browser/generated/operations/service.js.map +1 -1
  15. package/dist/browser/generated/operations/table.js +1 -0
  16. package/dist/browser/generated/operations/table.js.map +1 -1
  17. package/dist/browser/sas/accountSasPermissions.d.ts +1 -1
  18. package/dist/browser/sas/accountSasPermissions.js +2 -2
  19. package/dist/browser/sas/accountSasPermissions.js.map +1 -1
  20. package/dist/browser/sas/accountSasResourceTypes.d.ts +1 -1
  21. package/dist/browser/sas/accountSasResourceTypes.js +1 -1
  22. package/dist/browser/sas/accountSasResourceTypes.js.map +1 -1
  23. package/dist/browser/sas/accountSasSignatureValues.d.ts +1 -1
  24. package/dist/browser/sas/accountSasSignatureValues.js +1 -1
  25. package/dist/browser/sas/accountSasSignatureValues.js.map +1 -1
  26. package/dist/browser/sas/generateAccountSas.d.ts +1 -1
  27. package/dist/browser/sas/generateAccountSas.js +9 -4
  28. package/dist/browser/sas/generateAccountSas.js.map +1 -1
  29. package/dist/browser/sas/generateTableSas.d.ts +1 -1
  30. package/dist/browser/sas/generateTableSas.js +6 -3
  31. package/dist/browser/sas/generateTableSas.js.map +1 -1
  32. package/dist/browser/sas/sasQueryParameters.d.ts +1 -1
  33. package/dist/browser/sas/sasQueryParameters.js +112 -0
  34. package/dist/browser/sas/sasQueryParameters.js.map +1 -1
  35. package/dist/browser/sas/tableSasSignatureValues.d.ts +1 -1
  36. package/dist/browser/sas/tableSasSignatureValues.js +6 -7
  37. package/dist/browser/sas/tableSasSignatureValues.js.map +1 -1
  38. package/dist/browser/secondaryEndpointPolicy.js +10 -2
  39. package/dist/browser/secondaryEndpointPolicy.js.map +1 -1
  40. package/dist/browser/serialization.js +16 -10
  41. package/dist/browser/serialization.js.map +1 -1
  42. package/dist/browser/utils/continuationToken.js +5 -1
  43. package/dist/browser/utils/continuationToken.js.map +1 -1
  44. package/dist/browser/utils/errorHelpers.js +3 -4
  45. package/dist/browser/utils/errorHelpers.js.map +1 -1
  46. package/dist/browser/utils/isCosmosEndpoint.js +2 -3
  47. package/dist/browser/utils/isCosmosEndpoint.js.map +1 -1
  48. package/dist/browser/utils/tracing.js +1 -1
  49. package/dist/browser/utils/tracing.js.map +1 -1
  50. package/dist/commonjs/TableClient.js +105 -61
  51. package/dist/commonjs/TableClient.js.map +1 -1
  52. package/dist/commonjs/TableServiceClient.js +59 -48
  53. package/dist/commonjs/TableServiceClient.js.map +1 -1
  54. package/dist/commonjs/TableTransaction.js +34 -9
  55. package/dist/commonjs/TableTransaction.js.map +1 -1
  56. package/dist/commonjs/generated/generatedClient.js +11 -3
  57. package/dist/commonjs/generated/generatedClient.js.map +1 -1
  58. package/dist/commonjs/generated/generatedClientContext.js +10 -3
  59. package/dist/commonjs/generated/generatedClientContext.js.map +1 -1
  60. package/dist/commonjs/generated/models/mappers.js +5 -2
  61. package/dist/commonjs/generated/models/mappers.js.map +1 -1
  62. package/dist/commonjs/generated/operations/service.js +1 -0
  63. package/dist/commonjs/generated/operations/service.js.map +1 -1
  64. package/dist/commonjs/generated/operations/table.js +1 -0
  65. package/dist/commonjs/generated/operations/table.js.map +1 -1
  66. package/dist/commonjs/sas/accountSasPermissions.d.ts +1 -1
  67. package/dist/commonjs/sas/accountSasPermissions.js +2 -2
  68. package/dist/commonjs/sas/accountSasPermissions.js.map +1 -1
  69. package/dist/commonjs/sas/accountSasResourceTypes.d.ts +1 -1
  70. package/dist/commonjs/sas/accountSasResourceTypes.js +1 -1
  71. package/dist/commonjs/sas/accountSasResourceTypes.js.map +1 -1
  72. package/dist/commonjs/sas/accountSasSignatureValues.d.ts +1 -1
  73. package/dist/commonjs/sas/accountSasSignatureValues.js +1 -1
  74. package/dist/commonjs/sas/accountSasSignatureValues.js.map +1 -1
  75. package/dist/commonjs/sas/generateAccountSas.d.ts +1 -1
  76. package/dist/commonjs/sas/generateAccountSas.js +9 -4
  77. package/dist/commonjs/sas/generateAccountSas.js.map +1 -1
  78. package/dist/commonjs/sas/generateTableSas.d.ts +1 -1
  79. package/dist/commonjs/sas/generateTableSas.js +6 -3
  80. package/dist/commonjs/sas/generateTableSas.js.map +1 -1
  81. package/dist/commonjs/sas/sasQueryParameters.d.ts +1 -1
  82. package/dist/commonjs/sas/sasQueryParameters.js +112 -0
  83. package/dist/commonjs/sas/sasQueryParameters.js.map +1 -1
  84. package/dist/commonjs/sas/tableSasSignatureValues.d.ts +1 -1
  85. package/dist/commonjs/sas/tableSasSignatureValues.js +6 -7
  86. package/dist/commonjs/sas/tableSasSignatureValues.js.map +1 -1
  87. package/dist/commonjs/secondaryEndpointPolicy.js +10 -2
  88. package/dist/commonjs/secondaryEndpointPolicy.js.map +1 -1
  89. package/dist/commonjs/serialization.js +16 -10
  90. package/dist/commonjs/serialization.js.map +1 -1
  91. package/dist/commonjs/tsdoc-metadata.json +11 -11
  92. package/dist/commonjs/utils/continuationToken.js +5 -1
  93. package/dist/commonjs/utils/continuationToken.js.map +1 -1
  94. package/dist/commonjs/utils/errorHelpers.js +3 -4
  95. package/dist/commonjs/utils/errorHelpers.js.map +1 -1
  96. package/dist/commonjs/utils/isCosmosEndpoint.js +2 -3
  97. package/dist/commonjs/utils/isCosmosEndpoint.js.map +1 -1
  98. package/dist/commonjs/utils/tracing.js +1 -1
  99. package/dist/commonjs/utils/tracing.js.map +1 -1
  100. package/dist/commonjs/utils/transactionHeaders.js +5 -2
  101. package/dist/commonjs/utils/transactionHeaders.js.map +1 -1
  102. package/dist/esm/TableClient.js +105 -61
  103. package/dist/esm/TableClient.js.map +1 -1
  104. package/dist/esm/TableServiceClient.js +59 -48
  105. package/dist/esm/TableServiceClient.js.map +1 -1
  106. package/dist/esm/TableTransaction.js +34 -9
  107. package/dist/esm/TableTransaction.js.map +1 -1
  108. package/dist/esm/generated/generatedClient.js +11 -3
  109. package/dist/esm/generated/generatedClient.js.map +1 -1
  110. package/dist/esm/generated/generatedClientContext.js +10 -3
  111. package/dist/esm/generated/generatedClientContext.js.map +1 -1
  112. package/dist/esm/generated/models/mappers.js +5 -2
  113. package/dist/esm/generated/models/mappers.js.map +1 -1
  114. package/dist/esm/generated/operations/service.js +1 -0
  115. package/dist/esm/generated/operations/service.js.map +1 -1
  116. package/dist/esm/generated/operations/table.js +1 -0
  117. package/dist/esm/generated/operations/table.js.map +1 -1
  118. package/dist/esm/sas/accountSasPermissions.d.ts +1 -1
  119. package/dist/esm/sas/accountSasPermissions.js +2 -2
  120. package/dist/esm/sas/accountSasPermissions.js.map +1 -1
  121. package/dist/esm/sas/accountSasResourceTypes.d.ts +1 -1
  122. package/dist/esm/sas/accountSasResourceTypes.js +1 -1
  123. package/dist/esm/sas/accountSasResourceTypes.js.map +1 -1
  124. package/dist/esm/sas/accountSasSignatureValues.d.ts +1 -1
  125. package/dist/esm/sas/accountSasSignatureValues.js +1 -1
  126. package/dist/esm/sas/accountSasSignatureValues.js.map +1 -1
  127. package/dist/esm/sas/generateAccountSas.d.ts +1 -1
  128. package/dist/esm/sas/generateAccountSas.js +9 -4
  129. package/dist/esm/sas/generateAccountSas.js.map +1 -1
  130. package/dist/esm/sas/generateTableSas.d.ts +1 -1
  131. package/dist/esm/sas/generateTableSas.js +6 -3
  132. package/dist/esm/sas/generateTableSas.js.map +1 -1
  133. package/dist/esm/sas/sasQueryParameters.d.ts +1 -1
  134. package/dist/esm/sas/sasQueryParameters.js +112 -0
  135. package/dist/esm/sas/sasQueryParameters.js.map +1 -1
  136. package/dist/esm/sas/tableSasSignatureValues.d.ts +1 -1
  137. package/dist/esm/sas/tableSasSignatureValues.js +6 -7
  138. package/dist/esm/sas/tableSasSignatureValues.js.map +1 -1
  139. package/dist/esm/secondaryEndpointPolicy.js +10 -2
  140. package/dist/esm/secondaryEndpointPolicy.js.map +1 -1
  141. package/dist/esm/serialization.js +16 -10
  142. package/dist/esm/serialization.js.map +1 -1
  143. package/dist/esm/utils/continuationToken.js +5 -1
  144. package/dist/esm/utils/continuationToken.js.map +1 -1
  145. package/dist/esm/utils/errorHelpers.js +3 -4
  146. package/dist/esm/utils/errorHelpers.js.map +1 -1
  147. package/dist/esm/utils/isCosmosEndpoint.js +2 -3
  148. package/dist/esm/utils/isCosmosEndpoint.js.map +1 -1
  149. package/dist/esm/utils/tracing.js +1 -1
  150. package/dist/esm/utils/tracing.js.map +1 -1
  151. package/dist/esm/utils/transactionHeaders.js +5 -2
  152. package/dist/esm/utils/transactionHeaders.js.map +1 -1
  153. package/dist/react-native/TableClient.js +105 -61
  154. package/dist/react-native/TableClient.js.map +1 -1
  155. package/dist/react-native/TableServiceClient.js +59 -48
  156. package/dist/react-native/TableServiceClient.js.map +1 -1
  157. package/dist/react-native/TableTransaction.js +34 -9
  158. package/dist/react-native/TableTransaction.js.map +1 -1
  159. package/dist/react-native/generated/generatedClient.js +11 -3
  160. package/dist/react-native/generated/generatedClient.js.map +1 -1
  161. package/dist/react-native/generated/generatedClientContext.js +10 -3
  162. package/dist/react-native/generated/generatedClientContext.js.map +1 -1
  163. package/dist/react-native/generated/models/mappers.js +5 -2
  164. package/dist/react-native/generated/models/mappers.js.map +1 -1
  165. package/dist/react-native/generated/operations/service.js +1 -0
  166. package/dist/react-native/generated/operations/service.js.map +1 -1
  167. package/dist/react-native/generated/operations/table.js +1 -0
  168. package/dist/react-native/generated/operations/table.js.map +1 -1
  169. package/dist/react-native/sas/accountSasPermissions.d.ts +1 -1
  170. package/dist/react-native/sas/accountSasPermissions.js +2 -2
  171. package/dist/react-native/sas/accountSasPermissions.js.map +1 -1
  172. package/dist/react-native/sas/accountSasResourceTypes.d.ts +1 -1
  173. package/dist/react-native/sas/accountSasResourceTypes.js +1 -1
  174. package/dist/react-native/sas/accountSasResourceTypes.js.map +1 -1
  175. package/dist/react-native/sas/accountSasSignatureValues.d.ts +1 -1
  176. package/dist/react-native/sas/accountSasSignatureValues.js +1 -1
  177. package/dist/react-native/sas/accountSasSignatureValues.js.map +1 -1
  178. package/dist/react-native/sas/generateAccountSas.d.ts +1 -1
  179. package/dist/react-native/sas/generateAccountSas.js +9 -4
  180. package/dist/react-native/sas/generateAccountSas.js.map +1 -1
  181. package/dist/react-native/sas/generateTableSas.d.ts +1 -1
  182. package/dist/react-native/sas/generateTableSas.js +6 -3
  183. package/dist/react-native/sas/generateTableSas.js.map +1 -1
  184. package/dist/react-native/sas/sasQueryParameters.d.ts +1 -1
  185. package/dist/react-native/sas/sasQueryParameters.js +112 -0
  186. package/dist/react-native/sas/sasQueryParameters.js.map +1 -1
  187. package/dist/react-native/sas/tableSasSignatureValues.d.ts +1 -1
  188. package/dist/react-native/sas/tableSasSignatureValues.js +6 -7
  189. package/dist/react-native/sas/tableSasSignatureValues.js.map +1 -1
  190. package/dist/react-native/secondaryEndpointPolicy.js +10 -2
  191. package/dist/react-native/secondaryEndpointPolicy.js.map +1 -1
  192. package/dist/react-native/serialization.js +16 -10
  193. package/dist/react-native/serialization.js.map +1 -1
  194. package/dist/react-native/utils/continuationToken.js +5 -1
  195. package/dist/react-native/utils/continuationToken.js.map +1 -1
  196. package/dist/react-native/utils/errorHelpers.js +3 -4
  197. package/dist/react-native/utils/errorHelpers.js.map +1 -1
  198. package/dist/react-native/utils/isCosmosEndpoint.js +2 -3
  199. package/dist/react-native/utils/isCosmosEndpoint.js.map +1 -1
  200. package/dist/react-native/utils/tracing.js +1 -1
  201. package/dist/react-native/utils/tracing.js.map +1 -1
  202. package/dist/react-native/utils/transactionHeaders.js +5 -2
  203. package/dist/react-native/utils/transactionHeaders.js.map +1 -1
  204. package/package.json +34 -31
@@ -12,8 +12,12 @@ import { tracingClient } from "./utils/tracing.js";
12
12
  * Helper to build a list of transaction actions
13
13
  */
14
14
  export class TableTransaction {
15
+ /**
16
+ * List of actions to perform in a transaction
17
+ */
18
+ actions;
15
19
  constructor(actions) {
16
- this.actions = actions !== null && actions !== void 0 ? actions : [];
20
+ this.actions = actions ?? [];
17
21
  }
18
22
  /**
19
23
  * Adds a create action to the transaction
@@ -40,7 +44,7 @@ export class TableTransaction {
40
44
  // UpdateMode is a string union
41
45
  const realUpdateMode = typeof updateModeOrOptions === "string" ? updateModeOrOptions : undefined;
42
46
  const realUpdateOptions = typeof updateModeOrOptions === "object" ? updateModeOrOptions : updateOptions;
43
- this.actions.push(["update", entity, realUpdateMode !== null && realUpdateMode !== void 0 ? realUpdateMode : "Merge", realUpdateOptions !== null && realUpdateOptions !== void 0 ? realUpdateOptions : {}]);
47
+ this.actions.push(["update", entity, realUpdateMode ?? "Merge", realUpdateOptions ?? {}]);
44
48
  }
45
49
  /**
46
50
  * Adds an upsert action to the transaction, which inserts if the entity doesn't exist or updates the existing one
@@ -55,6 +59,17 @@ export class TableTransaction {
55
59
  * TableTransaction collects sub-operations that can be submitted together via submitTransaction
56
60
  */
57
61
  export class InternalTableTransaction {
62
+ /**
63
+ * Table Account URL
64
+ */
65
+ url;
66
+ /**
67
+ * State that holds the information about a particular transation
68
+ */
69
+ state;
70
+ interceptClient;
71
+ allowInsecureConnection;
72
+ client;
58
73
  /**
59
74
  * @param url - Tables account url
60
75
  * @param partitionKey - partition key
@@ -154,7 +169,14 @@ export class InternalTableTransaction {
154
169
  const body = getTransactionHttpRequestBody(this.state.bodyParts, this.state.transactionId, this.state.changesetId);
155
170
  const headers = getTransactionHeaders(this.state.transactionId);
156
171
  return tracingClient.withSpan("TableTransaction.submitTransaction", options, async (updatedOptions) => {
157
- const request = createPipelineRequest(Object.assign(Object.assign({}, updatedOptions), { url: this.url, method: "POST", body, headers: createHttpHeaders(headers), allowInsecureConnection: this.allowInsecureConnection }));
172
+ const request = createPipelineRequest({
173
+ ...updatedOptions,
174
+ url: this.url,
175
+ method: "POST",
176
+ body,
177
+ headers: createHttpHeaders(headers),
178
+ allowInsecureConnection: this.allowInsecureConnection,
179
+ });
158
180
  const rawTransactionResponse = await this.client.sendRequest(request);
159
181
  return parseTransactionResponse(rawTransactionResponse);
160
182
  });
@@ -182,7 +204,7 @@ export function parseTransactionResponse(transactionResponse) {
182
204
  const subResponses = splitBody.slice(1, splitBody.length - 1);
183
205
  const responses = subResponses.map((subResponse) => {
184
206
  const statusMatch = subResponse.match(/HTTP\/1.1 ([0-9]*)/);
185
- if ((statusMatch === null || statusMatch === void 0 ? void 0 : statusMatch.length) !== 2) {
207
+ if (statusMatch?.length !== 2) {
186
208
  throw new Error(`Couldn't extract status from sub-response:\n ${subResponse}`);
187
209
  }
188
210
  const subResponseStatus = Number.parseInt(statusMatch[1]);
@@ -190,12 +212,16 @@ export function parseTransactionResponse(transactionResponse) {
190
212
  throw new Error(`Expected sub-response status to be an integer ${subResponseStatus}`);
191
213
  }
192
214
  const bodyMatch = subResponse.match(/\{(.*)\}/);
193
- if ((bodyMatch === null || bodyMatch === void 0 ? void 0 : bodyMatch.length) === 2) {
215
+ if (bodyMatch?.length === 2) {
194
216
  handleBodyError(bodyMatch[0], subResponseStatus, transactionResponse.request, transactionResponse);
195
217
  }
196
218
  const etagMatch = subResponse.match(/ETag: (.*)/);
197
219
  const rowKeyMatch = subResponse.match(/RowKey='(.*)'/);
198
- return Object.assign(Object.assign({ status: subResponseStatus }, ((rowKeyMatch === null || rowKeyMatch === void 0 ? void 0 : rowKeyMatch.length) === 2 && { rowKey: rowKeyMatch[1] })), ((etagMatch === null || etagMatch === void 0 ? void 0 : etagMatch.length) === 2 && { etag: etagMatch[1] }));
220
+ return {
221
+ status: subResponseStatus,
222
+ ...(rowKeyMatch?.length === 2 && { rowKey: rowKeyMatch[1] }),
223
+ ...(etagMatch?.length === 2 && { etag: etagMatch[1] }),
224
+ };
199
225
  });
200
226
  return {
201
227
  status,
@@ -204,12 +230,11 @@ export function parseTransactionResponse(transactionResponse) {
204
230
  };
205
231
  }
206
232
  function handleBodyError(bodyAsText, statusCode, request, response) {
207
- var _a, _b;
208
233
  let parsedError;
209
234
  try {
210
235
  parsedError = JSON.parse(bodyAsText);
211
236
  }
212
- catch (_c) {
237
+ catch {
213
238
  parsedError = {};
214
239
  }
215
240
  let message = "Transaction Failed";
@@ -217,7 +242,7 @@ function handleBodyError(bodyAsText, statusCode, request, response) {
217
242
  // Only transaction sub-responses return body
218
243
  if (parsedError && parsedError["odata.error"]) {
219
244
  const error = parsedError["odata.error"];
220
- message = (_b = (_a = error.message) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : message;
245
+ message = error.message?.value ?? message;
221
246
  code = error.code;
222
247
  }
223
248
  throw new RestError(message, {
@@ -1 +1 @@
1
- {"version":3,"file":"TableTransaction.js","sourceRoot":"","sources":["../../src/TableTransaction.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n DeleteTableEntityOptions,\n TableEntity,\n TableTransactionEntityResponse,\n TableTransactionResponse,\n TransactionAction,\n UpdateMode,\n UpdateTableEntityOptions,\n} from \"./models.js\";\nimport type { NamedKeyCredential, SASCredential, TokenCredential } from \"@azure/core-auth\";\nimport type { OperationOptions, ServiceClient } from \"@azure/core-client\";\nimport { serializationPolicy, serializationPolicyName } from \"@azure/core-client\";\nimport type { Pipeline, PipelineRequest, PipelineResponse } from \"@azure/core-rest-pipeline\";\nimport { RestError, createHttpHeaders, createPipelineRequest } from \"@azure/core-rest-pipeline\";\nimport {\n getInitialTransactionBody,\n getTransactionHttpRequestBody,\n} from \"./utils/transactionHelpers.js\";\nimport {\n transactionHeaderFilterPolicy,\n transactionHeaderFilterPolicyName,\n transactionRequestAssemblePolicy,\n transactionRequestAssemblePolicyName,\n} from \"./TablePolicies.js\";\n\nimport type { TableClientLike } from \"./utils/internalModels.js\";\nimport type { TableServiceErrorOdataError } from \"./generated/index.js\";\nimport { cosmosPatchPolicy } from \"./cosmosPathPolicy.js\";\nimport { getTransactionHeaders } from \"./utils/transactionHeaders.js\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\n\n/**\n * Helper to build a list of transaction actions\n */\nexport class TableTransaction {\n /**\n * List of actions to perform in a transaction\n */\n public actions: TransactionAction[];\n\n constructor(actions?: TransactionAction[]) {\n this.actions = actions ?? [];\n }\n\n /**\n * Adds a create action to the transaction\n * @param entity - entity to create\n */\n createEntity<T extends object = Record<string, unknown>>(entity: TableEntity<T>): void {\n this.actions.push([\"create\", entity]);\n }\n\n /**\n * Adds a delete action to the transaction\n * @param partitionKey - partition key of the entity to delete\n * @param rowKey - rowKey of the entity to delete\n */\n deleteEntity(partitionKey: string, rowKey: string): void {\n this.actions.push([\"delete\", { partitionKey, rowKey }]);\n }\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateMode - update mode\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateModeOrOptions - update mode or update options\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateModeOrOptions: UpdateMode | UpdateTableEntityOptions | undefined,\n updateOptions?: UpdateTableEntityOptions,\n ): void {\n // UpdateMode is a string union\n const realUpdateMode: UpdateMode | undefined =\n typeof updateModeOrOptions === \"string\" ? updateModeOrOptions : undefined;\n const realUpdateOptions: UpdateTableEntityOptions | undefined =\n typeof updateModeOrOptions === \"object\" ? updateModeOrOptions : updateOptions;\n this.actions.push([\"update\", entity, realUpdateMode ?? \"Merge\", realUpdateOptions ?? {}]);\n }\n\n /**\n * Adds an upsert action to the transaction, which inserts if the entity doesn't exist or updates the existing one\n * @param entity - entity to upsert\n * @param updateMode - update mode\n */\n upsertEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode = \"Merge\",\n ): void {\n this.actions.push([\"upsert\", entity, updateMode]);\n }\n}\n\n/**\n * TableTransaction collects sub-operations that can be submitted together via submitTransaction\n */\nexport class InternalTableTransaction {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * State that holds the information about a particular transation\n */\n private state: {\n transactionId: string;\n changesetId: string;\n pendingOperations: Promise<any>[];\n bodyParts: string[];\n partitionKey: string;\n };\n private interceptClient: TableClientLike;\n private allowInsecureConnection: boolean;\n private client: ServiceClient;\n\n /**\n * @param url - Tables account url\n * @param partitionKey - partition key\n * @param credential - credential to authenticate the transaction request\n */\n constructor(\n url: string,\n partitionKey: string,\n transactionId: string,\n changesetId: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n client: ServiceClient,\n interceptClient: TableClientLike,\n credential?: NamedKeyCredential | SASCredential | TokenCredential,\n allowInsecureConnection: boolean = false,\n ) {\n this.client = client;\n this.url = url;\n this.interceptClient = interceptClient;\n this.allowInsecureConnection = allowInsecureConnection;\n\n // Initialize the state\n this.state = this.initializeState(transactionId, changesetId, partitionKey);\n\n // Depending on the auth method used we need to build the url\n if (!credential) {\n // When the SAS token is provided as part of the URL we need to move it after $batch\n const urlParts = url.split(\"?\");\n this.url = urlParts[0];\n const sas = urlParts.length > 1 ? `?${urlParts[1]}` : \"\";\n this.url = `${this.getUrlWithSlash()}$batch${sas}`;\n } else {\n // When using a SharedKey credential no SAS token is needed\n this.url = `${this.getUrlWithSlash()}$batch`;\n }\n }\n\n private initializeState(\n transactionId: string,\n changesetId: string,\n partitionKey: string,\n ): {\n transactionId: string;\n changesetId: string;\n partitionKey: string;\n pendingOperations: Promise<any>[];\n bodyParts: string[];\n } {\n const pendingOperations: Promise<any>[] = [];\n const bodyParts = getInitialTransactionBody(transactionId, changesetId);\n const isCosmos = isCosmosEndpoint(this.url);\n prepateTransactionPipeline(this.interceptClient.pipeline, bodyParts, changesetId, isCosmos);\n\n return {\n transactionId,\n changesetId,\n partitionKey,\n pendingOperations,\n bodyParts,\n };\n }\n\n /**\n * Adds a createEntity operation to the transaction\n * @param entity - Entity to create\n */\n public createEntity<T extends object>(entity: TableEntity<T>): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n\n /**\n * Adds a createEntity operation to the transaction per each entity in the entities array\n * @param entities - Array of entities to create\n */\n public createEntities<T extends object>(entities: TableEntity<T>[]): void {\n for (const entity of entities) {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n }\n\n /**\n * Adds a deleteEntity operation to the transaction\n * @param partitionKey - Partition key of the entity to delete\n * @param rowKey - Row key of the entity to delete\n * @param options - Options for the delete operation\n */\n public deleteEntity(\n partitionKey: string,\n rowKey: string,\n options?: DeleteTableEntityOptions,\n ): void {\n this.checkPartitionKey(partitionKey);\n this.state.pendingOperations.push(\n this.interceptClient.deleteEntity(partitionKey, rowKey, options),\n );\n }\n\n /**\n * Adds an updateEntity operation to the transaction\n * @param entity - Entity to update\n * @param mode - Update mode (Merge or Replace)\n * @param options - Options for the update operation\n */\n public updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: UpdateTableEntityOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.updateEntity(entity, mode, options));\n }\n\n /**\n * Adds an upsertEntity operation to the transaction\n * @param entity - The properties for the table entity.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n */\n public upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: OperationOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.upsertEntity(entity, mode, options));\n }\n\n /**\n * Submits the operations in the transaction\n * @param options - Options for the request.\n */\n public async submitTransaction(\n options: OperationOptions = {},\n ): Promise<TableTransactionResponse> {\n await Promise.all(this.state.pendingOperations);\n const body = getTransactionHttpRequestBody(\n this.state.bodyParts,\n this.state.transactionId,\n this.state.changesetId,\n );\n\n const headers = getTransactionHeaders(this.state.transactionId);\n\n return tracingClient.withSpan(\n \"TableTransaction.submitTransaction\",\n options,\n async (updatedOptions) => {\n const request = createPipelineRequest({\n ...updatedOptions,\n url: this.url,\n method: \"POST\",\n body,\n headers: createHttpHeaders(headers),\n allowInsecureConnection: this.allowInsecureConnection,\n });\n\n const rawTransactionResponse = await this.client.sendRequest(request);\n return parseTransactionResponse(rawTransactionResponse);\n },\n );\n }\n\n private checkPartitionKey(partitionKey: string): void {\n if (this.state.partitionKey !== partitionKey) {\n throw new Error(\"All operations in a transaction must target the same partitionKey\");\n }\n }\n\n private getUrlWithSlash(): string {\n return this.url.endsWith(\"/\") ? this.url : `${this.url}/`;\n }\n}\n\nexport function parseTransactionResponse(\n transactionResponse: PipelineResponse,\n): TableTransactionResponse {\n const subResponsePrefix = `--changesetresponse_`;\n const status = transactionResponse.status;\n const rawBody = transactionResponse.bodyAsText || \"\";\n const splitBody = rawBody.split(subResponsePrefix);\n const isSuccessByStatus = 200 <= status && status < 300;\n\n if (!isSuccessByStatus) {\n handleBodyError(rawBody, status, transactionResponse.request, transactionResponse);\n }\n\n // Dropping the first and last elements as they are the boundaries\n // we just care about sub request content\n const subResponses = splitBody.slice(1, splitBody.length - 1);\n\n const responses: TableTransactionEntityResponse[] = subResponses.map((subResponse) => {\n const statusMatch = subResponse.match(/HTTP\\/1.1 ([0-9]*)/);\n if (statusMatch?.length !== 2) {\n throw new Error(`Couldn't extract status from sub-response:\\n ${subResponse}`);\n }\n const subResponseStatus = Number.parseInt(statusMatch[1]);\n if (!Number.isInteger(subResponseStatus)) {\n throw new Error(`Expected sub-response status to be an integer ${subResponseStatus}`);\n }\n\n const bodyMatch = subResponse.match(/\\{(.*)\\}/);\n if (bodyMatch?.length === 2) {\n handleBodyError(\n bodyMatch[0],\n subResponseStatus,\n transactionResponse.request,\n transactionResponse,\n );\n }\n\n const etagMatch = subResponse.match(/ETag: (.*)/);\n const rowKeyMatch = subResponse.match(/RowKey='(.*)'/);\n\n return {\n status: subResponseStatus,\n ...(rowKeyMatch?.length === 2 && { rowKey: rowKeyMatch[1] }),\n ...(etagMatch?.length === 2 && { etag: etagMatch[1] }),\n };\n });\n\n return {\n status,\n subResponses: responses,\n getResponseForEntity: (rowKey: string) => responses.find((r) => r.rowKey === rowKey),\n };\n}\n\nfunction handleBodyError(\n bodyAsText: string,\n statusCode: number,\n request: PipelineRequest,\n response: PipelineResponse,\n): void {\n let parsedError;\n\n try {\n parsedError = JSON.parse(bodyAsText);\n } catch {\n parsedError = {};\n }\n\n let message = \"Transaction Failed\";\n let code: string | undefined;\n // Only transaction sub-responses return body\n if (parsedError && parsedError[\"odata.error\"]) {\n const error: TableServiceErrorOdataError = parsedError[\"odata.error\"];\n message = error.message?.value ?? message;\n code = error.code;\n }\n\n throw new RestError(message, {\n code,\n statusCode,\n request,\n response,\n });\n}\n\n/**\n * Prepares the transaction pipeline to intercept operations\n * @param pipeline - Client pipeline\n */\nexport function prepateTransactionPipeline(\n pipeline: Pipeline,\n bodyParts: string[],\n changesetId: string,\n isCosmos: boolean,\n): void {\n // Fist, we need to clear all the existing policies to make sure we start\n // with a fresh state.\n const policies = pipeline.getOrderedPolicies();\n for (const policy of policies) {\n pipeline.removePolicy({\n name: policy.name,\n });\n }\n\n // With the clear state we now initialize the pipelines required for intercepting the requests.\n // Use transaction assemble policy to assemble request and intercept request from going to wire\n\n pipeline.addPolicy(serializationPolicy(), { phase: \"Serialize\" });\n pipeline.addPolicy(transactionHeaderFilterPolicy());\n pipeline.addPolicy(transactionRequestAssemblePolicy(bodyParts, changesetId));\n if (isCosmos) {\n pipeline.addPolicy(cosmosPatchPolicy(), {\n afterPolicies: [transactionHeaderFilterPolicyName],\n beforePolicies: [serializationPolicyName, transactionRequestAssemblePolicyName],\n });\n }\n}\n"]}
1
+ {"version":3,"file":"TableTransaction.js","sourceRoot":"","sources":["../../src/TableTransaction.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n DeleteTableEntityOptions,\n TableEntity,\n TableTransactionEntityResponse,\n TableTransactionResponse,\n TransactionAction,\n UpdateMode,\n UpdateTableEntityOptions,\n} from \"./models.js\";\nimport type { NamedKeyCredential, SASCredential, TokenCredential } from \"@azure/core-auth\";\nimport type { OperationOptions, ServiceClient } from \"@azure/core-client\";\nimport { serializationPolicy, serializationPolicyName } from \"@azure/core-client\";\nimport type { Pipeline, PipelineRequest, PipelineResponse } from \"@azure/core-rest-pipeline\";\nimport { RestError, createHttpHeaders, createPipelineRequest } from \"@azure/core-rest-pipeline\";\nimport {\n getInitialTransactionBody,\n getTransactionHttpRequestBody,\n} from \"./utils/transactionHelpers.js\";\nimport {\n transactionHeaderFilterPolicy,\n transactionHeaderFilterPolicyName,\n transactionRequestAssemblePolicy,\n transactionRequestAssemblePolicyName,\n} from \"./TablePolicies.js\";\n\nimport type { TableClientLike } from \"./utils/internalModels.js\";\nimport type { TableServiceErrorOdataError } from \"./generated/index.js\";\nimport { cosmosPatchPolicy } from \"./cosmosPathPolicy.js\";\nimport { getTransactionHeaders } from \"./utils/transactionHeaders.js\";\nimport { isCosmosEndpoint } from \"./utils/isCosmosEndpoint.js\";\nimport { tracingClient } from \"./utils/tracing.js\";\n\n/**\n * Helper to build a list of transaction actions\n */\nexport class TableTransaction {\n /**\n * List of actions to perform in a transaction\n */\n public actions: TransactionAction[];\n\n constructor(actions?: TransactionAction[]) {\n this.actions = actions ?? [];\n }\n\n /**\n * Adds a create action to the transaction\n * @param entity - entity to create\n */\n createEntity<T extends object = Record<string, unknown>>(entity: TableEntity<T>): void {\n this.actions.push([\"create\", entity]);\n }\n\n /**\n * Adds a delete action to the transaction\n * @param partitionKey - partition key of the entity to delete\n * @param rowKey - rowKey of the entity to delete\n */\n deleteEntity(partitionKey: string, rowKey: string): void {\n this.actions.push([\"delete\", { partitionKey, rowKey }]);\n }\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateMode - update mode\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode,\n updateOptions?: UpdateTableEntityOptions,\n ): void;\n\n /**\n * Adds an update action to the transaction\n * @param entity - entity to update\n * @param updateModeOrOptions - update mode or update options\n * @param updateOptions - options for the update operation\n */\n updateEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateModeOrOptions: UpdateMode | UpdateTableEntityOptions | undefined,\n updateOptions?: UpdateTableEntityOptions,\n ): void {\n // UpdateMode is a string union\n const realUpdateMode: UpdateMode | undefined =\n typeof updateModeOrOptions === \"string\" ? updateModeOrOptions : undefined;\n const realUpdateOptions: UpdateTableEntityOptions | undefined =\n typeof updateModeOrOptions === \"object\" ? updateModeOrOptions : updateOptions;\n this.actions.push([\"update\", entity, realUpdateMode ?? \"Merge\", realUpdateOptions ?? {}]);\n }\n\n /**\n * Adds an upsert action to the transaction, which inserts if the entity doesn't exist or updates the existing one\n * @param entity - entity to upsert\n * @param updateMode - update mode\n */\n upsertEntity<T extends object = Record<string, unknown>>(\n entity: TableEntity<T>,\n updateMode: UpdateMode = \"Merge\",\n ): void {\n this.actions.push([\"upsert\", entity, updateMode]);\n }\n}\n\n/**\n * TableTransaction collects sub-operations that can be submitted together via submitTransaction\n */\nexport class InternalTableTransaction {\n /**\n * Table Account URL\n */\n public url: string;\n /**\n * State that holds the information about a particular transation\n */\n private state: {\n transactionId: string;\n changesetId: string;\n pendingOperations: Promise<any>[];\n bodyParts: string[];\n partitionKey: string;\n };\n private interceptClient: TableClientLike;\n private allowInsecureConnection: boolean;\n private client: ServiceClient;\n\n /**\n * @param url - Tables account url\n * @param partitionKey - partition key\n * @param credential - credential to authenticate the transaction request\n */\n constructor(\n url: string,\n partitionKey: string,\n transactionId: string,\n changesetId: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-use-interface-parameters\n client: ServiceClient,\n interceptClient: TableClientLike,\n credential?: NamedKeyCredential | SASCredential | TokenCredential,\n allowInsecureConnection: boolean = false,\n ) {\n this.client = client;\n this.url = url;\n this.interceptClient = interceptClient;\n this.allowInsecureConnection = allowInsecureConnection;\n\n // Initialize the state\n this.state = this.initializeState(transactionId, changesetId, partitionKey);\n\n // Depending on the auth method used we need to build the url\n if (!credential) {\n // When the SAS token is provided as part of the URL we need to move it after $batch\n const urlParts = url.split(\"?\");\n this.url = urlParts[0];\n const sas = urlParts.length > 1 ? `?${urlParts[1]}` : \"\";\n this.url = `${this.getUrlWithSlash()}$batch${sas}`;\n } else {\n // When using a SharedKey credential no SAS token is needed\n this.url = `${this.getUrlWithSlash()}$batch`;\n }\n }\n\n private initializeState(\n transactionId: string,\n changesetId: string,\n partitionKey: string,\n ): {\n transactionId: string;\n changesetId: string;\n partitionKey: string;\n pendingOperations: Promise<any>[];\n bodyParts: string[];\n } {\n const pendingOperations: Promise<any>[] = [];\n const bodyParts = getInitialTransactionBody(transactionId, changesetId);\n const isCosmos = isCosmosEndpoint(this.url);\n prepateTransactionPipeline(this.interceptClient.pipeline, bodyParts, changesetId, isCosmos);\n\n return {\n transactionId,\n changesetId,\n partitionKey,\n pendingOperations,\n bodyParts,\n };\n }\n\n /**\n * Adds a createEntity operation to the transaction\n * @param entity - Entity to create\n */\n public createEntity<T extends object>(entity: TableEntity<T>): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n\n /**\n * Adds a createEntity operation to the transaction per each entity in the entities array\n * @param entities - Array of entities to create\n */\n public createEntities<T extends object>(entities: TableEntity<T>[]): void {\n for (const entity of entities) {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.createEntity(entity));\n }\n }\n\n /**\n * Adds a deleteEntity operation to the transaction\n * @param partitionKey - Partition key of the entity to delete\n * @param rowKey - Row key of the entity to delete\n * @param options - Options for the delete operation\n */\n public deleteEntity(\n partitionKey: string,\n rowKey: string,\n options?: DeleteTableEntityOptions,\n ): void {\n this.checkPartitionKey(partitionKey);\n this.state.pendingOperations.push(\n this.interceptClient.deleteEntity(partitionKey, rowKey, options),\n );\n }\n\n /**\n * Adds an updateEntity operation to the transaction\n * @param entity - Entity to update\n * @param mode - Update mode (Merge or Replace)\n * @param options - Options for the update operation\n */\n public updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: UpdateTableEntityOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.updateEntity(entity, mode, options));\n }\n\n /**\n * Adds an upsertEntity operation to the transaction\n * @param entity - The properties for the table entity.\n * @param mode - The different modes for updating the entity:\n * - Merge: Updates an entity by updating the entity's properties without replacing the existing entity.\n * - Replace: Updates an existing entity by replacing the entire entity.\n * @param options - The options parameters.\n */\n public upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: OperationOptions,\n ): void {\n this.checkPartitionKey(entity.partitionKey);\n this.state.pendingOperations.push(this.interceptClient.upsertEntity(entity, mode, options));\n }\n\n /**\n * Submits the operations in the transaction\n * @param options - Options for the request.\n */\n public async submitTransaction(\n options: OperationOptions = {},\n ): Promise<TableTransactionResponse> {\n await Promise.all(this.state.pendingOperations);\n const body = getTransactionHttpRequestBody(\n this.state.bodyParts,\n this.state.transactionId,\n this.state.changesetId,\n );\n\n const headers = getTransactionHeaders(this.state.transactionId);\n\n return tracingClient.withSpan(\n \"TableTransaction.submitTransaction\",\n options,\n async (updatedOptions) => {\n const request = createPipelineRequest({\n ...updatedOptions,\n url: this.url,\n method: \"POST\",\n body,\n headers: createHttpHeaders(headers),\n allowInsecureConnection: this.allowInsecureConnection,\n });\n\n const rawTransactionResponse = await this.client.sendRequest(request);\n return parseTransactionResponse(rawTransactionResponse);\n },\n );\n }\n\n private checkPartitionKey(partitionKey: string): void {\n if (this.state.partitionKey !== partitionKey) {\n throw new Error(\"All operations in a transaction must target the same partitionKey\");\n }\n }\n\n private getUrlWithSlash(): string {\n return this.url.endsWith(\"/\") ? this.url : `${this.url}/`;\n }\n}\n\nexport function parseTransactionResponse(\n transactionResponse: PipelineResponse,\n): TableTransactionResponse {\n const subResponsePrefix = `--changesetresponse_`;\n const status = transactionResponse.status;\n const rawBody = transactionResponse.bodyAsText || \"\";\n const splitBody = rawBody.split(subResponsePrefix);\n const isSuccessByStatus = 200 <= status && status < 300;\n\n if (!isSuccessByStatus) {\n handleBodyError(rawBody, status, transactionResponse.request, transactionResponse);\n }\n\n // Dropping the first and last elements as they are the boundaries\n // we just care about sub request content\n const subResponses = splitBody.slice(1, splitBody.length - 1);\n\n const responses: TableTransactionEntityResponse[] = subResponses.map((subResponse) => {\n const statusMatch = subResponse.match(/HTTP\\/1.1 ([0-9]*)/);\n if (statusMatch?.length !== 2) {\n throw new Error(`Couldn't extract status from sub-response:\\n ${subResponse}`);\n }\n const subResponseStatus = Number.parseInt(statusMatch[1]);\n if (!Number.isInteger(subResponseStatus)) {\n throw new Error(`Expected sub-response status to be an integer ${subResponseStatus}`);\n }\n\n const bodyMatch = subResponse.match(/\\{(.*)\\}/);\n if (bodyMatch?.length === 2) {\n handleBodyError(\n bodyMatch[0],\n subResponseStatus,\n transactionResponse.request,\n transactionResponse,\n );\n }\n\n const etagMatch = subResponse.match(/ETag: (.*)/);\n const rowKeyMatch = subResponse.match(/RowKey='(.*)'/);\n\n return {\n status: subResponseStatus,\n ...(rowKeyMatch?.length === 2 && { rowKey: rowKeyMatch[1] }),\n ...(etagMatch?.length === 2 && { etag: etagMatch[1] }),\n };\n });\n\n return {\n status,\n subResponses: responses,\n getResponseForEntity: (rowKey: string) => responses.find((r) => r.rowKey === rowKey),\n };\n}\n\nfunction handleBodyError(\n bodyAsText: string,\n statusCode: number,\n request: PipelineRequest,\n response: PipelineResponse,\n): void {\n let parsedError;\n\n try {\n parsedError = JSON.parse(bodyAsText);\n } catch {\n parsedError = {};\n }\n\n let message = \"Transaction Failed\";\n let code: string | undefined;\n // Only transaction sub-responses return body\n if (parsedError && parsedError[\"odata.error\"]) {\n const error: TableServiceErrorOdataError = parsedError[\"odata.error\"];\n message = error.message?.value ?? message;\n code = error.code;\n }\n\n throw new RestError(message, {\n code,\n statusCode,\n request,\n response,\n });\n}\n\n/**\n * Prepares the transaction pipeline to intercept operations\n * @param pipeline - Client pipeline\n */\nexport function prepateTransactionPipeline(\n pipeline: Pipeline,\n bodyParts: string[],\n changesetId: string,\n isCosmos: boolean,\n): void {\n // Fist, we need to clear all the existing policies to make sure we start\n // with a fresh state.\n const policies = pipeline.getOrderedPolicies();\n for (const policy of policies) {\n pipeline.removePolicy({\n name: policy.name,\n });\n }\n\n // With the clear state we now initialize the pipelines required for intercepting the requests.\n // Use transaction assemble policy to assemble request and intercept request from going to wire\n\n pipeline.addPolicy(serializationPolicy(), { phase: \"Serialize\" });\n pipeline.addPolicy(transactionHeaderFilterPolicy());\n pipeline.addPolicy(transactionRequestAssemblePolicy(bodyParts, changesetId));\n if (isCosmos) {\n pipeline.addPolicy(cosmosPatchPolicy(), {\n afterPolicies: [transactionHeaderFilterPolicyName],\n beforePolicies: [serializationPolicyName, transactionRequestAssemblePolicyName],\n });\n }\n}\n"]}
@@ -9,13 +9,14 @@ import * as coreClient from "@azure/core-client";
9
9
  import { TableImpl, ServiceImpl } from "./operations/index.js";
10
10
  /** @internal */
11
11
  export class GeneratedClient extends coreClient.ServiceClient {
12
+ url;
13
+ version;
12
14
  /**
13
15
  * Initializes a new instance of the GeneratedClient class.
14
16
  * @param url The URL of the service account or table that is the target of the desired operation.
15
17
  * @param options The parameter options
16
18
  */
17
19
  constructor(url, options) {
18
- var _a, _b;
19
20
  if (url === undefined) {
20
21
  throw new Error("'url' cannot be null");
21
22
  }
@@ -30,9 +31,14 @@ export class GeneratedClient extends coreClient.ServiceClient {
30
31
  const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
31
32
  ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
32
33
  : `${packageDetails}`;
33
- const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { userAgentOptions: {
34
+ const optionsWithDefaults = {
35
+ ...defaults,
36
+ ...options,
37
+ userAgentOptions: {
34
38
  userAgentPrefix
35
- }, baseUri: (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUri) !== null && _b !== void 0 ? _b : "{url}" });
39
+ },
40
+ baseUri: options.endpoint ?? options.baseUri ?? "{url}"
41
+ };
36
42
  super(optionsWithDefaults);
37
43
  // Parameter assignments
38
44
  this.url = url;
@@ -41,5 +47,7 @@ export class GeneratedClient extends coreClient.ServiceClient {
41
47
  this.table = new TableImpl(this);
42
48
  this.service = new ServiceImpl(this);
43
49
  }
50
+ table;
51
+ service;
44
52
  }
45
53
  //# sourceMappingURL=generatedClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generatedClient.js","sourceRoot":"","sources":["../../../src/generated/generatedClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI/D,gBAAgB;AAChB,MAAM,OAAO,eAAgB,SAAQ,UAAU,CAAC,aAAa;IAI3D;;;;OAIG;IACH,YAAY,GAAW,EAAE,OAAuC;;QAC9D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAkC;YAC9C,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,6BAA6B,CAAC;QACrD,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe;YAClE,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,IAAI,cAAc,EAAE;YACjE,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;QAE1B,MAAM,mBAAmB,iDACpB,QAAQ,GACR,OAAO,KACV,gBAAgB,EAAE;gBAChB,eAAe;aAChB,EACD,OAAO,EAAE,MAAA,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC,OAAO,mCAAI,OAAO,GACxD,CAAC;QACF,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CAIF","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { TableImpl, ServiceImpl } from \"./operations/index.js\";\nimport { Table, Service } from \"./operationsInterfaces/index.js\";\nimport { GeneratedClientOptionalParams } from \"./models/index.js\";\n\n/** @internal */\nexport class GeneratedClient extends coreClient.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param url The URL of the service account or table that is the target of the desired operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: GeneratedClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-data-tables/13.1.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint ?? options.baseUri ?? \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2019-02-02\";\n this.table = new TableImpl(this);\n this.service = new ServiceImpl(this);\n }\n\n table: Table;\n service: Service;\n}\n"]}
1
+ {"version":3,"file":"generatedClient.js","sourceRoot":"","sources":["../../../src/generated/generatedClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI/D,gBAAgB;AAChB,MAAM,OAAO,eAAgB,SAAQ,UAAU,CAAC,aAAa;IAC3D,GAAG,CAAS;IACZ,OAAO,CAAS;IAEhB;;;;OAIG;IACH,YAAY,GAAW,EAAE,OAAuC;QAC9D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAkC;YAC9C,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,6BAA6B,CAAC;QACrD,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe;YAClE,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,IAAI,cAAc,EAAE;YACjE,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;QAE1B,MAAM,mBAAmB,GAAG;YAC1B,GAAG,QAAQ;YACX,GAAG,OAAO;YACV,gBAAgB,EAAE;gBAChB,eAAe;aAChB;YACD,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO;SACxD,CAAC;QACF,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAQ;IACb,OAAO,CAAU;CAClB","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { TableImpl, ServiceImpl } from \"./operations/index.js\";\nimport { Table, Service } from \"./operationsInterfaces/index.js\";\nimport { GeneratedClientOptionalParams } from \"./models/index.js\";\n\n/** @internal */\nexport class GeneratedClient extends coreClient.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the GeneratedClient class.\n * @param url The URL of the service account or table that is the target of the desired operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: GeneratedClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-data-tables/13.1.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint ?? options.baseUri ?? \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2019-02-02\";\n this.table = new TableImpl(this);\n this.service = new ServiceImpl(this);\n }\n\n table: Table;\n service: Service;\n}\n"]}
@@ -8,6 +8,8 @@
8
8
  import * as coreClient from "@azure/core-client";
9
9
  /** @internal */
10
10
  export class GeneratedClientContext extends coreClient.ServiceClient {
11
+ url;
12
+ version;
11
13
  /**
12
14
  * Initializes a new instance of the GeneratedClientContext class.
13
15
  * @param url The URL of the service account or table that is the target of the desired operation.
@@ -24,13 +26,18 @@ export class GeneratedClientContext extends coreClient.ServiceClient {
24
26
  const defaults = {
25
27
  requestContentType: "application/json; charset=utf-8"
26
28
  };
27
- const packageDetails = `azsdk-js-data-tables/13.3.1`;
29
+ const packageDetails = `azsdk-js-data-tables/13.3.2`;
28
30
  const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
29
31
  ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
30
32
  : `${packageDetails}`;
31
- const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { userAgentOptions: {
33
+ const optionsWithDefaults = {
34
+ ...defaults,
35
+ ...options,
36
+ userAgentOptions: {
32
37
  userAgentPrefix
33
- }, baseUri: options.endpoint || "{url}" });
38
+ },
39
+ baseUri: options.endpoint || "{url}"
40
+ };
34
41
  super(optionsWithDefaults);
35
42
  // Parameter assignments
36
43
  this.url = url;
@@ -1 +1 @@
1
- {"version":3,"file":"generatedClientContext.js","sourceRoot":"","sources":["../../../src/generated/generatedClientContext.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAIjD,gBAAgB;AAChB,MAAM,OAAO,sBAAuB,SAAQ,UAAU,CAAC,aAAa;IAIlE;;;;OAIG;IACH,YAAY,GAAW,EAAE,OAAuC;QAC9D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAkC;YAC9C,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,6BAA6B,CAAC;QACrD,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe;YAClE,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,IAAI,cAAc,EAAE;YACjE,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;QAE1B,MAAM,mBAAmB,iDACpB,QAAQ,GACR,OAAO,KACV,gBAAgB,EAAE;gBAChB,eAAe;aAChB,EACD,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,GACrC,CAAC;QACF,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;IACjD,CAAC;CACF","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nimport { GeneratedClientOptionalParams } from \"./models/index.js\";\n\n/** @internal */\nexport class GeneratedClientContext extends coreClient.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the GeneratedClientContext class.\n * @param url The URL of the service account or table that is the target of the desired operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: GeneratedClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-data-tables/13.3.1`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint || \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2020-12-06\";\n }\n}\n"]}
1
+ {"version":3,"file":"generatedClientContext.js","sourceRoot":"","sources":["../../../src/generated/generatedClientContext.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAIjD,gBAAgB;AAChB,MAAM,OAAO,sBAAuB,SAAQ,UAAU,CAAC,aAAa;IAClE,GAAG,CAAS;IACZ,OAAO,CAAS;IAEhB;;;;OAIG;IACH,YAAY,GAAW,EAAE,OAAuC;QAC9D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAkC;YAC9C,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,6BAA6B,CAAC;QACrD,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe;YAClE,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,IAAI,cAAc,EAAE;YACjE,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;QAE1B,MAAM,mBAAmB,GAAG;YAC1B,GAAG,QAAQ;YACX,GAAG,OAAO;YACV,gBAAgB,EAAE;gBAChB,eAAe;aAChB;YACD,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO;SACrC,CAAC;QACF,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;IACjD,CAAC;CACF","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nimport { GeneratedClientOptionalParams } from \"./models/index.js\";\n\n/** @internal */\nexport class GeneratedClientContext extends coreClient.ServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the GeneratedClientContext class.\n * @param url The URL of the service account or table that is the target of the desired operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: GeneratedClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: GeneratedClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-data-tables/13.3.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint || \"{url}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2020-12-06\";\n }\n}\n"]}
@@ -507,13 +507,16 @@ export const TableResponse = {
507
507
  type: {
508
508
  name: "Composite",
509
509
  className: "TableResponse",
510
- modelProperties: Object.assign(Object.assign({}, TableResponseProperties.type.modelProperties), { odataMetadata: {
510
+ modelProperties: {
511
+ ...TableResponseProperties.type.modelProperties,
512
+ odataMetadata: {
511
513
  serializedName: "odata\\.metadata",
512
514
  xmlName: "odata\\.metadata",
513
515
  type: {
514
516
  name: "String"
515
517
  }
516
- } })
518
+ }
519
+ }
517
520
  }
518
521
  };
519
522
  export const TableQueryHeaders = {