@apicity/x 0.4.0 → 0.4.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/README.md CHANGED
@@ -72,11 +72,12 @@ token + refresh token. Access tokens last 2 hours; the refresh token
72
72
  re-authorizing.
73
73
 
74
74
  <details>
75
- <summary><code>mint-x-token.mjs</code> — zero-dep OAuth 2.0 PKCE helper</summary>
75
+ <summary><code>mint-x-token.mjs</code> — OAuth 2.0 PKCE helper</summary>
76
76
 
77
77
  ```javascript
78
78
  import http from "node:http";
79
79
  import crypto from "node:crypto";
80
+ import { createXOAuth } from "@apicity/x";
80
81
 
81
82
  const CLIENT_ID = process.env.X_CLIENT_ID;
82
83
  const CLIENT_SECRET = process.env.X_CLIENT_SECRET;
@@ -124,23 +125,16 @@ const server = http.createServer(async (req, res) => {
124
125
  server.close();
125
126
  process.exit(1);
126
127
  }
127
- const basic = Buffer.from(
128
- `${CLIENT_ID}:${CLIENT_SECRET}`
129
- ).toString("base64");
130
- const tokenRes = await fetch("https://api.x.com/2/oauth2/token", {
131
- method: "POST",
132
- headers: {
133
- Authorization: `Basic ${basic}`,
134
- "Content-Type": "application/x-www-form-urlencoded",
135
- },
136
- body: new URLSearchParams({
137
- grant_type: "authorization_code",
138
- code,
139
- redirect_uri: REDIRECT,
140
- code_verifier: verifier,
141
- }),
128
+ const oauth = createXOAuth({
129
+ clientId: CLIENT_ID,
130
+ clientSecret: CLIENT_SECRET,
131
+ });
132
+ const tok = await oauth.post.v2.oauth2.token({
133
+ grant_type: "authorization_code",
134
+ code,
135
+ redirect_uri: REDIRECT,
136
+ code_verifier: verifier,
142
137
  });
143
- const tok = await tokenRes.json();
144
138
  console.log(JSON.stringify(tok, null, 2));
145
139
  res.writeHead(200).end("Authorized — check your terminal.");
146
140
  server.close();
@@ -163,6 +157,27 @@ await x.post.v2.tweets({
163
157
  });
164
158
  ```
165
159
 
160
+ ### 5. Refresh the token
161
+
162
+ Access tokens expire after 2 hours. Use `createXOAuth` with the refresh
163
+ token from step 3 to mint a fresh one without re-authorizing. Refresh
164
+ tokens may rotate — persist `refresh_token` from the response when X
165
+ returns one, and keep the old one when it's omitted.
166
+
167
+ ```typescript
168
+ import { createXOAuth } from "@apicity/x";
169
+
170
+ const oauth = createXOAuth({
171
+ clientId: process.env.X_CLIENT_ID!,
172
+ clientSecret: process.env.X_CLIENT_SECRET!,
173
+ });
174
+
175
+ const tok = await oauth.post.v2.oauth2.token({
176
+ grant_type: "refresh_token",
177
+ refresh_token: storedRefreshToken,
178
+ });
179
+ ```
180
+
166
181
  ## Real-world example: post a video
167
182
 
168
183
  Posting a video on X is a four-call dance — initialize a chunked
