@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.
- package/dist/browser/TableClient.js +105 -61
- package/dist/browser/TableClient.js.map +1 -1
- package/dist/browser/TableServiceClient.js +59 -48
- package/dist/browser/TableServiceClient.js.map +1 -1
- package/dist/browser/TableTransaction.js +34 -9
- package/dist/browser/TableTransaction.js.map +1 -1
- package/dist/browser/generated/generatedClient.js +11 -3
- package/dist/browser/generated/generatedClient.js.map +1 -1
- package/dist/browser/generated/generatedClientContext.js +10 -3
- package/dist/browser/generated/generatedClientContext.js.map +1 -1
- package/dist/browser/generated/models/mappers.js +5 -2
- package/dist/browser/generated/models/mappers.js.map +1 -1
- package/dist/browser/generated/operations/service.js +1 -0
- package/dist/browser/generated/operations/service.js.map +1 -1
- package/dist/browser/generated/operations/table.js +1 -0
- package/dist/browser/generated/operations/table.js.map +1 -1
- package/dist/browser/sas/accountSasPermissions.d.ts +1 -1
- package/dist/browser/sas/accountSasPermissions.js +2 -2
- package/dist/browser/sas/accountSasPermissions.js.map +1 -1
- package/dist/browser/sas/accountSasResourceTypes.d.ts +1 -1
- package/dist/browser/sas/accountSasResourceTypes.js +1 -1
- package/dist/browser/sas/accountSasResourceTypes.js.map +1 -1
- package/dist/browser/sas/accountSasSignatureValues.d.ts +1 -1
- package/dist/browser/sas/accountSasSignatureValues.js +1 -1
- package/dist/browser/sas/accountSasSignatureValues.js.map +1 -1
- package/dist/browser/sas/generateAccountSas.d.ts +1 -1
- package/dist/browser/sas/generateAccountSas.js +9 -4
- package/dist/browser/sas/generateAccountSas.js.map +1 -1
- package/dist/browser/sas/generateTableSas.d.ts +1 -1
- package/dist/browser/sas/generateTableSas.js +6 -3
- package/dist/browser/sas/generateTableSas.js.map +1 -1
- package/dist/browser/sas/sasQueryParameters.d.ts +1 -1
- package/dist/browser/sas/sasQueryParameters.js +112 -0
- package/dist/browser/sas/sasQueryParameters.js.map +1 -1
- package/dist/browser/sas/tableSasSignatureValues.d.ts +1 -1
- package/dist/browser/sas/tableSasSignatureValues.js +6 -7
- package/dist/browser/sas/tableSasSignatureValues.js.map +1 -1
- package/dist/browser/secondaryEndpointPolicy.js +10 -2
- package/dist/browser/secondaryEndpointPolicy.js.map +1 -1
- package/dist/browser/serialization.js +16 -10
- package/dist/browser/serialization.js.map +1 -1
- package/dist/browser/utils/continuationToken.js +5 -1
- package/dist/browser/utils/continuationToken.js.map +1 -1
- package/dist/browser/utils/errorHelpers.js +3 -4
- package/dist/browser/utils/errorHelpers.js.map +1 -1
- package/dist/browser/utils/isCosmosEndpoint.js +2 -3
- package/dist/browser/utils/isCosmosEndpoint.js.map +1 -1
- package/dist/browser/utils/tracing.js +1 -1
- package/dist/browser/utils/tracing.js.map +1 -1
- package/dist/commonjs/TableClient.js +105 -61
- package/dist/commonjs/TableClient.js.map +1 -1
- package/dist/commonjs/TableServiceClient.js +59 -48
- package/dist/commonjs/TableServiceClient.js.map +1 -1
- package/dist/commonjs/TableTransaction.js +34 -9
- package/dist/commonjs/TableTransaction.js.map +1 -1
- package/dist/commonjs/generated/generatedClient.js +11 -3
- package/dist/commonjs/generated/generatedClient.js.map +1 -1
- package/dist/commonjs/generated/generatedClientContext.js +10 -3
- package/dist/commonjs/generated/generatedClientContext.js.map +1 -1
- package/dist/commonjs/generated/models/mappers.js +5 -2
- package/dist/commonjs/generated/models/mappers.js.map +1 -1
- package/dist/commonjs/generated/operations/service.js +1 -0
- package/dist/commonjs/generated/operations/service.js.map +1 -1
- package/dist/commonjs/generated/operations/table.js +1 -0
- package/dist/commonjs/generated/operations/table.js.map +1 -1
- package/dist/commonjs/sas/accountSasPermissions.d.ts +1 -1
- package/dist/commonjs/sas/accountSasPermissions.js +2 -2
- package/dist/commonjs/sas/accountSasPermissions.js.map +1 -1
- package/dist/commonjs/sas/accountSasResourceTypes.d.ts +1 -1
- package/dist/commonjs/sas/accountSasResourceTypes.js +1 -1
- package/dist/commonjs/sas/accountSasResourceTypes.js.map +1 -1
- package/dist/commonjs/sas/accountSasSignatureValues.d.ts +1 -1
- package/dist/commonjs/sas/accountSasSignatureValues.js +1 -1
- package/dist/commonjs/sas/accountSasSignatureValues.js.map +1 -1
- package/dist/commonjs/sas/generateAccountSas.d.ts +1 -1
- package/dist/commonjs/sas/generateAccountSas.js +9 -4
- package/dist/commonjs/sas/generateAccountSas.js.map +1 -1
- package/dist/commonjs/sas/generateTableSas.d.ts +1 -1
- package/dist/commonjs/sas/generateTableSas.js +6 -3
- package/dist/commonjs/sas/generateTableSas.js.map +1 -1
- package/dist/commonjs/sas/sasQueryParameters.d.ts +1 -1
- package/dist/commonjs/sas/sasQueryParameters.js +112 -0
- package/dist/commonjs/sas/sasQueryParameters.js.map +1 -1
- package/dist/commonjs/sas/tableSasSignatureValues.d.ts +1 -1
- package/dist/commonjs/sas/tableSasSignatureValues.js +6 -7
- package/dist/commonjs/sas/tableSasSignatureValues.js.map +1 -1
- package/dist/commonjs/secondaryEndpointPolicy.js +10 -2
- package/dist/commonjs/secondaryEndpointPolicy.js.map +1 -1
- package/dist/commonjs/serialization.js +16 -10
- package/dist/commonjs/serialization.js.map +1 -1
- package/dist/commonjs/tsdoc-metadata.json +11 -11
- package/dist/commonjs/utils/continuationToken.js +5 -1
- package/dist/commonjs/utils/continuationToken.js.map +1 -1
- package/dist/commonjs/utils/errorHelpers.js +3 -4
- package/dist/commonjs/utils/errorHelpers.js.map +1 -1
- package/dist/commonjs/utils/isCosmosEndpoint.js +2 -3
- package/dist/commonjs/utils/isCosmosEndpoint.js.map +1 -1
- package/dist/commonjs/utils/tracing.js +1 -1
- package/dist/commonjs/utils/tracing.js.map +1 -1
- package/dist/commonjs/utils/transactionHeaders.js +5 -2
- package/dist/commonjs/utils/transactionHeaders.js.map +1 -1
- package/dist/esm/TableClient.js +105 -61
- package/dist/esm/TableClient.js.map +1 -1
- package/dist/esm/TableServiceClient.js +59 -48
- package/dist/esm/TableServiceClient.js.map +1 -1
- package/dist/esm/TableTransaction.js +34 -9
- package/dist/esm/TableTransaction.js.map +1 -1
- package/dist/esm/generated/generatedClient.js +11 -3
- package/dist/esm/generated/generatedClient.js.map +1 -1
- package/dist/esm/generated/generatedClientContext.js +10 -3
- package/dist/esm/generated/generatedClientContext.js.map +1 -1
- package/dist/esm/generated/models/mappers.js +5 -2
- package/dist/esm/generated/models/mappers.js.map +1 -1
- package/dist/esm/generated/operations/service.js +1 -0
- package/dist/esm/generated/operations/service.js.map +1 -1
- package/dist/esm/generated/operations/table.js +1 -0
- package/dist/esm/generated/operations/table.js.map +1 -1
- package/dist/esm/sas/accountSasPermissions.d.ts +1 -1
- package/dist/esm/sas/accountSasPermissions.js +2 -2
- package/dist/esm/sas/accountSasPermissions.js.map +1 -1
- package/dist/esm/sas/accountSasResourceTypes.d.ts +1 -1
- package/dist/esm/sas/accountSasResourceTypes.js +1 -1
- package/dist/esm/sas/accountSasResourceTypes.js.map +1 -1
- package/dist/esm/sas/accountSasSignatureValues.d.ts +1 -1
- package/dist/esm/sas/accountSasSignatureValues.js +1 -1
- package/dist/esm/sas/accountSasSignatureValues.js.map +1 -1
- package/dist/esm/sas/generateAccountSas.d.ts +1 -1
- package/dist/esm/sas/generateAccountSas.js +9 -4
- package/dist/esm/sas/generateAccountSas.js.map +1 -1
- package/dist/esm/sas/generateTableSas.d.ts +1 -1
- package/dist/esm/sas/generateTableSas.js +6 -3
- package/dist/esm/sas/generateTableSas.js.map +1 -1
- package/dist/esm/sas/sasQueryParameters.d.ts +1 -1
- package/dist/esm/sas/sasQueryParameters.js +112 -0
- package/dist/esm/sas/sasQueryParameters.js.map +1 -1
- package/dist/esm/sas/tableSasSignatureValues.d.ts +1 -1
- package/dist/esm/sas/tableSasSignatureValues.js +6 -7
- package/dist/esm/sas/tableSasSignatureValues.js.map +1 -1
- package/dist/esm/secondaryEndpointPolicy.js +10 -2
- package/dist/esm/secondaryEndpointPolicy.js.map +1 -1
- package/dist/esm/serialization.js +16 -10
- package/dist/esm/serialization.js.map +1 -1
- package/dist/esm/utils/continuationToken.js +5 -1
- package/dist/esm/utils/continuationToken.js.map +1 -1
- package/dist/esm/utils/errorHelpers.js +3 -4
- package/dist/esm/utils/errorHelpers.js.map +1 -1
- package/dist/esm/utils/isCosmosEndpoint.js +2 -3
- package/dist/esm/utils/isCosmosEndpoint.js.map +1 -1
- package/dist/esm/utils/tracing.js +1 -1
- package/dist/esm/utils/tracing.js.map +1 -1
- package/dist/esm/utils/transactionHeaders.js +5 -2
- package/dist/esm/utils/transactionHeaders.js.map +1 -1
- package/dist/react-native/TableClient.js +105 -61
- package/dist/react-native/TableClient.js.map +1 -1
- package/dist/react-native/TableServiceClient.js +59 -48
- package/dist/react-native/TableServiceClient.js.map +1 -1
- package/dist/react-native/TableTransaction.js +34 -9
- package/dist/react-native/TableTransaction.js.map +1 -1
- package/dist/react-native/generated/generatedClient.js +11 -3
- package/dist/react-native/generated/generatedClient.js.map +1 -1
- package/dist/react-native/generated/generatedClientContext.js +10 -3
- package/dist/react-native/generated/generatedClientContext.js.map +1 -1
- package/dist/react-native/generated/models/mappers.js +5 -2
- package/dist/react-native/generated/models/mappers.js.map +1 -1
- package/dist/react-native/generated/operations/service.js +1 -0
- package/dist/react-native/generated/operations/service.js.map +1 -1
- package/dist/react-native/generated/operations/table.js +1 -0
- package/dist/react-native/generated/operations/table.js.map +1 -1
- package/dist/react-native/sas/accountSasPermissions.d.ts +1 -1
- package/dist/react-native/sas/accountSasPermissions.js +2 -2
- package/dist/react-native/sas/accountSasPermissions.js.map +1 -1
- package/dist/react-native/sas/accountSasResourceTypes.d.ts +1 -1
- package/dist/react-native/sas/accountSasResourceTypes.js +1 -1
- package/dist/react-native/sas/accountSasResourceTypes.js.map +1 -1
- package/dist/react-native/sas/accountSasSignatureValues.d.ts +1 -1
- package/dist/react-native/sas/accountSasSignatureValues.js +1 -1
- package/dist/react-native/sas/accountSasSignatureValues.js.map +1 -1
- package/dist/react-native/sas/generateAccountSas.d.ts +1 -1
- package/dist/react-native/sas/generateAccountSas.js +9 -4
- package/dist/react-native/sas/generateAccountSas.js.map +1 -1
- package/dist/react-native/sas/generateTableSas.d.ts +1 -1
- package/dist/react-native/sas/generateTableSas.js +6 -3
- package/dist/react-native/sas/generateTableSas.js.map +1 -1
- package/dist/react-native/sas/sasQueryParameters.d.ts +1 -1
- package/dist/react-native/sas/sasQueryParameters.js +112 -0
- package/dist/react-native/sas/sasQueryParameters.js.map +1 -1
- package/dist/react-native/sas/tableSasSignatureValues.d.ts +1 -1
- package/dist/react-native/sas/tableSasSignatureValues.js +6 -7
- package/dist/react-native/sas/tableSasSignatureValues.js.map +1 -1
- package/dist/react-native/secondaryEndpointPolicy.js +10 -2
- package/dist/react-native/secondaryEndpointPolicy.js.map +1 -1
- package/dist/react-native/serialization.js +16 -10
- package/dist/react-native/serialization.js.map +1 -1
- package/dist/react-native/utils/continuationToken.js +5 -1
- package/dist/react-native/utils/continuationToken.js.map +1 -1
- package/dist/react-native/utils/errorHelpers.js +3 -4
- package/dist/react-native/utils/errorHelpers.js.map +1 -1
- package/dist/react-native/utils/isCosmosEndpoint.js +2 -3
- package/dist/react-native/utils/isCosmosEndpoint.js.map +1 -1
- package/dist/react-native/utils/tracing.js +1 -1
- package/dist/react-native/utils/tracing.js.map +1 -1
- package/dist/react-native/utils/transactionHeaders.js +5 -2
- package/dist/react-native/utils/transactionHeaders.js.map +1 -1
- package/package.json +34 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/serialization.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { EdmTypes, SignedIdentifier, TableEntityQueryOptions } from \"./models.js\";\nimport type {\n QueryOptions as GeneratedQueryOptions,\n SignedIdentifier as GeneratedSignedIdentifier,\n} from \"./generated/models/index.js\";\nimport { base64Decode, base64Encode } from \"./utils/bufferSerializer.js\";\nimport { truncatedISO8061Date } from \"./utils/truncateISO8061Date.js\";\n\nconst propertyCaseMap: Map<string, string> = new Map<string, string>([\n [\"PartitionKey\", \"partitionKey\"],\n [\"RowKey\", \"rowKey\"],\n [\"odata.etag\", \"etag\"],\n [\"Timestamp\", \"timestamp\"],\n]);\n\nconst Edm = {\n Binary: \"Edm.Binary\",\n Boolean: \"Edm.Boolean\",\n DateTime: \"Edm.DateTime\",\n Double: \"Edm.Double\",\n Guid: \"Edm.Guid\",\n Int32: \"Edm.Int32\",\n Int64: \"Edm.Int64\",\n String: \"Edm.String\",\n} as const;\n\ntype supportedTypes = boolean | string | number | Date | Uint8Array | bigint;\n\ntype serializedType = {\n value: supportedTypes;\n type?: string;\n};\n\nfunction serializePrimitive(value: any): serializedType {\n const serializedValue: serializedType = { value };\n if (\n value === undefined ||\n value === null ||\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n serializedValue.value = value;\n } else if (typeof value === \"bigint\") {\n serializedValue.value = value.toString();\n serializedValue.type = Edm.Int64;\n } else if (value instanceof Date) {\n serializedValue.value = value;\n serializedValue.type = Edm.DateTime;\n } else if (value instanceof Uint8Array) {\n serializedValue.value = base64Encode(value);\n serializedValue.type = Edm.Binary;\n } else {\n throw new Error(`Unknown EDM type ${typeof value}`);\n }\n\n return serializedValue;\n}\n\nfunction serializeObject(obj: { value: any; type: EdmTypes }): serializedType {\n const serializedValue: serializedType = { value: obj.value };\n if (\n obj.type === \"Boolean\" ||\n obj.type === \"DateTime\" ||\n obj.type === \"Double\" ||\n obj.type === \"Guid\" ||\n obj.type === \"Int32\" ||\n obj.type === \"Int64\" ||\n obj.type === \"String\" ||\n obj.type === \"Binary\"\n ) {\n serializedValue.value = obj.value;\n serializedValue.type = Edm[obj.type];\n } else {\n throw new Error(`Unknown EDM type ${typeof obj.value}`);\n }\n\n return serializedValue;\n}\n\nfunction getSerializedValue(value: any): serializedType {\n if (typeof value === \"object\" && value?.value !== undefined && value?.type !== undefined) {\n return serializeObject(value);\n } else {\n return serializePrimitive(value);\n }\n}\n\nfunction translatePropertyNameForSerialization(propertyName: string): string {\n for (const [original, internal] of propertyCaseMap) {\n if (internal === propertyName) {\n return original;\n }\n }\n\n return propertyName;\n}\n\nexport function serialize(obj: object): Record<string, Record<string, unknown>> {\n const serialized: any = {};\n for (const [propertyName, propertyValue] of Object.entries(obj)) {\n const transformedKey = translatePropertyNameForSerialization(propertyName);\n const serializedVal = getSerializedValue(propertyValue);\n serialized[transformedKey] = serializedVal.value;\n if (serializedVal.type) {\n serialized[`${transformedKey}@odata.type`] = serializedVal.type;\n }\n }\n return serialized;\n}\n\nfunction getTypedObject(value: any, type: string, disableTypeConversion: boolean): any {\n switch (type) {\n case Edm.Boolean:\n return disableTypeConversion ? { value, type: \"Boolean\" } : value;\n case Edm.Double:\n return disableTypeConversion ? { value, type: \"Double\" } : value;\n case Edm.Int32:\n return disableTypeConversion ? { value, type: \"Int32\" } : value;\n case Edm.String:\n return disableTypeConversion ? { value, type: \"String\" } : value;\n case Edm.DateTime:\n return disableTypeConversion ? { value, type: \"DateTime\" } : new Date(value);\n case Edm.Int64:\n return disableTypeConversion ? { value, type: \"Int64\" } : BigInt(value);\n case Edm.Guid:\n return { value, type: \"Guid\" };\n case Edm.Binary:\n return disableTypeConversion ? { value, type: \"Binary\" } : base64Decode(value);\n default:\n throw new Error(`Unknown EDM type ${type}`);\n }\n}\n\nexport function deserialize<T extends object = Record<string, any>>(\n obj: object,\n disableTypeConversion: boolean = false,\n): T {\n const deserialized: any = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key.indexOf(\"@odata.type\") === -1) {\n const transformedKey = propertyCaseMap.get(key) ?? key;\n let typedValue = value;\n if (`${key}@odata.type` in obj) {\n const type = (obj as any)[`${key}@odata.type`];\n typedValue = getTypedObject(value, type, disableTypeConversion);\n } else if (disableTypeConversion && [\"number\", \"string\", \"boolean\"].includes(typeof value)) {\n // The service, doesn't return type metadata for number, strings or booleans\n // if automatic type conversion is disabled we'll infer the EDM object\n typedValue = inferTypedObject(key, value);\n }\n\n deserialized[transformedKey] = typedValue;\n }\n }\n return deserialized;\n}\n\nfunction inferTypedObject(\n propertyName: string,\n value: number | string | boolean,\n):\n | string\n | number\n | boolean\n | {\n value: string;\n type: string;\n } {\n // We need to skip service metadata fields such as partitionKey and rowKey and use the same value returned by the service\n if (propertyCaseMap.has(propertyName)) {\n return value;\n }\n\n switch (typeof value) {\n case \"boolean\":\n return { value: String(value), type: \"Boolean\" };\n case \"number\":\n return getTypedNumber(value);\n case \"string\":\n return { value, type: \"String\" };\n default:\n return value;\n }\n}\n\n/**\n * Returns the number when typeConversion is enabled or the EDM object with the correct number format Double or Int32 if disabled\n */\nfunction getTypedNumber(value: number): { value: string; type: \"Int32\" | \"Double\" } {\n const valueStr = String(value);\n if (Number.isSafeInteger(value)) {\n return { value: valueStr, type: \"Int32\" };\n } else {\n return { value: valueStr, type: \"Double\" };\n }\n}\n\nexport function deserializeObjectsArray<T extends object>(\n objArray: object[],\n disableTypeConversion: boolean,\n): T[] {\n return objArray.map((obj) => deserialize<T>(obj, disableTypeConversion));\n}\n\n/**\n * For ACL endpoints the Tables Service takes an ISO Date without decimals however\n * serializing a JavaScript date gives us a date with decimals 2021-07-08T09:10:09.000Z\n * which makes the XML request body invalid, these 2 functions serialize and deserialize the\n * dates so that they are in the expected format\n */\nexport function serializeSignedIdentifiers(\n signedIdentifiers: SignedIdentifier[],\n): GeneratedSignedIdentifier[] {\n return signedIdentifiers.map((acl) => {\n const { id, accessPolicy } = acl;\n const { start, expiry, ...rest } = accessPolicy ?? {};\n const serializedStart = start\n ? truncatedISO8061Date(start, false /** withMilliseconds */)\n : undefined;\n const serializedExpiry = expiry\n ? truncatedISO8061Date(expiry, false /** withMilliseconds */)\n : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(serializedExpiry && { expiry: serializedExpiry }),\n ...(serializedStart && { start: serializedStart }),\n ...rest,\n },\n };\n });\n}\n\nexport function deserializeSignedIdentifier(\n signedIdentifiers: GeneratedSignedIdentifier[],\n): SignedIdentifier[] {\n return signedIdentifiers.map((si) => {\n const { id, accessPolicy } = si;\n const { start, expiry, ...restAcl } = accessPolicy ?? {};\n const deserializedStart = start ? new Date(start) : undefined;\n const deserializedExpiry = expiry ? new Date(expiry) : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(deserializedExpiry && { expiry: deserializedExpiry }),\n ...(deserializedStart && { start: deserializedStart }),\n ...restAcl,\n },\n };\n });\n}\n\nexport function serializeQueryOptions(query: TableEntityQueryOptions): GeneratedQueryOptions {\n const { select, ...queryOptions } = query;\n const mappedQuery: GeneratedQueryOptions = { ...queryOptions };\n // Properties that are always returned by the service but are not allowed in select\n const excludeFromSelect = [\"etag\", \"odata.etag\"];\n if (select) {\n mappedQuery.select = select\n .filter((p) => !excludeFromSelect.includes(p))\n .map(translatePropertyNameForSerialization)\n .join(\",\");\n }\n return mappedQuery;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/serialization.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAOlC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAiB;IACnE,CAAC,cAAc,EAAE,cAAc,CAAC;IAChC,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,YAAY,EAAE,MAAM,CAAC;IACtB,CAAC,WAAW,EAAE,WAAW,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG;IACV,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;CACZ,CAAC;AASX,SAAS,kBAAkB,CAAC,KAAU;IACpC,MAAM,eAAe,GAAmB,EAAE,KAAK,EAAE,CAAC;IAClD,IACE,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ,EACzB,CAAC;QACD,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;IAChC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzC,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;IACnC,CAAC;SAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QACjC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;IACtC,CAAC;SAAM,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACvC,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,eAAe,CAAC,GAAmC;IAC1D,MAAM,eAAe,GAAmB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAC7D,IACE,GAAG,CAAC,IAAI,KAAK,SAAS;QACtB,GAAG,CAAC,IAAI,KAAK,UAAU;QACvB,GAAG,CAAC,IAAI,KAAK,QAAQ;QACrB,GAAG,CAAC,IAAI,KAAK,MAAM;QACnB,GAAG,CAAC,IAAI,KAAK,OAAO;QACpB,GAAG,CAAC,IAAI,KAAK,OAAO;QACpB,GAAG,CAAC,IAAI,KAAK,QAAQ;QACrB,GAAG,CAAC,IAAI,KAAK,QAAQ,EACrB,CAAC;QACD,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAClC,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAU;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,qCAAqC,CAAC,YAAoB;IACjE,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC;QACnD,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,MAAM,UAAU,GAAQ,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,MAAM,cAAc,GAAG,qCAAqC,CAAC,YAAY,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACxD,UAAU,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;QACjD,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,cAAc,aAAa,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,KAAU,EAAE,IAAY,EAAE,qBAA8B;IAC9E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,CAAC,OAAO;YACd,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,KAAK,GAAG,CAAC,MAAM;YACb,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,KAAK,GAAG,CAAC,KAAK;YACZ,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAClE,KAAK,GAAG,CAAC,MAAM;YACb,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACnE,KAAK,GAAG,CAAC,QAAQ;YACf,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/E,KAAK,GAAG,CAAC,KAAK;YACZ,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,KAAK,GAAG,CAAC,IAAI;YACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjC,KAAK,GAAG,CAAC,MAAM;YACb,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjF;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,wBAAiC,KAAK;IAEtC,MAAM,YAAY,GAAQ,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;YACvD,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,GAAG,GAAG,aAAa,IAAI,GAAG,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAI,GAAW,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;gBAC/C,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAClE,CAAC;iBAAM,IAAI,qBAAqB,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBAC3F,4EAA4E;gBAC5E,sEAAsE;gBACtE,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;YAED,YAAY,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CACvB,YAAoB,EACpB,KAAgC;IAShC,yHAAyH;IACzH,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACnD,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,QAAQ;YACX,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnC;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,qBAA8B;IAE9B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAI,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,iBAAqC;IAErC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;QACjC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,YAAY,IAAI,EAAE,CAAC;QACtD,MAAM,eAAe,GAAG,KAAK;YAC3B,CAAC,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC;YAC5D,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,gBAAgB,GAAG,MAAM;YAC7B,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,uBAAuB,CAAC;YAC7D,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,EAAE;YACF,YAAY,EAAE;gBACZ,GAAG,CAAC,gBAAgB,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBACrD,GAAG,CAAC,eAAe,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;gBAClD,GAAG,IAAI;aACR;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,iBAA8C;IAE9C,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAClC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;QAChC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,YAAY,IAAI,EAAE,CAAC;QACzD,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjE,OAAO;YACL,EAAE;YACF,YAAY,EAAE;gBACZ,GAAG,CAAC,kBAAkB,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;gBACzD,GAAG,CAAC,iBAAiB,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;gBACtD,GAAG,OAAO;aACX;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAA8B;IAClE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,WAAW,GAA0B,EAAE,GAAG,YAAY,EAAE,CAAC;IAC/D,mFAAmF;IACnF,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,CAAC,MAAM,GAAG,MAAM;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC7C,GAAG,CAAC,qCAAqC,CAAC;aAC1C,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { EdmTypes, SignedIdentifier, TableEntityQueryOptions } from \"./models.js\";\nimport type {\n QueryOptions as GeneratedQueryOptions,\n SignedIdentifier as GeneratedSignedIdentifier,\n} from \"./generated/models/index.js\";\nimport { base64Decode, base64Encode } from \"./utils/bufferSerializer.js\";\nimport { truncatedISO8061Date } from \"./utils/truncateISO8061Date.js\";\n\nconst propertyCaseMap: Map<string, string> = new Map<string, string>([\n [\"PartitionKey\", \"partitionKey\"],\n [\"RowKey\", \"rowKey\"],\n [\"odata.etag\", \"etag\"],\n [\"Timestamp\", \"timestamp\"],\n]);\n\nconst Edm = {\n Binary: \"Edm.Binary\",\n Boolean: \"Edm.Boolean\",\n DateTime: \"Edm.DateTime\",\n Double: \"Edm.Double\",\n Guid: \"Edm.Guid\",\n Int32: \"Edm.Int32\",\n Int64: \"Edm.Int64\",\n String: \"Edm.String\",\n} as const;\n\ntype supportedTypes = boolean | string | number | Date | Uint8Array | bigint;\n\ntype serializedType = {\n value: supportedTypes;\n type?: string;\n};\n\nfunction serializePrimitive(value: any): serializedType {\n const serializedValue: serializedType = { value };\n if (\n value === undefined ||\n value === null ||\n typeof value === \"boolean\" ||\n typeof value === \"string\" ||\n typeof value === \"number\"\n ) {\n serializedValue.value = value;\n } else if (typeof value === \"bigint\") {\n serializedValue.value = value.toString();\n serializedValue.type = Edm.Int64;\n } else if (value instanceof Date) {\n serializedValue.value = value;\n serializedValue.type = Edm.DateTime;\n } else if (value instanceof Uint8Array) {\n serializedValue.value = base64Encode(value);\n serializedValue.type = Edm.Binary;\n } else {\n throw new Error(`Unknown EDM type ${typeof value}`);\n }\n\n return serializedValue;\n}\n\nfunction serializeObject(obj: { value: any; type: EdmTypes }): serializedType {\n const serializedValue: serializedType = { value: obj.value };\n if (\n obj.type === \"Boolean\" ||\n obj.type === \"DateTime\" ||\n obj.type === \"Double\" ||\n obj.type === \"Guid\" ||\n obj.type === \"Int32\" ||\n obj.type === \"Int64\" ||\n obj.type === \"String\" ||\n obj.type === \"Binary\"\n ) {\n serializedValue.value = obj.value;\n serializedValue.type = Edm[obj.type];\n } else {\n throw new Error(`Unknown EDM type ${typeof obj.value}`);\n }\n\n return serializedValue;\n}\n\nfunction getSerializedValue(value: any): serializedType {\n if (typeof value === \"object\" && value?.value !== undefined && value?.type !== undefined) {\n return serializeObject(value);\n } else {\n return serializePrimitive(value);\n }\n}\n\nfunction translatePropertyNameForSerialization(propertyName: string): string {\n for (const [original, internal] of propertyCaseMap) {\n if (internal === propertyName) {\n return original;\n }\n }\n\n return propertyName;\n}\n\nexport function serialize(obj: object): Record<string, Record<string, unknown>> {\n const serialized: any = {};\n for (const [propertyName, propertyValue] of Object.entries(obj)) {\n const transformedKey = translatePropertyNameForSerialization(propertyName);\n const serializedVal = getSerializedValue(propertyValue);\n serialized[transformedKey] = serializedVal.value;\n if (serializedVal.type) {\n serialized[`${transformedKey}@odata.type`] = serializedVal.type;\n }\n }\n return serialized;\n}\n\nfunction getTypedObject(value: any, type: string, disableTypeConversion: boolean): any {\n switch (type) {\n case Edm.Boolean:\n return disableTypeConversion ? { value, type: \"Boolean\" } : value;\n case Edm.Double:\n return disableTypeConversion ? { value, type: \"Double\" } : value;\n case Edm.Int32:\n return disableTypeConversion ? { value, type: \"Int32\" } : value;\n case Edm.String:\n return disableTypeConversion ? { value, type: \"String\" } : value;\n case Edm.DateTime:\n return disableTypeConversion ? { value, type: \"DateTime\" } : new Date(value);\n case Edm.Int64:\n return disableTypeConversion ? { value, type: \"Int64\" } : BigInt(value);\n case Edm.Guid:\n return { value, type: \"Guid\" };\n case Edm.Binary:\n return disableTypeConversion ? { value, type: \"Binary\" } : base64Decode(value);\n default:\n throw new Error(`Unknown EDM type ${type}`);\n }\n}\n\nexport function deserialize<T extends object = Record<string, any>>(\n obj: object,\n disableTypeConversion: boolean = false,\n): T {\n const deserialized: any = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key.indexOf(\"@odata.type\") === -1) {\n const transformedKey = propertyCaseMap.get(key) ?? key;\n let typedValue = value;\n if (`${key}@odata.type` in obj) {\n const type = (obj as any)[`${key}@odata.type`];\n typedValue = getTypedObject(value, type, disableTypeConversion);\n } else if (disableTypeConversion && [\"number\", \"string\", \"boolean\"].includes(typeof value)) {\n // The service, doesn't return type metadata for number, strings or booleans\n // if automatic type conversion is disabled we'll infer the EDM object\n typedValue = inferTypedObject(key, value);\n }\n\n deserialized[transformedKey] = typedValue;\n }\n }\n return deserialized;\n}\n\nfunction inferTypedObject(\n propertyName: string,\n value: number | string | boolean,\n):\n | string\n | number\n | boolean\n | {\n value: string;\n type: string;\n } {\n // We need to skip service metadata fields such as partitionKey and rowKey and use the same value returned by the service\n if (propertyCaseMap.has(propertyName)) {\n return value;\n }\n\n switch (typeof value) {\n case \"boolean\":\n return { value: String(value), type: \"Boolean\" };\n case \"number\":\n return getTypedNumber(value);\n case \"string\":\n return { value, type: \"String\" };\n default:\n return value;\n }\n}\n\n/**\n * Returns the number when typeConversion is enabled or the EDM object with the correct number format Double or Int32 if disabled\n */\nfunction getTypedNumber(value: number): { value: string; type: \"Int32\" | \"Double\" } {\n const valueStr = String(value);\n if (Number.isSafeInteger(value)) {\n return { value: valueStr, type: \"Int32\" };\n } else {\n return { value: valueStr, type: \"Double\" };\n }\n}\n\nexport function deserializeObjectsArray<T extends object>(\n objArray: object[],\n disableTypeConversion: boolean,\n): T[] {\n return objArray.map((obj) => deserialize<T>(obj, disableTypeConversion));\n}\n\n/**\n * For ACL endpoints the Tables Service takes an ISO Date without decimals however\n * serializing a JavaScript date gives us a date with decimals 2021-07-08T09:10:09.000Z\n * which makes the XML request body invalid, these 2 functions serialize and deserialize the\n * dates so that they are in the expected format\n */\nexport function serializeSignedIdentifiers(\n signedIdentifiers: SignedIdentifier[],\n): GeneratedSignedIdentifier[] {\n return signedIdentifiers.map((acl) => {\n const { id, accessPolicy } = acl;\n const { start, expiry, ...rest } = accessPolicy ?? {};\n const serializedStart = start\n ? truncatedISO8061Date(start, false /** withMilliseconds */)\n : undefined;\n const serializedExpiry = expiry\n ? truncatedISO8061Date(expiry, false /** withMilliseconds */)\n : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(serializedExpiry && { expiry: serializedExpiry }),\n ...(serializedStart && { start: serializedStart }),\n ...rest,\n },\n };\n });\n}\n\nexport function deserializeSignedIdentifier(\n signedIdentifiers: GeneratedSignedIdentifier[],\n): SignedIdentifier[] {\n return signedIdentifiers.map((si) => {\n const { id, accessPolicy } = si;\n const { start, expiry, ...restAcl } = accessPolicy ?? {};\n const deserializedStart = start ? new Date(start) : undefined;\n const deserializedExpiry = expiry ? new Date(expiry) : undefined;\n\n return {\n id,\n accessPolicy: {\n ...(deserializedExpiry && { expiry: deserializedExpiry }),\n ...(deserializedStart && { start: deserializedStart }),\n ...restAcl,\n },\n };\n });\n}\n\nexport function serializeQueryOptions(query: TableEntityQueryOptions): GeneratedQueryOptions {\n const { select, ...queryOptions } = query;\n const mappedQuery: GeneratedQueryOptions = { ...queryOptions };\n // Properties that are always returned by the service but are not allowed in select\n const excludeFromSelect = [\"etag\", \"odata.etag\"];\n if (select) {\n mappedQuery.select = select\n .filter((p) => !excludeFromSelect.includes(p))\n .map(translatePropertyNameForSerialization)\n .join(\",\");\n }\n return mappedQuery;\n}\n"]}
|
|
@@ -8,7 +8,11 @@ export function encodeContinuationToken(nextPartitionKey, nextRowKey) {
|
|
|
8
8
|
if (!nextPartitionKey) {
|
|
9
9
|
return undefined;
|
|
10
10
|
}
|
|
11
|
-
const continuationToken =
|
|
11
|
+
const continuationToken = {
|
|
12
|
+
nextPartitionKey,
|
|
13
|
+
// Only add nextRowKey if the value is not null, undefined or empty string.
|
|
14
|
+
...(nextRowKey && { nextRowKey }),
|
|
15
|
+
};
|
|
12
16
|
return base64Encode(JSON.stringify(continuationToken));
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuationToken.js","sourceRoot":"","sources":["../../../src/utils/continuationToken.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAOnE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,gBAAyB,EACzB,UAAmB;IAEnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"continuationToken.js","sourceRoot":"","sources":["../../../src/utils/continuationToken.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAOnE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,gBAAyB,EACzB,UAAmB;IAEnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,iBAAiB,GAAG;QACxB,gBAAgB;QAChB,2EAA2E;QAC3E,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;KAClC,CAAC;IAEF,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAoB;IAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,iBAAiB,GAAsB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { base64Decode, base64Encode } from \"./bufferSerializer.js\";\n\ninterface ContinuationToken {\n nextPartitionKey: string;\n nextRowKey?: string;\n}\n\n/**\n * Encodes the nextPartitionKey and nextRowKey into a single continuation token\n */\nexport function encodeContinuationToken(\n nextPartitionKey?: string,\n nextRowKey?: string,\n): string | undefined {\n if (!nextPartitionKey) {\n return undefined;\n }\n\n const continuationToken = {\n nextPartitionKey,\n // Only add nextRowKey if the value is not null, undefined or empty string.\n ...(nextRowKey && { nextRowKey }),\n };\n\n return base64Encode(JSON.stringify(continuationToken));\n}\n\n/**\n * Decodes a continuationToken into an object containing a nextPartitionKey and nextRowKey\n */\nexport function decodeContinuationToken(encodedToken: string): ContinuationToken {\n const decodedToken = base64Decode(encodedToken);\n let tokenStr = \"\";\n\n for (const byte of decodedToken) {\n tokenStr += String.fromCharCode(byte);\n }\n const continuationToken: ContinuationToken = JSON.parse(tokenStr);\n\n return continuationToken;\n}\n"]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
export function handleTableAlreadyExists(error, options = {}) {
|
|
4
|
-
var _a, _b;
|
|
5
4
|
const responseError = getErrorResponse(error);
|
|
6
5
|
if (responseError &&
|
|
7
6
|
responseError.status === 409 &&
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
responseError.parsedBody.odataError?.code === "TableAlreadyExists") {
|
|
8
|
+
options.logger?.info(`Table ${options.tableName} already Exists`);
|
|
10
9
|
if (options.onResponse) {
|
|
11
10
|
options.onResponse(responseError, {});
|
|
12
11
|
}
|
|
@@ -29,6 +28,6 @@ function isRestError(error) {
|
|
|
29
28
|
return error.name === "RestError";
|
|
30
29
|
}
|
|
31
30
|
function isTableServiceErrorResponse(errorResponseBody) {
|
|
32
|
-
return Boolean(errorResponseBody
|
|
31
|
+
return Boolean(errorResponseBody?.odataError);
|
|
33
32
|
}
|
|
34
33
|
//# sourceMappingURL=errorHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHelpers.js","sourceRoot":"","sources":["../../../src/utils/errorHelpers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAsBlC,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,UAA2E,EAAE
|
|
1
|
+
{"version":3,"file":"errorHelpers.js","sourceRoot":"","sources":["../../../src/utils/errorHelpers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAsBlC,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,UAA2E,EAAE;IAE7E,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IACE,aAAa;QACb,aAAa,CAAC,MAAM,KAAK,GAAG;QAC5B,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,KAAK,oBAAoB,EAClE,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC;QAElE,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAA8B,KAAK,CAAC,QAAqC,CAAC;IAE7F,IAAI,CAAC,aAAa,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAQ,KAAmB,CAAC,IAAI,KAAK,WAAW,CAAC;AACnD,CAAC;AAED,SAAS,2BAA2B,CAClC,iBAAsB;IAEtB,OAAO,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OperationOptions, OperationRequest } from \"@azure/core-client\";\nimport type { PipelineResponse, RestError } from \"@azure/core-rest-pipeline\";\nimport type { AzureLogger } from \"@azure/logger\";\nimport type { TableServiceError } from \"../generated/index.js\";\n\nexport type TableServiceErrorResponse = PipelineResponse & {\n /**\n * The parsed HTTP response headers.\n */\n parsedHeaders?: Record<string, unknown>;\n /**\n * The response body as parsed JSON or XML.\n */\n parsedBody: TableServiceError;\n /**\n * The request that generated the response.\n */\n request: OperationRequest;\n};\n\nexport function handleTableAlreadyExists(\n error: unknown,\n options: OperationOptions & { tableName?: string; logger?: AzureLogger } = {},\n): void {\n const responseError = getErrorResponse(error);\n if (\n responseError &&\n responseError.status === 409 &&\n responseError.parsedBody.odataError?.code === \"TableAlreadyExists\"\n ) {\n options.logger?.info(`Table ${options.tableName} already Exists`);\n\n if (options.onResponse) {\n options.onResponse(responseError, {});\n }\n } else {\n throw error;\n }\n}\n\nfunction getErrorResponse(error: unknown): TableServiceErrorResponse | undefined {\n if (!isRestError(error)) {\n return undefined;\n }\n\n const errorResponse: TableServiceErrorResponse = error.response as TableServiceErrorResponse;\n\n if (!errorResponse || !isTableServiceErrorResponse(errorResponse.parsedBody)) {\n return undefined;\n }\n\n return errorResponse;\n}\n\nfunction isRestError(error: unknown): error is RestError {\n return (error as RestError).name === \"RestError\";\n}\n\nfunction isTableServiceErrorResponse(\n errorResponseBody: any,\n): errorResponseBody is TableServiceError {\n return Boolean(errorResponseBody?.odataError);\n}\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
export function isCosmosEndpoint(url) {
|
|
4
|
-
var _a, _b;
|
|
5
4
|
const parsedURL = new URL(url);
|
|
6
5
|
if (parsedURL.hostname.indexOf(".table.cosmosdb.") !== -1) {
|
|
7
6
|
return true;
|
|
@@ -14,8 +13,8 @@ export function isCosmosEndpoint(url) {
|
|
|
14
13
|
parsedURL.pathname.startsWith("/devstoreaccount1")) {
|
|
15
14
|
return false;
|
|
16
15
|
}
|
|
17
|
-
const azuriteAccounts =
|
|
18
|
-
if (
|
|
16
|
+
const azuriteAccounts = globalThis.process?.env?.AZURITE_ACCOUNTS?.split(":");
|
|
17
|
+
if (azuriteAccounts?.[0] && parsedURL.hostname.includes(azuriteAccounts[0])) {
|
|
19
18
|
return false;
|
|
20
19
|
}
|
|
21
20
|
if (parsedURL.hostname === "localhost") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isCosmosEndpoint.js","sourceRoot":"","sources":["../../../src/utils/isCosmosEndpoint.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,UAAU,gBAAgB,CAAC,GAAW
|
|
1
|
+
{"version":3,"file":"isCosmosEndpoint.js","sourceRoot":"","sources":["../../../src/utils/isCosmosEndpoint.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,IACE,CAAC,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,SAAS,CAAC,QAAQ,KAAK,WAAW,CAAC;QAC1E,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport function isCosmosEndpoint(url: string): boolean {\n const parsedURL = new URL(url);\n if (parsedURL.hostname.indexOf(\".table.cosmosdb.\") !== -1) {\n return true;\n }\n\n if (parsedURL.hostname.indexOf(\".table.cosmos.\") !== -1) {\n return true;\n }\n\n // Azurite emulator IP-style URL for table?\n if (\n (parsedURL.hostname === \"localhost\" || parsedURL.hostname === \"127.0.0.1\") &&\n parsedURL.pathname.startsWith(\"/devstoreaccount1\")\n ) {\n return false;\n }\n\n const azuriteAccounts = globalThis.process?.env?.AZURITE_ACCOUNTS?.split(\":\");\n if (azuriteAccounts?.[0] && parsedURL.hostname.includes(azuriteAccounts[0])) {\n return false;\n }\n\n if (parsedURL.hostname === \"localhost\") {\n return true;\n }\n\n return false;\n}\n"]}
|
|
@@ -8,6 +8,6 @@ import { createTracingClient } from "@azure/core-tracing";
|
|
|
8
8
|
export const tracingClient = createTracingClient({
|
|
9
9
|
namespace: "Microsoft.Data.Tables",
|
|
10
10
|
packageName: "@azure/data-tables",
|
|
11
|
-
packageVersion: "13.3.
|
|
11
|
+
packageVersion: "13.3.2",
|
|
12
12
|
});
|
|
13
13
|
//# sourceMappingURL=tracing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;IAC/C,SAAS,EAAE,uBAAuB;IAClC,WAAW,EAAE,oBAAoB;IACjC,cAAc,EAAE,QAAQ;CACzB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/**\n * A tracing client that can be used to manage spans.\n * @internal\n */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.Data.Tables\",\n packageName: \"@azure/data-tables\",\n packageVersion: \"13.3.
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../../src/utils/tracing.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;IAC/C,SAAS,EAAE,uBAAuB;IAClC,WAAW,EAAE,oBAAoB;IACjC,cAAc,EAAE,QAAQ;CACzB,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createTracingClient } from \"@azure/core-tracing\";\n\n/**\n * A tracing client that can be used to manage spans.\n * @internal\n */\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.Data.Tables\",\n packageName: \"@azure/data-tables\",\n packageVersion: \"13.3.2\",\n});\n"]}
|
|
@@ -7,8 +7,11 @@ import { getBaseTransactionHeaders } from "./baseTransactionHeaders.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export function getTransactionHeaders(transactionGuid) {
|
|
9
9
|
const baseHeaders = getBaseTransactionHeaders(transactionGuid);
|
|
10
|
-
return
|
|
10
|
+
return {
|
|
11
|
+
...baseHeaders,
|
|
11
12
|
// The below headers are not supported in the browser as they are flagged as "unsafe headers"
|
|
12
|
-
"Accept-Charset": "UTF-8",
|
|
13
|
+
"Accept-Charset": "UTF-8",
|
|
14
|
+
Connection: "Keep-Alive",
|
|
15
|
+
};
|
|
13
16
|
}
|
|
14
17
|
//# sourceMappingURL=transactionHeaders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionHeaders.js","sourceRoot":"","sources":["../../../src/utils/transactionHeaders.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAAuB;IAC3D,MAAM,WAAW,GAAG,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC/D,
|
|
1
|
+
{"version":3,"file":"transactionHeaders.js","sourceRoot":"","sources":["../../../src/utils/transactionHeaders.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAAuB;IAC3D,MAAM,WAAW,GAAG,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC/D,OAAO;QACL,GAAG,WAAW;QACd,6FAA6F;QAC7F,gBAAgB,EAAE,OAAO;QACzB,UAAU,EAAE,YAAY;KACzB,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RawHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { getBaseTransactionHeaders } from \"./baseTransactionHeaders.js\";\n\n/**\n * @internal\n * Builds an object with the required headers for a Transaction request. For Node\n */\nexport function getTransactionHeaders(transactionGuid: string): RawHttpHeaders {\n const baseHeaders = getBaseTransactionHeaders(transactionGuid);\n return {\n ...baseHeaders,\n // The below headers are not supported in the browser as they are flagged as \"unsafe headers\"\n \"Accept-Charset\": \"UTF-8\",\n Connection: \"Keep-Alive\",\n };\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { __asyncDelegator, __asyncGenerator, __asyncValues, __await, __rest } from "tslib";
|
|
4
3
|
import { GeneratedClient } from "./generated/index.js";
|
|
5
4
|
import { isNamedKeyCredential, isSASCredential, isTokenCredential } from "@azure/core-auth";
|
|
6
5
|
import { COSMOS_SCOPE, STORAGE_SCOPE, TablesLoggingAllowedHeaderNames } from "./utils/constants.js";
|
|
@@ -26,23 +25,46 @@ import { tracingClient } from "./utils/tracing.js";
|
|
|
26
25
|
* to perform operations on a single table.
|
|
27
26
|
*/
|
|
28
27
|
export class TableClient {
|
|
28
|
+
/**
|
|
29
|
+
* Table Account URL
|
|
30
|
+
*/
|
|
31
|
+
url;
|
|
32
|
+
/**
|
|
33
|
+
* Represents a pipeline for making a HTTP request to a URL.
|
|
34
|
+
* Pipelines can have multiple policies to manage manipulating each request before and after it is made to the server.
|
|
35
|
+
*/
|
|
36
|
+
pipeline;
|
|
37
|
+
table;
|
|
38
|
+
generatedClient;
|
|
39
|
+
credential;
|
|
40
|
+
clientOptions;
|
|
41
|
+
allowInsecureConnection;
|
|
42
|
+
/**
|
|
43
|
+
* Name of the table to perform operations on.
|
|
44
|
+
*/
|
|
45
|
+
tableName;
|
|
29
46
|
constructor(url, tableName, credentialOrOptions, options = {}) {
|
|
30
|
-
var _a;
|
|
31
47
|
this.url = url;
|
|
32
48
|
this.tableName = tableName;
|
|
33
49
|
const isCosmos = isCosmosEndpoint(this.url);
|
|
34
50
|
const credential = isCredential(credentialOrOptions) ? credentialOrOptions : undefined;
|
|
35
51
|
this.credential = credential;
|
|
36
52
|
this.clientOptions = (!isCredential(credentialOrOptions) ? credentialOrOptions : options) || {};
|
|
37
|
-
this.allowInsecureConnection =
|
|
38
|
-
const internalPipelineOptions =
|
|
53
|
+
this.allowInsecureConnection = this.clientOptions.allowInsecureConnection ?? false;
|
|
54
|
+
const internalPipelineOptions = {
|
|
55
|
+
...this.clientOptions,
|
|
56
|
+
endpoint: this.clientOptions.endpoint || this.url,
|
|
57
|
+
loggingOptions: {
|
|
39
58
|
logger: logger.info,
|
|
40
59
|
additionalAllowedHeaderNames: [...TablesLoggingAllowedHeaderNames],
|
|
41
|
-
},
|
|
60
|
+
},
|
|
61
|
+
deserializationOptions: {
|
|
42
62
|
parseXML,
|
|
43
|
-
},
|
|
63
|
+
},
|
|
64
|
+
serializationOptions: {
|
|
44
65
|
stringifyXML,
|
|
45
|
-
}
|
|
66
|
+
},
|
|
67
|
+
};
|
|
46
68
|
const generatedClient = new GeneratedClient(this.url, internalPipelineOptions);
|
|
47
69
|
if (isNamedKeyCredential(credential)) {
|
|
48
70
|
generatedClient.pipeline.addPolicy(tablesNamedKeyCredentialPolicy(credential));
|
|
@@ -124,7 +146,7 @@ export class TableClient {
|
|
|
124
146
|
await this.table.create({ name: this.tableName }, updatedOptions);
|
|
125
147
|
}
|
|
126
148
|
catch (e) {
|
|
127
|
-
handleTableAlreadyExists(e,
|
|
149
|
+
handleTableAlreadyExists(e, { ...updatedOptions, logger, tableName: this.tableName });
|
|
128
150
|
}
|
|
129
151
|
});
|
|
130
152
|
}
|
|
@@ -167,9 +189,13 @@ export class TableClient {
|
|
|
167
189
|
updatedOptions.onResponse(rawResponse, flatResponse);
|
|
168
190
|
}
|
|
169
191
|
}
|
|
170
|
-
const { disableTypeConversion, queryOptions
|
|
171
|
-
await this.table.queryEntitiesWithPartitionAndRowKey(this.tableName, escapeQuotes(partitionKey), escapeQuotes(rowKey),
|
|
172
|
-
|
|
192
|
+
const { disableTypeConversion, queryOptions, ...getEntityOptions } = updatedOptions;
|
|
193
|
+
await this.table.queryEntitiesWithPartitionAndRowKey(this.tableName, escapeQuotes(partitionKey), escapeQuotes(rowKey), {
|
|
194
|
+
...getEntityOptions,
|
|
195
|
+
queryOptions: serializeQueryOptions(queryOptions || {}),
|
|
196
|
+
onResponse,
|
|
197
|
+
});
|
|
198
|
+
const tableEntity = deserialize(parsedBody, disableTypeConversion ?? false);
|
|
173
199
|
return tableEntity;
|
|
174
200
|
});
|
|
175
201
|
}
|
|
@@ -209,57 +235,52 @@ export class TableClient {
|
|
|
209
235
|
return this;
|
|
210
236
|
},
|
|
211
237
|
byPage: (settings) => {
|
|
212
|
-
const pageOptions =
|
|
213
|
-
|
|
238
|
+
const pageOptions = {
|
|
239
|
+
...options,
|
|
240
|
+
queryOptions: { ...options.queryOptions, top: settings?.maxPageSize },
|
|
241
|
+
};
|
|
242
|
+
if (settings?.continuationToken) {
|
|
214
243
|
pageOptions.continuationToken = settings.continuationToken;
|
|
215
244
|
}
|
|
216
245
|
return this.listEntitiesPage(tableName, pageOptions);
|
|
217
246
|
},
|
|
218
247
|
};
|
|
219
248
|
}
|
|
220
|
-
listEntitiesAll(tableName, options) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
_d = false;
|
|
231
|
-
const page = _c;
|
|
232
|
-
yield __await(yield* __asyncDelegator(__asyncValues(page)));
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
236
|
-
finally {
|
|
237
|
-
try {
|
|
238
|
-
if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e));
|
|
239
|
-
}
|
|
240
|
-
finally { if (e_1) throw e_1.error; }
|
|
241
|
-
}
|
|
249
|
+
async *listEntitiesAll(tableName, options) {
|
|
250
|
+
const firstPage = await this._listEntities(tableName, options);
|
|
251
|
+
yield* firstPage;
|
|
252
|
+
if (firstPage.continuationToken) {
|
|
253
|
+
const optionsWithContinuation = {
|
|
254
|
+
...options,
|
|
255
|
+
continuationToken: firstPage.continuationToken,
|
|
256
|
+
};
|
|
257
|
+
for await (const page of this.listEntitiesPage(tableName, optionsWithContinuation)) {
|
|
258
|
+
yield* page;
|
|
242
259
|
}
|
|
243
|
-
}
|
|
260
|
+
}
|
|
244
261
|
}
|
|
245
|
-
listEntitiesPage(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
result
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
257
|
-
|
|
262
|
+
async *listEntitiesPage(tableName, options = {}) {
|
|
263
|
+
let result = await tracingClient.withSpan("TableClient.listEntitiesPage", options, (updatedOptions) => this._listEntities(tableName, updatedOptions));
|
|
264
|
+
yield result;
|
|
265
|
+
while (result.continuationToken) {
|
|
266
|
+
const optionsWithContinuation = {
|
|
267
|
+
...options,
|
|
268
|
+
continuationToken: result.continuationToken,
|
|
269
|
+
};
|
|
270
|
+
result = await tracingClient.withSpan("TableClient.listEntitiesPage", optionsWithContinuation, (updatedOptions, span) => {
|
|
271
|
+
span.setAttribute("continuationToken", result.continuationToken);
|
|
272
|
+
return this._listEntities(tableName, updatedOptions);
|
|
273
|
+
});
|
|
274
|
+
yield result;
|
|
275
|
+
}
|
|
258
276
|
}
|
|
259
277
|
async _listEntities(tableName, options = {}) {
|
|
260
278
|
const { disableTypeConversion = false } = options;
|
|
261
279
|
const queryOptions = serializeQueryOptions(options.queryOptions || {});
|
|
262
|
-
const listEntitiesOptions =
|
|
280
|
+
const listEntitiesOptions = {
|
|
281
|
+
...options,
|
|
282
|
+
queryOptions,
|
|
283
|
+
};
|
|
263
284
|
// If a continuation token is used, decode it and set the next row and partition key
|
|
264
285
|
if (options.continuationToken) {
|
|
265
286
|
const continuationToken = decodeContinuationToken(options.continuationToken);
|
|
@@ -267,7 +288,7 @@ export class TableClient {
|
|
|
267
288
|
listEntitiesOptions.nextPartitionKey = continuationToken.nextPartitionKey;
|
|
268
289
|
}
|
|
269
290
|
const { xMsContinuationNextPartitionKey: nextPartitionKey, xMsContinuationNextRowKey: nextRowKey, value, } = await this.table.queryEntities(tableName, listEntitiesOptions);
|
|
270
|
-
const tableEntities = deserializeObjectsArray(value
|
|
291
|
+
const tableEntities = deserializeObjectsArray(value ?? [], disableTypeConversion);
|
|
271
292
|
// Encode nextPartitionKey and nextRowKey as a single continuation token and add it as a
|
|
272
293
|
// property to the page.
|
|
273
294
|
const continuationToken = encodeContinuationToken(nextPartitionKey, nextRowKey);
|
|
@@ -304,8 +325,12 @@ export class TableClient {
|
|
|
304
325
|
*/
|
|
305
326
|
createEntity(entity, options = {}) {
|
|
306
327
|
return tracingClient.withSpan("TableClient.createEntity", options, (updatedOptions) => {
|
|
307
|
-
const createTableEntity =
|
|
308
|
-
return this.table.insertEntity(this.tableName,
|
|
328
|
+
const { ...createTableEntity } = updatedOptions || {};
|
|
329
|
+
return this.table.insertEntity(this.tableName, {
|
|
330
|
+
...createTableEntity,
|
|
331
|
+
tableEntityProperties: serialize(entity),
|
|
332
|
+
responsePreference: "return-no-content",
|
|
333
|
+
});
|
|
309
334
|
});
|
|
310
335
|
}
|
|
311
336
|
/**
|
|
@@ -340,8 +365,10 @@ export class TableClient {
|
|
|
340
365
|
throw new Error("The entity's rowKey cannot be undefined or null.");
|
|
341
366
|
}
|
|
342
367
|
return tracingClient.withSpan("TableClient.deleteEntity", options, (updatedOptions) => {
|
|
343
|
-
const { etag = "*"
|
|
344
|
-
const deleteOptions =
|
|
368
|
+
const { etag = "*", ...rest } = updatedOptions;
|
|
369
|
+
const deleteOptions = {
|
|
370
|
+
...rest,
|
|
371
|
+
};
|
|
345
372
|
return this.table.deleteEntity(this.tableName, escapeQuotes(partitionKey), escapeQuotes(rowKey), etag, deleteOptions);
|
|
346
373
|
});
|
|
347
374
|
}
|
|
@@ -394,12 +421,20 @@ export class TableClient {
|
|
|
394
421
|
return tracingClient.withSpan("TableClient.updateEntity", options, async (updatedOptions) => {
|
|
395
422
|
const partitionKey = escapeQuotes(entity.partitionKey);
|
|
396
423
|
const rowKey = escapeQuotes(entity.rowKey);
|
|
397
|
-
const
|
|
424
|
+
const { etag = "*", ...updateEntityOptions } = updatedOptions || {};
|
|
398
425
|
if (mode === "Merge") {
|
|
399
|
-
return this.table.mergeEntity(this.tableName, partitionKey, rowKey,
|
|
426
|
+
return this.table.mergeEntity(this.tableName, partitionKey, rowKey, {
|
|
427
|
+
tableEntityProperties: serialize(entity),
|
|
428
|
+
ifMatch: etag,
|
|
429
|
+
...updateEntityOptions,
|
|
430
|
+
});
|
|
400
431
|
}
|
|
401
432
|
if (mode === "Replace") {
|
|
402
|
-
return this.table.updateEntity(this.tableName, partitionKey, rowKey,
|
|
433
|
+
return this.table.updateEntity(this.tableName, partitionKey, rowKey, {
|
|
434
|
+
tableEntityProperties: serialize(entity),
|
|
435
|
+
ifMatch: etag,
|
|
436
|
+
...updateEntityOptions,
|
|
437
|
+
});
|
|
403
438
|
}
|
|
404
439
|
throw new Error(`Unexpected value for update mode: ${mode}`);
|
|
405
440
|
}, {
|
|
@@ -452,10 +487,16 @@ export class TableClient {
|
|
|
452
487
|
const partitionKey = escapeQuotes(entity.partitionKey);
|
|
453
488
|
const rowKey = escapeQuotes(entity.rowKey);
|
|
454
489
|
if (mode === "Merge") {
|
|
455
|
-
return this.table.mergeEntity(this.tableName, partitionKey, rowKey,
|
|
490
|
+
return this.table.mergeEntity(this.tableName, partitionKey, rowKey, {
|
|
491
|
+
tableEntityProperties: serialize(entity),
|
|
492
|
+
...updatedOptions,
|
|
493
|
+
});
|
|
456
494
|
}
|
|
457
495
|
if (mode === "Replace") {
|
|
458
|
-
return this.table.updateEntity(this.tableName, partitionKey, rowKey,
|
|
496
|
+
return this.table.updateEntity(this.tableName, partitionKey, rowKey, {
|
|
497
|
+
tableEntityProperties: serialize(entity),
|
|
498
|
+
...updatedOptions,
|
|
499
|
+
});
|
|
459
500
|
}
|
|
460
501
|
throw new Error(`Unexpected value for update mode: ${mode}`);
|
|
461
502
|
}, {
|
|
@@ -483,7 +524,10 @@ export class TableClient {
|
|
|
483
524
|
setAccessPolicy(tableAcl, options = {}) {
|
|
484
525
|
return tracingClient.withSpan("TableClient.setAccessPolicy", options, (updatedOptions) => {
|
|
485
526
|
const serlializedAcl = serializeSignedIdentifiers(tableAcl);
|
|
486
|
-
return this.table.setAccessPolicy(this.tableName,
|
|
527
|
+
return this.table.setAccessPolicy(this.tableName, {
|
|
528
|
+
...updatedOptions,
|
|
529
|
+
tableAcl: serlializedAcl,
|
|
530
|
+
});
|
|
487
531
|
});
|
|
488
532
|
}
|
|
489
533
|
/**
|