openclaw-productboard 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/api-client.d.ts +1 -1
- package/dist/client/api-client.js +29 -36
- package/dist/client/errors.js +11 -24
- package/dist/client/types.js +2 -3
- package/dist/index.d.ts +4 -4
- package/dist/index.js +11 -17
- package/dist/tools/features.d.ts +2 -2
- package/dist/tools/features.js +2 -5
- package/dist/tools/index.d.ts +4 -4
- package/dist/tools/index.js +5 -12
- package/dist/tools/notes.d.ts +2 -2
- package/dist/tools/notes.js +2 -5
- package/dist/tools/products.d.ts +2 -2
- package/dist/tools/products.js +2 -5
- package/dist/tools/search.d.ts +2 -2
- package/dist/tools/search.js +2 -5
- package/dist/utils/cache.js +6 -12
- package/dist/utils/rate-limiter.js +4 -10
- package/package.json +11 -2
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Token Bucket Rate Limiter for ProductBoard API
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RateLimiter = void 0;
|
|
7
|
-
exports.getRateLimiter = getRateLimiter;
|
|
8
|
-
exports.resetRateLimiter = resetRateLimiter;
|
|
9
4
|
const DEFAULT_OPTIONS = {
|
|
10
5
|
maxTokens: 100, // 100 requests
|
|
11
6
|
refillRate: 100, // Refill completely
|
|
12
7
|
refillInterval: 60 * 1000, // Per minute
|
|
13
8
|
};
|
|
14
|
-
class RateLimiter {
|
|
9
|
+
export class RateLimiter {
|
|
15
10
|
tokens;
|
|
16
11
|
lastRefill;
|
|
17
12
|
options;
|
|
@@ -103,16 +98,15 @@ class RateLimiter {
|
|
|
103
98
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
104
99
|
}
|
|
105
100
|
}
|
|
106
|
-
exports.RateLimiter = RateLimiter;
|
|
107
101
|
// Singleton instance for the plugin
|
|
108
102
|
let rateLimiterInstance = null;
|
|
109
|
-
function getRateLimiter(options) {
|
|
103
|
+
export function getRateLimiter(options) {
|
|
110
104
|
if (!rateLimiterInstance) {
|
|
111
105
|
rateLimiterInstance = new RateLimiter(options);
|
|
112
106
|
}
|
|
113
107
|
return rateLimiterInstance;
|
|
114
108
|
}
|
|
115
|
-
function resetRateLimiter() {
|
|
109
|
+
export function resetRateLimiter() {
|
|
116
110
|
rateLimiterInstance = null;
|
|
117
111
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS1saW1pdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3JhdGUtbGltaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQVdILE1BQU0sZUFBZSxHQUF1QjtJQUMxQyxTQUFTLEVBQUUsR0FBRyxFQUFFLGVBQWU7SUFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxvQkFBb0I7SUFDckMsY0FBYyxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsYUFBYTtDQUN6QyxDQUFDO0FBRUYsTUFBTSxPQUFPLFdBQVc7SUFDZCxNQUFNLENBQVM7SUFDZixVQUFVLENBQVM7SUFDVixPQUFPLENBQXFCO0lBRTdDLFlBQVksVUFBdUMsRUFBRTtRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNLLE1BQU07UUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVwRSxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDbEQsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELHlCQUF5QjtRQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFZCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7U0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGO0FBRUQsb0NBQW9DO0FBQ3BDLElBQUksbUJBQW1CLEdBQXVCLElBQUksQ0FBQztBQUVuRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXFDO0lBQ2xFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3pCLG1CQUFtQixHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxPQUFPLG1CQUFtQixDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLG1CQUFtQixHQUFHLElBQUksQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUb2tlbiBCdWNrZXQgUmF0ZSBMaW1pdGVyIGZvciBQcm9kdWN0Qm9hcmQgQVBJXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBSYXRlTGltaXRlck9wdGlvbnMge1xuICAvKiogTWF4aW11bSB0b2tlbnMgaW4gdGhlIGJ1Y2tldCAqL1xuICBtYXhUb2tlbnM6IG51bWJlcjtcbiAgLyoqIFRva2VucyBhZGRlZCBwZXIgaW50ZXJ2YWwgKi9cbiAgcmVmaWxsUmF0ZTogbnVtYmVyO1xuICAvKiogUmVmaWxsIGludGVydmFsIGluIG1pbGxpc2Vjb25kcyAqL1xuICByZWZpbGxJbnRlcnZhbDogbnVtYmVyO1xufVxuXG5jb25zdCBERUZBVUxUX09QVElPTlM6IFJhdGVMaW1pdGVyT3B0aW9ucyA9IHtcbiAgbWF4VG9rZW5zOiAxMDAsIC8vIDEwMCByZXF1ZXN0c1xuICByZWZpbGxSYXRlOiAxMDAsIC8vIFJlZmlsbCBjb21wbGV0ZWx5XG4gIHJlZmlsbEludGVydmFsOiA2MCAqIDEwMDAsIC8vIFBlciBtaW51dGVcbn07XG5cbmV4cG9ydCBjbGFzcyBSYXRlTGltaXRlciB7XG4gIHByaXZhdGUgdG9rZW5zOiBudW1iZXI7XG4gIHByaXZhdGUgbGFzdFJlZmlsbDogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFJhdGVMaW1pdGVyT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPFJhdGVMaW1pdGVyT3B0aW9ucz4gPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IHsgLi4uREVGQVVMVF9PUFRJT05TLCAuLi5vcHRpb25zIH07XG4gICAgdGhpcy50b2tlbnMgPSB0aGlzLm9wdGlvbnMubWF4VG9rZW5zO1xuICAgIHRoaXMubGFzdFJlZmlsbCA9IERhdGUubm93KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVmaWxsIHRva2VucyBiYXNlZCBvbiBlbGFwc2VkIHRpbWVcbiAgICovXG4gIHByaXZhdGUgcmVmaWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgZWxhcHNlZCA9IG5vdyAtIHRoaXMubGFzdFJlZmlsbDtcbiAgICBjb25zdCBpbnRlcnZhbHMgPSBNYXRoLmZsb29yKGVsYXBzZWQgLyB0aGlzLm9wdGlvbnMucmVmaWxsSW50ZXJ2YWwpO1xuXG4gICAgaWYgKGludGVydmFscyA+IDApIHtcbiAgICAgIHRoaXMudG9rZW5zID0gTWF0aC5taW4oXG4gICAgICAgIHRoaXMub3B0aW9ucy5tYXhUb2tlbnMsXG4gICAgICAgIHRoaXMudG9rZW5zICsgaW50ZXJ2YWxzICogdGhpcy5vcHRpb25zLnJlZmlsbFJhdGVcbiAgICAgICk7XG4gICAgICB0aGlzLmxhc3RSZWZpbGwgPSBub3cgLSAoZWxhcHNlZCAlIHRoaXMub3B0aW9ucy5yZWZpbGxJbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBhY3F1aXJlIGEgdG9rZW5cbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0b2tlbiB3YXMgYWNxdWlyZWQsIGZhbHNlIGlmIHJhdGUgbGltaXRlZFxuICAgKi9cbiAgdHJ5QWNxdWlyZSgpOiBib29sZWFuIHtcbiAgICB0aGlzLnJlZmlsbCgpO1xuXG4gICAgaWYgKHRoaXMudG9rZW5zID4gMCkge1xuICAgICAgdGhpcy50b2tlbnMtLTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3F1aXJlIGEgdG9rZW4sIHdhaXRpbmcgaWYgbmVjZXNzYXJ5XG4gICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGEgdG9rZW4gaXMgYXZhaWxhYmxlXG4gICAqL1xuICBhc3luYyBhY3F1aXJlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnRyeUFjcXVpcmUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFdhaXQgdW50aWwgbmV4dCByZWZpbGxcbiAgICBjb25zdCB3YWl0VGltZSA9IHRoaXMuZ2V0V2FpdFRpbWUoKTtcbiAgICBhd2FpdCB0aGlzLnNsZWVwKHdhaXRUaW1lKTtcbiAgICBhd2FpdCB0aGlzLmFjcXVpcmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHVudGlsIGEgdG9rZW4gaXMgYXZhaWxhYmxlXG4gICAqL1xuICBnZXRXYWl0VGltZSgpOiBudW1iZXIge1xuICAgIHRoaXMucmVmaWxsKCk7XG5cbiAgICBpZiAodGhpcy50b2tlbnMgPiAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBlbGFwc2VkID0gRGF0ZS5ub3coKSAtIHRoaXMubGFzdFJlZmlsbDtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJlZmlsbEludGVydmFsIC0gZWxhcHNlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCB0b2tlbiBjb3VudFxuICAgKi9cbiAgZ2V0VG9rZW5zKCk6IG51bWJlciB7XG4gICAgdGhpcy5yZWZpbGwoKTtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHJhdGUgbGltaXRlciB0byBmdWxsIGNhcGFjaXR5XG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnRva2VucyA9IHRoaXMub3B0aW9ucy5tYXhUb2tlbnM7XG4gICAgdGhpcy5sYXN0UmVmaWxsID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiByYXRlIGxpbWl0ZWQgd2l0aG91dCBjb25zdW1pbmcgYSB0b2tlblxuICAgKi9cbiAgaXNSYXRlTGltaXRlZCgpOiBib29sZWFuIHtcbiAgICB0aGlzLnJlZmlsbCgpO1xuICAgIHJldHVybiB0aGlzLnRva2VucyA8PSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByYXRlIGxpbWl0ZXIgc3RhdGlzdGljc1xuICAgKi9cbiAgc3RhdHMoKTogeyB0b2tlbnM6IG51bWJlcjsgbWF4VG9rZW5zOiBudW1iZXI7IHdhaXRUaW1lOiBudW1iZXIgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuczogdGhpcy5nZXRUb2tlbnMoKSxcbiAgICAgIG1heFRva2VuczogdGhpcy5vcHRpb25zLm1heFRva2VucyxcbiAgICAgIHdhaXRUaW1lOiB0aGlzLmdldFdhaXRUaW1lKCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuICB9XG59XG5cbi8vIFNpbmdsZXRvbiBpbnN0YW5jZSBmb3IgdGhlIHBsdWdpblxubGV0IHJhdGVMaW1pdGVySW5zdGFuY2U6IFJhdGVMaW1pdGVyIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYXRlTGltaXRlcihvcHRpb25zPzogUGFydGlhbDxSYXRlTGltaXRlck9wdGlvbnM+KTogUmF0ZUxpbWl0ZXIge1xuICBpZiAoIXJhdGVMaW1pdGVySW5zdGFuY2UpIHtcbiAgICByYXRlTGltaXRlckluc3RhbmNlID0gbmV3IFJhdGVMaW1pdGVyKG9wdGlvbnMpO1xuICB9XG4gIHJldHVybiByYXRlTGltaXRlckluc3RhbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRSYXRlTGltaXRlcigpOiB2b2lkIHtcbiAgcmF0ZUxpbWl0ZXJJbnN0YW5jZSA9IG51bGw7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openclaw-productboard",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "OpenClaw plugin for ProductBoard integration",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"openclaw": {
|
|
9
|
+
"extensions": [
|
|
10
|
+
"./dist/index.js"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
7
13
|
"moltbot": {
|
|
8
|
-
"extensions":
|
|
14
|
+
"extensions": [
|
|
15
|
+
"./dist/index.js"
|
|
16
|
+
]
|
|
9
17
|
},
|
|
10
18
|
"scripts": {
|
|
11
19
|
"build": "tsc",
|
|
@@ -15,6 +23,7 @@
|
|
|
15
23
|
},
|
|
16
24
|
"keywords": [
|
|
17
25
|
"openclaw",
|
|
26
|
+
"moltbot",
|
|
18
27
|
"productboard",
|
|
19
28
|
"plugin",
|
|
20
29
|
"product-management",
|