@azure/data-tables 13.0.1-alpha.20211112.1 → 13.0.1-alpha.20211217.1

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 (40) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +39 -8
  3. package/dist/index.js +309 -284
  4. package/dist/index.js.map +1 -1
  5. package/dist-esm/src/TableClient.js +15 -20
  6. package/dist-esm/src/TableClient.js.map +1 -1
  7. package/dist-esm/src/TablePolicies.js +2 -2
  8. package/dist-esm/src/TablePolicies.js.map +1 -1
  9. package/dist-esm/src/TableServiceClient.js +9 -14
  10. package/dist-esm/src/TableServiceClient.js.map +1 -1
  11. package/dist-esm/src/TableTransaction.js +9 -9
  12. package/dist-esm/src/TableTransaction.js.map +1 -1
  13. package/dist-esm/src/logger.js.map +1 -1
  14. package/dist-esm/src/models.js.map +1 -1
  15. package/dist-esm/src/sas/accountSasSignatureValues.js +5 -5
  16. package/dist-esm/src/sas/accountSasSignatureValues.js.map +1 -1
  17. package/dist-esm/src/sas/generateAccountSas.js +1 -1
  18. package/dist-esm/src/sas/generateAccountSas.js.map +1 -1
  19. package/dist-esm/src/sas/generateTableSas.js +14 -8
  20. package/dist-esm/src/sas/generateTableSas.js.map +1 -1
  21. package/dist-esm/src/sas/sasQueryParameters.js +1 -1
  22. package/dist-esm/src/sas/sasQueryParameters.js.map +1 -1
  23. package/dist-esm/src/sas/tableSasSignatureValues.js +9 -9
  24. package/dist-esm/src/sas/tableSasSignatureValues.js.map +1 -1
  25. package/dist-esm/src/serialization.js +2 -2
  26. package/dist-esm/src/serialization.js.map +1 -1
  27. package/dist-esm/src/tablesNamedCredentialPolicy.js.map +1 -1
  28. package/dist-esm/src/tablesSASTokenPolicy.js.map +1 -1
  29. package/dist-esm/src/utils/accountConnectionString.browser.js.map +1 -1
  30. package/dist-esm/src/utils/accountConnectionString.js.map +1 -1
  31. package/dist-esm/src/utils/connectionString.js.map +1 -1
  32. package/dist-esm/src/utils/continuationToken.js +1 -1
  33. package/dist-esm/src/utils/continuationToken.js.map +1 -1
  34. package/dist-esm/src/utils/errorHelpers.js +36 -0
  35. package/dist-esm/src/utils/errorHelpers.js.map +1 -0
  36. package/dist-esm/src/utils/internalModels.js.map +1 -1
  37. package/dist-esm/src/utils/isCredential.js.map +1 -1
  38. package/package.json +7 -9
  39. package/types/3.1/data-tables.d.ts +4 -3
  40. package/types/latest/data-tables.d.ts +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/serialization.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE,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;QACA,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;KAC/B;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACzC,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;KAClC;SAAM,IAAI,KAAK,YAAY,IAAI,EAAE;QAChC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;KACrC;SAAM,IAAI,KAAK,YAAY,UAAU,EAAE;QACtC,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;KACnC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,KAAK,EAAE,CAAC,CAAC;KACrD;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;QACA,eAAe,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAClC,eAAe,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACtC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;KACzD;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAU;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,SAAS,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,SAAS,EAAE;QACxF,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;KAC/B;SAAM;QACL,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAClC;AACH,CAAC;AAED,SAAS,qCAAqC,CAAC,YAAoB;IACjE,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,eAAe,EAAE;QAClD,IAAI,QAAQ,KAAK,YAAY,EAAE;YAC7B,OAAO,QAAQ,CAAC;SACjB;KACF;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;QAC/D,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;YACtB,UAAU,CAAC,GAAG,cAAc,aAAa,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;SACjE;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,KAAU,EAAE,IAAY,EAAE,qBAA8B;IAC9E,QAAQ,IAAI,EAAE;QACZ,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;KAC/C;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;QAC9C,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;YACrC,MAAM,cAAc,GAAG,MAAA,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,GAAG,CAAC;YACvD,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,GAAG,GAAG,aAAa,IAAI,GAAG,EAAE;gBAC9B,MAAM,IAAI,GAAI,GAAW,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;gBAC/C,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;aACjE;iBAAM,IAAI,qBAAqB,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE;gBAC1F,4EAA4E;gBAC5E,sEAAsE;gBACtE,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC3C;YAED,YAAY,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;SAC3C;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAoB,EAAE,KAAgC;IAC9E,yHAAyH;IACzH,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAED,QAAQ,OAAO,KAAK,EAAE;QACpB,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;KAChB;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;QAC/B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3C;SAAM;QACL,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC5C;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,KAA6B,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,EAA/C,EAAE,KAAK,EAAE,MAAM,OAAgC,EAA3B,IAAI,cAAxB,mBAA0B,CAAqB,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,gDACP,CAAC,gBAAgB,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,GAClD,CAAC,eAAe,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,GAC/C,IAAI,CACR;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,KAAgC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE,EAAlD,EAAE,KAAK,EAAE,MAAM,OAAmC,EAA9B,OAAO,cAA3B,mBAA6B,CAAqB,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,gDACP,CAAC,kBAAkB,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,GACtD,CAAC,iBAAiB,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,GACnD,OAAO,CACX;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAA8B;IAClE,MAAM,EAAE,MAAM,KAAsB,KAAK,EAAtB,YAAY,UAAK,KAAK,EAAnC,UAA2B,CAAQ,CAAC;IAC1C,MAAM,WAAW,qBAA+B,YAAY,CAAE,CAAC;IAC/D,mFAAmF;IACnF,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE;QACV,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;KACd;IACD,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\nimport { base64Encode, base64Decode } from \"./utils/bufferSerializer\";\nimport { EdmTypes, SignedIdentifier, TableEntityQueryOptions } from \"./models\";\nimport { truncatedISO8061Date } from \"./utils/truncateISO8061Date\";\nimport {\n SignedIdentifier as GeneratedSignedIdentifier,\n QueryOptions as GeneratedQueryOptions\n} from \"./generated/models\";\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(propertyName: string, value: number | string | boolean) {\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":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { EdmTypes, SignedIdentifier, TableEntityQueryOptions } from \"./models\";\nimport {\n QueryOptions as GeneratedQueryOptions,\n SignedIdentifier as GeneratedSignedIdentifier\n} from \"./generated/models\";\nimport { base64Decode, base64Encode } from \"./utils/bufferSerializer\";\nimport { truncatedISO8061Date } from \"./utils/truncateISO8061Date\";\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(propertyName: string, value: number | string | boolean) {\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 +1 @@