@@ -1,4 +1,5 @@
1
- export { createX } from "./x";
2
- export { XError } from "./types";
3
- export type { XOptions, XMediaUploadInitializeRequest, XMediaUploadInitializeResponse, XMediaUploadInitializeData, XMediaUploadInitializeMethod, XMediaUploadAppendRequest, XMediaUploadAppendResponse, XMediaUploadAppendMethod, XMediaUploadFinalizeResponse, XMediaUploadFinalizeMethod, XMediaUploadStatusResponse, XMediaUploadStatusMethod, XTweetCreateRequest, XTweetCreateResponse, XTweetCreateMethod, XMediaProcessingInfo, XMediaUploadNamespace, XMediaNamespace, XPostV2Namespace, XPostNamespace, XGetMediaNamespace, XGetV2Namespace, XGetNamespace, XProvider, } from "./types";
1
+ export { createX } from "./x.js";
2
+ export { createXOAuth } from "./oauth.js";
3
+ export { XError } from "./types.js";
4
+ export type { XOptions, XMediaUploadInitializeRequest, XMediaUploadInitializeResponse, XMediaUploadInitializeData, XMediaUploadInitializeMethod, XMediaUploadAppendRequest, XMediaUploadAppendResponse, XMediaUploadAppendMethod, XMediaUploadFinalizeResponse, XMediaUploadFinalizeMethod, XMediaUploadStatusResponse, XMediaUploadStatusMethod, XTweetCreateRequest, XTweetCreateResponse, XTweetCreateMethod, XMediaProcessingInfo, XMediaUploadNamespace, XMediaNamespace, XPostV2Namespace, XPostNamespace, XGetMediaNamespace, XGetV2Namespace, XGetNamespace, XProvider, XOAuthOptions, XOAuthTokenRequest, XOAuthTokenResponse, XOAuthTokenMethod, XOAuth2Namespace, XOAuthPostV2Namespace, XOAuthPostNamespace, XOAuthProvider, } from "./types.js";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,YAAY,EACV,QAAQ,EACR,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,SAAS,GACV,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,YAAY,EACV,QAAQ,EACR,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,SAAS,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { createX } from "./x.js";
2
+ export { createXOAuth } from "./oauth.js";
2
3
  export { XError } from "./types.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { XOAuthOptions, XOAuthProvider } from "./types.js";
