@growsober/sdk 1.0.31 → 1.0.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/CLAUDE.md +11 -0
- package/dist/api/client.js +17 -6
- package/dist/api/mutations/creators.js +7 -5
- package/package.json +1 -1
- package/src/api/CLAUDE.md +9 -0
- package/src/api/client.ts +20 -5
- package/src/api/mutations/creators.ts +6 -4
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<claude-mem-context>
|
|
2
|
+
# Recent Activity
|
|
3
|
+
|
|
4
|
+
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
|
|
5
|
+
|
|
6
|
+
### Jan 25, 2026
|
|
7
|
+
|
|
8
|
+
| ID | Time | T | Title | Read |
|
|
9
|
+
|----|------|---|-------|------|
|
|
10
|
+
| #1208 | 3:28 AM | 🔵 | UserResponse data structure includes comprehensive profile and notification settings | ~580 |
|
|
11
|
+
</claude-mem-context>
|
package/dist/api/client.js
CHANGED
|
@@ -27,6 +27,8 @@ function createApiClient(sdkConfig) {
|
|
|
27
27
|
'Content-Type': 'application/json',
|
|
28
28
|
},
|
|
29
29
|
});
|
|
30
|
+
// Track ongoing refresh to avoid duplicate calls
|
|
31
|
+
let refreshPromise = null;
|
|
30
32
|
// Request interceptor - add auth token
|
|
31
33
|
client.interceptors.request.use(async (requestConfig) => {
|
|
32
34
|
const token = await sdkConfig.getAccessToken();
|
|
@@ -44,17 +46,26 @@ function createApiClient(sdkConfig) {
|
|
|
44
46
|
}
|
|
45
47
|
return response;
|
|
46
48
|
}, async (error) => {
|
|
47
|
-
|
|
49
|
+
const originalRequest = error.config;
|
|
50
|
+
if (error.response?.status === 401 && originalRequest && !originalRequest._retry) {
|
|
51
|
+
originalRequest._retry = true;
|
|
48
52
|
if (sdkConfig.refreshAccessToken) {
|
|
49
53
|
try {
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
// Deduplicate concurrent refresh calls
|
|
55
|
+
if (!refreshPromise) {
|
|
56
|
+
refreshPromise = sdkConfig.refreshAccessToken().finally(() => {
|
|
57
|
+
refreshPromise = null;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const newToken = await refreshPromise;
|
|
61
|
+
if (newToken) {
|
|
62
|
+
originalRequest.headers.Authorization = `Bearer ${newToken}`;
|
|
63
|
+
return client.request(originalRequest);
|
|
54
64
|
}
|
|
55
65
|
}
|
|
56
66
|
catch {
|
|
57
67
|
sdkConfig.onUnauthorized?.();
|
|
68
|
+
return Promise.reject(error);
|
|
58
69
|
}
|
|
59
70
|
}
|
|
60
71
|
else {
|
|
@@ -65,4 +76,4 @@ function createApiClient(sdkConfig) {
|
|
|
65
76
|
});
|
|
66
77
|
return client;
|
|
67
78
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBWUEsb0NBR0M7QUFFRCxvQ0FLQztBQXRCRCxrREFBcUY7QUFTckYsSUFBSSxNQUFNLEdBQXFCLElBQUksQ0FBQztBQUNwQyxJQUFJLFNBQVMsR0FBeUIsSUFBSSxDQUFDO0FBa0ZsQyw4QkFBUztBQWhGbEIsU0FBZ0IsWUFBWSxDQUFDLFNBQW9CO0lBQy9DLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDbkIsb0JBQUEsU0FBUyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBZ0IsWUFBWTtJQUMxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxTQUFvQjtJQUMzQyxNQUFNLE1BQU0sR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDO1FBQzFCLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztRQUMxQixPQUFPLEVBQUU7WUFDUCxjQUFjLEVBQUUsa0JBQWtCO1NBQ25DO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsaURBQWlEO0lBQ2pELElBQUksY0FBYyxHQUEyQixJQUFJLENBQUM7SUFFbEQsdUNBQXVDO0lBQ3ZDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDN0IsS0FBSyxFQUFFLGFBQXlDLEVBQUUsRUFBRTtRQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsYUFBYSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsVUFBVSxLQUFLLEVBQUUsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNqQyxDQUFDO0lBRUYsNERBQTREO0lBQzVELE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDOUIsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNYLHNEQUFzRDtRQUN0RCx5Q0FBeUM7UUFDekMsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksTUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsRixRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLEVBQ0QsS0FBSyxFQUFFLEtBQWlCLEVBQUUsRUFBRTtRQUMxQixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBMkQsQ0FBQztRQUUxRixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakYsZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFOUIsSUFBSSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDO29CQUNILHVDQUF1QztvQkFDdkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUNwQixjQUFjLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTs0QkFDM0QsY0FBYyxHQUFHLElBQUksQ0FBQzt3QkFDeEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQztvQkFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQztvQkFFdEMsSUFBSSxRQUFRLEVBQUUsQ0FBQzt3QkFDYixlQUFlLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxVQUFVLFFBQVEsRUFBRSxDQUFDO3dCQUM3RCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3pDLENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7b0JBQzdCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMvQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MsIHsgQXhpb3NJbnN0YW5jZSwgQXhpb3NFcnJvciwgSW50ZXJuYWxBeGlvc1JlcXVlc3RDb25maWcgfSBmcm9tICdheGlvcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU0RLQ29uZmlnIHtcbiAgYmFzZVVSTDogc3RyaW5nO1xuICBnZXRBY2Nlc3NUb2tlbjogKCkgPT4gc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG4gIHJlZnJlc2hBY2Nlc3NUb2tlbj86ICgpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgb25VbmF1dGhvcml6ZWQ/OiAoKSA9PiB2b2lkO1xufVxuXG5sZXQgY29uZmlnOiBTREtDb25maWcgfCBudWxsID0gbnVsbDtcbmxldCBhcGlDbGllbnQ6IEF4aW9zSW5zdGFuY2UgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZVNESyhzZGtDb25maWc6IFNES0NvbmZpZyk6IHZvaWQge1xuICBjb25maWcgPSBzZGtDb25maWc7XG4gIGFwaUNsaWVudCA9IGNyZWF0ZUFwaUNsaWVudChzZGtDb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBpQ2xpZW50KCk6IEF4aW9zSW5zdGFuY2Uge1xuICBpZiAoIWFwaUNsaWVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU0RLIG5vdCBjb25maWd1cmVkLiBDYWxsIGNvbmZpZ3VyZVNESygpIGZpcnN0LicpO1xuICB9XG4gIHJldHVybiBhcGlDbGllbnQ7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFwaUNsaWVudChzZGtDb25maWc6IFNES0NvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICBjb25zdCBjbGllbnQgPSBheGlvcy5jcmVhdGUoe1xuICAgIGJhc2VVUkw6IHNka0NvbmZpZy5iYXNlVVJMLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gVHJhY2sgb25nb2luZyByZWZyZXNoIHRvIGF2b2lkIGR1cGxpY2F0ZSBjYWxsc1xuICBsZXQgcmVmcmVzaFByb21pc2U6IFByb21pc2U8c3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gIC8vIFJlcXVlc3QgaW50ZXJjZXB0b3IgLSBhZGQgYXV0aCB0b2tlblxuICBjbGllbnQuaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKFxuICAgIGFzeW5jIChyZXF1ZXN0Q29uZmlnOiBJbnRlcm5hbEF4aW9zUmVxdWVzdENvbmZpZykgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBzZGtDb25maWcuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgICAgIGlmICh0b2tlbikge1xuICAgICAgICByZXF1ZXN0Q29uZmlnLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlcXVlc3RDb25maWc7XG4gICAgfSxcbiAgICAoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKVxuICApO1xuXG4gIC8vIFJlc3BvbnNlIGludGVyY2VwdG9yIC0gdW53cmFwIEFQSSByZXNwb25zZSBhbmQgaGFuZGxlIDQwMVxuICBjbGllbnQuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShcbiAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgIC8vIEFQSSB3cmFwcyBhbGwgcmVzcG9uc2VzIGluIHtkYXRhOiAuLi4sIG1ldGE6IHsuLi59fVxuICAgICAgLy8gVW53cmFwIHRvIHJldHVybiBqdXN0IHRoZSBkYXRhIHBvcnRpb25cbiAgICAgIGlmIChyZXNwb25zZS5kYXRhICYmIHR5cGVvZiByZXNwb25zZS5kYXRhID09PSAnb2JqZWN0JyAmJiAnZGF0YScgaW4gcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICByZXNwb25zZS5kYXRhID0gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0sXG4gICAgYXN5bmMgKGVycm9yOiBBeGlvc0Vycm9yKSA9PiB7XG4gICAgICBjb25zdCBvcmlnaW5hbFJlcXVlc3QgPSBlcnJvci5jb25maWcgYXMgSW50ZXJuYWxBeGlvc1JlcXVlc3RDb25maWcgJiB7IF9yZXRyeT86IGJvb2xlYW4gfTtcblxuICAgICAgaWYgKGVycm9yLnJlc3BvbnNlPy5zdGF0dXMgPT09IDQwMSAmJiBvcmlnaW5hbFJlcXVlc3QgJiYgIW9yaWdpbmFsUmVxdWVzdC5fcmV0cnkpIHtcbiAgICAgICAgb3JpZ2luYWxSZXF1ZXN0Ll9yZXRyeSA9IHRydWU7XG5cbiAgICAgICAgaWYgKHNka0NvbmZpZy5yZWZyZXNoQWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gRGVkdXBsaWNhdGUgY29uY3VycmVudCByZWZyZXNoIGNhbGxzXG4gICAgICAgICAgICBpZiAoIXJlZnJlc2hQcm9taXNlKSB7XG4gICAgICAgICAgICAgIHJlZnJlc2hQcm9taXNlID0gc2RrQ29uZmlnLnJlZnJlc2hBY2Nlc3NUb2tlbigpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlZnJlc2hQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXdUb2tlbiA9IGF3YWl0IHJlZnJlc2hQcm9taXNlO1xuXG4gICAgICAgICAgICBpZiAobmV3VG9rZW4pIHtcbiAgICAgICAgICAgICAgb3JpZ2luYWxSZXF1ZXN0LmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9IGBCZWFyZXIgJHtuZXdUb2tlbn1gO1xuICAgICAgICAgICAgICByZXR1cm4gY2xpZW50LnJlcXVlc3Qob3JpZ2luYWxSZXF1ZXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHNka0NvbmZpZy5vblVuYXV0aG9yaXplZD8uKCk7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZGtDb25maWcub25VbmF1dGhvcml6ZWQ/LigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH1cbiAgKTtcblxuICByZXR1cm4gY2xpZW50O1xufVxuXG5leHBvcnQgeyBhcGlDbGllbnQgfTtcbiJdfQ==
|
|
@@ -183,10 +183,11 @@ function useUpdateCreatorReward(creatorId, options) {
|
|
|
183
183
|
const response = await client.patch(`/api/v1/creators/${creatorId}/rewards/${id}`, data);
|
|
184
184
|
return response.data;
|
|
185
185
|
},
|
|
186
|
-
|
|
186
|
+
...options,
|
|
187
|
+
onSuccess: (...args) => {
|
|
187
188
|
queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.all });
|
|
189
|
+
options?.onSuccess?.(...args);
|
|
188
190
|
},
|
|
189
|
-
...options,
|
|
190
191
|
});
|
|
191
192
|
}
|
|
192
193
|
/**
|
|
@@ -206,10 +207,11 @@ function useDeleteCreatorReward(creatorId, options) {
|
|
|
206
207
|
const client = (0, client_1.getApiClient)();
|
|
207
208
|
await client.delete(`/api/v1/creators/${creatorId}/rewards/${rewardId}`);
|
|
208
209
|
},
|
|
209
|
-
|
|
210
|
+
...options,
|
|
211
|
+
onSuccess: (...args) => {
|
|
210
212
|
queryClient.invalidateQueries({ queryKey: creators_1.creatorKeys.all });
|
|
213
|
+
options?.onSuccess?.(...args);
|
|
211
214
|
},
|
|
212
|
-
...options,
|
|
213
215
|
});
|
|
214
216
|
}
|
|
215
217
|
// ============================================================================
|
|
@@ -352,4 +354,4 @@ function useGenerateGatheringTypeSuggestions(creatorId) {
|
|
|
352
354
|
},
|
|
353
355
|
});
|
|
354
356
|
}
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9jcmVhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw0Q0FnQkM7QUFlRCw0Q0FvQkM7QUFxQkQsOERBNkJDO0FBZUQsb0VBd0JDO0FBdURELHdEQWFDO0FBZUQsd0RBb0JDO0FBWUQsd0RBZ0JDO0FBd0JELHdEQWFDO0FBaUJELHdEQW9CQztBQWNELDBEQWdCQztBQWNELHdEQWFDO0FBZUQsa0ZBYUM7QUEvY0QsdURBQXdGO0FBQ3hGLHNDQUF5QztBQUN6QyxrREFBa0Q7QUFZbEQsK0VBQStFO0FBQy9FLGlCQUFpQjtBQUNqQiwrRUFBK0U7QUFFL0U7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBOEY7SUFFOUYsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUEwQixFQUE0QixFQUFFO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE9BR0M7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRC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LE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsU0FBUywyQkFBMkIsQ0FBQyxDQUFDO1lBQzdGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBVyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckYsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNdXRhdGlvbiwgdXNlUXVlcnlDbGllbnQsIFVzZU11dGF0aW9uT3B0aW9ucyB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRvcktleXMgfSBmcm9tICcuLi9xdWVyaWVzL2NyZWF0b3JzJztcbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRvclJlc3BvbnNlLFxuICBDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2UsXG4gIENyZWF0ZUNyZWF0b3JSZXF1ZXN0LFxuICBVcGRhdGVDcmVhdG9yUmVxdWVzdCxcbiAgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCxcbiAgR2F0aGVyaW5nVHlwZVJlc3BvbnNlLFxuICBDcmVhdGVHYXRoZXJpbmdUeXBlUmVxdWVzdCxcbiAgVXBkYXRlR2F0aGVyaW5nVHlwZVJlcXVlc3QsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgY3JlYXRvciBwcm9maWxlIGZvciB0aGUgY3VycmVudCB1c2VyXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogY3JlYXRlQ3JlYXRvciB9ID0gdXNlQ3JlYXRlQ3JlYXRvcigpO1xuICpcbiAqIGF3YWl0IGNyZWF0ZUNyZWF0b3Ioe1xuICogICBzbHVnOiAnam9obi1kb2UnLFxuICogICBkaXNwbGF5TmFtZTogJ0pvaG4gRG9lJyxcbiAqICAgYmlvOiAnV2VsbG5lc3MgZmFjaWxpdGF0b3InLFxuICogICBjYW5GYWNpbGl0YXRlOiB0cnVlLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZUNyZWF0b3IoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczxDcmVhdG9yUmVzcG9uc2UsIEVycm9yLCBDcmVhdGVDcmVhdG9yUmVxdWVzdD4sICdtdXRhdGlvbkZuJz5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlQ3JlYXRvclJlcXVlc3QpOiBQcm9taXNlPENyZWF0b3JSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KCcvYXBpL3YxL2NyZWF0b3JzJywgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYWxsIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogVXBkYXRlIGEgY3JlYXRvciBwcm9maWxlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogdXBkYXRlQ3JlYXRvciB9ID0gdXNlVXBkYXRlQ3JlYXRvcigpO1xuICpcbiAqIGF3YWl0IHVwZGF0ZUNyZWF0b3Ioe1xuICogICBpZDogJ2NyZWF0b3ItMTIzJyxcbiAqICAgZGF0YTogeyBiaW86ICdVcGRhdGVkIGJpbycgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVDcmVhdG9yKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8Q3JlYXRvclJlc3BvbnNlLCBFcnJvciwgeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVDcmVhdG9yUmVxdWVzdCB9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7IGlkLCBkYXRhIH06IHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlQ3JlYXRvclJlcXVlc3QgfSk6IFByb21pc2U8Q3JlYXRvclJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBhdGNoKGAvYXBpL3YxL2NyZWF0b3JzLyR7aWR9YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZGV0YWlsKHZhcmlhYmxlcy5pZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5tZSgpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogQWRkIGFuIGF2YWlsYWJpbGl0eSBzbG90IGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiBhZGRBdmFpbGFiaWxpdHkgfSA9IHVzZUFkZENyZWF0b3JBdmFpbGFiaWxpdHkoKTtcbiAqXG4gKiBhd2FpdCBhZGRBdmFpbGFiaWxpdHkoe1xuICogICBjcmVhdG9ySWQ6ICdjcmVhdG9yLTEyMycsXG4gKiAgIGRhdGE6IHtcbiAqICAgICBkYXlPZldlZWs6IDEsIC8vIE1vbmRheVxuICogICAgIHN0YXJ0VGltZTogJzA5OjAwJyxcbiAqICAgICBlbmRUaW1lOiAnMTc6MDAnLFxuICogICAgIHRpbWV6b25lOiAnRXVyb3BlL0xvbmRvbicsXG4gKiAgICAgaXNSZWN1cnJpbmc6IHRydWUsXG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQWRkQ3JlYXRvckF2YWlsYWJpbGl0eShcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPFxuICAgICAgQ3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlLFxuICAgICAgRXJyb3IsXG4gICAgICB7IGNyZWF0b3JJZDogc3RyaW5nOyBkYXRhOiBDcmVhdGVBdmFpbGFiaWxpdHlSZXF1ZXN0IH1cbiAgICA+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGNyZWF0b3JJZCxcbiAgICAgIGRhdGEsXG4gICAgfToge1xuICAgICAgY3JlYXRvcklkOiBzdHJpbmc7XG4gICAgICBkYXRhOiBDcmVhdGVBdmFpbGFiaWxpdHlSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPENyZWF0b3JBdmFpbGFiaWxpdHlSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9hdmFpbGFiaWxpdHlgLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hdmFpbGFiaWxpdHkodmFyaWFibGVzLmNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYW4gYXZhaWxhYmlsaXR5IHNsb3QgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IHJlbW92ZUF2YWlsYWJpbGl0eSB9ID0gdXNlUmVtb3ZlQ3JlYXRvckF2YWlsYWJpbGl0eSgpO1xuICpcbiAqIGF3YWl0IHJlbW92ZUF2YWlsYWJpbGl0eSh7XG4gKiAgIGNyZWF0b3JJZDogJ2NyZWF0b3ItMTIzJyxcbiAqICAgYXZhaWxhYmlsaXR5SWQ6ICdhdmFpbGFiaWxpdHktNDU2JyxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZW1vdmVDcmVhdG9yQXZhaWxhYmlsaXR5KFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHsgY3JlYXRvcklkOiBzdHJpbmc7IGF2YWlsYWJpbGl0eUlkOiBzdHJpbmcgfT4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgY3JlYXRvcklkLFxuICAgICAgYXZhaWxhYmlsaXR5SWQsXG4gICAgfToge1xuICAgICAgY3JlYXRvcklkOiBzdHJpbmc7XG4gICAgICBhdmFpbGFiaWxpdHlJZDogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vYXZhaWxhYmlsaXR5LyR7YXZhaWxhYmlsaXR5SWR9YCk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmF2YWlsYWJpbGl0eSh2YXJpYWJsZXMuY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDUkVBVE9SIFJFV0FSRFNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDcmVhdG9yUmV3YXJkUmVxdWVzdCB7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVkZWVtVHlwZTogJ0lOX1BFUlNPTicgfCAnT05MSU5FJyB8ICdCT1RIJztcbiAgY29kZT86IHN0cmluZztcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRvclJld2FyZFJlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgY3JlYXRvcklkOiBzdHJpbmc7XG4gIGJhZGdlSWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVkZWVtVHlwZTogJ0lOX1BFUlNPTicgfCAnT05MSU5FJyB8ICdCT1RIJztcbiAgY29kZT86IHN0cmluZztcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDcmVhdG9yUmV3YXJkUmVxdWVzdCB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVkZWVtVHlwZT86ICdJTl9QRVJTT04nIHwgJ09OTElORScgfCAnQk9USCc7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIG1heFJlZGVtcHRpb25zPzogbnVtYmVyO1xuICB2YWxpZFVudGlsPzogc3RyaW5nO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IHJld2FyZCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgY3JlYXRlUmV3YXJkID0gdXNlQ3JlYXRlQ3JlYXRvclJld2FyZChjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IGNyZWF0ZVJld2FyZC5tdXRhdGVBc3luYyh7XG4gKiAgIGJhZGdlSWQ6ICdiYWRnZS0xMjMnLFxuICogICB0aXRsZTogJ0ZyZWUgU2Vzc2lvbicsXG4gKiAgIGRlc2NyaXB0aW9uOiAnR2V0IGEgZnJlZSAzMC1taW51dGUgc2Vzc2lvbicsXG4gKiAgIHJlZGVlbVR5cGU6ICdJTl9QRVJTT04nLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZUNyZWF0b3JSZXdhcmQoY3JlYXRvcklkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IENyZWF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0KTogUHJvbWlzZTxDcmVhdG9yUmV3YXJkUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vcmV3YXJkc2AsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFsbCB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYW4gZXhpc3RpbmcgcmV3YXJkIGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB1cGRhdGVSZXdhcmQgPSB1c2VVcGRhdGVDcmVhdG9yUmV3YXJkKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgdXBkYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgaWQ6ICdyZXdhcmQtMTIzJyxcbiAqICAgZGF0YTogeyBpc0FjdGl2ZTogZmFsc2UgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVDcmVhdG9yUmV3YXJkKFxuICBjcmVhdG9ySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPENyZWF0b3JSZXdhcmRSZXNwb25zZSwgRXJyb3IsIHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlQ3JlYXRvclJld2FyZFJlcXVlc3QgfT4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoeyBpZCwgZGF0YSB9OiB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IH0pOiBQcm9taXNlPENyZWF0b3JSZXdhcmRSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wYXRjaChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vcmV3YXJkcy8ke2lkfWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFsbCB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIERlbGV0ZSBhIHJld2FyZCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgZGVsZXRlUmV3YXJkID0gdXNlRGVsZXRlQ3JlYXRvclJld2FyZChjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IGRlbGV0ZVJld2FyZC5tdXRhdGVBc3luYygncmV3YXJkLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWxldGVDcmVhdG9yUmV3YXJkKFxuICBjcmVhdG9ySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHJld2FyZElkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vcmV3YXJkcy8ke3Jld2FyZElkfWApO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hbGwgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR0FUSEVSSU5HIFRZUEUgTVVUQVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGdhdGhlcmluZyB0eXBlIGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGNyZWF0ZUdhdGhlcmluZ1R5cGUgPSB1c2VDcmVhdGVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgY3JlYXRlR2F0aGVyaW5nVHlwZS5tdXRhdGVBc3luYyh7XG4gKiAgIG5hbWU6ICdNb3JuaW5nIFlvZ2EgaW4gdGhlIFBhcmsnLFxuICogICBkZXNjcmlwdGlvbjogJ0dlbnRsZSA0NS1taW51dGUgeW9nYSBzZXNzaW9uJyxcbiAqICAgZHVyYXRpb246IDQ1LFxuICogICB2aWJlczogWydNaW5kZnVsJywgJ0NoaWxsJ10sXG4gKiAgIGNhdGVnb3J5OiAnTU9WRU1FTlQnLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IENyZWF0ZUdhdGhlcmluZ1R5cGVSZXF1ZXN0KTogUHJvbWlzZTxHYXRoZXJpbmdUeXBlUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vZ2F0aGVyaW5nLXR5cGVzYCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZ2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBnYXRoZXJpbmcgdHlwZVxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgdXBkYXRlR2F0aGVyaW5nVHlwZSA9IHVzZVVwZGF0ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCB1cGRhdGVHYXRoZXJpbmdUeXBlLm11dGF0ZUFzeW5jKHtcbiAqICAgaWQ6ICdnYXRoZXJpbmctdHlwZS0xMjMnLFxuICogICBkYXRhOiB7IGRlc2NyaXB0aW9uOiAnVXBkYXRlZCBkZXNjcmlwdGlvbicgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZDogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBpZCxcbiAgICAgIGRhdGEsXG4gICAgfToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGRhdGE6IFVwZGF0ZUdhdGhlcmluZ1R5cGVSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPEdhdGhlcmluZ1R5cGVSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wdXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2dhdGhlcmluZy10eXBlcy8ke2lkfWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hcHByb3ZlZEdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogQXBwcm92ZSBhIGdhdGhlcmluZyB0eXBlIChmb3IgQUktc3VnZ2VzdGVkIHR5cGVzKVxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgYXBwcm92ZUdhdGhlcmluZ1R5cGUgPSB1c2VBcHByb3ZlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IGFwcHJvdmVHYXRoZXJpbmdUeXBlLm11dGF0ZUFzeW5jKCdnYXRoZXJpbmctdHlwZS0xMjMnKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQXBwcm92ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGdhdGhlcmluZ1R5cGVJZDogc3RyaW5nKTogUHJvbWlzZTxHYXRoZXJpbmdUeXBlUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0KFxuICAgICAgICBgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vZ2F0aGVyaW5nLXR5cGVzLyR7Z2F0aGVyaW5nVHlwZUlkfS9hcHByb3ZlYFxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5nYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYXBwcm92ZWRHYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIERlbGV0ZSBhIGdhdGhlcmluZyB0eXBlXG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBkZWxldGVHYXRoZXJpbmdUeXBlID0gdXNlRGVsZXRlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IGRlbGV0ZUdhdGhlcmluZ1R5cGUubXV0YXRlQXN5bmMoJ2dhdGhlcmluZy10eXBlLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWxldGVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZDogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChnYXRoZXJpbmdUeXBlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9nYXRoZXJpbmctdHlwZXMvJHtnYXRoZXJpbmdUeXBlSWR9YCk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hcHByb3ZlZEdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgQUkgc3VnZ2VzdGlvbnMgZm9yIGdhdGhlcmluZyB0eXBlcyBiYXNlZCBvbiBmYWNpbGl0YXRvciBwcm9maWxlXG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBnZW5lcmF0ZVN1Z2dlc3Rpb25zID0gdXNlR2VuZXJhdGVHYXRoZXJpbmdUeXBlU3VnZ2VzdGlvbnMoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCBnZW5lcmF0ZVN1Z2dlc3Rpb25zLm11dGF0ZUFzeW5jKCk7XG4gKiAvLyBSZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkICh1bmFwcHJvdmVkKSBnYXRoZXJpbmcgdHlwZXNcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlR2VuZXJhdGVHYXRoZXJpbmdUeXBlU3VnZ2VzdGlvbnMoY3JlYXRvcklkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKCk6IFByb21pc2U8R2F0aGVyaW5nVHlwZVJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vZ2F0aGVyaW5nLXR5cGVzL2dlbmVyYXRlYCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZ2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cbiJdfQ==
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9jcmVhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw0Q0FnQkM7QUFlRCw0Q0FvQkM7QUFxQkQsOERBNkJDO0FBZUQsb0VBd0JDO0FBdURELHdEQWFDO0FBZUQsd0RBcUJDO0FBWUQsd0RBaUJDO0FBd0JELHdEQWFDO0FBaUJELHdEQW9CQztBQWNELDBEQWdCQztBQWNELHdEQWFDO0FBZUQsa0ZBYUM7QUFqZEQsdURBQXdGO0FBQ3hGLHNDQUF5QztBQUN6QyxrREFBa0Q7QUFZbEQsK0VBQStFO0FBQy9FLGlCQUFpQjtBQUNqQiwrRUFBK0U7QUFFL0U7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBOEY7SUFFOUYsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUEwQixFQUE0QixFQUFFO1lBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE9BR0M7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRC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QUNILFNBQWdCLG1DQUFtQyxDQUFDLFNBQWlCO0lBQ25FLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLElBQXNDLEVBQUU7WUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixTQUFTLDJCQUEyQixDQUFDLENBQUM7WUFDN0YsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCwgVXNlTXV0YXRpb25PcHRpb25zIH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdG9yS2V5cyB9IGZyb20gJy4uL3F1ZXJpZXMvY3JlYXRvcnMnO1xuaW1wb3J0IHR5cGUge1xuICBDcmVhdG9yUmVzcG9uc2UsXG4gIENyZWF0b3JBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgQ3JlYXRlQ3JlYXRvclJlcXVlc3QsXG4gIFVwZGF0ZUNyZWF0b3JSZXF1ZXN0LFxuICBDcmVhdGVBdmFpbGFiaWxpdHlSZXF1ZXN0LFxuICBHYXRoZXJpbmdUeXBlUmVzcG9uc2UsXG4gIENyZWF0ZUdhdGhlcmluZ1R5cGVSZXF1ZXN0LFxuICBVcGRhdGVHYXRoZXJpbmdUeXBlUmVxdWVzdCxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNVVRBVElPTiBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBjcmVhdG9yIHByb2ZpbGUgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiBjcmVhdGVDcmVhdG9yIH0gPSB1c2VDcmVhdGVDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgY3JlYXRlQ3JlYXRvcih7XG4gKiAgIHNsdWc6ICdqb2huLWRvZScsXG4gKiAgIGRpc3BsYXlOYW1lOiAnSm9obiBEb2UnLFxuICogICBiaW86ICdXZWxsbmVzcyBmYWNpbGl0YXRvcicsXG4gKiAgIGNhbkZhY2lsaXRhdGU6IHRydWUsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ3JlYXRvcihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPENyZWF0b3JSZXNwb25zZSwgRXJyb3IsIENyZWF0ZUNyZWF0b3JSZXF1ZXN0PiwgJ211dGF0aW9uRm4nPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVDcmVhdG9yUmVxdWVzdCk6IFByb21pc2U8Q3JlYXRvclJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoJy9hcGkvdjEvY3JlYXRvcnMnLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hbGwgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBjcmVhdG9yIHByb2ZpbGVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZUFzeW5jOiB1cGRhdGVDcmVhdG9yIH0gPSB1c2VVcGRhdGVDcmVhdG9yKCk7XG4gKlxuICogYXdhaXQgdXBkYXRlQ3JlYXRvcih7XG4gKiAgIGlkOiAnY3JlYXRvci0xMjMnLFxuICogICBkYXRhOiB7IGJpbzogJ1VwZGF0ZWQgYmlvJyB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUNyZWF0b3IoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxDcmVhdG9yUmVzcG9uc2UsIEVycm9yLCB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUNyZWF0b3JSZXF1ZXN0IH0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHsgaWQsIGRhdGEgfTogeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVDcmVhdG9yUmVxdWVzdCB9KTogUHJvbWlzZTxDcmVhdG9yUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucGF0Y2goYC9hcGkvdjEvY3JlYXRvcnMvJHtpZH1gLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5kZXRhaWwodmFyaWFibGVzLmlkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLm1lKCkgfSk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYW4gYXZhaWxhYmlsaXR5IHNsb3QgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlQXN5bmM6IGFkZEF2YWlsYWJpbGl0eSB9ID0gdXNlQWRkQ3JlYXRvckF2YWlsYWJpbGl0eSgpO1xuICpcbiAqIGF3YWl0IGFkZEF2YWlsYWJpbGl0eSh7XG4gKiAgIGNyZWF0b3JJZDogJ2NyZWF0b3ItMTIzJyxcbiAqICAgZGF0YToge1xuICogICAgIGRheU9mV2VlazogMSwgLy8gTW9uZGF5XG4gKiAgICAgc3RhcnRUaW1lOiAnMDk6MDAnLFxuICogICAgIGVuZFRpbWU6ICcxNzowMCcsXG4gKiAgICAgdGltZXpvbmU6ICdFdXJvcGUvTG9uZG9uJyxcbiAqICAgICBpc1JlY3VycmluZzogdHJ1ZSxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VBZGRDcmVhdG9yQXZhaWxhYmlsaXR5KFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICBDcmVhdG9yQXZhaWxhYmlsaXR5UmVzcG9uc2UsXG4gICAgICBFcnJvcixcbiAgICAgIHsgY3JlYXRvcklkOiBzdHJpbmc7IGRhdGE6IENyZWF0ZUF2YWlsYWJpbGl0eVJlcXVlc3QgfVxuICAgID4sXG4gICAgJ211dGF0aW9uRm4nXG4gID5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgY3JlYXRvcklkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIGRhdGE6IENyZWF0ZUF2YWlsYWJpbGl0eVJlcXVlc3Q7XG4gICAgfSk6IFByb21pc2U8Q3JlYXRvckF2YWlsYWJpbGl0eVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2F2YWlsYWJpbGl0eWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmF2YWlsYWJpbGl0eSh2YXJpYWJsZXMuY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZSBhbiBhdmFpbGFiaWxpdHkgc2xvdCBmb3IgYSBjcmVhdG9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGVBc3luYzogcmVtb3ZlQXZhaWxhYmlsaXR5IH0gPSB1c2VSZW1vdmVDcmVhdG9yQXZhaWxhYmlsaXR5KCk7XG4gKlxuICogYXdhaXQgcmVtb3ZlQXZhaWxhYmlsaXR5KHtcbiAqICAgY3JlYXRvcklkOiAnY3JlYXRvci0xMjMnLFxuICogICBhdmFpbGFiaWxpdHlJZDogJ2F2YWlsYWJpbGl0eS00NTYnLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlbW92ZUNyZWF0b3JBdmFpbGFiaWxpdHkoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgeyBjcmVhdG9ySWQ6IHN0cmluZzsgYXZhaWxhYmlsaXR5SWQ6IHN0cmluZyB9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBjcmVhdG9ySWQsXG4gICAgICBhdmFpbGFiaWxpdHlJZCxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIGF2YWlsYWJpbGl0eUlkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9hdmFpbGFiaWxpdHkvJHthdmFpbGFiaWxpdHlJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHZhcmlhYmxlcykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYXZhaWxhYmlsaXR5KHZhcmlhYmxlcy5jcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENSRUFUT1IgUkVXQVJEU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IHtcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWRlZW1UeXBlOiAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuICBjb2RlPzogc3RyaW5nO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdG9yUmV3YXJkUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgYmFkZ2VJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWRlZW1UeXBlOiAnSU5fUEVSU09OJyB8ICdPTkxJTkUnIHwgJ0JPVEgnO1xuICBjb2RlPzogc3RyaW5nO1xuICBtYXhSZWRlbXB0aW9ucz86IG51bWJlcjtcbiAgdmFsaWRVbnRpbD86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNyZWF0b3JSZXdhcmRSZXF1ZXN0IHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWRlZW1UeXBlPzogJ0lOX1BFUlNPTicgfCAnT05MSU5FJyB8ICdCT1RIJztcbiAgY29kZT86IHN0cmluZztcbiAgbWF4UmVkZW1wdGlvbnM/OiBudW1iZXI7XG4gIHZhbGlkVW50aWw/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgcmV3YXJkIGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBjcmVhdGVSZXdhcmQgPSB1c2VDcmVhdGVDcmVhdG9yUmV3YXJkKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgY3JlYXRlUmV3YXJkLm11dGF0ZUFzeW5jKHtcbiAqICAgYmFkZ2VJZDogJ2JhZGdlLTEyMycsXG4gKiAgIHRpdGxlOiAnRnJlZSBTZXNzaW9uJyxcbiAqICAgZGVzY3JpcHRpb246ICdHZXQgYSBmcmVlIDMwLW1pbnV0ZSBzZXNzaW9uJyxcbiAqICAgcmVkZWVtVHlwZTogJ0lOX1BFUlNPTicsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ3JlYXRvclJld2FyZChjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlQ3JlYXRvclJld2FyZFJlcXVlc3QpOiBQcm9taXNlPENyZWF0b3JSZXdhcmRSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9yZXdhcmRzYCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYWxsIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhbiBleGlzdGluZyByZXdhcmQgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHVwZGF0ZVJld2FyZCA9IHVzZVVwZGF0ZUNyZWF0b3JSZXdhcmQoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCB1cGRhdGVSZXdhcmQubXV0YXRlQXN5bmMoe1xuICogICBpZDogJ3Jld2FyZC0xMjMnLFxuICogICBkYXRhOiB7IGlzQWN0aXZlOiBmYWxzZSB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUNyZWF0b3JSZXdhcmQoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8Q3JlYXRvclJld2FyZFJlc3BvbnNlLCBFcnJvciwgeyBpZDogc3RyaW5nOyBkYXRhOiBVcGRhdGVDcmVhdG9yUmV3YXJkUmVxdWVzdCB9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7IGlkLCBkYXRhIH06IHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlQ3JlYXRvclJld2FyZFJlcXVlc3QgfSk6IFByb21pc2U8Q3JlYXRvclJld2FyZFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBhdGNoKGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9yZXdhcmRzLyR7aWR9YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gICAgb25TdWNjZXNzOiAoLi4uYXJncykgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuYWxsIH0pO1xuICAgICAgb3B0aW9ucz8ub25TdWNjZXNzPy4oLi4uYXJncyk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRGVsZXRlIGEgcmV3YXJkIGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBkZWxldGVSZXdhcmQgPSB1c2VEZWxldGVDcmVhdG9yUmV3YXJkKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgZGVsZXRlUmV3YXJkLm11dGF0ZUFzeW5jKCdyZXdhcmQtMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURlbGV0ZUNyZWF0b3JSZXdhcmQoXG4gIGNyZWF0b3JJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz5cbikge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAocmV3YXJkSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9yZXdhcmRzLyR7cmV3YXJkSWR9YCk7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICAgIG9uU3VjY2VzczogKC4uLmFyZ3MpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFsbCB9KTtcbiAgICAgIG9wdGlvbnM/Lm9uU3VjY2Vzcz8uKC4uLmFyZ3MpO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHQVRIRVJJTkcgVFlQRSBNVVRBVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgZ2F0aGVyaW5nIHR5cGUgZm9yIGEgY3JlYXRvclxuICpcbiAqIEBwYXJhbSBjcmVhdG9ySWQgLSBDcmVhdG9yIElEXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgY3JlYXRlR2F0aGVyaW5nVHlwZSA9IHVzZUNyZWF0ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkKTtcbiAqXG4gKiBhd2FpdCBjcmVhdGVHYXRoZXJpbmdUeXBlLm11dGF0ZUFzeW5jKHtcbiAqICAgbmFtZTogJ01vcm5pbmcgWW9nYSBpbiB0aGUgUGFyaycsXG4gKiAgIGRlc2NyaXB0aW9uOiAnR2VudGxlIDQ1LW1pbnV0ZSB5b2dhIHNlc3Npb24nLFxuICogICBkdXJhdGlvbjogNDUsXG4gKiAgIHZpYmVzOiBbJ01pbmRmdWwnLCAnQ2hpbGwnXSxcbiAqICAgY2F0ZWdvcnk6ICdNT1ZFTUVOVCcsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogQ3JlYXRlR2F0aGVyaW5nVHlwZVJlcXVlc3QpOiBQcm9taXNlPEdhdGhlcmluZ1R5cGVSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9nYXRoZXJpbmctdHlwZXNgLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5nYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhIGdhdGhlcmluZyB0eXBlXG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB1cGRhdGVHYXRoZXJpbmdUeXBlID0gdXNlVXBkYXRlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IHVwZGF0ZUdhdGhlcmluZ1R5cGUubXV0YXRlQXN5bmMoe1xuICogICBpZDogJ2dhdGhlcmluZy10eXBlLTEyMycsXG4gKiAgIGRhdGE6IHsgZGVzY3JpcHRpb246ICdVcGRhdGVkIGRlc2NyaXB0aW9uJyB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGlkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgZGF0YTogVXBkYXRlR2F0aGVyaW5nVHlwZVJlcXVlc3Q7XG4gICAgfSk6IFByb21pc2U8R2F0aGVyaW5nVHlwZVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vZ2F0aGVyaW5nLXR5cGVzLyR7aWR9YCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZ2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFwcHJvdmVkR2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBBcHByb3ZlIGEgZ2F0aGVyaW5nIHR5cGUgKGZvciBBSS1zdWdnZXN0ZWQgdHlwZXMpXG4gKlxuICogQHBhcmFtIGNyZWF0b3JJZCAtIENyZWF0b3IgSURcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBhcHByb3ZlR2F0aGVyaW5nVHlwZSA9IHVzZUFwcHJvdmVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgYXBwcm92ZUdhdGhlcmluZ1R5cGUubXV0YXRlQXN5bmMoJ2dhdGhlcmluZy10eXBlLTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VBcHByb3ZlR2F0aGVyaW5nVHlwZShjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZ2F0aGVyaW5nVHlwZUlkOiBzdHJpbmcpOiBQcm9taXNlPEdhdGhlcmluZ1R5cGVSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wdXQoXG4gICAgICAgIGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9nYXRoZXJpbmctdHlwZXMvJHtnYXRoZXJpbmdUeXBlSWR9L2FwcHJvdmVgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5hcHByb3ZlZEdhdGhlcmluZ1R5cGVzKGNyZWF0b3JJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRGVsZXRlIGEgZ2F0aGVyaW5nIHR5cGVcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGRlbGV0ZUdhdGhlcmluZ1R5cGUgPSB1c2VEZWxldGVHYXRoZXJpbmdUeXBlKGNyZWF0b3JJZCk7XG4gKlxuICogYXdhaXQgZGVsZXRlR2F0aGVyaW5nVHlwZS5tdXRhdGVBc3luYygnZ2F0aGVyaW5nLXR5cGUtMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZURlbGV0ZUdhdGhlcmluZ1R5cGUoY3JlYXRvcklkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGdhdGhlcmluZ1R5cGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L2dhdGhlcmluZy10eXBlcy8ke2dhdGhlcmluZ1R5cGVJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogY3JlYXRvcktleXMuZ2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGNyZWF0b3JLZXlzLmFwcHJvdmVkR2F0aGVyaW5nVHlwZXMoY3JlYXRvcklkKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBBSSBzdWdnZXN0aW9ucyBmb3IgZ2F0aGVyaW5nIHR5cGVzIGJhc2VkIG9uIGZhY2lsaXRhdG9yIHByb2ZpbGVcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IGdlbmVyYXRlU3VnZ2VzdGlvbnMgPSB1c2VHZW5lcmF0ZUdhdGhlcmluZ1R5cGVTdWdnZXN0aW9ucyhjcmVhdG9ySWQpO1xuICpcbiAqIGF3YWl0IGdlbmVyYXRlU3VnZ2VzdGlvbnMubXV0YXRlQXN5bmMoKTtcbiAqIC8vIFJldHVybnMgdGhlIG5ld2x5IGNyZWF0ZWQgKHVuYXBwcm92ZWQpIGdhdGhlcmluZyB0eXBlc1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VHZW5lcmF0ZUdhdGhlcmluZ1R5cGVTdWdnZXN0aW9ucyhjcmVhdG9ySWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoKTogUHJvbWlzZTxHYXRoZXJpbmdUeXBlUmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9nYXRoZXJpbmctdHlwZXMvZ2VuZXJhdGVgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBjcmVhdG9yS2V5cy5nYXRoZXJpbmdUeXBlcyhjcmVhdG9ySWQpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuIl19
|
package/package.json
CHANGED
package/src/api/CLAUDE.md
CHANGED
|
@@ -3,10 +3,19 @@
|
|
|
3
3
|
|
|
4
4
|
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
|
|
5
5
|
|
|
6
|
+
### Jan 24, 2026
|
|
7
|
+
|
|
8
|
+
| ID | Time | T | Title | Read |
|
|
9
|
+
|----|------|---|-------|------|
|
|
10
|
+
| #921 | 11:42 AM | 🟣 | Added Creator Community Management to SDK | ~466 |
|
|
11
|
+
| #920 | " | 🟣 | Creator Community SDK Hooks Added | ~445 |
|
|
12
|
+
| #583 | 8:25 AM | ✅ | DTO Renaming for Message Type Clarity | ~318 |
|
|
13
|
+
|
|
6
14
|
### Jan 25, 2026
|
|
7
15
|
|
|
8
16
|
| ID | Time | T | Title | Read |
|
|
9
17
|
|----|------|---|-------|------|
|
|
18
|
+
| #1778 | 12:19 PM | 🔵 | SDK Client Architecture with Token Management and Response Unwrapping | ~561 |
|
|
10
19
|
| #1712 | 11:42 AM | 🟣 | Product Checkout Flow with Stripe Payment Integration Completed | ~536 |
|
|
11
20
|
| #1208 | 3:28 AM | 🔵 | UserResponse data structure includes comprehensive profile and notification settings | ~580 |
|
|
12
21
|
</claude-mem-context>
|
package/src/api/client.ts
CHANGED
|
@@ -30,6 +30,9 @@ function createApiClient(sdkConfig: SDKConfig): AxiosInstance {
|
|
|
30
30
|
},
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
+
// Track ongoing refresh to avoid duplicate calls
|
|
34
|
+
let refreshPromise: Promise<string> | null = null;
|
|
35
|
+
|
|
33
36
|
// Request interceptor - add auth token
|
|
34
37
|
client.interceptors.request.use(
|
|
35
38
|
async (requestConfig: InternalAxiosRequestConfig) => {
|
|
@@ -53,16 +56,28 @@ function createApiClient(sdkConfig: SDKConfig): AxiosInstance {
|
|
|
53
56
|
return response;
|
|
54
57
|
},
|
|
55
58
|
async (error: AxiosError) => {
|
|
56
|
-
|
|
59
|
+
const originalRequest = error.config as InternalAxiosRequestConfig & { _retry?: boolean };
|
|
60
|
+
|
|
61
|
+
if (error.response?.status === 401 && originalRequest && !originalRequest._retry) {
|
|
62
|
+
originalRequest._retry = true;
|
|
63
|
+
|
|
57
64
|
if (sdkConfig.refreshAccessToken) {
|
|
58
65
|
try {
|
|
59
|
-
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
// Deduplicate concurrent refresh calls
|
|
67
|
+
if (!refreshPromise) {
|
|
68
|
+
refreshPromise = sdkConfig.refreshAccessToken().finally(() => {
|
|
69
|
+
refreshPromise = null;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
const newToken = await refreshPromise;
|
|
73
|
+
|
|
74
|
+
if (newToken) {
|
|
75
|
+
originalRequest.headers.Authorization = `Bearer ${newToken}`;
|
|
76
|
+
return client.request(originalRequest);
|
|
63
77
|
}
|
|
64
78
|
} catch {
|
|
65
79
|
sdkConfig.onUnauthorized?.();
|
|
80
|
+
return Promise.reject(error);
|
|
66
81
|
}
|
|
67
82
|
} else {
|
|
68
83
|
sdkConfig.onUnauthorized?.();
|
|
@@ -269,10 +269,11 @@ export function useUpdateCreatorReward(
|
|
|
269
269
|
const response = await client.patch(`/api/v1/creators/${creatorId}/rewards/${id}`, data);
|
|
270
270
|
return response.data;
|
|
271
271
|
},
|
|
272
|
-
|
|
272
|
+
...options,
|
|
273
|
+
onSuccess: (...args) => {
|
|
273
274
|
queryClient.invalidateQueries({ queryKey: creatorKeys.all });
|
|
275
|
+
options?.onSuccess?.(...args);
|
|
274
276
|
},
|
|
275
|
-
...options,
|
|
276
277
|
});
|
|
277
278
|
}
|
|
278
279
|
|
|
@@ -297,10 +298,11 @@ export function useDeleteCreatorReward(
|
|
|
297
298
|
const client = getApiClient();
|
|
298
299
|
await client.delete(`/api/v1/creators/${creatorId}/rewards/${rewardId}`);
|
|
299
300
|
},
|
|
300
|
-
|
|
301
|
+
...options,
|
|
302
|
+
onSuccess: (...args) => {
|
|
301
303
|
queryClient.invalidateQueries({ queryKey: creatorKeys.all });
|
|
304
|
+
options?.onSuccess?.(...args);
|
|
302
305
|
},
|
|
303
|
-
...options,
|
|
304
306
|
});
|
|
305
307
|
}
|
|
306
308
|
|