1
- {"version":3,"file":"tablesNamedCredentialPolicy.js","sourceRoot":"","sources":["../../src/tablesNamedCredentialPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AASlC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,gCAAgC,CAAC;AAEnF;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,UAA8B;IAC3E,SAAS,WAAW,CAAC,OAAwB;QAC3C,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAChE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,kCAAkC;QACxC,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,WAAW,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAwB,EACxB,UAA8B;IAE9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;QACnD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;KAC1E;IAED,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;KACtF;IAED,iDAAiD;IACjD,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAE5E,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;KACrF;IAED,MAAM,YAAY,GAAW;QAC3B,UAAU;QACV,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC;KACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAElE,OAAO,iBAAiB,UAAU,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAwB,EAAE,UAAkB;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,8BAA8B,CACrC,OAAwB,EACxB,UAA8B;IAE9B,kJAAkJ;IAClJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;IACjC,IAAI,2BAA2B,GAAG,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IAE/D,sKAAsK;IACtK,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAI,IAAI,EAAE;QACR,2BAA2B,GAAG,GAAG,2BAA2B,SAAS,IAAI,EAAE,CAAC;KAC7E;IAED,OAAO,2BAA2B,CAAC;AACrC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy\n} from \"@azure/core-rest-pipeline\";\nimport { NamedKeyCredential } from \"@azure/core-auth\";\nimport { HeaderConstants } from \"./utils/constants\";\nimport { URL } from \"./utils/url\";\nimport { computeHMACSHA256 } from \"./utils/computeHMACSHA256\";\n\n/**\n * The programmatic identifier of the tablesNamedKeyCredentialPolicy.\n */\nexport const tablesNamedKeyCredentialPolicyName = \"tablesNamedKeyCredentialPolicy\";\n\n/**\n * tablesNamedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesNamedKeyCredentialPolicy(credential: NamedKeyCredential): PipelinePolicy {\n function signRequest(request: PipelineRequest): void {\n const headerValue = getAuthorizationHeader(request, credential);\n request.headers.set(HeaderConstants.AUTHORIZATION, headerValue);\n }\n\n return {\n name: tablesNamedKeyCredentialPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signRequest(request);\n return next(request);\n }\n };\n}\n\nexport function getAuthorizationHeader(\n request: PipelineRequest,\n credential: NamedKeyCredential\n): string {\n if (!request.headers.has(HeaderConstants.X_MS_DATE)) {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n }\n\n if (request.body && typeof request.body === \"string\" && request.body.length > 0) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n // If x-ms-date is present, use it otherwise date\n const dateHeader = getHeaderValueToSign(request, HeaderConstants.X_MS_DATE);\n\n if (!dateHeader) {\n throw new Error(\"Failed to sign request: x-ms-date or date header must be present\");\n }\n\n const stringToSign: string = [\n dateHeader,\n getCanonicalizedResourceString(request, credential)\n ].join(\"\\n\");\n\n const signature = computeHMACSHA256(stringToSign, credential.key);\n\n return `SharedKeyLite ${credential.name}:${signature}`;\n}\n\nfunction getHeaderValueToSign(request: PipelineRequest, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n return value;\n}\n\nfunction getCanonicalizedResourceString(\n request: PipelineRequest,\n credential: NamedKeyCredential\n): string {\n // https://docs.microsoft.com/rest/api/storageservices/authorize-with-shared-key#shared-key-lite-and-table-service-format-for-2009-09-19-and-later\n const url = new URL(request.url);\n const path = url.pathname || \"/\";\n let canonicalizedResourceString = \"/\" + credential.name + path;\n\n // The query string should include the question mark and the comp parameter (for example, ?comp=metadata). No other parameters should be included on the query string.\n const comp = url.searchParams.get(\"comp\");\n\n if (comp) {\n canonicalizedResourceString = `${canonicalizedResourceString}?comp=${comp}`;\n }\n\n return canonicalizedResourceString;\n}\n"]}
1
+ {"version":3,"file":"tablesNamedCredentialPolicy.js","sourceRoot":"","sources":["../../src/tablesNamedCredentialPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest\n} from \"@azure/core-rest-pipeline\";\nimport { HeaderConstants } from \"./utils/constants\";\nimport { NamedKeyCredential } from \"@azure/core-auth\";\nimport { URL } from \"./utils/url\";\nimport { computeHMACSHA256 } from \"./utils/computeHMACSHA256\";\n\n/**\n * The programmatic identifier of the tablesNamedKeyCredentialPolicy.\n */\nexport const tablesNamedKeyCredentialPolicyName = \"tablesNamedKeyCredentialPolicy\";\n\n/**\n * tablesNamedKeyCredentialPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesNamedKeyCredentialPolicy(credential: NamedKeyCredential): PipelinePolicy {\n function signRequest(request: PipelineRequest): void {\n const headerValue = getAuthorizationHeader(request, credential);\n request.headers.set(HeaderConstants.AUTHORIZATION, headerValue);\n }\n\n return {\n name: tablesNamedKeyCredentialPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signRequest(request);\n return next(request);\n }\n };\n}\n\nexport function getAuthorizationHeader(\n request: PipelineRequest,\n credential: NamedKeyCredential\n): string {\n if (!request.headers.has(HeaderConstants.X_MS_DATE)) {\n request.headers.set(HeaderConstants.X_MS_DATE, new Date().toUTCString());\n }\n\n if (request.body && typeof request.body === \"string\" && request.body.length > 0) {\n request.headers.set(HeaderConstants.CONTENT_LENGTH, Buffer.byteLength(request.body));\n }\n\n // If x-ms-date is present, use it otherwise date\n const dateHeader = getHeaderValueToSign(request, HeaderConstants.X_MS_DATE);\n\n if (!dateHeader) {\n throw new Error(\"Failed to sign request: x-ms-date or date header must be present\");\n }\n\n const stringToSign: string = [\n dateHeader,\n getCanonicalizedResourceString(request, credential)\n ].join(\"\\n\");\n\n const signature = computeHMACSHA256(stringToSign, credential.key);\n\n return `SharedKeyLite ${credential.name}:${signature}`;\n}\n\nfunction getHeaderValueToSign(request: PipelineRequest, headerName: string): string {\n const value = request.headers.get(headerName);\n\n if (!value) {\n return \"\";\n }\n return value;\n}\n\nfunction getCanonicalizedResourceString(\n request: PipelineRequest,\n credential: NamedKeyCredential\n): string {\n // https://docs.microsoft.com/rest/api/storageservices/authorize-with-shared-key#shared-key-lite-and-table-service-format-for-2009-09-19-and-later\n const url = new URL(request.url);\n const path = url.pathname || \"/\";\n let canonicalizedResourceString = \"/\" + credential.name + path;\n\n // The query string should include the question mark and the comp parameter (for example, ?comp=metadata). No other parameters should be included on the query string.\n const comp = url.searchParams.get(\"comp\");\n\n if (comp) {\n canonicalizedResourceString = `${canonicalizedResourceString}?comp=${comp}`;\n }\n\n return canonicalizedResourceString;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tablesSASTokenPolicy.js","sourceRoot":"","sources":["../../src/tablesSASTokenPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AASlC,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAyB;IAC5D,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAwB,EAAE,UAAyB;IAChF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE;QACrC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACtC;IACD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n PipelineResponse,\n PipelineRequest,\n SendRequest,\n PipelinePolicy\n} from \"@azure/core-rest-pipeline\";\nimport { SASCredential } from \"@azure/core-auth\";\nimport { URL, URLSearchParams } from \"./utils/url\";\n\n/**\n * The programmatic identifier of the tablesSASTokenPolicy.\n */\nexport const tablesSASTokenPolicyName = \"tablesSASTokenPolicy\";\n\n/**\n * tablesSASTokenPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesSASTokenPolicy(credential: SASCredential): PipelinePolicy {\n return {\n name: tablesSASTokenPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signURLWithSAS(request, credential);\n return next(request);\n }\n };\n}\n\nexport function signURLWithSAS(request: PipelineRequest, credential: SASCredential): void {\n const sasParams = new URLSearchParams(credential.signature);\n const url = new URL(request.url);\n\n for (const [name, value] of sasParams) {\n url.searchParams.append(name, value);\n }\n request.url = url.toString();\n}\n"]}
1
+ {"version":3,"file":"tablesSASTokenPolicy.js","sourceRoot":"","sources":["../../src/tablesSASTokenPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAQlC,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAyB;IAC5D,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAwB,EAAE,UAAyB;IAChF,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE;QACrC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACtC;IACD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest\n} from \"@azure/core-rest-pipeline\";\nimport { URL, URLSearchParams } from \"./utils/url\";\nimport { SASCredential } from \"@azure/core-auth\";\n\n/**\n * The programmatic identifier of the tablesSASTokenPolicy.\n */\nexport const tablesSASTokenPolicyName = \"tablesSASTokenPolicy\";\n\n/**\n * tablesSASTokenPolicy is a policy used to sign HTTP request with a shared key.\n */\nexport function tablesSASTokenPolicy(credential: SASCredential): PipelinePolicy {\n return {\n name: tablesSASTokenPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n signURLWithSAS(request, credential);\n return next(request);\n }\n };\n}\n\nexport function signURLWithSAS(request: PipelineRequest, credential: SASCredential): void {\n const sasParams = new URLSearchParams(credential.signature);\n const url = new URL(request.url);\n\n for (const [name, value] of sasParams) {\n url.searchParams.append(name, value);\n }\n request.url = url.toString();\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"accountConnectionString.browser.js","sourceRoot":"","sources":["../../../src/utils/accountConnectionString.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;;;;GAKG;AACH,+HAA+H;AAC/H,MAAM,UAAU,2BAA2B,CACzC,iBAAmC,EACnC,QAAoC;IAEpC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,YAAoB,EACpB,WAAmB,EACnB,yBAAiC,EACjC,eAAwB,EACxB,cAAuB;IAEvB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TableServiceClientOptions } from \"..\";\nimport { ConnectionString } from \"./internalModels\";\n\n/**\n * Gets client parameters from an Account Connection String\n * Only supported in Node.js not supported for Browsers\n * @param _extractedCreds - parsed connection string\n * @param _options - TablesServiceClient options\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport function fromAccountConnectionString(\n _connectionString: ConnectionString,\n _options?: TableServiceClientOptions\n) {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n}\n\nexport function getAccountConnectionString(\n _accountName: string,\n _accountKey: string,\n _defaultEndpointsProtocol: string,\n _endpointSuffix?: string,\n _tableEndpoint?: string\n): ConnectionString {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n}\n"]}
1
+ {"version":3,"file":"accountConnectionString.browser.js","sourceRoot":"","sources":["../../../src/utils/accountConnectionString.browser.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC;;;;;GAKG;AACH,+HAA+H;AAC/H,MAAM,UAAU,2BAA2B,CACzC,iBAAmC,EACnC,QAAoC;IAEpC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,YAAoB,EACpB,WAAmB,EACnB,yBAAiC,EACjC,eAAwB,EACxB,cAAuB;IAEvB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ConnectionString } from \"./internalModels\";\nimport { TableServiceClientOptions } from \"..\";\n\n/**\n * Gets client parameters from an Account Connection String\n * Only supported in Node.js not supported for Browsers\n * @param _extractedCreds - parsed connection string\n * @param _options - TablesServiceClient options\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport function fromAccountConnectionString(\n _connectionString: ConnectionString,\n _options?: TableServiceClientOptions\n) {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n}\n\nexport function getAccountConnectionString(\n _accountName: string,\n _accountKey: string,\n _defaultEndpointsProtocol: string,\n _endpointSuffix?: string,\n _tableEndpoint?: string\n): ConnectionString {\n throw new Error(\"Account connection string is only supported in Node.js environment\");\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"accountConnectionString.js","sourceRoot":"","sources":["../../../src/utils/accountConnectionString.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,cAAgC,EAChC,UAAqC,EAAE;IAEvC,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,CACrD,cAAc,CAAC,WAAY,EAC3B,cAAc,CAAC,UAAU,CAC1B,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,OAAO;QACP,UAAU,EAAE,mBAAmB;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,UAAkB,EAClB,wBAAgC,EAChC,cAAuB,EACvB,aAAsB;IAEtB,IAAI,CAAC,aAAa,EAAE;QAClB,gEAAgE;QAChE,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,EAAE,CAAC;QACxD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC/C,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;SACH;QACD,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC7E;QACD,aAAa,GAAG,GAAG,wBAAwB,MAAM,WAAW,UAAU,cAAc,EAAE,CAAC;KACxF;IAED,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACzE;IAED,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,aAAa;QAClB,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TableServiceClientOptions } from \"..\";\nimport { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { AzureNamedKeyCredential } from \"@azure/core-auth\";\n\n/**\n * Gets client parameters from an Account Connection String\n * Only supported in Node.js not supported for Browsers\n * @param extractedCreds - parsed connection string\n * @param options - TablesServiceClient options\n */\nexport function fromAccountConnectionString(\n extractedCreds: ConnectionString,\n options: TableServiceClientOptions = {}\n): ClientParamsFromConnectionString {\n const sharedKeyCredential = new AzureNamedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n\n return {\n url: extractedCreds.url,\n options,\n credential: sharedKeyCredential\n };\n}\n\nexport function getAccountConnectionString(\n accountName: string,\n accountKey: string,\n defaultEndpointsProtocol: string,\n endpointSuffix?: string,\n tableEndpoint?: string\n): ConnectionString {\n if (!tableEndpoint) {\n // TableEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`\n const protocol = defaultEndpointsProtocol.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\"\n );\n }\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n tableEndpoint = `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: tableEndpoint,\n accountName,\n accountKey\n };\n}\n"]}
1
+ {"version":3,"file":"accountConnectionString.js","sourceRoot":"","sources":["../../../src/utils/accountConnectionString.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,cAAgC,EAChC,UAAqC,EAAE;IAEvC,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,CACrD,cAAc,CAAC,WAAY,EAC3B,cAAc,CAAC,UAAU,CAC1B,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,cAAc,CAAC,GAAG;QACvB,OAAO;QACP,UAAU,EAAE,mBAAmB;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,UAAkB,EAClB,wBAAgC,EAChC,cAAuB,EACvB,aAAsB;IAEtB,IAAI,CAAC,aAAa,EAAE;QAClB,gEAAgE;QAChE,8FAA8F;QAC9F,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,EAAE,CAAC;QACxD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,EAAE;YAC/C,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;SACH;QACD,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAC7E;QACD,aAAa,GAAG,GAAG,wBAAwB,MAAM,WAAW,UAAU,cAAc,EAAE,CAAC;KACxF;IAED,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;KAC1E;SAAM,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;KACzE;IAED,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,aAAa;QAClB,WAAW;QACX,UAAU;KACX,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { AzureNamedKeyCredential } from \"@azure/core-auth\";\nimport { TableServiceClientOptions } from \"..\";\n\n/**\n * Gets client parameters from an Account Connection String\n * Only supported in Node.js not supported for Browsers\n * @param extractedCreds - parsed connection string\n * @param options - TablesServiceClient options\n */\nexport function fromAccountConnectionString(\n extractedCreds: ConnectionString,\n options: TableServiceClientOptions = {}\n): ClientParamsFromConnectionString {\n const sharedKeyCredential = new AzureNamedKeyCredential(\n extractedCreds.accountName!,\n extractedCreds.accountKey\n );\n\n return {\n url: extractedCreds.url,\n options,\n credential: sharedKeyCredential\n };\n}\n\nexport function getAccountConnectionString(\n accountName: string,\n accountKey: string,\n defaultEndpointsProtocol: string,\n endpointSuffix?: string,\n tableEndpoint?: string\n): ConnectionString {\n if (!tableEndpoint) {\n // TableEndpoint is not present in the Account connection string\n // Can be obtained from `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`\n const protocol = defaultEndpointsProtocol.toLowerCase();\n if (protocol !== \"https\" && protocol !== \"http\") {\n throw new Error(\n \"Invalid DefaultEndpointsProtocol in the provided Connection String. Expecting 'https' or 'http'\"\n );\n }\n if (!endpointSuffix) {\n throw new Error(\"Invalid EndpointSuffix in the provided Connection String\");\n }\n tableEndpoint = `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n }\n\n if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided Connection String\");\n } else if (accountKey.length === 0) {\n throw new Error(\"Invalid AccountKey in the provided Connection String\");\n }\n\n return {\n kind: \"AccountConnString\",\n url: tableEndpoint,\n accountName,\n accountKey\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"connectionString.js","sourceRoot":"","sources":["../../../src/utils/connectionString.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TableServiceClientOptions } from \"../models\";\nimport { fromAccountConnectionString, getAccountConnectionString } from \"./accountConnectionString\";\nimport { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { URL } from \"./url\";\n\nconst DevelopmentConnectionString =\n \"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1\";\n\n/**\n * This function parses a connection string into a set of\n * parameters to pass to be passed to TableClientService,\n * depending on the connection string type these parameter would\n * contain:\n * - Account Connection String: A pipeline to sign the request with a SharedKey\n * - SAS Connection String: Attach a SAS token to the storage account url for authentication\n * @param connectionString - Connection string to parse\n * @param options - TableService client options\n */\nexport function getClientParamsFromConnectionString(\n connectionString: string,\n options: TableServiceClientOptions = {}\n): ClientParamsFromConnectionString {\n if (connectionString.toLowerCase().indexOf(\"usedevelopmentstorage=true\") !== -1) {\n connectionString = DevelopmentConnectionString;\n options.allowInsecureConnection = true;\n }\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n return fromAccountConnectionString(extractedCreds, options);\n } else if (extractedCreds.kind === \"SASConnString\") {\n return {\n url: `${extractedCreds.url}?${extractedCreds.accountSas}`,\n options\n };\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n}\n\n/**\n * Extracts the parts of an Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n // Matching TableEndpoint in the Account connection string\n let tableEndpoint = getValueInConnString(connectionString, \"TableEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n tableEndpoint = tableEndpoint.endsWith(\"/\") ? tableEndpoint.slice(0, -1) : tableEndpoint;\n\n if (isAccountConnectionString(connectionString)) {\n return getAccountConnectionString(\n getValueInConnString(connectionString, \"AccountName\"),\n getValueInConnString(connectionString, \"AccountKey\"),\n getValueInConnString(connectionString, \"DefaultEndpointsProtocol\"),\n getValueInConnString(connectionString, \"EndpointSuffix\"),\n tableEndpoint\n );\n } else {\n return getSASConnectionString(connectionString, tableEndpoint);\n }\n}\n\n/**\n * Checks whether a connection string is an Account Connection string or not\n */\nfunction isAccountConnectionString(connectionString: string) {\n const lowercaseConnectionString = connectionString.toLowerCase();\n return (\n lowercaseConnectionString.search(\"defaultendpointsprotocol=\") !== -1 &&\n lowercaseConnectionString.search(\"accountkey=\") !== -1\n );\n}\n\nfunction getSASConnectionString(connectionString: string, tableEndpoint: string): ConnectionString {\n const accountName = getAccountNameFromUrl(tableEndpoint);\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n if (!tableEndpoint) {\n throw new Error(\"Invalid TableEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n } else if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: tableEndpoint, accountName, accountSas };\n}\n\nfunction getValueInConnString(\n connectionString: string,\n argument:\n | \"TableEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\"\n): string {\n const searchKey = argument.toLowerCase();\n const elements = connectionString.split(\";\").filter((e) => Boolean(e));\n for (const element of elements) {\n const trimmedElement = element.trim();\n const [elementKey, value] = getValuePair(trimmedElement);\n const key = elementKey.toLowerCase();\n if (key === searchKey) {\n return value;\n }\n }\n return \"\";\n}\n\nfunction getValuePair(kvp: string): string[] {\n // If the string is not in kvp format <key>=<valye> return an empty array\n if (!kvp || kvp.indexOf(\"=\") === -1) {\n return [];\n }\n // Get the substring before the first '='\n const key = kvp.substr(0, kvp.indexOf(\"=\"));\n // Get the substring after the first '='\n const value = kvp.substr(kvp.indexOf(\"=\") + 1);\n\n return [key, value];\n}\n\n/**\n * Extracts account name from the url\n * @param url - URL to extract the account name from\n * @returns The account name\n */\nfunction getAccountNameFromUrl(url: string): string {\n if (!url) {\n return url;\n }\n\n const parsedUrl = new URL(url);\n let accountName;\n\n const host = parsedUrl.host || \"\";\n const path = parsedUrl.pathname || \"\";\n const hostParts = host.split(\".\");\n const pathParts = path.split(\"/\");\n\n if (hostParts.length >= 1 && hostParts[1] === \"table\") {\n // `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n // Slicing off '/' at the end if exists\n url = url.endsWith(\"/\") ? url.slice(0, -1) : url;\n accountName = host.split(\".\")[0];\n } else if (pathParts.length >= 1) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = pathParts[1];\n } else {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n\n return accountName;\n}\n"]}
1
+ {"version":3,"file":"connectionString.js","sourceRoot":"","sources":["../../../src/utils/connectionString.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEpG,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,2BAA2B,GAC/B,sNAAsN,CAAC;AAEzN;;;;;;;;;GASG;AACH,MAAM,UAAU,mCAAmC,CACjD,gBAAwB,EACxB,UAAqC,EAAE;IAEvC,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,EAAE;QAC/E,gBAAgB,GAAG,2BAA2B,CAAC;QAC/C,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;KACxC;IACD,MAAM,cAAc,GAAG,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;IACtE,IAAI,cAAc,CAAC,IAAI,KAAK,mBAAmB,EAAE;QAC/C,OAAO,2BAA2B,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;KAC7D;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,EAAE;QAClD,OAAO;YACL,GAAG,EAAE,GAAG,cAAc,CAAC,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE;YACzD,OAAO;SACR,CAAC;KACH;SAAM;QACL,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;KACH;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,gBAAwB;IACnE,0DAA0D;IAC1D,IAAI,aAAa,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IAC5E,uCAAuC;IACvC,kGAAkG;IAClG,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAEzF,IAAI,yBAAyB,CAAC,gBAAgB,CAAC,EAAE;QAC/C,OAAO,0BAA0B,CAC/B,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,EACrD,oBAAoB,CAAC,gBAAgB,EAAE,YAAY,CAAC,EACpD,oBAAoB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,EAClE,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EACxD,aAAa,CACd,CAAC;KACH;SAAM;QACL,OAAO,sBAAsB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;KAChE;AACH,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,gBAAwB;IACzD,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACjE,OAAO,CACL,yBAAyB,CAAC,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACpE,yBAAyB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,gBAAwB,EAAE,aAAqB;IAC7E,MAAM,WAAW,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IACnF,IAAI,CAAC,aAAa,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;KAChF;SAAM,IAAI,CAAC,UAAU,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;KACxF;SAAM,IAAI,CAAC,WAAW,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;KAC9E;IAED,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,oBAAoB,CAC3B,gBAAwB,EACxB,QAM2B;IAE3B,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,yEAAyE;IACzE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;QACnC,OAAO,EAAE,CAAC;KACX;IACD,yCAAyC;IACzC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,wCAAwC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,GAAG,CAAC;KACZ;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,WAAW,CAAC;IAEhB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;QACrD,0EAA0E;QAC1E,uCAAuC;QACvC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACjD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAClC;SAAM,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;QAChC,iFAAiF;QACjF,2GAA2G;QAC3G,mCAAmC;QACnC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC5B;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IAED,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { ClientParamsFromConnectionString, ConnectionString } from \"./internalModels\";\nimport { fromAccountConnectionString, getAccountConnectionString } from \"./accountConnectionString\";\nimport { TableServiceClientOptions } from \"../models\";\nimport { URL } from \"./url\";\n\nconst DevelopmentConnectionString =\n \"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1\";\n\n/**\n * This function parses a connection string into a set of\n * parameters to pass to be passed to TableClientService,\n * depending on the connection string type these parameter would\n * contain:\n * - Account Connection String: A pipeline to sign the request with a SharedKey\n * - SAS Connection String: Attach a SAS token to the storage account url for authentication\n * @param connectionString - Connection string to parse\n * @param options - TableService client options\n */\nexport function getClientParamsFromConnectionString(\n connectionString: string,\n options: TableServiceClientOptions = {}\n): ClientParamsFromConnectionString {\n if (connectionString.toLowerCase().indexOf(\"usedevelopmentstorage=true\") !== -1) {\n connectionString = DevelopmentConnectionString;\n options.allowInsecureConnection = true;\n }\n const extractedCreds = extractConnectionStringParts(connectionString);\n if (extractedCreds.kind === \"AccountConnString\") {\n return fromAccountConnectionString(extractedCreds, options);\n } else if (extractedCreds.kind === \"SASConnString\") {\n return {\n url: `${extractedCreds.url}?${extractedCreds.accountSas}`,\n options\n };\n } else {\n throw new Error(\n \"Connection string must be either an Account connection string or a SAS connection string\"\n );\n }\n}\n\n/**\n * Extracts the parts of an Storage account connection string.\n *\n * @param connectionString - Connection string.\n * @returns String key value pairs of the storage account's url and credentials.\n */\nexport function extractConnectionStringParts(connectionString: string): ConnectionString {\n // Matching TableEndpoint in the Account connection string\n let tableEndpoint = getValueInConnString(connectionString, \"TableEndpoint\");\n // Slicing off '/' at the end if exists\n // (The methods that use `extractConnectionStringParts` expect the url to not have `/` at the end)\n tableEndpoint = tableEndpoint.endsWith(\"/\") ? tableEndpoint.slice(0, -1) : tableEndpoint;\n\n if (isAccountConnectionString(connectionString)) {\n return getAccountConnectionString(\n getValueInConnString(connectionString, \"AccountName\"),\n getValueInConnString(connectionString, \"AccountKey\"),\n getValueInConnString(connectionString, \"DefaultEndpointsProtocol\"),\n getValueInConnString(connectionString, \"EndpointSuffix\"),\n tableEndpoint\n );\n } else {\n return getSASConnectionString(connectionString, tableEndpoint);\n }\n}\n\n/**\n * Checks whether a connection string is an Account Connection string or not\n */\nfunction isAccountConnectionString(connectionString: string) {\n const lowercaseConnectionString = connectionString.toLowerCase();\n return (\n lowercaseConnectionString.search(\"defaultendpointsprotocol=\") !== -1 &&\n lowercaseConnectionString.search(\"accountkey=\") !== -1\n );\n}\n\nfunction getSASConnectionString(connectionString: string, tableEndpoint: string): ConnectionString {\n const accountName = getAccountNameFromUrl(tableEndpoint);\n const accountSas = getValueInConnString(connectionString, \"SharedAccessSignature\");\n if (!tableEndpoint) {\n throw new Error(\"Invalid TableEndpoint in the provided SAS Connection String\");\n } else if (!accountSas) {\n throw new Error(\"Invalid SharedAccessSignature in the provided SAS Connection String\");\n } else if (!accountName) {\n throw new Error(\"Invalid AccountName in the provided SAS Connection String\");\n }\n\n return { kind: \"SASConnString\", url: tableEndpoint, accountName, accountSas };\n}\n\nfunction getValueInConnString(\n connectionString: string,\n argument:\n | \"TableEndpoint\"\n | \"AccountName\"\n | \"AccountKey\"\n | \"DefaultEndpointsProtocol\"\n | \"EndpointSuffix\"\n | \"SharedAccessSignature\"\n): string {\n const searchKey = argument.toLowerCase();\n const elements = connectionString.split(\";\").filter((e) => Boolean(e));\n for (const element of elements) {\n const trimmedElement = element.trim();\n const [elementKey, value] = getValuePair(trimmedElement);\n const key = elementKey.toLowerCase();\n if (key === searchKey) {\n return value;\n }\n }\n return \"\";\n}\n\nfunction getValuePair(kvp: string): string[] {\n // If the string is not in kvp format <key>=<valye> return an empty array\n if (!kvp || kvp.indexOf(\"=\") === -1) {\n return [];\n }\n // Get the substring before the first '='\n const key = kvp.substr(0, kvp.indexOf(\"=\"));\n // Get the substring after the first '='\n const value = kvp.substr(kvp.indexOf(\"=\") + 1);\n\n return [key, value];\n}\n\n/**\n * Extracts account name from the url\n * @param url - URL to extract the account name from\n * @returns The account name\n */\nfunction getAccountNameFromUrl(url: string): string {\n if (!url) {\n return url;\n }\n\n const parsedUrl = new URL(url);\n let accountName;\n\n const host = parsedUrl.host || \"\";\n const path = parsedUrl.pathname || \"\";\n const hostParts = host.split(\".\");\n const pathParts = path.split(\"/\");\n\n if (hostParts.length >= 1 && hostParts[1] === \"table\") {\n // `${defaultEndpointsProtocol}://${accountName}.table.${endpointSuffix}`;\n // Slicing off '/' at the end if exists\n url = url.endsWith(\"/\") ? url.slice(0, -1) : url;\n accountName = host.split(\".\")[0];\n } else if (pathParts.length >= 1) {\n // IPv4/IPv6 address hosts... Example - http://192.0.0.10:10001/devstoreaccount1/\n // Single word domain without a [dot] in the endpoint... Example - http://localhost:10001/devstoreaccount1/\n // .getPath() -> /devstoreaccount1/\n accountName = pathParts[1];\n } else {\n throw new Error(\"Unable to extract accountName with provided information.\");\n }\n\n return accountName;\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- import { base64Encode, base64Decode } from "./bufferSerializer";
3
+ import { base64Decode, base64Encode } from "./bufferSerializer";
4
4
  /**
5
5
  * Encodes the nextPartitionKey and nextRowKey into a single continuation token
6
6
  */
@@ -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,oBAAoB,CAAC;AAOhE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,mBAA2B,EAAE,EAC7B,aAAqB,EAAE;IAEvB,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC;QACvC,gBAAgB;QAChB,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACzC,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;QAC/B,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACvC;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 { base64Encode, base64Decode } from \"./bufferSerializer\";\n\nexport interface 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 && !nextRowKey) {\n return undefined;\n }\n\n const continuationToken = JSON.stringify({\n nextPartitionKey,\n nextRowKey\n });\n\n return base64Encode(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
+ {"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,oBAAoB,CAAC;AAOhE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,mBAA2B,EAAE,EAC7B,aAAqB,EAAE;IAEvB,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,EAAE;QACpC,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC;QACvC,gBAAgB;QAChB,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACzC,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;QAC/B,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACvC;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\";\n\nexport interface 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 && !nextRowKey) {\n return undefined;\n }\n\n const continuationToken = JSON.stringify({\n nextPartitionKey,\n nextRowKey\n });\n\n return base64Encode(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"]}
@@ -0,0 +1,36 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ import { SpanStatusCode } from "@azure/core-tracing";
4
+ export function handleTableAlreadyExists(error, options = {}) {
5
+ var _a, _b, _c;
6
+ const responseError = getErrorResponse(error);
7
+ if (responseError &&
8
+ responseError.status === 409 &&
9
+ ((_a = responseError.parsedBody.odataError) === null || _a === void 0 ? void 0 : _a.code) === "TableAlreadyExists") {
10
+ (_b = options.logger) === null || _b === void 0 ? void 0 : _b.info(`Table ${options.tableName} already Exists`);
11
+ if (options.onResponse) {
12
+ options.onResponse(responseError, {});
13
+ }
14
+ }
15
+ else {
16
+ options === null || options === void 0 ? void 0 : options.span.setStatus({ code: SpanStatusCode.ERROR, message: (_c = error) === null || _c === void 0 ? void 0 : _c.message });
17
+ throw error;
18
+ }
19
+ }
20
+ function getErrorResponse(error) {
21
+ if (!isRestError(error)) {
22
+ return undefined;
23
+ }
24
+ const errorResponse = error.response;
25
+ if (!errorResponse || !isTableServiceErrorResponse(errorResponse.parsedBody)) {
26
+ return undefined;
27
+ }
28
+ return errorResponse;
29
+ }
30
+ function isRestError(error) {
31
+ return error.name === "RestError";
32
+ }
33
+ function isTableServiceErrorResponse(errorResponseBody) {
34
+ return Boolean(errorResponseBody === null || errorResponseBody === void 0 ? void 0 : errorResponseBody.odataError);
35
+ }
36
+ //# sourceMappingURL=errorHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHelpers.js","sourceRoot":"","sources":["../../../src/utils/errorHelpers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAKlC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkBrD,MAAM,UAAU,wBAAwB,CACtC,KAAc,EACd,UAAuF,EAAE;;IAEzF,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,IACE,aAAa;QACb,aAAa,CAAC,MAAM,KAAK,GAAG;QAC5B,CAAA,MAAA,aAAa,CAAC,UAAU,CAAC,UAAU,0CAAE,IAAI,MAAK,oBAAoB,EAClE;QACA,MAAA,OAAO,CAAC,MAAM,0CAAE,IAAI,CAAC,SAAS,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC;QAElE,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;SACvC;KACF;SAAM;QACL,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAC,KAAe,0CAAE,OAAO,EAAE,CAAC,CAAC;QAC5F,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,aAAa,GAA8B,KAAK,CAAC,QAAqC,CAAC;IAE7F,IAAI,CAAC,aAAa,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QAC5E,OAAO,SAAS,CAAC;KAClB;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,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,UAAU,CAAC,CAAC;AAChD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { OperationOptions, OperationRequest } from \"@azure/core-client\";\nimport { PipelineResponse, RestError } from \"@azure/core-rest-pipeline\";\nimport { AzureLogger } from \"@azure/logger\";\nimport { SpanStatusCode } from \"@azure/core-tracing\";\nimport { TableServiceError } from \"../generated\";\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; span?: any; 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 options?.span.setStatus({ code: SpanStatusCode.ERROR, message: (error as Error)?.message });\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 +1 @@
1
- {"version":3,"file":"internalModels.js","sourceRoot":"","sources":["../../../src/utils/internalModels.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n TableServiceClientOptions,\n TableEntity,\n CreateTableEntityResponse,\n DeleteTableEntityOptions,\n GetTableEntityOptions,\n GetTableEntityResponse,\n ListTableEntitiesOptions,\n UpdateMode,\n UpdateTableEntityOptions,\n TableEntityResult,\n TableItem,\n TransactionAction,\n TableTransactionResponse\n} from \"../models\";\nimport { Pipeline, PipelineRequest } from \"@azure/core-rest-pipeline\";\nimport { NamedKeyCredential } from \"@azure/core-auth\";\nimport { DeleteTableEntityResponse, UpdateEntityResponse, UpsertEntityResponse } from \"..\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { OperationOptions } from \"@azure/core-client\";\n\nexport interface ConnectionString {\n kind: \"AccountConnString\" | \"SASConnString\";\n url: string;\n accountName: string;\n accountKey?: any;\n accountSas?: string;\n}\n\n/**\n * Contains response data for the listTable operation.\n */\nexport type ListTableItemsResponse = Array<TableItem> & {\n /**\n * This header contains the continuation token value.\n */\n nextTableName?: string;\n};\n\n/**\n * Contains response data for the getEntity operation.\n */\nexport type ListEntitiesResponse<T extends object> = Array<TableEntityResult<T>> & {\n /**\n * Contains the continuation token value for the next page.\n */\n continuationToken?: string;\n};\n\nexport interface ClientParamsFromConnectionString {\n url: string;\n options?: TableServiceClientOptions;\n credential?: NamedKeyCredential;\n}\n\n/**\n * Transaction request builder\n */\nexport interface InnerTransactionRequest {\n /**\n * Transaction request body\n */\n body: string[];\n /**\n * Creates a pipeline to intercept sub-requests and\n * build the request body\n */\n createPipeline(): Pipeline;\n /**\n * Adds an operation to add to the transaction body\n * @param request - The operation to add\n */\n appendSubRequestToBody(request: PipelineRequest): void;\n /**\n * Gets the transaction request body\n */\n getHttpRequestBody(): string;\n}\n\nexport interface InternalTransactionClientOptions extends TableServiceClientOptions {\n innerTransactionRequest: InnerTransactionRequest;\n}\n\n/**\n * Describes the shape of a TableClient\n */\nexport interface TableClientLike {\n /**\n * Represents a pipeline for making a HTTP request to a URL.\n */\n pipeline: Pipeline;\n /**\n * Name of the table to perform operations on.\n */\n readonly tableName: string;\n /**\n * Creates the current table.\n * @param options - The options parameters.\n */\n createTable(options?: OperationOptions): Promise<void>;\n /**\n * Submits a Transaction which is composed of a set of actions.\n * @param actions - tuple that contains the action to perform, and the entity to perform the action with\n */\n submitTransaction(actions: TransactionAction[]): Promise<TableTransactionResponse>;\n /**\n * Insert entity in the table.\n * @param entity - The properties for the table entity.\n * @param options - The options parameters.\n */\n createEntity<T extends object>(\n entity: TableEntity<T>,\n options?: OperationOptions\n ): Promise<CreateTableEntityResponse>;\n /**\n * Permanently deletes the current table with all of its entities.\n * @param options - The options parameters.\n */\n deleteTable(options?: OperationOptions): Promise<void>;\n /**\n * Permanently deletes the current table if it exists in the account.\n * @param options - The options parameters.\n */\n deleteEntity(\n partitionKey: string,\n rowKey: string,\n options?: DeleteTableEntityOptions\n ): Promise<DeleteTableEntityResponse>;\n /**\n * Returns a single entity in the table.\n * @param partitionKey - The partition key of the entity.\n * @param rowKey - The row key of the entity.\n * @param options - The options parameters.\n */\n getEntity<T extends object>(\n partitionKey: string,\n rowKey: string,\n options?: GetTableEntityOptions\n ): Promise<GetTableEntityResponse<T>>;\n /**\n * Queries entities in a table.\n * @param tableName - The name of the table.\n * @param options - The options parameters.\n */\n listEntities<T extends object>(\n options?: ListTableEntitiesOptions\n ): PagedAsyncIterableIterator<T, ListEntitiesResponse<T>>;\n /**\n * Update an entity in the table.\n * @param entity - The properties of the entity to be updated.\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 updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: UpdateTableEntityOptions\n ): Promise<UpdateEntityResponse>;\n /**\n * Upsert an entity in the table.\n * @param tableName - The name of the table.\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 upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: OperationOptions\n ): Promise<UpsertEntityResponse>;\n}\n"]}
1
+ {"version":3,"file":"internalModels.js","sourceRoot":"","sources":["../../../src/utils/internalModels.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n CreateTableEntityResponse,\n DeleteTableEntityOptions,\n GetTableEntityOptions,\n GetTableEntityResponse,\n ListTableEntitiesOptions,\n TableEntity,\n TableEntityResult,\n TableItem,\n TableServiceClientOptions,\n TableTransactionResponse,\n TransactionAction,\n UpdateMode,\n UpdateTableEntityOptions\n} from \"../models\";\nimport { DeleteTableEntityResponse, UpdateEntityResponse, UpsertEntityResponse } from \"..\";\nimport { Pipeline, PipelineRequest } from \"@azure/core-rest-pipeline\";\nimport { NamedKeyCredential } from \"@azure/core-auth\";\nimport { OperationOptions } from \"@azure/core-client\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\n\nexport interface ConnectionString {\n kind: \"AccountConnString\" | \"SASConnString\";\n url: string;\n accountName: string;\n accountKey?: any;\n accountSas?: string;\n}\n\n/**\n * Contains response data for the listTable operation.\n */\nexport type ListTableItemsResponse = Array<TableItem> & {\n /**\n * This header contains the continuation token value.\n */\n nextTableName?: string;\n};\n\n/**\n * Contains response data for the getEntity operation.\n */\nexport type ListEntitiesResponse<T extends object> = Array<TableEntityResult<T>> & {\n /**\n * Contains the continuation token value for the next page.\n */\n continuationToken?: string;\n};\n\nexport interface ClientParamsFromConnectionString {\n url: string;\n options?: TableServiceClientOptions;\n credential?: NamedKeyCredential;\n}\n\n/**\n * Transaction request builder\n */\nexport interface InnerTransactionRequest {\n /**\n * Transaction request body\n */\n body: string[];\n /**\n * Creates a pipeline to intercept sub-requests and\n * build the request body\n */\n createPipeline(): Pipeline;\n /**\n * Adds an operation to add to the transaction body\n * @param request - The operation to add\n */\n appendSubRequestToBody(request: PipelineRequest): void;\n /**\n * Gets the transaction request body\n */\n getHttpRequestBody(): string;\n}\n\nexport interface InternalTransactionClientOptions extends TableServiceClientOptions {\n innerTransactionRequest: InnerTransactionRequest;\n}\n\n/**\n * Describes the shape of a TableClient\n */\nexport interface TableClientLike {\n /**\n * Represents a pipeline for making a HTTP request to a URL.\n */\n pipeline: Pipeline;\n /**\n * Name of the table to perform operations on.\n */\n readonly tableName: string;\n /**\n * Creates the current table.\n * @param options - The options parameters.\n */\n createTable(options?: OperationOptions): Promise<void>;\n /**\n * Submits a Transaction which is composed of a set of actions.\n * @param actions - tuple that contains the action to perform, and the entity to perform the action with\n */\n submitTransaction(actions: TransactionAction[]): Promise<TableTransactionResponse>;\n /**\n * Insert entity in the table.\n * @param entity - The properties for the table entity.\n * @param options - The options parameters.\n */\n createEntity<T extends object>(\n entity: TableEntity<T>,\n options?: OperationOptions\n ): Promise<CreateTableEntityResponse>;\n /**\n * Permanently deletes the current table with all of its entities.\n * @param options - The options parameters.\n */\n deleteTable(options?: OperationOptions): Promise<void>;\n /**\n * Permanently deletes the current table if it exists in the account.\n * @param options - The options parameters.\n */\n deleteEntity(\n partitionKey: string,\n rowKey: string,\n options?: DeleteTableEntityOptions\n ): Promise<DeleteTableEntityResponse>;\n /**\n * Returns a single entity in the table.\n * @param partitionKey - The partition key of the entity.\n * @param rowKey - The row key of the entity.\n * @param options - The options parameters.\n */\n getEntity<T extends object>(\n partitionKey: string,\n rowKey: string,\n options?: GetTableEntityOptions\n ): Promise<GetTableEntityResponse<T>>;\n /**\n * Queries entities in a table.\n * @param tableName - The name of the table.\n * @param options - The options parameters.\n */\n listEntities<T extends object>(\n options?: ListTableEntitiesOptions\n ): PagedAsyncIterableIterator<T, ListEntitiesResponse<T>>;\n /**\n * Update an entity in the table.\n * @param entity - The properties of the entity to be updated.\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 updateEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: UpdateTableEntityOptions\n ): Promise<UpdateEntityResponse>;\n /**\n * Upsert an entity in the table.\n * @param tableName - The name of the table.\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 upsertEntity<T extends object>(\n entity: TableEntity<T>,\n mode: UpdateMode,\n options?: OperationOptions\n ): Promise<UpsertEntityResponse>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"isCredential.js","sourceRoot":"","sources":["../../../src/utils/isCredential.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EAIlB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,YAAY,CAC1B,UAAmB;IAEnB,OAAO,CACL,eAAe,CAAC,UAAU,CAAC,IAAI,oBAAoB,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,CACjG,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n isNamedKeyCredential,\n isSASCredential,\n isTokenCredential,\n NamedKeyCredential,\n SASCredential,\n TokenCredential\n} from \"@azure/core-auth\";\n\nexport function isCredential(\n credential: unknown\n): credential is NamedKeyCredential | SASCredential | TokenCredential {\n return (\n isSASCredential(credential) || isNamedKeyCredential(credential) || isTokenCredential(credential)\n );\n}\n"]}
1
+ {"version":3,"file":"isCredential.js","sourceRoot":"","sources":["../../../src/utils/isCredential.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAIL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,YAAY,CAC1B,UAAmB;IAEnB,OAAO,CACL,eAAe,CAAC,UAAU,CAAC,IAAI,oBAAoB,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,UAAU,CAAC,CACjG,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n NamedKeyCredential,\n SASCredential,\n TokenCredential,\n isNamedKeyCredential,\n isSASCredential,\n isTokenCredential\n} from \"@azure/core-auth\";\n\nexport function isCredential(\n credential: unknown\n): credential is NamedKeyCredential | SASCredential | TokenCredential {\n return (\n isSASCredential(credential) || isNamedKeyCredential(credential) || isTokenCredential(credential)\n );\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure/data-tables",
3
- "version": "13.0.1-alpha.20211112.1",
3
+ "version": "13.0.1-alpha.20211217.1",
4
4
  "description": "An isomorphic client library for the Azure Tables service.",
5
5
  "sdk-type": "client",
6
6
  "main": "dist/index.js",
@@ -37,7 +37,7 @@
37
37
  "format": "prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"",
38
38
  "generate:client": "autorest --typescript ./swagger/README.md",
39
39
  "integration-test:browser": "karma start --single-run",
40
- "integration-test:node": "nyc mocha -r esm --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 5000000 --full-trace \"dist-esm/test/{,!(browser)/**/}*.spec.js\"",
40
+ "integration-test:node": "nyc mocha -r esm --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 5000000 --full-trace --exclude \"dist-esm/test/**/browser/**/*.spec.js\" \"dist-esm/test/**/*.spec.js\"",
41
41
  "integration-test": "npm run integration-test:node && npm run integration-test:browser",
42
42
  "lint:fix": "eslint package.json api-extractor.json src test --ext .ts --fix --fix-type [problem,suggestion]",
43
43
  "lint": "eslint package.json api-extractor.json src test --ext .ts",
@@ -46,9 +46,8 @@
46
46
  "test:node": "npm run build:test && npm run unit-test:node && npm run integration-test:node",
47
47
  "test": "npm run clean && npm run build:test && npm run unit-test",
48
48
  "unit-test:browser": "karma start --single-run",
49
- "unit-test:node": "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 1200000 --full-trace \"test/{,!(browser)/**/}*.spec.ts\"",
50
- "unit-test": "npm run unit-test:node && npm run unit-test:browser",
51
- "docs": "typedoc --excludePrivate --excludeNotExported --excludeExternals --stripInternal --mode file --out ./dist/docs ./src"
49
+ "unit-test:node": "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 1200000 --full-trace --exclude \"test/**/browser/**/*.spec.ts\" \"test/**/*.spec.ts\"",
50
+ "unit-test": "npm run unit-test:node && npm run unit-test:browser"
52
51
  },
53
52
  "files": [
54
53
  "dist/",
@@ -118,9 +117,9 @@
118
117
  "karma-mocha-reporter": "^2.2.5",
119
118
  "karma-sourcemap-loader": "^0.3.8",
120
119
  "mocha": "^7.1.1",
121
- "mocha-junit-reporter": "^1.18.0",
120
+ "mocha-junit-reporter": "^2.0.0",
122
121
  "prettier": "^1.16.4",
123
- "nyc": "^14.0.0",
122
+ "nyc": "^15.0.0",
124
123
  "rimraf": "^3.0.0",
125
124
  "rollup": "^1.16.3",
126
125
  "rollup-plugin-sourcemaps": "^0.4.2",
@@ -134,8 +133,7 @@
134
133
  "@azure/test-utils": ">=1.0.0-alpha <1.0.0-alphb",
135
134
  "rollup-plugin-shim": "^1.0.0",
136
135
  "@rollup/plugin-inject": "^4.0.0",
137
- "ts-node": "^10.0.0",
138
- "typedoc": "0.15.2"
136
+ "ts-node": "^10.0.0"
139
137
  },
140
138
  "//sampleConfiguration": {
141
139
  "productName": "Azure Data Tables",
@@ -534,7 +534,7 @@ export declare class TableClient {
534
534
  * // calling create table will create the table used
535
535
  * // to instantiate the TableClient.
536
536
  * // Note: If the table already
537
- * // exists this function doesn't fail.
537
+ * // exists this function doesn't throw.
538
538
  * await client.createTable();
539
539
  * ```
540
540
  */
@@ -994,11 +994,12 @@ export declare interface TableSasSignatureValues {
994
994
  */
995
995
  startsOn?: Date;
996
996
  /**
997
- * Optional only when identifier is provided. The time after which the SAS will no longer work.
997
+ * Optional. If identifier is not provided has a default value of one hour from the time the token is generated.
998
+ * The time after which the SAS will no longer work.
998
999
  */
999
1000
  expiresOn?: Date;
1000
1001
  /**
1001
- * Optional only when identifier is provided.
1002
+ * Optional. If identifier is not provided has a default value of "read"
1002
1003
  * Please refer to {@link TableSasPermissions} depending on the resource
1003
1004
  * being accessed for help constructing the permissions string.
1004
1005
  */
@@ -575,7 +575,7 @@ export declare class TableClient {
575
575
  * // calling create table will create the table used
576
576
  * // to instantiate the TableClient.
577
577
  * // Note: If the table already
578
- * // exists this function doesn't fail.
578
+ * // exists this function doesn't throw.
579
579
  * await client.createTable();
580
580
  * ```
581
581
  */
@@ -1051,11 +1051,12 @@ export declare interface TableSasSignatureValues {
1051
1051
  */
1052
1052
  startsOn?: Date;
1053
1053
  /**
1054
- * Optional only when identifier is provided. The time after which the SAS will no longer work.
1054
+ * Optional. If identifier is not provided has a default value of one hour from the time the token is generated.
1055
+ * The time after which the SAS will no longer work.
1055
1056
  */
1056
1057
  expiresOn?: Date;
1057
1058
  /**
1058
- * Optional only when identifier is provided.
1059
+ * Optional. If identifier is not provided has a default value of "read"
1059
1060
  * Please refer to {@link TableSasPermissions} depending on the resource
1060
1061
  * being accessed for help constructing the permissions string.
1061
1062
  */