2
+ export declare function createXOAuth(opts: XOAuthOptions): XOAuthProvider;
3
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,cAAc,EAEf,MAAM,SAAS,CAAC;AAIjB,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAwGhE"}
@@ -0,0 +1,91 @@
1
+ import { XError, } from "./types.js";
2
+ import { XOAuthTokenRequestSchema } from "./zod.js";
3
+ import { attachExamples } from "./example.js";
4
+ export function createXOAuth(opts) {
5
+ const baseURL = opts.baseURL ?? "https://api.x.com";
6
+ const doFetch = opts.fetch ?? fetch;
7
+ const timeout = opts.timeout ?? 30000;
8
+ const basic = btoa(`${opts.clientId}:${opts.clientSecret}`);
9
+ function attachAbortHandler(signal, controller) {
10
+ if (signal.aborted) {
11
+ controller.abort();
12
+ return;
13
+ }
14
+ signal.addEventListener("abort", () => controller.abort(), { once: true });
15
+ }
16
+ // The token endpoint reports failures in the RFC 6749 shape
17
+ // `{ error, error_description }`, not the X v2 `{ errors: [...] }` /
18
+ // `{ title, detail }` shapes the rest of the API uses.
19
+ function formatErrorMessage(status, body) {
20
+ if (typeof body === "object" && body !== null) {
21
+ const b = body;
22
+ if (b.error_description) {
23
+ return `X OAuth error ${status}: ${b.error_description}`;
24
+ }
25
+ if (b.error)
26
+ return `X OAuth error ${status}: ${b.error}`;
27
+ }
28
+ return `X OAuth error: ${status}`;
29
+ }
30
+ // sig-ok: numeric URL segments (`/2/`) become identifier-safe (`v2`)
31
+ // POST https://api.x.com/2/oauth2/token
32
+ // Docs: https://docs.x.com/x-api/fundamentals/authentication/oauth-2-0/user-access-token
33
+ // Confidential clients authenticate with Basic clientId:clientSecret; the
34
+ // grant_type field selects authorization-code (PKCE) exchange vs refresh.
35
+ const token = Object.assign(async (req, signal) => {
36
+ const controller = new AbortController();
37
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
38
+ if (signal) {
39
+ attachAbortHandler(signal, controller);
40
+ }
41
+ const form = new URLSearchParams();
42
+ form.set("grant_type", req.grant_type);
43
+ if (req.grant_type === "authorization_code") {
44
+ form.set("code", req.code);
45
+ form.set("redirect_uri", req.redirect_uri);
46
+ form.set("code_verifier", req.code_verifier);
47
+ }
48
+ else {
49
+ form.set("refresh_token", req.refresh_token);
50
+ }
51
+ try {
52
+ const res = await doFetch(`${baseURL}/2/oauth2/token`, {
53
+ method: "POST",
54
+ headers: {
55
+ Authorization: `Basic ${basic}`,
56
+ "Content-Type": "application/x-www-form-urlencoded",
57
+ },
58
+ body: form,
59
+ signal: controller.signal,
60
+ });
61
+ clearTimeout(timeoutId);
62
+ if (!res.ok) {
63
+ let resBody = null;
64
+ try {
65
+ resBody = await res.json();
66
+ }
67
+ catch {
68
+ // ignore parse errors
69
+ }
70
+ throw new XError(formatErrorMessage(res.status, resBody), res.status, resBody);
71
+ }
72
+ return (await res.json());
73
+ }
74
+ catch (error) {
75
+ clearTimeout(timeoutId);
76
+ if (error instanceof XError)
77
+ throw error;
78
+ throw new XError(`X request failed: ${error}`, 500);
79
+ }
80
+ }, { schema: XOAuthTokenRequestSchema });
81
+ return attachExamples({
82
+ post: {
83
+ v2: {
84
+ oauth2: {
85
+ token,
86
+ },
87
+ },
88
+ },
89
+ });
90
+ }
91
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { z } from "zod";
2
- import type { XMediaUploadInitializeRequest, XMediaUploadAppendRequest, XTweetCreateRequest } from "./zod";
3
- export type { XOptions, XMediaUploadInitializeRequest, XMediaUploadAppendRequest, XTweetCreateRequest, } from "./zod";
2
+ import type { XMediaUploadInitializeRequest, XMediaUploadAppendRequest, XTweetCreateRequest, XOAuthTokenRequest } from "./zod.js";
3
+ export type { XOptions, XOAuthOptions, XMediaUploadInitializeRequest, XMediaUploadAppendRequest, XTweetCreateRequest, XOAuthTokenRequest, } from "./zod.js";
4
4
  export declare class XError extends Error {
5
5
  readonly status: number;
6
6
  readonly body: unknown;
@@ -40,6 +40,13 @@ export interface XTweetCreateResponse {
40
40
  text: string;
41
41
  };
42
42
  }
