@azure/core-lro 3.0.0-beta.1 → 3.0.0

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 (147) hide show
  1. package/dist/browser/http/models.d.ts +2 -2
  2. package/dist/browser/http/models.d.ts.map +1 -1
  3. package/dist/browser/http/models.js.map +1 -1
  4. package/dist/browser/http/operation.d.ts +11 -12
  5. package/dist/browser/http/operation.d.ts.map +1 -1
  6. package/dist/browser/http/operation.js +22 -16
  7. package/dist/browser/http/operation.js.map +1 -1
  8. package/dist/browser/http/poller.d.ts +2 -2
  9. package/dist/browser/http/poller.d.ts.map +1 -1
  10. package/dist/browser/http/poller.js +1 -15
  11. package/dist/browser/http/poller.js.map +1 -1
  12. package/dist/browser/index.d.ts +1 -1
  13. package/dist/browser/index.d.ts.map +1 -1
  14. package/dist/browser/index.js.map +1 -1
  15. package/dist/browser/poller/models.d.ts +15 -39
  16. package/dist/browser/poller/models.d.ts.map +1 -1
  17. package/dist/browser/poller/models.js.map +1 -1
  18. package/dist/browser/poller/operation.d.ts +12 -14
  19. package/dist/browser/poller/operation.d.ts.map +1 -1
  20. package/dist/browser/poller/operation.js +25 -29
  21. package/dist/browser/poller/operation.js.map +1 -1
  22. package/dist/browser/poller/poller.d.ts +1 -1
  23. package/dist/browser/poller/poller.d.ts.map +1 -1
  24. package/dist/browser/poller/poller.js +9 -34
  25. package/dist/browser/poller/poller.js.map +1 -1
  26. package/dist/commonjs/http/models.d.ts +2 -2
  27. package/dist/commonjs/http/models.d.ts.map +1 -1
  28. package/dist/commonjs/http/models.js.map +1 -1
  29. package/dist/commonjs/http/operation.d.ts +11 -12
  30. package/dist/commonjs/http/operation.d.ts.map +1 -1
  31. package/dist/commonjs/http/operation.js +22 -16
  32. package/dist/commonjs/http/operation.js.map +1 -1
  33. package/dist/commonjs/http/poller.d.ts +2 -2
  34. package/dist/commonjs/http/poller.d.ts.map +1 -1
  35. package/dist/commonjs/http/poller.js +1 -15
  36. package/dist/commonjs/http/poller.js.map +1 -1
  37. package/dist/commonjs/index.d.ts +1 -1
  38. package/dist/commonjs/index.d.ts.map +1 -1
  39. package/dist/commonjs/index.js.map +1 -1
  40. package/dist/commonjs/poller/models.d.ts +15 -39
  41. package/dist/commonjs/poller/models.d.ts.map +1 -1
  42. package/dist/commonjs/poller/models.js.map +1 -1
  43. package/dist/commonjs/poller/operation.d.ts +12 -14
  44. package/dist/commonjs/poller/operation.d.ts.map +1 -1
  45. package/dist/commonjs/poller/operation.js +25 -29
  46. package/dist/commonjs/poller/operation.js.map +1 -1
  47. package/dist/commonjs/poller/poller.d.ts +1 -1
  48. package/dist/commonjs/poller/poller.d.ts.map +1 -1
  49. package/dist/commonjs/poller/poller.js +9 -34
  50. package/dist/commonjs/poller/poller.js.map +1 -1
  51. package/dist/commonjs/tsdoc-metadata.json +1 -1
  52. package/dist/core-lro.d.ts +28 -32
  53. package/dist/esm/http/models.d.ts +2 -2
  54. package/dist/esm/http/models.d.ts.map +1 -1
  55. package/dist/esm/http/models.js.map +1 -1
  56. package/dist/esm/http/operation.d.ts +11 -12
  57. package/dist/esm/http/operation.d.ts.map +1 -1
  58. package/dist/esm/http/operation.js +22 -16
  59. package/dist/esm/http/operation.js.map +1 -1
  60. package/dist/esm/http/poller.d.ts +2 -2
  61. package/dist/esm/http/poller.d.ts.map +1 -1
  62. package/dist/esm/http/poller.js +1 -15
  63. package/dist/esm/http/poller.js.map +1 -1
  64. package/dist/esm/index.d.ts +1 -1
  65. package/dist/esm/index.d.ts.map +1 -1
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/esm/poller/models.d.ts +15 -39
  68. package/dist/esm/poller/models.d.ts.map +1 -1
  69. package/dist/esm/poller/models.js.map +1 -1
  70. package/dist/esm/poller/operation.d.ts +12 -14
  71. package/dist/esm/poller/operation.d.ts.map +1 -1
  72. package/dist/esm/poller/operation.js +25 -29
  73. package/dist/esm/poller/operation.js.map +1 -1
  74. package/dist/esm/poller/poller.d.ts +1 -1
  75. package/dist/esm/poller/poller.d.ts.map +1 -1
  76. package/dist/esm/poller/poller.js +9 -34
  77. package/dist/esm/poller/poller.js.map +1 -1
  78. package/dist/react-native/http/models.d.ts +2 -2
  79. package/dist/react-native/http/models.d.ts.map +1 -1
  80. package/dist/react-native/http/models.js.map +1 -1
  81. package/dist/react-native/http/operation.d.ts +11 -12
  82. package/dist/react-native/http/operation.d.ts.map +1 -1
  83. package/dist/react-native/http/operation.js +22 -16
  84. package/dist/react-native/http/operation.js.map +1 -1
  85. package/dist/react-native/http/poller.d.ts +2 -2
  86. package/dist/react-native/http/poller.d.ts.map +1 -1
  87. package/dist/react-native/http/poller.js +1 -15
  88. package/dist/react-native/http/poller.js.map +1 -1
  89. package/dist/react-native/index.d.ts +1 -1
  90. package/dist/react-native/index.d.ts.map +1 -1
  91. package/dist/react-native/index.js.map +1 -1
  92. package/dist/react-native/poller/models.d.ts +15 -39
  93. package/dist/react-native/poller/models.d.ts.map +1 -1
  94. package/dist/react-native/poller/models.js.map +1 -1
  95. package/dist/react-native/poller/operation.d.ts +12 -14
  96. package/dist/react-native/poller/operation.d.ts.map +1 -1
  97. package/dist/react-native/poller/operation.js +25 -29
  98. package/dist/react-native/poller/operation.js.map +1 -1
  99. package/dist/react-native/poller/poller.d.ts +1 -1
  100. package/dist/react-native/poller/poller.d.ts.map +1 -1
  101. package/dist/react-native/poller/poller.js +9 -34
  102. package/dist/react-native/poller/poller.js.map +1 -1
  103. package/package.json +26 -20
  104. package/.rush/temp/operation/build/state.json +0 -3
  105. package/.rush/temp/operation/build_samples/all.log +0 -2
  106. package/.rush/temp/operation/build_samples/state.json +0 -3
  107. package/.rush/temp/shrinkwrap-deps.json +0 -510
  108. package/.tshy/browser.json +0 -12
  109. package/.tshy/build.json +0 -9
  110. package/.tshy/commonjs.json +0 -14
  111. package/.tshy/esm.json +0 -12
  112. package/.tshy/react-native.json +0 -12
  113. package/CHANGELOG.md +0 -179
  114. package/api-extractor.json +0 -31
  115. package/config/rush-project.json +0 -3
  116. package/core-lro.build.cache.error.log +0 -1
  117. package/core-lro.build_samples.cache.log +0 -1
  118. package/core-lro.build_samples.log +0 -2
  119. package/core-lro.pack.cache.log +0 -1
  120. package/core-lro.pack.log +0 -1
  121. package/docs/LROEngine.md +0 -158
  122. package/review/core-lro.api.md +0 -106
  123. package/samples/README.md +0 -284
  124. package/samples/typescript/samplesClient.ts +0 -254
  125. package/src/http/models.ts +0 -119
  126. package/src/http/operation.ts +0 -343
  127. package/src/http/poller.ts +0 -83
  128. package/src/index.ts +0 -21
  129. package/src/logger.ts +0 -10
  130. package/src/poller/constants.ts +0 -11
  131. package/src/poller/models.ts +0 -251
  132. package/src/poller/operation.ts +0 -315
  133. package/src/poller/poller.ts +0 -250
  134. package/temp/core-lro.api.json +0 -1892
  135. package/temp/core-lro.api.md +0 -106
  136. package/test/getYieldedValue.ts +0 -16
  137. package/test/lro.spec.ts +0 -3141
  138. package/test/matrix.ts +0 -46
  139. package/test/utils/coreRestPipelineLro.ts +0 -25
  140. package/test/utils/router.ts +0 -231
  141. package/test/utils/utils.ts +0 -144
  142. package/tsconfig.browser.config.json +0 -10
  143. package/tsconfig.json +0 -13
  144. package/tsdoc.json +0 -4
  145. package/tslint.json +0 -47
  146. package/vitest.browser.config.ts +0 -34
  147. package/vitest.config.ts +0 -31
