@tapline/client 0.2.4 → 0.2.5

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 (42) hide show
  1. package/README.md +4 -2
  2. package/dist/cjs/client.d.ts +2 -0
  3. package/dist/cjs/client.d.ts.map +1 -1
  4. package/dist/cjs/client.js +3 -0
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/index.d.ts +2 -0
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/index.js +4 -1
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/services/twitter/client.d.ts +15 -0
  11. package/dist/cjs/services/twitter/client.d.ts.map +1 -0
  12. package/dist/cjs/services/twitter/client.js +32 -0
  13. package/dist/cjs/services/twitter/client.js.map +1 -0
  14. package/dist/cjs/services/twitter/index.d.ts +3 -0
  15. package/dist/cjs/services/twitter/index.d.ts.map +1 -0
  16. package/dist/cjs/services/twitter/index.js +22 -0
  17. package/dist/cjs/services/twitter/index.js.map +1 -0
  18. package/dist/cjs/services/twitter/types.d.ts +513 -0
  19. package/dist/cjs/services/twitter/types.d.ts.map +1 -0
  20. package/dist/cjs/services/twitter/types.js +4 -0
  21. package/dist/cjs/services/twitter/types.js.map +1 -0
  22. package/dist/client.d.ts +2 -0
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +3 -0
  25. package/dist/client.js.map +1 -1
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/services/twitter/client.d.ts +15 -0
  31. package/dist/services/twitter/client.d.ts.map +1 -0
  32. package/dist/services/twitter/client.js +28 -0
  33. package/dist/services/twitter/client.js.map +1 -0
  34. package/dist/services/twitter/index.d.ts +3 -0
  35. package/dist/services/twitter/index.d.ts.map +1 -0
  36. package/dist/services/twitter/index.js +4 -0
  37. package/dist/services/twitter/index.js.map +1 -0
  38. package/dist/services/twitter/types.d.ts +513 -0
  39. package/dist/services/twitter/types.d.ts.map +1 -0
  40. package/dist/services/twitter/types.js +3 -0
  41. package/dist/services/twitter/types.js.map +1 -0
  42. package/package.json +3 -2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @tapline/client
2
2
 
3
- Use `@tapline/client` to collect live data from YouTube, Airbnb, GMGN, GeckoTerminal, GoPlus Security, and Pons Family in TypeScript or JavaScript.
3
+ Use `@tapline/client` to collect live data from YouTube, Airbnb, GMGN, GeckoTerminal, GoPlus Security, Pons Family, and Twitter (X) in TypeScript or JavaScript.
4
4
 
5
5
  ## What you can do
6
6
 
@@ -12,8 +12,9 @@ Use `@tapline/client` to collect live data from YouTube, Airbnb, GMGN, GeckoTerm
12
12
  | GeckoTerminal | Find pools, read candlesticks and swaps, inspect holders and traders, and follow market trends | [GeckoTerminal guide](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/geckoterminal/README.md) |
13
13
  | GoPlus Security | Check EVM and Tron tokens and Solana mints for honeypots, taxes, owner and mint powers, holders, and liquidity | [GoPlus guide](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/goplus/README.md) |
14
14
  | Pons Family | Browse and search launches, read token markets, trades and holders, follow wallets and creator fees, and read the memestock forum | [Pons Family guide](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/ponsfamily/README.md) |
15
+ | Twitter (X) | Read public X profiles with their pinned and newest posts, single posts with media, quotes and top replies, and X Communities | [Twitter guide](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/twitter/README.md) |
15
16
 
16
- One API key and credit balance work across all six services.
17
+ One API key and credit balance work across all seven services.
17
18
 
18
19
  ## Get started
19
20
 