43
+ export interface XOAuthTokenResponse {
44
+ access_token: string;
45
+ refresh_token?: string;
46
+ expires_in: number;
47
+ token_type?: string;
48
+ scope?: string;
49
+ }
43
50
  export interface XMediaUploadInitializeMethod {
44
51
  (req: XMediaUploadInitializeRequest, signal?: AbortSignal): Promise<XMediaUploadInitializeResponse>;
45
52
  schema: z.ZodType<XMediaUploadInitializeRequest>;
@@ -58,6 +65,10 @@ export interface XTweetCreateMethod {
58
65
  (req: XTweetCreateRequest, signal?: AbortSignal): Promise<XTweetCreateResponse>;
59
66
  schema: z.ZodType<XTweetCreateRequest>;
60
67
  }
68
+ export interface XOAuthTokenMethod {
69
+ (req: XOAuthTokenRequest, signal?: AbortSignal): Promise<XOAuthTokenResponse>;
70
+ schema: z.ZodType<XOAuthTokenRequest>;
71
+ }
61
72
  export interface XMediaUploadNamespace {
62
73
  initialize: XMediaUploadInitializeMethod;
63
74
  append: XMediaUploadAppendMethod;
@@ -86,4 +97,16 @@ export interface XProvider {
86
97
  post: XPostNamespace;
87
98
  get: XGetNamespace;
88
99
  }
100
+ export interface XOAuth2Namespace {
101
+ token: XOAuthTokenMethod;
102
+ }
103
+ export interface XOAuthPostV2Namespace {
104
+ oauth2: XOAuth2Namespace;
105
+ }
106
+ export interface XOAuthPostNamespace {
107
+ v2: XOAuthPostV2Namespace;
108
+ }
109
+ export interface XOAuthProvider {
110
+ post: XOAuthPostNamespace;
111
+ }
89
112
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAcA,+EAA+E;AAE/E,MAAM,OAAO,MAAO,SAAQ,KAAK;IACtB,MAAM,CAAS;IACf,IAAI,CAAU;IACd,IAAI,CAAU;IAEvB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAc,EAAE,IAAa;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAiBA,+EAA+E;AAE/E,MAAM,OAAO,MAAO,SAAQ,KAAK;IACtB,MAAM,CAAS;IACf,IAAI,CAAU;IACd,IAAI,CAAU;IAEvB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAc,EAAE,IAAa;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
package/dist/src/x.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { XOptions, XProvider } from "./types";
1
+ import { XOptions, XProvider } from "./types.js";
2
2
  export declare function createX(opts: XOptions): XProvider;
3
3
  //# sourceMappingURL=x.d.ts.map
package/dist/src/zod.d.ts CHANGED
@@ -16,6 +16,52 @@ export declare const XOptionsSchema: z.ZodObject<{
16
16
  fetch?: typeof fetch | undefined;
17
17
  }>;
18
18
  export type XOptions = z.infer<typeof XOptionsSchema>;
19
+ export declare const XOAuthOptionsSchema: z.ZodObject<{
20
+ clientId: z.ZodString;
21
+ clientSecret: z.ZodString;
22
+ baseURL: z.ZodOptional<z.ZodString>;
23
+ timeout: z.ZodOptional<z.ZodNumber>;
24
+ fetch: z.ZodOptional<z.ZodType<typeof fetch, z.ZodTypeDef, typeof fetch>>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ clientId: string;
27
+ clientSecret: string;
28
+ baseURL?: string | undefined;
29
+ timeout?: number | undefined;
30
+ fetch?: typeof fetch | undefined;
31
+ }, {
32
+ clientId: string;
33
+ clientSecret: string;
34
+ baseURL?: string | undefined;
35
+ timeout?: number | undefined;
36
+ fetch?: typeof fetch | undefined;
37
+ }>;
38
+ export type XOAuthOptions = z.infer<typeof XOAuthOptionsSchema>;
39
+ export declare const XOAuthTokenRequestSchema: z.ZodDiscriminatedUnion<"grant_type", [z.ZodObject<{
40
+ grant_type: z.ZodLiteral<"authorization_code">;
41
+ code: z.ZodString;
42
+ redirect_uri: z.ZodString;
43
+ code_verifier: z.ZodString;
44
+ }, "strip", z.ZodTypeAny, {
45
+ code: string;
46
+ grant_type: "authorization_code";
47
+ redirect_uri: string;
48
+ code_verifier: string;
49
+ }, {
50
+ code: string;
51
+ grant_type: "authorization_code";
52
+ redirect_uri: string;
53
+ code_verifier: string;
54
+ }>, z.ZodObject<{
55
+ grant_type: z.ZodLiteral<"refresh_token">;
56
+ refresh_token: z.ZodString;
57
+ }, "strip", z.ZodTypeAny, {
58
+ grant_type: "refresh_token";
59
+ refresh_token: string;
60
+ }, {
61
+ grant_type: "refresh_token";
62
+ refresh_token: string;
63
+ }>]>;
64
+ export type XOAuthTokenRequest = z.infer<typeof XOAuthTokenRequestSchema>;
19
65
  export declare const XMediaUploadInitializeRequestSchema: z.ZodObject<{
20
66
  media_type: z.ZodOptional<z.ZodEnum<["video/mp4", "video/webm", "video/mp2t", "video/quicktime", "text/srt", "text/vtt", "image/jpeg", "image/gif", "image/bmp", "image/png", "image/webp", "image/pjpeg", "image/tiff", "model/gltf-binary", "model/vnd.usdz+zip"]>>;
21
67
  total_bytes: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../src/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA8CtD,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;EAM9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,mCAAmC,CAC3C,CAAC;AAUF,eAAO,MAAM,+BAA+B;;;;;;;;;EAG1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAqEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../src/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;EAKzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAKtD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAkBhE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;IAWnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAsC1E,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;EAM9C,CAAC;AAEH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,mCAAmC,CAC3C,CAAC;AAUF,eAAO,MAAM,+BAA+B;;;;;;;;;EAG1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAqEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
package/dist/src/zod.js CHANGED
@@ -4,14 +4,25 @@ import { z } from "zod";
4
4
  // ---------------------------------------------------------------------------
5
5
  // X requires a user-context OAuth 2.0 access token to post or upload media.
6
6
  // App-only Bearer tokens are read-only and rejected by the upload + tweets
7
- // endpoints. The caller obtains the access token via the PKCE flow externally
8
- // and supplies it here; this package does not implement the OAuth dance.
7
+ // endpoints. The caller runs the browser authorize step (PKCE) externally,
8
+ // then uses `createXOAuth` to exchange the code and refresh tokens, and
9
+ // supplies the resulting access token here.
9
10
  export const XOptionsSchema = z.object({
10
11
  accessToken: z.string().min(1),
11
12
  baseURL: z.string().optional(),
12
13
  timeout: z.number().optional(),
13
14
  fetch: z.custom().optional(),
14
15
  });
16
+ // Options for the OAuth token client (`createXOAuth`). Authenticates as a
17
+ // confidential client with Basic clientId:clientSecret — no access token,
18
+ // since this is how access tokens are obtained in the first place.
19
+ export const XOAuthOptionsSchema = z.object({
20
+ clientId: z.string().min(1),
21
+ clientSecret: z.string().min(1),
22
+ baseURL: z.string().optional(),
23
+ timeout: z.number().optional(),
24
+ fetch: z.custom().optional(),
25
+ });
15
26
  // ---------------------------------------------------------------------------
16
27
  // Shared building blocks
17
28
  // ---------------------------------------------------------------------------
@@ -19,6 +30,25 @@ export const XOptionsSchema = z.object({
19
30
  // precision loss in JS — every id field on this surface uses this pattern.
20
31
  const XIdStringSchema = z.string().regex(/^[0-9]{1,19}$/);
21
32
  // ---------------------------------------------------------------------------
33
+ // POST /2/oauth2/token
34
+ // ---------------------------------------------------------------------------
35
+ // One endpoint, two grants (RFC 6749): authorization_code finishes the PKCE
36
+ // flow started in a browser; refresh_token rotates an expiring access token.
37
+ // The body is form-encoded by the factory — the schema validates the typed
38
+ // request object.
39
+ export const XOAuthTokenRequestSchema = z.discriminatedUnion("grant_type", [
40
+ z.object({
41
+ grant_type: z.literal("authorization_code"),
42
+ code: z.string().min(1),
43
+ redirect_uri: z.string().min(1),
44
+ code_verifier: z.string().min(1),
45
+ }),
46
+ z.object({
47
+ grant_type: z.literal("refresh_token"),
48
+ refresh_token: z.string().min(1),
49
+ }),
50
+ ]);
51
+ // ---------------------------------------------------------------------------
22
52
  // POST /2/media/upload/initialize
23
53
  // ---------------------------------------------------------------------------
24
54
  const XMediaTypeSchema = z.enum([
@@ -1 +1 @@
1
- {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/zod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/zod.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apicity/x",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "X (formerly Twitter) social API provider for posting content (api.x.com).",
5
5
  "license": "MIT",
6
6
  "repository": {