@@ -59,7 +59,7 @@ export interface OperationResponse<T = unknown, TRequest extends RawRequest = Ra
59
59
  /**
60
60
  * Description of a long running operation.
61
61
  */
62
- export interface LongRunningOperation<T = unknown> {
62
+ export interface RunningOperation<T = unknown> {
63
63
  /**
64
64
  * A function that can be used to send initial request to the service.
65
65
  */
@@ -91,7 +91,7 @@ export interface CreateHttpPollerOptions<TResult, TState> {
91
91
  /**
92
92
  * A function to process the result of the LRO.
93
93
  */
94
- processResult?: (result: unknown, state: TState) => TResult | Promise<TResult>;
94
+ processResult?: (result: unknown, state: TState) => Promise<TResult>;
95
95
  /**
96
96
  * A function to process the state of the LRO.
97
97
  */
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/http/models.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,UAAU,GAAG,cAAc,CAAC;AAE3F;;GAEG;AAEH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,UAAU,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1B,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU;IACnE,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,OAAO,EAAE,QAAQ,CAAC;IAClB,iJAAiJ;IACjJ,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;KAC9B,CAAC;IACF,+BAA+B;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,SAAS,UAAU,GAAG,UAAU;IACtF,6BAA6B;IAC7B,YAAY,EAAE,CAAC,CAAC;IAChB,uBAAuB;IACvB,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C;;OAEG;IACH,kBAAkB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D;;OAEG;IACH,eAAe,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,eAAe,CAAA;KAAE,KACxC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,OAAO,EAAE,MAAM;IACtD;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/E;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnE;;;OAGG;IACH,qBAAqB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/http/models.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,UAAU,GAAG,cAAc,CAAC;AAE3F;;GAEG;AAEH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iDAAiD;IACjD,UAAU,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1B,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU;IACnE,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,OAAO,EAAE,QAAQ,CAAC;IAClB,iJAAiJ;IACjJ,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;KAC9B,CAAC;IACF,+BAA+B;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,SAAS,UAAU,GAAG,UAAU;IACtF,6BAA6B;IAC7B,YAAY,EAAE,CAAC,CAAC;IAChB,uBAAuB;IACvB,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C;;OAEG;IACH,kBAAkB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D;;OAEG;IACH,eAAe,EAAE,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,eAAe,CAAA;KAAE,KACxC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,MAAM,CAAC;AAElF;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,OAAO,EAAE,MAAM;IACtD;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACnE;;;OAGG;IACH,qBAAqB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/http/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { LroError } from \"../poller/models.js\";\n\n/**\n * The potential location of the result of the LRO if specified by the LRO extension in the swagger.\n */\nexport type ResourceLocationConfig = \"azure-async-operation\" | \"location\" | \"original-uri\";\n\n/**\n * The type of a LRO response body. This is just a convenience type for checking the status of the operation.\n */\n\nexport interface ResponseBody extends Record<string, unknown> {\n /** The status of the operation. */\n status?: unknown;\n /** The state of the provisioning process */\n provisioningState?: unknown;\n /** The properties of the provisioning process */\n properties?: { provisioningState?: unknown } & Record<string, unknown>;\n /** The error if the operation failed */\n error?: Partial<LroError>;\n /** The location of the created resource */\n resourceLocation?: string;\n}\n\n/**\n * Simple type of the raw request.\n */\nexport interface RawRequest {\n /** The HTTP request method */\n method: string;\n /** The request path */\n url: string;\n /** The request body */\n body?: unknown;\n}\n\n/**\n * Simple type of the raw response.\n */\nexport interface RawResponse<TRequest extends RawRequest = RawRequest> {\n /** The HTTP status code */\n statusCode: number;\n /** The raw request that was sent to the server */\n request: TRequest;\n /** A HttpHeaders collection in the response represented as a simple JSON object where all header names have been normalized to be lower-case. */\n headers: {\n [headerName: string]: string;\n };\n /** The parsed response body */\n body?: unknown;\n}\n\n/**\n * The type of the response of a LRO.\n */\nexport interface OperationResponse<T = unknown, TRequest extends RawRequest = RawRequest> {\n /** The flattened response */\n flatResponse: T;\n /** The raw response */\n rawResponse: RawResponse<TRequest>;\n}\n\n/**\n * Description of a long running operation.\n */\nexport interface LongRunningOperation<T = unknown> {\n /**\n * A function that can be used to send initial request to the service.\n */\n sendInitialRequest: () => Promise<OperationResponse<unknown>>;\n /**\n * A function that can be used to poll for the current status of a long running operation.\n */\n sendPollRequest: (\n path: string,\n options?: { abortSignal?: AbortSignalLike },\n ) => Promise<OperationResponse<T>>;\n}\n\nexport type HttpOperationMode = \"OperationLocation\" | \"ResourceLocation\" | \"Body\";\n\n/**\n * Options for `createPoller`.\n */\nexport interface CreateHttpPollerOptions<TResult, TState> {\n /**\n * Defines how much time the poller is going to wait before making a new request to the service.\n */\n intervalInMs?: number;\n /**\n * A serialized poller which can be used to resume an existing paused Long-Running-Operation.\n */\n restoreFrom?: string;\n /**\n * The potential location of the result of the LRO if specified by the LRO extension in the swagger.\n */\n resourceLocationConfig?: ResourceLocationConfig;\n /**\n * A function to process the result of the LRO.\n */\n processResult?: (result: unknown, state: TState) => TResult | Promise<TResult>;\n /**\n * A function to process the state of the LRO.\n */\n updateState?: (state: TState, response: OperationResponse) => void;\n /**\n * A function to be called each time the operation location is updated by the\n * service.\n */\n withOperationLocation?: (operationLocation: string) => void;\n /**\n * Control whether to throw an exception if the operation failed or was canceled.\n */\n resolveOnUnsuccessful?: boolean;\n}\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/http/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { LroError } from \"../poller/models.js\";\n\n/**\n * The potential location of the result of the LRO if specified by the LRO extension in the swagger.\n */\nexport type ResourceLocationConfig = \"azure-async-operation\" | \"location\" | \"original-uri\";\n\n/**\n * The type of a LRO response body. This is just a convenience type for checking the status of the operation.\n */\n\nexport interface ResponseBody extends Record<string, unknown> {\n /** The status of the operation. */\n status?: unknown;\n /** The state of the provisioning process */\n provisioningState?: unknown;\n /** The properties of the provisioning process */\n properties?: { provisioningState?: unknown } & Record<string, unknown>;\n /** The error if the operation failed */\n error?: Partial<LroError>;\n /** The location of the created resource */\n resourceLocation?: string;\n}\n\n/**\n * Simple type of the raw request.\n */\nexport interface RawRequest {\n /** The HTTP request method */\n method: string;\n /** The request path */\n url: string;\n /** The request body */\n body?: unknown;\n}\n\n/**\n * Simple type of the raw response.\n */\nexport interface RawResponse<TRequest extends RawRequest = RawRequest> {\n /** The HTTP status code */\n statusCode: number;\n /** The raw request that was sent to the server */\n request: TRequest;\n /** A HttpHeaders collection in the response represented as a simple JSON object where all header names have been normalized to be lower-case. */\n headers: {\n [headerName: string]: string;\n };\n /** The parsed response body */\n body?: unknown;\n}\n\n/**\n * The type of the response of a LRO.\n */\nexport interface OperationResponse<T = unknown, TRequest extends RawRequest = RawRequest> {\n /** The flattened response */\n flatResponse: T;\n /** The raw response */\n rawResponse: RawResponse<TRequest>;\n}\n\n/**\n * Description of a long running operation.\n */\nexport interface RunningOperation<T = unknown> {\n /**\n * A function that can be used to send initial request to the service.\n */\n sendInitialRequest: () => Promise<OperationResponse<unknown>>;\n /**\n * A function that can be used to poll for the current status of a long running operation.\n */\n sendPollRequest: (\n path: string,\n options?: { abortSignal?: AbortSignalLike },\n ) => Promise<OperationResponse<T>>;\n}\n\nexport type HttpOperationMode = \"OperationLocation\" | \"ResourceLocation\" | \"Body\";\n\n/**\n * Options for `createPoller`.\n */\nexport interface CreateHttpPollerOptions<TResult, TState> {\n /**\n * Defines how much time the poller is going to wait before making a new request to the service.\n */\n intervalInMs?: number;\n /**\n * A serialized poller which can be used to resume an existing paused Long-Running-Operation.\n */\n restoreFrom?: string;\n /**\n * The potential location of the result of the LRO if specified by the LRO extension in the swagger.\n */\n resourceLocationConfig?: ResourceLocationConfig;\n /**\n * A function to process the result of the LRO.\n */\n processResult?: (result: unknown, state: TState) => Promise<TResult>;\n /**\n * A function to process the state of the LRO.\n */\n updateState?: (state: TState, response: OperationResponse) => void;\n /**\n * A function to be called each time the operation location is updated by the\n * service.\n */\n withOperationLocation?: (operationLocation: string) => void;\n /**\n * Control whether to throw an exception if the operation failed or was canceled.\n */\n resolveOnUnsuccessful?: boolean;\n}\n"]}
@@ -1,32 +1,31 @@
1
- import { HttpOperationMode, LongRunningOperation, ResourceLocationConfig, OperationResponse, RawResponse } from "./models.js";
2
- import { LroError, OperationConfig, OperationStatus, RestorableOperationState, StateProxy } from "../poller/models.js";
1
+ import { HttpOperationMode, RunningOperation, ResourceLocationConfig, OperationResponse, RawResponse } from "./models.js";
2
+ import { LroError, OperationConfig, OperationState, OperationStatus, RestorableOperationState } from "../poller/models.js";
3
3
  import { AbortSignalLike } from "@azure/abort-controller";
4
4
  export declare function inferLroMode(rawResponse: RawResponse, resourceLocationConfig?: ResourceLocationConfig): (OperationConfig & {
5
5
  mode: HttpOperationMode;
6
6
  }) | undefined;
7
7
  export declare function parseRetryAfter<T>({ rawResponse }: OperationResponse<T>): number | undefined;
8
8
  export declare function getErrorFromResponse<T>(response: OperationResponse<T>): LroError | undefined;
9
- export declare function getStatusFromInitialResponse<TState>(inputs: {
9
+ export declare function getStatusFromInitialResponse<TResult, TState extends OperationState<TResult>>(inputs: {
10
10
  response: OperationResponse<unknown>;
11
- state: RestorableOperationState<TState>;
11
+ state: RestorableOperationState<TResult, TState>;
12
12
  operationLocation?: string;
13
13
  }): OperationStatus;
14
- export declare function getOperationLocation<TState>({ rawResponse }: OperationResponse, state: RestorableOperationState<TState>): string | undefined;
15
- export declare function getOperationStatus<TState>({ rawResponse }: OperationResponse, state: RestorableOperationState<TState>): OperationStatus;
16
- export declare function getResourceLocation<TState>(res: OperationResponse, state: RestorableOperationState<TState>): string | undefined;
14
+ export declare function getOperationLocation<TResult, TState extends OperationState<TResult>>({ rawResponse }: OperationResponse, state: RestorableOperationState<TResult, TState>): string | undefined;
15
+ export declare function getOperationStatus<TResult, TState extends OperationState<TResult>>({ rawResponse }: OperationResponse, state: RestorableOperationState<TResult, TState>): OperationStatus;
16
+ export declare function getResourceLocation<TResult, TState extends OperationState<TResult>>(res: OperationResponse, state: RestorableOperationState<TResult, TState>): string | undefined;
17
17
  export declare function isOperationError(e: Error): boolean;
18
18
  /** Polls the long-running operation. */
19
- export declare function pollHttpOperation<TState, TResult>(inputs: {
20
- lro: LongRunningOperation;
21
- stateProxy: StateProxy<TState, TResult>;
22
- processResult?: (result: unknown, state: TState) => TResult;
19
+ export declare function pollHttpOperation<TState extends OperationState<TResult>, TResult>(inputs: {
20
+ lro: RunningOperation;
21
+ processResult?: (result: unknown, state: TState) => Promise<TResult>;
23
22
  updateState?: (state: TState, lastResponse: OperationResponse) => void;
24
23
  isDone?: (lastResponse: OperationResponse, state: TState) => boolean;
25
24
  setDelay: (intervalInMs: number) => void;
26
25
  options?: {
27
26
  abortSignal?: AbortSignalLike;
28
27
  };
29
- state: RestorableOperationState<TState>;
28
+ state: RestorableOperationState<TResult, TState>;
30
29
  setErrorAsResult: boolean;
31
30
  }): Promise<void>;
32
31
  //# sourceMappingURL=operation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/http/operation.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA6D1D,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EACxB,sBAAsB,CAAC,EAAE,sBAAsB,GAC9C,CAAC,eAAe,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,GAAG,SAAS,CAsC7D;AAqDD,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAU5F;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAe5F;AAWD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE;IAC3D,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAelB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EACzC,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAClC,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACtC,MAAM,GAAG,SAAS,CAiBpB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EACvC,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAClC,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACtC,eAAe,CAejB;AASD,wBAAgB,mBAAmB,CAAC,MAAM,EACxC,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,GACtC,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAElD;AAED,wCAAwC;AACxC,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAC/D,GAAG,EAAE,oBAAoB,CAAC;IAC1B,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACrE,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,gBAAgB,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChB"}
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/http/operation.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,eAAe,EACf,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA6D1D,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EACxB,sBAAsB,CAAC,EAAE,sBAAsB,GAC9C,CAAC,eAAe,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,GAAG,SAAS,CAsC7D;AAqDD,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS,CAU5F;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAe5F;AAWD,wBAAgB,4BAA4B,CAC1C,OAAO,EACP,MAAM,SAAS,cAAc,CAAC,OAAO,CAAC,EACtC,MAAM,EAAE;IACR,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,eAAe,CAelB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,SAAS,cAAc,CAAC,OAAO,CAAC,EAClF,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAClC,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,GAC/C,MAAM,GAAG,SAAS,CAiBpB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,SAAS,cAAc,CAAC,OAAO,CAAC,EAChF,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAClC,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,GAC/C,eAAe,CAejB;AASD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,SAAS,cAAc,CAAC,OAAO,CAAC,EACjF,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,GAC/C,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAElD;AAED,wCAAwC;AACxC,wBAAsB,iBAAiB,CAAC,MAAM,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;IAC/F,GAAG,EAAE,gBAAgB,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACrE,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,gBAAgB,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhB"}
@@ -4,7 +4,7 @@ import { pollOperation } from "../poller/operation.js";
4
4
  import { logger } from "../logger.js";
5
5
  function getOperationLocationPollingUrl(inputs) {
6
6
  const { azureAsyncOperation, operationLocation } = inputs;
7
- return operationLocation ?? azureAsyncOperation;
7
+ return operationLocation !== null && operationLocation !== void 0 ? operationLocation : azureAsyncOperation;
8
8
  }
9
9
  function getLocationHeader(rawResponse) {
10
10
  return rawResponse.headers["location"];
@@ -16,6 +16,7 @@ function getAzureAsyncOperationHeader(rawResponse) {
16
16
  return rawResponse.headers["azure-asyncoperation"];
17
17
  }
18
18
  function findResourceLocation(inputs) {
19
+ var _a;
19
20
  const { location, requestMethod, requestPath, resourceLocationConfig } = inputs;
20
21
  switch (requestMethod) {
21
22
  case "PUT": {
@@ -25,7 +26,7 @@ function findResourceLocation(inputs) {
25
26
  return undefined;
26
27
  }
27
28
  case "PATCH": {
28
- return getDefault() ?? requestPath;
29
+ return (_a = getDefault()) !== null && _a !== void 0 ? _a : requestPath;
29
30
  }
30
31
  default: {
31
32
  return getDefault();
@@ -53,7 +54,7 @@ export function inferLroMode(rawResponse, resourceLocationConfig) {
53
54
  const azureAsyncOperation = getAzureAsyncOperationHeader(rawResponse);
54
55
  const pollingUrl = getOperationLocationPollingUrl({ operationLocation, azureAsyncOperation });
55
56
  const location = getLocationHeader(rawResponse);
56
- const normalizedRequestMethod = requestMethod?.toLocaleUpperCase();
57
+ const normalizedRequestMethod = requestMethod === null || requestMethod === void 0 ? void 0 : requestMethod.toLocaleUpperCase();
57
58
  if (pollingUrl !== undefined) {
58
59
  return {
59
60
  mode: "OperationLocation",
@@ -64,7 +65,7 @@ export function inferLroMode(rawResponse, resourceLocationConfig) {
64
65
  requestPath,
65
66
  resourceLocationConfig,
66
67
  }),
67
- initialUrl: requestPath,
68
+ initialRequestUrl: requestPath,
68
69
  requestMethod,
69
70
  };
70
71
  }
@@ -72,7 +73,7 @@ export function inferLroMode(rawResponse, resourceLocationConfig) {
72
73
  return {
73
74
  mode: "ResourceLocation",
74
75
  operationLocation: location,
75
- initialUrl: requestPath,
76
+ initialRequestUrl: requestPath,
76
77
  requestMethod,
77
78
  };
78
79
  }
@@ -80,7 +81,7 @@ export function inferLroMode(rawResponse, resourceLocationConfig) {
80
81
  return {
81
82
  mode: "Body",
82
83
  operationLocation: requestPath,
83
- initialUrl: requestPath,
84
+ initialRequestUrl: requestPath,
84
85
  requestMethod,
85
86
  };
86
87
  }
@@ -93,7 +94,7 @@ function transformStatus(inputs) {
93
94
  if (typeof status !== "string" && status !== undefined) {
94
95
  throw new Error(`Polling was unsuccessful. Expected status to have a string value or no value but it has instead: ${status}. This doesn't necessarily indicate the operation has failed. Check your Azure subscription or resource status for more information.`);
95
96
  }
96
- switch (status?.toLocaleLowerCase()) {
97
+ switch (status === null || status === void 0 ? void 0 : status.toLocaleLowerCase()) {
97
98
  case undefined:
98
99
  return toOperationStatus(statusCode);
99
100
  case "succeeded":
@@ -116,12 +117,14 @@ function transformStatus(inputs) {
116
117
  }
117
118
  }
118
119
  function getStatus(rawResponse) {
119
- const { status } = rawResponse.body ?? {};
120
+ var _a;
121
+ const { status } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {};
120
122
  return transformStatus({ status, statusCode: rawResponse.statusCode });
121
123
  }
122
124
  function getProvisioningState(rawResponse) {
123
- const { properties, provisioningState } = rawResponse.body ?? {};
124
- const status = properties?.provisioningState ?? provisioningState;
125
+ var _a, _b;
126
+ const { properties, provisioningState } = (_a = rawResponse.body) !== null && _a !== void 0 ? _a : {};
127
+ const status = (_b = properties === null || properties === void 0 ? void 0 : properties.provisioningState) !== null && _b !== void 0 ? _b : provisioningState;
125
128
  return transformStatus({ status, statusCode: rawResponse.statusCode });
126
129
  }
127
130
  function toOperationStatus(statusCode) {
@@ -169,7 +172,8 @@ function calculatePollingIntervalFromDate(retryAfterDate) {
169
172
  export function getStatusFromInitialResponse(inputs) {
170
173
  const { response, state, operationLocation } = inputs;
171
174
  function helper() {
172
- const mode = state.config.metadata?.["mode"];
175
+ var _a;
176
+ const mode = (_a = state.config.metadata) === null || _a === void 0 ? void 0 : _a["mode"];
173
177
  switch (mode) {
174
178
  case undefined:
175
179
  return toOperationStatus(response.rawResponse.statusCode);
@@ -183,7 +187,8 @@ export function getStatusFromInitialResponse(inputs) {
183
187
  return status === "running" && operationLocation === undefined ? "succeeded" : status;
184
188
  }
185
189
  export function getOperationLocation({ rawResponse }, state) {
186
- const mode = state.config.metadata?.["mode"];
190
+ var _a;
191
+ const mode = (_a = state.config.metadata) === null || _a === void 0 ? void 0 : _a["mode"];
187
192
  switch (mode) {
188
193
  case "OperationLocation": {
189
194
  return getOperationLocationPollingUrl({
@@ -201,7 +206,8 @@ export function getOperationLocation({ rawResponse }, state) {
201
206
  }
202
207
  }
203
208
  export function getOperationStatus({ rawResponse }, state) {
204
- const mode = state.config.metadata?.["mode"];
209
+ var _a;
210
+ const mode = (_a = state.config.metadata) === null || _a === void 0 ? void 0 : _a["mode"];
205
211
  switch (mode) {
206
212
  case "OperationLocation": {
207
213
  return getStatus(rawResponse);
@@ -217,7 +223,8 @@ export function getOperationStatus({ rawResponse }, state) {
217
223
  }
218
224
  }
219
225
  function accessBodyProperty({ flatResponse, rawResponse }, prop) {
220
- return flatResponse?.[prop] ?? rawResponse.body?.[prop];
226
+ var _a, _b;
227
+ return (_a = flatResponse === null || flatResponse === void 0 ? void 0 : flatResponse[prop]) !== null && _a !== void 0 ? _a : (_b = rawResponse.body) === null || _b === void 0 ? void 0 : _b[prop];
221
228
  }
222
229
  export function getResourceLocation(res, state) {
223
230
  const loc = accessBodyProperty(res, "resourceLocation");
@@ -231,10 +238,9 @@ export function isOperationError(e) {
231
238
  }
232
239
  /** Polls the long-running operation. */
233
240
  export async function pollHttpOperation(inputs) {
234
- const { lro, stateProxy, options, processResult, updateState, setDelay, state, setErrorAsResult, } = inputs;
241
+ const { lro, options, processResult, updateState, setDelay, state, setErrorAsResult } = inputs;
235
242
  return pollOperation({
236
243
  state,
237
- stateProxy,
238
244
  setDelay,
239
245
  processResult: processResult
240
246
  ? ({ flatResponse }, inputState) => processResult(flatResponse, inputState)
@@ -1 +1 @@
1
- {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../src/http/operation.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n HttpOperationMode,\n LongRunningOperation,\n ResourceLocationConfig,\n OperationResponse,\n RawResponse,\n ResponseBody,\n} from \"./models.js\";\nimport {\n LroError,\n OperationConfig,\n OperationStatus,\n RestorableOperationState,\n StateProxy,\n} from \"../poller/models.js\";\nimport { pollOperation } from \"../poller/operation.js\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { logger } from \"../logger.js\";\n\nfunction getOperationLocationPollingUrl(inputs: {\n operationLocation?: string;\n azureAsyncOperation?: string;\n}): string | undefined {\n const { azureAsyncOperation, operationLocation } = inputs;\n return operationLocation ?? azureAsyncOperation;\n}\n\nfunction getLocationHeader(rawResponse: RawResponse): string | undefined {\n return rawResponse.headers[\"location\"];\n}\n\nfunction getOperationLocationHeader(rawResponse: RawResponse): string | undefined {\n return rawResponse.headers[\"operation-location\"];\n}\n\nfunction getAzureAsyncOperationHeader(rawResponse: RawResponse): string | undefined {\n return rawResponse.headers[\"azure-asyncoperation\"];\n}\n\nfunction findResourceLocation(inputs: {\n requestMethod?: string;\n location?: string;\n requestPath?: string;\n resourceLocationConfig?: ResourceLocationConfig;\n}): string | undefined {\n const { location, requestMethod, requestPath, resourceLocationConfig } = inputs;\n switch (requestMethod) {\n case \"PUT\": {\n return requestPath;\n }\n case \"DELETE\": {\n return undefined;\n }\n case \"PATCH\": {\n return getDefault() ?? requestPath;\n }\n default: {\n return getDefault();\n }\n }\n\n function getDefault() {\n switch (resourceLocationConfig) {\n case \"azure-async-operation\": {\n return undefined;\n }\n case \"original-uri\": {\n return requestPath;\n }\n case \"location\":\n default: {\n return location;\n }\n }\n }\n}\n\nexport function inferLroMode(\n rawResponse: RawResponse,\n resourceLocationConfig?: ResourceLocationConfig,\n): (OperationConfig & { mode: HttpOperationMode }) | undefined {\n const requestPath = rawResponse.request.url;\n const requestMethod = rawResponse.request.method;\n const operationLocation = getOperationLocationHeader(rawResponse);\n const azureAsyncOperation = getAzureAsyncOperationHeader(rawResponse);\n const pollingUrl = getOperationLocationPollingUrl({ operationLocation, azureAsyncOperation });\n const location = getLocationHeader(rawResponse);\n const normalizedRequestMethod = requestMethod?.toLocaleUpperCase();\n if (pollingUrl !== undefined) {\n return {\n mode: \"OperationLocation\",\n operationLocation: pollingUrl,\n resourceLocation: findResourceLocation({\n requestMethod: normalizedRequestMethod,\n location,\n requestPath,\n resourceLocationConfig,\n }),\n initialUrl: requestPath,\n requestMethod,\n };\n } else if (location !== undefined) {\n return {\n mode: \"ResourceLocation\",\n operationLocation: location,\n initialUrl: requestPath,\n requestMethod,\n };\n } else if (normalizedRequestMethod === \"PUT\" && requestPath) {\n return {\n mode: \"Body\",\n operationLocation: requestPath,\n initialUrl: requestPath,\n requestMethod,\n };\n } else {\n return undefined;\n }\n}\n\nfunction transformStatus(inputs: { status: unknown; statusCode: number }): OperationStatus {\n const { status, statusCode } = inputs;\n if (typeof status !== \"string\" && status !== undefined) {\n throw new Error(\n `Polling was unsuccessful. Expected status to have a string value or no value but it has instead: ${status}. This doesn't necessarily indicate the operation has failed. Check your Azure subscription or resource status for more information.`,\n );\n }\n switch (status?.toLocaleLowerCase()) {\n case undefined:\n return toOperationStatus(statusCode);\n case \"succeeded\":\n return \"succeeded\";\n case \"failed\":\n return \"failed\";\n case \"running\":\n case \"accepted\":\n case \"started\":\n case \"canceling\":\n case \"cancelling\":\n return \"running\";\n case \"canceled\":\n case \"cancelled\":\n return \"canceled\";\n default: {\n logger.verbose(`LRO: unrecognized operation status: ${status}`);\n return status as OperationStatus;\n }\n }\n}\n\nfunction getStatus(rawResponse: RawResponse): OperationStatus {\n const { status } = (rawResponse.body as ResponseBody) ?? {};\n return transformStatus({ status, statusCode: rawResponse.statusCode });\n}\n\nfunction getProvisioningState(rawResponse: RawResponse): OperationStatus {\n const { properties, provisioningState } = (rawResponse.body as ResponseBody) ?? {};\n const status = properties?.provisioningState ?? provisioningState;\n return transformStatus({ status, statusCode: rawResponse.statusCode });\n}\n\nfunction toOperationStatus(statusCode: number): OperationStatus {\n if (statusCode === 202) {\n return \"running\";\n } else if (statusCode < 300) {\n return \"succeeded\";\n } else {\n return \"failed\";\n }\n}\n\nexport function parseRetryAfter<T>({ rawResponse }: OperationResponse<T>): number | undefined {\n const retryAfter: string | undefined = rawResponse.headers[\"retry-after\"];\n if (retryAfter !== undefined) {\n // Retry-After header value is either in HTTP date format, or in seconds\n const retryAfterInSeconds = parseInt(retryAfter);\n return isNaN(retryAfterInSeconds)\n ? calculatePollingIntervalFromDate(new Date(retryAfter))\n : retryAfterInSeconds * 1000;\n }\n return undefined;\n}\n\nexport function getErrorFromResponse<T>(response: OperationResponse<T>): LroError | undefined {\n const error = accessBodyProperty(response, \"error\");\n if (!error) {\n logger.warning(\n `The long-running operation failed but there is no error property in the response's body`,\n );\n return;\n }\n if (!error.code || !error.message) {\n logger.warning(\n `The long-running operation failed but the error property in the response's body doesn't contain code or message`,\n );\n return;\n }\n return error as LroError;\n}\n\nfunction calculatePollingIntervalFromDate(retryAfterDate: Date): number | undefined {\n const timeNow = Math.floor(new Date().getTime());\n const retryAfterTime = retryAfterDate.getTime();\n if (timeNow < retryAfterTime) {\n return retryAfterTime - timeNow;\n }\n return undefined;\n}\n\nexport function getStatusFromInitialResponse<TState>(inputs: {\n response: OperationResponse<unknown>;\n state: RestorableOperationState<TState>;\n operationLocation?: string;\n}): OperationStatus {\n const { response, state, operationLocation } = inputs;\n function helper(): OperationStatus {\n const mode = state.config.metadata?.[\"mode\"];\n switch (mode) {\n case undefined:\n return toOperationStatus(response.rawResponse.statusCode);\n case \"Body\":\n return getOperationStatus(response, state);\n default:\n return \"running\";\n }\n }\n const status = helper();\n return status === \"running\" && operationLocation === undefined ? \"succeeded\" : status;\n}\n\nexport function getOperationLocation<TState>(\n { rawResponse }: OperationResponse,\n state: RestorableOperationState<TState>,\n): string | undefined {\n const mode = state.config.metadata?.[\"mode\"];\n switch (mode) {\n case \"OperationLocation\": {\n return getOperationLocationPollingUrl({\n operationLocation: getOperationLocationHeader(rawResponse),\n azureAsyncOperation: getAzureAsyncOperationHeader(rawResponse),\n });\n }\n case \"ResourceLocation\": {\n return getLocationHeader(rawResponse);\n }\n case \"Body\":\n default: {\n return undefined;\n }\n }\n}\n\nexport function getOperationStatus<TState>(\n { rawResponse }: OperationResponse,\n state: RestorableOperationState<TState>,\n): OperationStatus {\n const mode = state.config.metadata?.[\"mode\"];\n switch (mode) {\n case \"OperationLocation\": {\n return getStatus(rawResponse);\n }\n case \"ResourceLocation\": {\n return toOperationStatus(rawResponse.statusCode);\n }\n case \"Body\": {\n return getProvisioningState(rawResponse);\n }\n default:\n throw new Error(`Internal error: Unexpected operation mode: ${mode}`);\n }\n}\n\nfunction accessBodyProperty<P extends string>(\n { flatResponse, rawResponse }: OperationResponse,\n prop: P,\n): ResponseBody[P] {\n return (flatResponse as ResponseBody)?.[prop] ?? (rawResponse.body as ResponseBody)?.[prop];\n}\n\nexport function getResourceLocation<TState>(\n res: OperationResponse,\n state: RestorableOperationState<TState>,\n): string | undefined {\n const loc = accessBodyProperty(res, \"resourceLocation\");\n if (loc && typeof loc === \"string\") {\n state.config.resourceLocation = loc;\n }\n return state.config.resourceLocation;\n}\n\nexport function isOperationError(e: Error): boolean {\n return e.name === \"RestError\";\n}\n\n/** Polls the long-running operation. */\nexport async function pollHttpOperation<TState, TResult>(inputs: {\n lro: LongRunningOperation;\n stateProxy: StateProxy<TState, TResult>;\n processResult?: (result: unknown, state: TState) => TResult;\n updateState?: (state: TState, lastResponse: OperationResponse) => void;\n isDone?: (lastResponse: OperationResponse, state: TState) => boolean;\n setDelay: (intervalInMs: number) => void;\n options?: { abortSignal?: AbortSignalLike };\n state: RestorableOperationState<TState>;\n setErrorAsResult: boolean;\n}): Promise<void> {\n const {\n lro,\n stateProxy,\n options,\n processResult,\n updateState,\n setDelay,\n state,\n setErrorAsResult,\n } = inputs;\n return pollOperation({\n state,\n stateProxy,\n setDelay,\n processResult: processResult\n ? ({ flatResponse }, inputState) => processResult(flatResponse, inputState)\n : ({ flatResponse }) => flatResponse as TResult,\n getError: getErrorFromResponse,\n updateState,\n getPollingInterval: parseRetryAfter,\n getOperationLocation,\n getOperationStatus,\n isOperationError,\n getResourceLocation,\n options,\n /**\n * The expansion here is intentional because `lro` could be an object that\n * references an inner this, so we need to preserve a reference to it.\n */\n poll: async (location: string, inputOptions?: { abortSignal?: AbortSignalLike }) =>\n lro.sendPollRequest(location, inputOptions),\n setErrorAsResult,\n });\n}\n"]}
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../src/http/operation.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n HttpOperationMode,\n RunningOperation,\n ResourceLocationConfig,\n OperationResponse,\n RawResponse,\n ResponseBody,\n} from \"./models.js\";\nimport {\n LroError,\n OperationConfig,\n OperationState,\n OperationStatus,\n RestorableOperationState,\n} from \"../poller/models.js\";\nimport { pollOperation } from \"../poller/operation.js\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { logger } from \"../logger.js\";\n\nfunction getOperationLocationPollingUrl(inputs: {\n operationLocation?: string;\n azureAsyncOperation?: string;\n}): string | undefined {\n const { azureAsyncOperation, operationLocation } = inputs;\n return operationLocation ?? azureAsyncOperation;\n}\n\nfunction getLocationHeader(rawResponse: RawResponse): string | undefined {\n return rawResponse.headers[\"location\"];\n}\n\nfunction getOperationLocationHeader(rawResponse: RawResponse): string | undefined {\n return rawResponse.headers[\"operation-location\"];\n}\n\nfunction getAzureAsyncOperationHeader(rawResponse: RawResponse): string | undefined {\n return rawResponse.headers[\"azure-asyncoperation\"];\n}\n\nfunction findResourceLocation(inputs: {\n requestMethod?: string;\n location?: string;\n requestPath?: string;\n resourceLocationConfig?: ResourceLocationConfig;\n}): string | undefined {\n const { location, requestMethod, requestPath, resourceLocationConfig } = inputs;\n switch (requestMethod) {\n case \"PUT\": {\n return requestPath;\n }\n case \"DELETE\": {\n return undefined;\n }\n case \"PATCH\": {\n return getDefault() ?? requestPath;\n }\n default: {\n return getDefault();\n }\n }\n\n function getDefault() {\n switch (resourceLocationConfig) {\n case \"azure-async-operation\": {\n return undefined;\n }\n case \"original-uri\": {\n return requestPath;\n }\n case \"location\":\n default: {\n return location;\n }\n }\n }\n}\n\nexport function inferLroMode(\n rawResponse: RawResponse,\n resourceLocationConfig?: ResourceLocationConfig,\n): (OperationConfig & { mode: HttpOperationMode }) | undefined {\n const requestPath = rawResponse.request.url;\n const requestMethod = rawResponse.request.method;\n const operationLocation = getOperationLocationHeader(rawResponse);\n const azureAsyncOperation = getAzureAsyncOperationHeader(rawResponse);\n const pollingUrl = getOperationLocationPollingUrl({ operationLocation, azureAsyncOperation });\n const location = getLocationHeader(rawResponse);\n const normalizedRequestMethod = requestMethod?.toLocaleUpperCase();\n if (pollingUrl !== undefined) {\n return {\n mode: \"OperationLocation\",\n operationLocation: pollingUrl,\n resourceLocation: findResourceLocation({\n requestMethod: normalizedRequestMethod,\n location,\n requestPath,\n resourceLocationConfig,\n }),\n initialRequestUrl: requestPath,\n requestMethod,\n };\n } else if (location !== undefined) {\n return {\n mode: \"ResourceLocation\",\n operationLocation: location,\n initialRequestUrl: requestPath,\n requestMethod,\n };\n } else if (normalizedRequestMethod === \"PUT\" && requestPath) {\n return {\n mode: \"Body\",\n operationLocation: requestPath,\n initialRequestUrl: requestPath,\n requestMethod,\n };\n } else {\n return undefined;\n }\n}\n\nfunction transformStatus(inputs: { status: unknown; statusCode: number }): OperationStatus {\n const { status, statusCode } = inputs;\n if (typeof status !== \"string\" && status !== undefined) {\n throw new Error(\n `Polling was unsuccessful. Expected status to have a string value or no value but it has instead: ${status}. This doesn't necessarily indicate the operation has failed. Check your Azure subscription or resource status for more information.`,\n );\n }\n switch (status?.toLocaleLowerCase()) {\n case undefined:\n return toOperationStatus(statusCode);\n case \"succeeded\":\n return \"succeeded\";\n case \"failed\":\n return \"failed\";\n case \"running\":\n case \"accepted\":\n case \"started\":\n case \"canceling\":\n case \"cancelling\":\n return \"running\";\n case \"canceled\":\n case \"cancelled\":\n return \"canceled\";\n default: {\n logger.verbose(`LRO: unrecognized operation status: ${status}`);\n return status as OperationStatus;\n }\n }\n}\n\nfunction getStatus(rawResponse: RawResponse): OperationStatus {\n const { status } = (rawResponse.body as ResponseBody) ?? {};\n return transformStatus({ status, statusCode: rawResponse.statusCode });\n}\n\nfunction getProvisioningState(rawResponse: RawResponse): OperationStatus {\n const { properties, provisioningState } = (rawResponse.body as ResponseBody) ?? {};\n const status = properties?.provisioningState ?? provisioningState;\n return transformStatus({ status, statusCode: rawResponse.statusCode });\n}\n\nfunction toOperationStatus(statusCode: number): OperationStatus {\n if (statusCode === 202) {\n return \"running\";\n } else if (statusCode < 300) {\n return \"succeeded\";\n } else {\n return \"failed\";\n }\n}\n\nexport function parseRetryAfter<T>({ rawResponse }: OperationResponse<T>): number | undefined {\n const retryAfter: string | undefined = rawResponse.headers[\"retry-after\"];\n if (retryAfter !== undefined) {\n // Retry-After header value is either in HTTP date format, or in seconds\n const retryAfterInSeconds = parseInt(retryAfter);\n return isNaN(retryAfterInSeconds)\n ? calculatePollingIntervalFromDate(new Date(retryAfter))\n : retryAfterInSeconds * 1000;\n }\n return undefined;\n}\n\nexport function getErrorFromResponse<T>(response: OperationResponse<T>): LroError | undefined {\n const error = accessBodyProperty(response, \"error\");\n if (!error) {\n logger.warning(\n `The long-running operation failed but there is no error property in the response's body`,\n );\n return;\n }\n if (!error.code || !error.message) {\n logger.warning(\n `The long-running operation failed but the error property in the response's body doesn't contain code or message`,\n );\n return;\n }\n return error as LroError;\n}\n\nfunction calculatePollingIntervalFromDate(retryAfterDate: Date): number | undefined {\n const timeNow = Math.floor(new Date().getTime());\n const retryAfterTime = retryAfterDate.getTime();\n if (timeNow < retryAfterTime) {\n return retryAfterTime - timeNow;\n }\n return undefined;\n}\n\nexport function getStatusFromInitialResponse<\n TResult,\n TState extends OperationState<TResult>,\n>(inputs: {\n response: OperationResponse<unknown>;\n state: RestorableOperationState<TResult, TState>;\n operationLocation?: string;\n}): OperationStatus {\n const { response, state, operationLocation } = inputs;\n function helper(): OperationStatus {\n const mode = state.config.metadata?.[\"mode\"];\n switch (mode) {\n case undefined:\n return toOperationStatus(response.rawResponse.statusCode);\n case \"Body\":\n return getOperationStatus(response, state);\n default:\n return \"running\";\n }\n }\n const status = helper();\n return status === \"running\" && operationLocation === undefined ? \"succeeded\" : status;\n}\n\nexport function getOperationLocation<TResult, TState extends OperationState<TResult>>(\n { rawResponse }: OperationResponse,\n state: RestorableOperationState<TResult, TState>,\n): string | undefined {\n const mode = state.config.metadata?.[\"mode\"];\n switch (mode) {\n case \"OperationLocation\": {\n return getOperationLocationPollingUrl({\n operationLocation: getOperationLocationHeader(rawResponse),\n azureAsyncOperation: getAzureAsyncOperationHeader(rawResponse),\n });\n }\n case \"ResourceLocation\": {\n return getLocationHeader(rawResponse);\n }\n case \"Body\":\n default: {\n return undefined;\n }\n }\n}\n\nexport function getOperationStatus<TResult, TState extends OperationState<TResult>>(\n { rawResponse }: OperationResponse,\n state: RestorableOperationState<TResult, TState>,\n): OperationStatus {\n const mode = state.config.metadata?.[\"mode\"];\n switch (mode) {\n case \"OperationLocation\": {\n return getStatus(rawResponse);\n }\n case \"ResourceLocation\": {\n return toOperationStatus(rawResponse.statusCode);\n }\n case \"Body\": {\n return getProvisioningState(rawResponse);\n }\n default:\n throw new Error(`Internal error: Unexpected operation mode: ${mode}`);\n }\n}\n\nfunction accessBodyProperty<P extends string>(\n { flatResponse, rawResponse }: OperationResponse,\n prop: P,\n): ResponseBody[P] {\n return (flatResponse as ResponseBody)?.[prop] ?? (rawResponse.body as ResponseBody)?.[prop];\n}\n\nexport function getResourceLocation<TResult, TState extends OperationState<TResult>>(\n res: OperationResponse,\n state: RestorableOperationState<TResult, TState>,\n): string | undefined {\n const loc = accessBodyProperty(res, \"resourceLocation\");\n if (loc && typeof loc === \"string\") {\n state.config.resourceLocation = loc;\n }\n return state.config.resourceLocation;\n}\n\nexport function isOperationError(e: Error): boolean {\n return e.name === \"RestError\";\n}\n\n/** Polls the long-running operation. */\nexport async function pollHttpOperation<TState extends OperationState<TResult>, TResult>(inputs: {\n lro: RunningOperation;\n processResult?: (result: unknown, state: TState) => Promise<TResult>;\n updateState?: (state: TState, lastResponse: OperationResponse) => void;\n isDone?: (lastResponse: OperationResponse, state: TState) => boolean;\n setDelay: (intervalInMs: number) => void;\n options?: { abortSignal?: AbortSignalLike };\n state: RestorableOperationState<TResult, TState>;\n setErrorAsResult: boolean;\n}): Promise<void> {\n const { lro, options, processResult, updateState, setDelay, state, setErrorAsResult } = inputs;\n return pollOperation({\n state,\n setDelay,\n processResult: processResult\n ? ({ flatResponse }, inputState) => processResult(flatResponse, inputState)\n : ({ flatResponse }) => flatResponse as Promise<TResult>,\n getError: getErrorFromResponse,\n updateState,\n getPollingInterval: parseRetryAfter,\n getOperationLocation,\n getOperationStatus,\n isOperationError,\n getResourceLocation,\n options,\n /**\n * The expansion here is intentional because `lro` could be an object that\n * references an inner this, so we need to preserve a reference to it.\n */\n poll: async (location: string, inputOptions?: { abortSignal?: AbortSignalLike }) =>\n lro.sendPollRequest(location, inputOptions),\n setErrorAsResult,\n });\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { LongRunningOperation } from "./models.js";
1
+ import { RunningOperation } from "./models.js";
2
2
  import { OperationState, PollerLike } from "../poller/models.js";
3
3
  import { CreateHttpPollerOptions } from "./models.js";
4
4
  /**
@@ -7,5 +7,5 @@ import { CreateHttpPollerOptions } from "./models.js";
7
7
  * @param options - options to configure the poller
8
8
  * @returns an initialized poller
9
9
  */
10
- export declare function createHttpPoller<TResult, TState extends OperationState<TResult>>(lro: LongRunningOperation, options?: CreateHttpPollerOptions<TResult, TState>): PollerLike<TState, TResult>;
10
+ export declare function createHttpPoller<TResult, TState extends OperationState<TResult>>(lro: RunningOperation, options?: CreateHttpPollerOptions<TResult, TState>): PollerLike<TState, TResult>;
11
11
  //# sourceMappingURL=poller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/http/poller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAqB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,SAAS,cAAc,CAAC,OAAO,CAAC,EAC9E,GAAG,EAAE,oBAAoB,EACzB,OAAO,CAAC,EAAE,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,GACjD,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAoD7B"}
1
+ {"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../../src/http/poller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,SAAS,cAAc,CAAC,OAAO,CAAC,EAC9E,GAAG,EAAE,gBAAgB,EACrB,OAAO,CAAC,EAAE,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,GACjD,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CA6C7B"}
@@ -23,21 +23,7 @@ export function createHttpPoller(lro, options) {
23
23
  init: async () => {
24
24
  const response = await lro.sendInitialRequest();
25
25
  const config = inferLroMode(response.rawResponse, resourceLocationConfig);
26
- const metadata = {};
27
- if (config?.mode) {
28
- metadata["mode"] = config.mode;
29
- }
30
- if (resourceLocationConfig) {
31
- metadata["resourceLocationConfig"] = resourceLocationConfig;
32
- }
33
- return {
34
- response,
35
- operationLocation: config?.operationLocation,
36
- resourceLocation: config?.resourceLocation,
37
- initialUrl: config?.initialUrl,
38
- requestMethod: config?.requestMethod,
39
- metadata,
40
- };
26
+ return Object.assign({ response, operationLocation: config === null || config === void 0 ? void 0 : config.operationLocation, resourceLocation: config === null || config === void 0 ? void 0 : config.resourceLocation, initialRequestUrl: config === null || config === void 0 ? void 0 : config.initialRequestUrl, requestMethod: config === null || config === void 0 ? void 0 : config.requestMethod }, ((config === null || config === void 0 ? void 0 : config.mode) ? { metadata: { mode: config.mode } } : {}));
41
27
  },
42
28
  poll: lro.sendPollRequest,
43
29
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/http/poller.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAOlC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,EAC5B,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAyB,EACzB,OAAkD;IAElD,MAAM,EACJ,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,qBAAqB,GAAG,KAAK,GAC9B,GAAG,OAAO,IAAI,EAAE,CAAC;IAClB,OAAO,iBAAiB,CAAqC;QAC3D,4BAA4B;QAC5B,yBAAyB,EAAE,kBAAkB;QAC7C,gBAAgB;QAChB,oBAAoB;QACpB,mBAAmB;QACnB,kBAAkB,EAAE,eAAe;QACnC,QAAQ,EAAE,oBAAoB;QAC9B,qBAAqB;KACtB,CAAC,CACA;QACE,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAC5C,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjB,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACjC,CAAC;YACD,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,QAAQ,CAAC,wBAAwB,CAAC,GAAG,sBAAsB,CAAC;YAC9D,CAAC;YACD,OAAO;gBACL,QAAQ;gBACR,iBAAiB,EAAE,MAAM,EAAE,iBAAiB;gBAC5C,gBAAgB,EAAE,MAAM,EAAE,gBAAgB;gBAC1C,UAAU,EAAE,MAAM,EAAE,UAAU;gBAC9B,aAAa,EAAE,MAAM,EAAE,aAAa;gBACpC,QAAQ;aACT,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,GAAG,CAAC,eAAe;KAC1B,EACD;QACE,YAAY;QACZ,qBAAqB;QACrB,WAAW;QACX,WAAW;QACX,aAAa,EAAE,aAAa;YAC1B,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC;YACjE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAuB;KAClD,CACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { LongRunningOperation, OperationResponse } from \"./models.js\";\nimport { OperationState, PollerLike } from \"../poller/models.js\";\nimport {\n getErrorFromResponse,\n getOperationLocation,\n getOperationStatus,\n getResourceLocation,\n getStatusFromInitialResponse,\n inferLroMode,\n isOperationError,\n parseRetryAfter,\n} from \"./operation.js\";\nimport { CreateHttpPollerOptions } from \"./models.js\";\nimport { buildCreatePoller } from \"../poller/poller.js\";\n\n/**\n * Creates a poller that can be used to poll a long-running operation.\n * @param lro - Description of the long-running operation\n * @param options - options to configure the poller\n * @returns an initialized poller\n */\nexport function createHttpPoller<TResult, TState extends OperationState<TResult>>(\n lro: LongRunningOperation,\n options?: CreateHttpPollerOptions<TResult, TState>,\n): PollerLike<TState, TResult> {\n const {\n resourceLocationConfig,\n intervalInMs,\n processResult,\n restoreFrom,\n updateState,\n withOperationLocation,\n resolveOnUnsuccessful = false,\n } = options || {};\n return buildCreatePoller<OperationResponse, TResult, TState>({\n getStatusFromInitialResponse,\n getStatusFromPollResponse: getOperationStatus,\n isOperationError,\n getOperationLocation,\n getResourceLocation,\n getPollingInterval: parseRetryAfter,\n getError: getErrorFromResponse,\n resolveOnUnsuccessful,\n })(\n {\n init: async () => {\n const response = await lro.sendInitialRequest();\n const config = inferLroMode(response.rawResponse, resourceLocationConfig);\n const metadata: Record<string, string> = {};\n if (config?.mode) {\n metadata[\"mode\"] = config.mode;\n }\n if (resourceLocationConfig) {\n metadata[\"resourceLocationConfig\"] = resourceLocationConfig;\n }\n return {\n response,\n operationLocation: config?.operationLocation,\n resourceLocation: config?.resourceLocation,\n initialUrl: config?.initialUrl,\n requestMethod: config?.requestMethod,\n metadata,\n };\n },\n poll: lro.sendPollRequest,\n },\n {\n intervalInMs,\n withOperationLocation,\n restoreFrom,\n updateState,\n processResult: processResult\n ? ({ flatResponse }, state) => processResult(flatResponse, state)\n : ({ flatResponse }) => flatResponse as TResult,\n },\n );\n}\n"]}
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/http/poller.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,4BAA4B,EAC5B,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAqB,EACrB,OAAkD;IAElD,MAAM,EACJ,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,qBAAqB,GAAG,KAAK,GAC9B,GAAG,OAAO,IAAI,EAAE,CAAC;IAClB,OAAO,iBAAiB,CAAqC;QAC3D,4BAA4B;QAC5B,yBAAyB,EAAE,kBAAkB;QAC7C,gBAAgB;QAChB,oBAAoB;QACpB,mBAAmB;QACnB,kBAAkB,EAAE,eAAe;QACnC,QAAQ,EAAE,oBAAoB;QAC9B,qBAAqB;KACtB,CAAC,CACA;QACE,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;YAC1E,uBACE,QAAQ,EACR,iBAAiB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAC5C,gBAAgB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,EAC1C,iBAAiB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAC5C,aAAa,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,IACjC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC5D;QACJ,CAAC;QACD,IAAI,EAAE,GAAG,CAAC,eAAe;KAC1B,EACD;QACE,YAAY;QACZ,qBAAqB;QACrB,WAAW;QACX,WAAW;QACX,aAAa,EAAE,aAAa;YAC1B,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC;YACjE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAgC;KAC3D,CACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { RunningOperation, OperationResponse } from \"./models.js\";\nimport { OperationState, PollerLike } from \"../poller/models.js\";\nimport {\n getErrorFromResponse,\n getOperationLocation,\n getOperationStatus,\n getResourceLocation,\n getStatusFromInitialResponse,\n inferLroMode,\n isOperationError,\n parseRetryAfter,\n} from \"./operation.js\";\nimport { CreateHttpPollerOptions } from \"./models.js\";\nimport { buildCreatePoller } from \"../poller/poller.js\";\n\n/**\n * Creates a poller that can be used to poll a long-running operation.\n * @param lro - Description of the long-running operation\n * @param options - options to configure the poller\n * @returns an initialized poller\n */\nexport function createHttpPoller<TResult, TState extends OperationState<TResult>>(\n lro: RunningOperation,\n options?: CreateHttpPollerOptions<TResult, TState>,\n): PollerLike<TState, TResult> {\n const {\n resourceLocationConfig,\n intervalInMs,\n processResult,\n restoreFrom,\n updateState,\n withOperationLocation,\n resolveOnUnsuccessful = false,\n } = options || {};\n return buildCreatePoller<OperationResponse, TResult, TState>({\n getStatusFromInitialResponse,\n getStatusFromPollResponse: getOperationStatus,\n isOperationError,\n getOperationLocation,\n getResourceLocation,\n getPollingInterval: parseRetryAfter,\n getError: getErrorFromResponse,\n resolveOnUnsuccessful,\n })(\n {\n init: async () => {\n const response = await lro.sendInitialRequest();\n const config = inferLroMode(response.rawResponse, resourceLocationConfig);\n return {\n response,\n operationLocation: config?.operationLocation,\n resourceLocation: config?.resourceLocation,\n initialRequestUrl: config?.initialRequestUrl,\n requestMethod: config?.requestMethod,\n ...(config?.mode ? { metadata: { mode: config.mode } } : {}),\n };\n },\n poll: lro.sendPollRequest,\n },\n {\n intervalInMs,\n withOperationLocation,\n restoreFrom,\n updateState,\n processResult: processResult\n ? ({ flatResponse }, state) => processResult(flatResponse, state)\n : ({ flatResponse }) => flatResponse as Promise<TResult>,\n },\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  export { createHttpPoller } from "./http/poller.js";
2
2
  export { CancelOnProgress, OperationState, OperationStatus, PollerLike, RestorableOperationState, OperationConfig, } from "./poller/models.js";
3
- export { ResourceLocationConfig, LongRunningOperation, OperationResponse, RawResponse, RawRequest, CreateHttpPollerOptions, } from "./http/models.js";
3
+ export { ResourceLocationConfig, RunningOperation, OperationResponse, RawResponse, RawRequest, CreateHttpPollerOptions, } from "./http/models.js";
4
4
  export { deserializeState } from "./poller/operation.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,UAAU,EACV,wBAAwB,EACxB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,UAAU,EACV,wBAAwB,EACxB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAiBpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { createHttpPoller } from \"./http/poller.js\";\nexport {\n CancelOnProgress,\n OperationState,\n OperationStatus,\n PollerLike,\n RestorableOperationState,\n OperationConfig,\n} from \"./poller/models.js\";\nexport {\n ResourceLocationConfig,\n LongRunningOperation,\n OperationResponse,\n RawResponse,\n RawRequest,\n CreateHttpPollerOptions,\n} from \"./http/models.js\";\nexport { deserializeState } from \"./poller/operation.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAiBpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport { createHttpPoller } from \"./http/poller.js\";\nexport {\n CancelOnProgress,\n OperationState,\n OperationStatus,\n PollerLike,\n RestorableOperationState,\n OperationConfig,\n} from \"./poller/models.js\";\nexport {\n ResourceLocationConfig,\n RunningOperation,\n OperationResponse,\n RawResponse,\n RawRequest,\n CreateHttpPollerOptions,\n} from \"./http/models.js\";\nexport { deserializeState } from \"./poller/operation.js\";\n"]}
@@ -8,8 +8,8 @@ export interface OperationConfig {
8
8
  operationLocation?: string;
9
9
  /** The resource location */
10
10
  resourceLocation?: string;
11
- /** The initial Url */
12
- initialUrl?: string;
11
+ /** The initial request Url */
12
+ initialRequestUrl?: string;
13
13
  /** The request method */
14
14
  requestMethod?: string;
15
15
  /** metadata about the operation */
@@ -34,7 +34,7 @@ export interface Operation<TResponse, TOptions> {
34
34
  /**
35
35
  * Type of a restorable long-running operation.
36
36
  */
37
- export type RestorableOperationState<T> = T & {
37
+ export type RestorableOperationState<TResult, T extends OperationState<TResult>> = T & {
38
38
  /** The operation configuration */
39
39
  config: OperationConfig;
40
40
  };
@@ -53,7 +53,7 @@ export interface CreatePollerOptions<TResponse, TResult, TState> {
53
53
  /**
54
54
  * A function to process the result of the LRO.
55
55
  */
56
- processResult?: (result: TResponse, state: TState) => TResult | Promise<TResult>;
56
+ processResult?: (result: TResponse, state: TState) => Promise<TResult>;
57
57
  /**
58
58
  * A function to process the state of the LRO.
59
59
  */
@@ -77,7 +77,7 @@ export interface InnerError {
77
77
  /**
78
78
  * Options for `buildCreatePoller`.
79
79
  */
80
- export interface BuildCreatePollerOptions<TResponse, TState> {
80
+ export interface BuildCreatePollerOptions<TResponse, TResult, TState extends OperationState<TResult>> {
81
81
  /**
82
82
  * Gets the status of the operation from the response received when the
83
83
  * operation was initialized. Note that the operation could be already in
@@ -85,14 +85,14 @@ export interface BuildCreatePollerOptions<TResponse, TState> {
85
85
  */
86
86
  getStatusFromInitialResponse: (inputs: {
87
87
  response: TResponse;
88
- state: RestorableOperationState<TState>;
88
+ state: RestorableOperationState<TResult, TState>;
89
89
  operationLocation?: string;
90
90
  }) => OperationStatus;
91
91
  /**
92
92
  * Gets the status of the operation from a response received when the
93
93
  * operation was polled.
94
94
  */
95
- getStatusFromPollResponse: (response: TResponse, state: RestorableOperationState<TState>) => OperationStatus;
95
+ getStatusFromPollResponse: (response: TResponse, state: RestorableOperationState<TResult, TState>) => OperationStatus;
96
96
  /**
97
97
  * Determines if the input error is an operation error.
98
98
  */
@@ -100,11 +100,11 @@ export interface BuildCreatePollerOptions<TResponse, TState> {
100
100
  /**
101
101
  * Gets the updated operation location from polling responses.
102
102
  */
103
- getOperationLocation?: (response: TResponse, state: RestorableOperationState<TState>) => string | undefined;
103
+ getOperationLocation?: (response: TResponse, state: RestorableOperationState<TResult, TState>) => string | undefined;
104
104
  /**
105
105
  * Gets the resource location from a response.
106
106
  */
107
- getResourceLocation: (response: TResponse, state: RestorableOperationState<TState>) => string | undefined;
107
+ getResourceLocation: (response: TResponse, state: RestorableOperationState<TResult, TState>) => string | undefined;
108
108
  /**
109
109
  * Gets from the response the time interval the service suggests the client to
110
110
  * wait before sending the next polling request.
@@ -150,25 +150,21 @@ export interface OperationState<TResult> {
150
150
  */
151
151
  export type CancelOnProgress = () => void;
152
152
  /**
153
- * A simple poller interface.
153
+ * A poller for an operation.
154
154
  */
155
155
  export interface PollerLike<TState extends OperationState<TResult>, TResult> extends Promise<TResult> {
156
156
  /**
157
- * Returns true if the poller has finished polling.
157
+ * Is true if the poller has finished polling.
158
158
  */
159
159
  readonly isDone: boolean;
160
160
  /**
161
- * Returns true if the poller is stopped.
162
- */
163
- readonly isStopped: boolean;
164
- /**
165
- * Returns the state of the operation.
161
+ * The state of the operation.
162
+ * It can be undefined if the poller has not been submitted yet.
166
163
  */
167
164
  readonly operationState: TState | undefined;
168
165
  /**
169
- * Returns the result value of the operation,
170
- * regardless of the state of the poller.
171
- * It can return undefined or an incomplete form of the final TResult value
166
+ * The result value of the operation, regardless of the state of the poller.
167
+ * It can be undefined or an incomplete form of the final TResult value
172
168
  * depending on the implementation.
173
169
  */
174
170
  readonly result: TResult | undefined;
@@ -202,24 +198,4 @@ export interface PollerLike<TState extends OperationState<TResult>, TResult> ext
202
198
  */
203
199
  submitted(): Promise<void>;
204
200
  }
205
- /**
206
- * A state proxy that allows poller implementation to abstract away the operation
207
- * state. This is useful to implement `lroEngine` and `createPoller` in a modular
208
- * way.
209
- */
210
- export interface StateProxy<TState, TResult> {
211
- initState: (config: OperationConfig) => RestorableOperationState<TState>;
212
- setRunning: (state: TState) => void;
213
- setCanceled: (state: TState) => void;
214
- setResult: (state: TState, result: TResult) => void;
215
- setError: (state: TState, error: Error) => void;
216
- setFailed: (state: TState) => void;
217
- setSucceeded: (state: TState) => void;
218
- isRunning: (state: TState) => boolean;
219
- isCanceled: (state: TState) => boolean;
220
- getResult: (state: TState) => TResult | undefined;
221
- getError: (state: TState) => Error | undefined;
222
- isFailed: (state: TState) => boolean;
223
- isSucceeded: (state: TState) => boolean;
224
- }
225
201
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/poller/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/poller/models.ts"],"names":[],"mappings":"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"}