@prdb/sdk 0.4.0 → 0.6.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.
- package/README.md +72 -0
- package/dist/generated/models/index.d.ts +437 -0
- package/dist/generated/models/index.d.ts.map +1 -1
- package/dist/generated/models/index.js +498 -0
- package/dist/generated/models/index.js.map +1 -1
- package/dist/generated/sites/index.d.ts +4 -3
- package/dist/generated/sites/index.d.ts.map +1 -1
- package/dist/generated/sites/index.js +1 -0
- package/dist/generated/sites/index.js.map +1 -1
- package/dist/generated/videos/filehashSubmissions/index.d.ts +35 -0
- package/dist/generated/videos/filehashSubmissions/index.d.ts.map +1 -0
- package/dist/generated/videos/filehashSubmissions/index.js +33 -0
- package/dist/generated/videos/filehashSubmissions/index.js.map +1 -0
- package/dist/generated/videos/identify/index.d.ts +35 -0
- package/dist/generated/videos/identify/index.d.ts.map +1 -0
- package/dist/generated/videos/identify/index.js +33 -0
- package/dist/generated/videos/identify/index.js.map +1 -0
- package/dist/generated/videos/index.d.ts +10 -0
- package/dist/generated/videos/index.d.ts.map +1 -1
- package/dist/generated/videos/index.js +10 -0
- package/dist/generated/videos/index.js.map +1 -1
- package/dist/generated/wantedVideos/fulfillments/index.d.ts +35 -0
- package/dist/generated/wantedVideos/fulfillments/index.d.ts.map +1 -0
- package/dist/generated/wantedVideos/fulfillments/index.js +33 -0
- package/dist/generated/wantedVideos/fulfillments/index.js.map +1 -0
- package/dist/generated/wantedVideos/index.d.ts +5 -0
- package/dist/generated/wantedVideos/index.d.ts.map +1 -1
- package/dist/generated/wantedVideos/index.js +5 -0
- package/dist/generated/wantedVideos/index.js.map +1 -1
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +82 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -85,15 +85,85 @@ export class ResponseStatusOption {
|
|
|
85
85
|
return RESPONSE_STATUS_OPTION_KEY;
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
/** Key the {@link RateLimitOption} travels under. */
|
|
89
|
+
export const RATE_LIMIT_OPTION_KEY = "prdb.rateLimit";
|
|
88
90
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
+
* Per-request option reporting the rate-limit state the API sent back.
|
|
92
|
+
*
|
|
93
|
+
* Every metered response carries its rate-limit headers, so a client can pace
|
|
94
|
+
* itself off the answers it is already getting instead of spending a request on
|
|
95
|
+
* `GET /rate-limit` to ask.
|
|
96
|
+
*
|
|
97
|
+
* Kiota can surface response headers through its own headers-inspection option,
|
|
98
|
+
* but as raw multi-valued strings that a caller has to find, pick apart and
|
|
99
|
+
* parse. This option is the typed form:
|
|
100
|
+
*
|
|
101
|
+
* ```ts
|
|
102
|
+
* const limits = new RateLimitOption();
|
|
103
|
+
*
|
|
104
|
+
* const sites = await client.sites.get({ options: [limits] });
|
|
105
|
+
*
|
|
106
|
+
* if (limits.hour && limits.hour.remaining < 50) {
|
|
107
|
+
* // Slow down; limits.hour.resetInSeconds until a slot frees up.
|
|
108
|
+
* }
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* Use one instance per call: it is written when the response arrives, so
|
|
112
|
+
* sharing one across concurrent calls means whichever finishes last wins.
|
|
113
|
+
*/
|
|
114
|
+
export class RateLimitOption {
|
|
115
|
+
/**
|
|
116
|
+
* The hourly window, or `undefined` if the response carried no hourly
|
|
117
|
+
* headers.
|
|
118
|
+
*/
|
|
119
|
+
hour;
|
|
120
|
+
/**
|
|
121
|
+
* The monthly window, or `undefined` if the response carried no monthly
|
|
122
|
+
* headers.
|
|
123
|
+
*
|
|
124
|
+
* Both are `undefined` for a response the API did not meter — `401`, `403`,
|
|
125
|
+
* `503` and `GET /rate-limit` itself — and for a call that never reached a
|
|
126
|
+
* response. A `429` carries only the window that refused it, so exactly one
|
|
127
|
+
* of the two being set is normal rather than a partial reading.
|
|
128
|
+
*/
|
|
129
|
+
month;
|
|
130
|
+
getKey() {
|
|
131
|
+
return RATE_LIMIT_OPTION_KEY;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Read one window's three headers, or `undefined` if they are not all there.
|
|
136
|
+
*
|
|
137
|
+
* Deliberately lenient: rate-limit headers are metadata about a call that has
|
|
138
|
+
* already succeeded, so a missing or malformed one reports "no reading" rather
|
|
139
|
+
* than failing the call the caller actually made.
|
|
140
|
+
*/
|
|
141
|
+
function readRateLimitWindow(headers, window) {
|
|
142
|
+
const values = [];
|
|
143
|
+
for (const name of ["Limit", "Remaining", "Reset"]) {
|
|
144
|
+
const raw = headers.get(`X-RateLimit-${name}-${window}`);
|
|
145
|
+
if (raw === null) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
// Number() rather than parseInt(): parseInt("12abc") is 12, which would
|
|
149
|
+
// turn a malformed header into a plausible-looking reading.
|
|
150
|
+
const value = Number(raw.trim());
|
|
151
|
+
if (!Number.isInteger(value)) {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
values.push(value);
|
|
155
|
+
}
|
|
156
|
+
const [limit, remaining, resetInSeconds] = values;
|
|
157
|
+
return { limit, remaining, resetInSeconds };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Records response metadata into the options a request carries.
|
|
91
161
|
*
|
|
92
162
|
* Sits at the outer end of the SDK's pipeline, above the retry and redirect
|
|
93
163
|
* handlers, so what it records is the response the caller's result is built
|
|
94
164
|
* from rather than an attempt on the way there.
|
|
95
165
|
*/
|
|
96
|
-
class
|
|
166
|
+
class ResponseMetadataHandler {
|
|
97
167
|
next;
|
|
98
168
|
async execute(url, requestInit, requestOptions) {
|
|
99
169
|
if (!this.next) {
|
|
@@ -103,9 +173,14 @@ class ResponseStatusHandler {
|
|
|
103
173
|
// Matched by key rather than `instanceof`: the key is ours alone, and two
|
|
104
174
|
// copies of this package in one dependency tree would still agree on it
|
|
105
175
|
// where a class identity check would not.
|
|
106
|
-
const
|
|
107
|
-
if (
|
|
108
|
-
|
|
176
|
+
const status = requestOptions?.[RESPONSE_STATUS_OPTION_KEY];
|
|
177
|
+
if (status) {
|
|
178
|
+
status.statusCode = response.status;
|
|
179
|
+
}
|
|
180
|
+
const limits = requestOptions?.[RATE_LIMIT_OPTION_KEY];
|
|
181
|
+
if (limits) {
|
|
182
|
+
limits.hour = readRateLimitWindow(response.headers, "Hour");
|
|
183
|
+
limits.month = readRateLimitWindow(response.headers, "Month");
|
|
109
184
|
}
|
|
110
185
|
return response;
|
|
111
186
|
}
|
|
@@ -173,7 +248,7 @@ function buildHttpClient(customFetch, retry) {
|
|
|
173
248
|
// First in the list is outermost, which puts it above the retry and redirect
|
|
174
249
|
// handlers: the status it records is the one the caller's result was built
|
|
175
250
|
// from, not that of an attempt on the way there.
|
|
176
|
-
middlewares = [new
|
|
251
|
+
middlewares = [new ResponseMetadataHandler(), ...middlewares];
|
|
177
252
|
return KiotaClientFactory.create(customFetch, middlewares);
|
|
178
253
|
}
|
|
179
254
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACN,+BAA+B,EAC/B,4BAA4B,EAC5B,cAAc,GAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAEN,kBAAkB,EAElB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,GACnB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,2BAA2B,CAAC;AAE9E,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAQvD;;;;;;GAMG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAClD,YAAY,WAAmB,EAAE,MAAc;QAC9C,KAAK,CACJ,sCAAsC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,MAAM;YACpE,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,0CAA0C,CAClE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACxC,CAAC;CACD;AAED,0DAA0D;AAC1D,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAAqB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,OAAO,oBAAoB;IAChC;;;;;OAKG;IACH,UAAU,CAAU;IAEpB,MAAM;QACL,OAAO,0BAA0B,CAAC;IACnC,CAAC;CACD;AAED
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|