@@ -172,6 +173,7 @@ Use the [Tapline API reference](https://tapline.sh/docs?utm_source=typescript_cl
172
173
  - [GeckoTerminal](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/geckoterminal/README.md)
173
174
  - [GoPlus Security](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/goplus/README.md)
174
175
  - [Pons Family](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/ponsfamily/README.md)
176
+ - [Twitter (X)](https://github.com/TaplineData/tapline-typescript/blob/main/src/services/twitter/README.md)
175
177
 
176
178
  ## License
177
179
 
@@ -5,6 +5,7 @@ import { GmgnClient } from './services/gmgn/client.js';
5
5
  import { GeckoterminalClient } from './services/geckoterminal/client.js';
6
6
  import { PonsfamilyClient } from './services/ponsfamily/client.js';
7
7
  import { GoplusClient } from './services/goplus/client.js';
8
+ import { TwitterClient } from './services/twitter/client.js';
8
9
  export declare class TaplineClient {
9
10
  readonly airbnb: AirbnbClient;
10
11
  readonly youtube: YoutubeClient;
@@ -12,6 +13,7 @@ export declare class TaplineClient {
12
13
  readonly geckoterminal: GeckoterminalClient;
13
14
  readonly ponsfamily: PonsfamilyClient;
14
15
  readonly goplus: GoplusClient;
16
+ readonly twitter: TwitterClient;
15
17
  constructor(config?: TaplineClientConfig);
16
18
  }
17
19
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,qBAAa,aAAa;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBAElB,MAAM,GAAE,mBAAwB;CAS7C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,qBAAa,aAAa;IACxB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;gBAEpB,MAAM,GAAE,mBAAwB;CAU7C"}
@@ -9,6 +9,7 @@ const client_js_3 = require("./services/gmgn/client.js");
9
9
  const client_js_4 = require("./services/geckoterminal/client.js");
10
10
  const client_js_5 = require("./services/ponsfamily/client.js");
11
11
  const client_js_6 = require("./services/goplus/client.js");
12
+ const client_js_7 = require("./services/twitter/client.js");
12
13
  class TaplineClient {
13
14
  airbnb;
14
15
  youtube;
@@ -16,6 +17,7 @@ class TaplineClient {
16
17
  geckoterminal;
17
18
  ponsfamily;
18
19
  goplus;
20
+ twitter;
19
21
  constructor(config = {}) {
20
22
  const base = new base_js_1.BaseClient(config);
21
23
  this.airbnb = new client_js_1.AirbnbClient(base);
@@ -24,6 +26,7 @@ class TaplineClient {
24
26
  this.geckoterminal = new client_js_4.GeckoterminalClient(base);
25
27
  this.ponsfamily = new client_js_5.PonsfamilyClient(base);
26
28
  this.goplus = new client_js_6.GoplusClient(base);
29
+ this.twitter = new client_js_7.TwitterClient(base);
27
30
  }
28
31
  }
29
32
  exports.TaplineClient = TaplineClient;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;AAEpE,uCAAuC;AAEvC,2DAA2D;AAC3D,4DAA6D;AAC7D,yDAAuD;AACvD,kEAAyE;AACzE,+DAAmE;AACnE,2DAA2D;AAE3D,MAAa,aAAa;IACf,MAAM,CAAe;IACrB,OAAO,CAAgB;IACvB,IAAI,CAAa;IACjB,aAAa,CAAsB;IACnC,UAAU,CAAmB;IAC7B,MAAM,CAAe;IAE9B,YAAY,SAA8B,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAa,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,+BAAmB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,4BAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAjBD,sCAiBC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;AAEpE,uCAAuC;AAEvC,2DAA2D;AAC3D,4DAA6D;AAC7D,yDAAuD;AACvD,kEAAyE;AACzE,+DAAmE;AACnE,2DAA2D;AAC3D,4DAA6D;AAE7D,MAAa,aAAa;IACf,MAAM,CAAe;IACrB,OAAO,CAAgB;IACvB,IAAI,CAAa;IACjB,aAAa,CAAsB;IACnC,UAAU,CAAmB;IAC7B,MAAM,CAAe;IACrB,OAAO,CAAgB;IAEhC,YAAY,SAA8B,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAa,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,+BAAmB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,4BAAgB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAa,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CACF;AAnBD,sCAmBC"}
@@ -8,10 +8,12 @@ export { GmgnClient } from './services/gmgn/client.js';
8
8
  export { GeckoterminalClient } from './services/geckoterminal/client.js';
9
9
  export { PonsfamilyClient } from './services/ponsfamily/client.js';
10
10
  export { GoplusClient } from './services/goplus/client.js';
11
+ export { TwitterClient } from './services/twitter/client.js';
11
12
  export * as airbnb from './services/airbnb/index.js';
12
13
  export * as youtube from './services/youtube/index.js';
13
14
  export * as gmgn from './services/gmgn/index.js';
14
15
  export * as geckoterminal from './services/geckoterminal/index.js';
15
16
  export * as ponsfamily from './services/ponsfamily/index.js';
16
17
  export * as goplus from './services/goplus/index.js';
18
+ export * as twitter from './services/twitter/index.js';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AACnE,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  };
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.goplus = exports.ponsfamily = exports.geckoterminal = exports.gmgn = exports.youtube = exports.airbnb = exports.GoplusClient = exports.PonsfamilyClient = exports.GeckoterminalClient = exports.GmgnClient = exports.YoutubeClient = exports.AirbnbClient = exports.TaplineError = exports.MissingApiKeyError = exports.DEFAULT_BASE_URL = exports.BaseClient = exports.TaplineClient = void 0;
37
+ exports.twitter = exports.goplus = exports.ponsfamily = exports.geckoterminal = exports.gmgn = exports.youtube = exports.airbnb = exports.TwitterClient = exports.GoplusClient = exports.PonsfamilyClient = exports.GeckoterminalClient = exports.GmgnClient = exports.YoutubeClient = exports.AirbnbClient = exports.TaplineError = exports.MissingApiKeyError = exports.DEFAULT_BASE_URL = exports.BaseClient = exports.TaplineClient = void 0;
38
38
  var client_js_1 = require("./client.js");
39
39
  Object.defineProperty(exports, "TaplineClient", { enumerable: true, get: function () { return client_js_1.TaplineClient; } });
40
40
  var base_js_1 = require("./base.js");
@@ -55,10 +55,13 @@ var client_js_6 = require("./services/ponsfamily/client.js");
55
55
  Object.defineProperty(exports, "PonsfamilyClient", { enumerable: true, get: function () { return client_js_6.PonsfamilyClient; } });
56
56
  var client_js_7 = require("./services/goplus/client.js");
57
57
  Object.defineProperty(exports, "GoplusClient", { enumerable: true, get: function () { return client_js_7.GoplusClient; } });
58
+ var client_js_8 = require("./services/twitter/client.js");
59
+ Object.defineProperty(exports, "TwitterClient", { enumerable: true, get: function () { return client_js_8.TwitterClient; } });
58
60
  exports.airbnb = __importStar(require("./services/airbnb/index.js"));
59
61
  exports.youtube = __importStar(require("./services/youtube/index.js"));
60
62
  exports.gmgn = __importStar(require("./services/gmgn/index.js"));
61
63
  exports.geckoterminal = __importStar(require("./services/geckoterminal/index.js"));
62
64
  exports.ponsfamily = __importStar(require("./services/ponsfamily/index.js"));
63
65
  exports.goplus = __importStar(require("./services/goplus/index.js"));
66
+ exports.twitter = __importStar(require("./services/twitter/index.js"));
64
67
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpE,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,qCAAyD;AAAhD,qGAAA,UAAU,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AACrC,yCAA+D;AAAtD,+GAAA,kBAAkB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAEzC,yDAA2D;AAAlD,yGAAA,YAAY,OAAA;AACrB,0DAA6D;AAApD,0GAAA,aAAa,OAAA;AACtB,uDAAuD;AAA9C,uGAAA,UAAU,OAAA;AACnB,gEAAyE;AAAhE,gHAAA,mBAAmB,OAAA;AAC5B,6DAAmE;AAA1D,6GAAA,gBAAgB,OAAA;AACzB,yDAA2D;AAAlD,yGAAA,YAAY,OAAA;AACrB,qEAAqD;AACrD,uEAAuD;AACvD,iEAAiD;AACjD,mFAAmE;AACnE,6EAA6D;AAC7D,qEAAqD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpE,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,qCAAyD;AAAhD,qGAAA,UAAU,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AACrC,yCAA+D;AAAtD,+GAAA,kBAAkB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAEzC,yDAA2D;AAAlD,yGAAA,YAAY,OAAA;AACrB,0DAA6D;AAApD,0GAAA,aAAa,OAAA;AACtB,uDAAuD;AAA9C,uGAAA,UAAU,OAAA;AACnB,gEAAyE;AAAhE,gHAAA,mBAAmB,OAAA;AAC5B,6DAAmE;AAA1D,6GAAA,gBAAgB,OAAA;AACzB,yDAA2D;AAAlD,yGAAA,YAAY,OAAA;AACrB,0DAA6D;AAApD,0GAAA,aAAa,OAAA;AACtB,qEAAqD;AACrD,uEAAuD;AACvD,iEAAiD;AACjD,mFAAmE;AACnE,6EAA6D;AAC7D,qEAAqD;AACrD,uEAAuD"}
@@ -0,0 +1,15 @@
1
+ import type { BaseClient } from '../../base.js';
2
+ import type { GetCommunityParams, GetTweetParams, GetUserProfileByIdParams, GetUserProfileParams, TwitterCommunityResponse, TwitterProfileResponse, TwitterTweetDetailResponse } from './types.js';
3
+ export declare class TwitterClient {
4
+ private readonly base;
5
+ constructor(base: BaseClient);
6
+ /** An X (Twitter) Community as x.com shows it to logged-out visitors, as X's Community object in the shape Scrape Creators returns it: `rest_id`, name, description, member count, `created_at` (Unix milliseconds), join policy, topic, banners, rules, creator and member facepile. `tweets` adds the 20 community posts x.com ranks by likes, flattened the way Scrape Creators flattens community posts: the post's `legacy` fields plus `id`, `view_count` and the author as `user`. This is a fixed window: x.com offers no latest feed and no further pages logged-out. A logged-out viewer is not a member, so `is_member` is false and `role` is NonMember. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Costs 2 credits. */
7
+ getCommunity(params: GetCommunityParams): Promise<TwitterCommunityResponse>;
8
+ /** One X (Twitter) post as x.com shows it to logged-out visitors, as X's Tweet object in the shape Scrape Creators returns it: `rest_id`, the author under `core.user_results.result`, `legacy` (full text, created time, counts, entities with every t.co link mapped, media with video variants and bitrates, reply and quote ids), `views`, `note_tweet` with the full text of a long post, `article`, `card`, `edit_control`, and the quoted post under `quoted_status_result`. `parent_tweets` holds the posts above a reply that x.com shows logged-out, oldest first; in samples that is only the post it replies to, so follow `legacy.in_reply_to_status_id_str` to walk further up. `replies` holds the top replies x.com shows logged-out (0 to 4 in samples, not every reply); x.com offers no further reply pages logged-out. Both lists hold Tweet objects plus their `url`. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Costs 1 credit. */
9
+ getTweet(params: GetTweetParams): Promise<TwitterTweetDetailResponse>;
10
+ /** An X (Twitter) account's public profile as x.com shows it to logged-out visitors, as X's User object in the shape Scrape Creators returns it: `rest_id`, `core` (name, handle, join date), `legacy` (bio, follower, following and post counts, avatar, banner, bio link, pinned post id), `location`, `privacy`, `verification` and `is_blue_verified`. `pinned_tweet` and `tweets` add the pinned post and the newest original posts x.com shows logged-out (4 or 5 in samples) from the same page fetch, each an X Tweet object plus its `url`. This is a fixed window: x.com offers no further pages logged-out, so there is no cursor. A protected account returns its profile with no posts. Tapline caches each profile page for 2 minutes, so a profile and its posts can be up to 2 minutes old. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Looks the account up by its numeric user id. Costs 1 credit. */
11
+ getUserProfileById(params: GetUserProfileByIdParams): Promise<TwitterProfileResponse>;
12
+ /** An X (Twitter) account's public profile as x.com shows it to logged-out visitors, as X's User object in the shape Scrape Creators returns it: `rest_id`, `core` (name, handle, join date), `legacy` (bio, follower, following and post counts, avatar, banner, bio link, pinned post id), `location`, `privacy`, `verification` and `is_blue_verified`. `pinned_tweet` and `tweets` add the pinned post and the newest original posts x.com shows logged-out (4 or 5 in samples) from the same page fetch, each an X Tweet object plus its `url`. This is a fixed window: x.com offers no further pages logged-out, so there is no cursor. A protected account returns its profile with no posts. Tapline caches each profile page for 2 minutes, so a profile and its posts can be up to 2 minutes old. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Looks the account up by its handle. Costs 1 credit. */
13
+ getUserProfile(params: GetUserProfileParams): Promise<TwitterProfileResponse>;
14
+ }
15
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/services/twitter/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAEnM,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,mrEAAmrE;IAC7qE,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAKjF,w4EAAw4E;IACl4E,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAK3E,s2EAAs2E;IACh2E,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK3F,61EAA61E;IACv1E,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAIpF"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ // Generated by generate-client from spec/openapi.json. Do not edit.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TwitterClient = void 0;
5
+ class TwitterClient {
6
+ base;
7
+ constructor(base) {
8
+ this.base = base;
9
+ }
10
+ /** An X (Twitter) Community as x.com shows it to logged-out visitors, as X's Community object in the shape Scrape Creators returns it: `rest_id`, name, description, member count, `created_at` (Unix milliseconds), join policy, topic, banners, rules, creator and member facepile. `tweets` adds the 20 community posts x.com ranks by likes, flattened the way Scrape Creators flattens community posts: the post's `legacy` fields plus `id`, `view_count` and the author as `user`. This is a fixed window: x.com offers no latest feed and no further pages logged-out. A logged-out viewer is not a member, so `is_member` is false and `role` is NonMember. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Costs 2 credits. */
11
+ async getCommunity(params) {
12
+ const { community_id } = params;
13
+ return this.base.get(`/v1/twitter/communities/${encodeURIComponent(community_id)}`);
14
+ }
15
+ /** One X (Twitter) post as x.com shows it to logged-out visitors, as X's Tweet object in the shape Scrape Creators returns it: `rest_id`, the author under `core.user_results.result`, `legacy` (full text, created time, counts, entities with every t.co link mapped, media with video variants and bitrates, reply and quote ids), `views`, `note_tweet` with the full text of a long post, `article`, `card`, `edit_control`, and the quoted post under `quoted_status_result`. `parent_tweets` holds the posts above a reply that x.com shows logged-out, oldest first; in samples that is only the post it replies to, so follow `legacy.in_reply_to_status_id_str` to walk further up. `replies` holds the top replies x.com shows logged-out (0 to 4 in samples, not every reply); x.com offers no further reply pages logged-out. Both lists hold Tweet objects plus their `url`. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Costs 1 credit. */
16
+ async getTweet(params) {
17
+ const { tweet_id } = params;
18
+ return this.base.get(`/v1/twitter/tweets/${encodeURIComponent(tweet_id)}`);
19
+ }
20
+ /** An X (Twitter) account's public profile as x.com shows it to logged-out visitors, as X's User object in the shape Scrape Creators returns it: `rest_id`, `core` (name, handle, join date), `legacy` (bio, follower, following and post counts, avatar, banner, bio link, pinned post id), `location`, `privacy`, `verification` and `is_blue_verified`. `pinned_tweet` and `tweets` add the pinned post and the newest original posts x.com shows logged-out (4 or 5 in samples) from the same page fetch, each an X Tweet object plus its `url`. This is a fixed window: x.com offers no further pages logged-out, so there is no cursor. A protected account returns its profile with no posts. Tapline caches each profile page for 2 minutes, so a profile and its posts can be up to 2 minutes old. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Looks the account up by its numeric user id. Costs 1 credit. */
21
+ async getUserProfileById(params) {
22
+ const { user_id } = params;
23
+ return this.base.get(`/v1/twitter/users/by-id/${encodeURIComponent(user_id)}`);
24
+ }
25
+ /** An X (Twitter) account's public profile as x.com shows it to logged-out visitors, as X's User object in the shape Scrape Creators returns it: `rest_id`, `core` (name, handle, join date), `legacy` (bio, follower, following and post counts, avatar, banner, bio link, pinned post id), `location`, `privacy`, `verification` and `is_blue_verified`. `pinned_tweet` and `tweets` add the pinned post and the newest original posts x.com shows logged-out (4 or 5 in samples) from the same page fetch, each an X Tweet object plus its `url`. This is a fixed window: x.com offers no further pages logged-out, so there is no cursor. A protected account returns its profile with no posts. Tapline caches each profile page for 2 minutes, so a profile and its posts can be up to 2 minutes old. `success`, `credits_charged` and `credits_remaining` (the wallet balance after this charge) sit at the top level of the body, as in Scrape Creators' answers. Fields x.com does not show logged-out visitors are left out, never filled with placeholder values: for example `favourites_count`, `listed_count`, `media_count` and a post's `source`. Fields that depend on the viewer hold what every logged-out viewer gets: `favorited`, `retweeted`, `bookmarked`, `relationship_perspectives`, `can_dm` and the other viewer flags are false. A post's author (`core.user_results.result`, or `user` on a community post) carries what x.com embeds with posts plus what only the author's profile page shows: `location`, the exact join date (`core.created_at`), the bio (`legacy.description` and `profile_bio`), the bio link (`legacy.url` and `legacy.entities`), the banner (`legacy.profile_banner_url`), `legacy.pinned_tweet_ids_str`, `legacy.possibly_sensitive` and `verification.verified`. They come from the author's profile in the same response when there is one, else from the author's profile page, fetched at no extra charge and cached for 2 minutes, so they can be up to 2 minutes old. Author profiles are best-effort. An author whose profile page fails or takes more than 8 seconds keeps only what x.com embeds, and its join date comes from the timestamp inside the user id, which can run up to about 25 minutes before X's own value. Accounts created before about 2016 have ids without a timestamp, so their join date is left out only if that fetch fails or times out. Looks the account up by its handle. Costs 1 credit. */
26
+ async getUserProfile(params) {
27
+ const { screen_name } = params;
28
+ return this.base.get(`/v1/twitter/users/${encodeURIComponent(screen_name)}`);
29
+ }
30
+ }
31
+ exports.TwitterClient = TwitterClient;
32
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/services/twitter/client.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;AAKpE,MAAa,aAAa;IACK;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,mrEAAmrE;IACnrE,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,2BAA2B,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,w4EAAw4E;IACx4E,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,sBAAsB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,s2EAAs2E;IACt2E,KAAK,CAAC,kBAAkB,CAAC,MAAgC;QACvD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,2BAA2B,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,61EAA61E;IAC71E,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,qBAAqB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;CACF;AA1BD,sCA0BC"}
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export { TwitterClient } from './client.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/twitter/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // Generated by generate-client from spec/openapi.json. Do not edit.
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TwitterClient = void 0;
19
+ __exportStar(require("./types.js"), exports);
20
+ var client_js_1 = require("./client.js");
21
+ Object.defineProperty(exports, "TwitterClient", { enumerable: true, get: function () { return client_js_1.TwitterClient; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/twitter/index.ts"],"names":[],"mappings":";AAAA,oEAAoE;;;;;;;;;;;;;;;;;AAEpE,6CAA2B;AAC3B,yCAA4C;AAAnC,0GAAA,aAAa,OAAA"}