@palmetto/users-sdk 0.0.4 → 0.0.6

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.d.ts CHANGED
@@ -1,18 +1,7 @@
1
- type AnyObject = {
2
- [k in string]: unknown;
3
- };
4
- interface LogPayload extends AnyObject {
5
- message: string;
6
- }
7
- interface Logger {
8
- log(payload: LogPayload): void;
9
- error(payload: LogPayload): void;
10
- warn(payload: LogPayload): void;
11
- }
1
+ import { FetchArgType, FetchReturnType } from "openapi-typescript-fetch";
12
2
  export interface CreateClientOptions {
13
3
  apiUrl: string;
14
4
  authToken?: string;
15
- logger?: Logger;
16
5
  }
17
6
  export interface ApiOptions {
18
7
  authToken?: string;
@@ -22,10 +11,9 @@ export declare class UsersApiClient {
22
11
  private api;
23
12
  private fetcher;
24
13
  private headers;
25
- private logger;
26
14
  constructor(opts: CreateClientOptions);
27
15
  setAuthToken(authToken: string): void;
28
- me(opts?: ApiOptions): Promise<import("./result").ResultOk<import("openapi-typescript-fetch").ApiResponse<{
16
+ me(opts?: ApiOptions): Promise<import("./result").ResultOk<{
29
17
  auth0Id: string;
30
18
  email: string;
31
19
  grants: {
@@ -42,7 +30,7 @@ export declare class UsersApiClient {
42
30
  createdAt: string;
43
31
  updatedAt?: string;
44
32
  };
45
- }>> | import("./result").ResultErr<{
33
+ }> | import("./result").ResultErr<{
46
34
  code: "NOT_AUTHENTICATED";
47
35
  }> | import("./result").ResultErr<{
48
36
  message: string;
@@ -52,4 +40,9 @@ export declare class UsersApiClient {
52
40
  protected generateRequestInit(opts?: ApiOptions): RequestInit;
53
41
  protected mergeHeaders(overrides: Record<string, string>): Headers;
54
42
  }
43
+ type ApiClient = InstanceType<typeof UsersApiClient>["api"];
44
+ type ResponseType<T extends keyof ApiClient> = FetchReturnType<ApiClient[T]>;
45
+ type InputType<T extends keyof ApiClient> = FetchArgType<ApiClient[T]>;
46
+ export type MeResponse = ResponseType<"me">;
47
+ export type MeInput = InputType<"me">;
55
48
  export {};
package/dist/client.js CHANGED
@@ -7,7 +7,6 @@ class UsersApiClient {
7
7
  api;
8
8
  fetcher;
9
9
  headers;
10
- logger;
11
10
  constructor(opts) {
12
11
  this.fetcher = openapi_typescript_fetch_1.Fetcher.for();
13
12
  this.fetcher.configure({ baseUrl: opts.apiUrl });
@@ -15,7 +14,6 @@ class UsersApiClient {
15
14
  if (opts.authToken) {
16
15
  this.setAuthToken(opts.authToken);
17
16
  }
18
- this.logger = opts.logger;
19
17
  this.api = {
20
18
  me: this.fetcher.path("/api/users/me").method("get").create(),
21
19
  };
@@ -26,21 +24,16 @@ class UsersApiClient {
26
24
  async me(opts) {
27
25
  try {
28
26
  const response = await this.api.me(undefined, this.generateRequestInit(opts));
29
- return (0, result_1.Ok)(response);
27
+ return (0, result_1.Ok)(response.data);
30
28
  }
31
29
  catch (err) {
32
30
  if (err instanceof openapi_typescript_fetch_1.ApiError) {
33
- this.logger?.warn({
34
- message: `API call failed`,
35
- status: err.status,
36
- });
37
31
  switch (err.status) {
38
32
  case 401:
39
33
  return (0, result_1.Err)("NOT_AUTHENTICATED");
40
34
  }
41
35
  }
42
36
  const message = err instanceof Error ? err.message : "An unknown error occurred.";
43
- this.logger?.error({ message, err });
44
37
  return (0, result_1.Err)("UNKNOWN_ERROR", { message });
45
38
  }
46
39
  }
@@ -62,6 +55,3 @@ class UsersApiClient {
62
55
  }
63
56
  }
64
57
  exports.UsersApiClient = UsersApiClient;
65
- // type ApiClient = InstanceType<typeof UsersApiClient>["api"];
66
- // type ResponseType<T extends keyof ApiClient> = FetchReturnType<ApiClient[T]>;
67
- // type InputType<T extends keyof ApiClient> = FetchArgType<ApiClient[T]>;
@@ -0,0 +1,38 @@
1
+ export interface CreateClientOptions {
2
+ apiUrl: string;
3
+ authToken?: string;
4
+ }
5
+ export interface ApiOptions {
6
+ authToken?: string;
7
+ headers?: Record<string, string>;
8
+ }
9
+ export declare class UsersApiClient {
10
+ private client;
11
+ private headers;
12
+ constructor(opts: CreateClientOptions);
13
+ setAuthToken(authToken: string): void;
14
+ me(opts?: ApiOptions): Promise<import("./result").ResultOk<{
15
+ auth0Id: string;
16
+ email: string;
17
+ grants: {
18
+ entity: string;
19
+ operation: string;
20
+ deny?: boolean;
21
+ }[];
22
+ id: string;
23
+ firstName: string;
24
+ lastName: string;
25
+ phoneNumber: string;
26
+ organizationId: unknown;
27
+ meta: {
28
+ createdAt: string;
29
+ updatedAt?: string;
30
+ };
31
+ }> | import("./result").ResultErr<{
32
+ code: "NOT_AUTHENTICATED";
33
+ }> | import("./result").ResultErr<{
34
+ code: "UNKNOWN_ERROR";
35
+ }>>;
36
+ protected generateHeaders(opts?: ApiOptions): Headers;
37
+ protected mergeHeaders(overrides: Record<string, string>): Headers;
38
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UsersApiClient = void 0;
7
+ const openapi_fetch_1 = __importDefault(require("openapi-fetch"));
8
+ const result_1 = require("./result");
9
+ class UsersApiClient {
10
+ client;
11
+ headers;
12
+ constructor(opts) {
13
+ this.client = (0, openapi_fetch_1.default)({ baseUrl: opts.apiUrl });
14
+ this.headers = new Headers();
15
+ if (opts.authToken) {
16
+ this.setAuthToken(opts.authToken);
17
+ }
18
+ }
19
+ setAuthToken(authToken) {
20
+ this.headers.set("Authorization", `Bearer ${authToken}`);
21
+ }
22
+ async me(opts) {
23
+ const { data, response } = await this.client.GET("/api/users/me", {
24
+ headers: this.generateHeaders(opts),
25
+ });
26
+ if (data) {
27
+ return (0, result_1.Ok)(data);
28
+ }
29
+ switch (response.status) {
30
+ case 401:
31
+ case 404:
32
+ return (0, result_1.Err)("NOT_AUTHENTICATED");
33
+ default:
34
+ return (0, result_1.Err)("UNKNOWN_ERROR");
35
+ }
36
+ }
37
+ generateHeaders(opts) {
38
+ const headers = opts?.headers
39
+ ? this.mergeHeaders(opts.headers)
40
+ : new Headers(this.headers);
41
+ if (opts?.authToken) {
42
+ headers.set("Authorization", `Bearer ${opts.authToken}`);
43
+ }
44
+ return headers;
45
+ }
46
+ mergeHeaders(overrides) {
47
+ const merged = new Headers(this.headers);
48
+ for (const key in overrides) {
49
+ merged.set(key, overrides[key]);
50
+ }
51
+ return merged;
52
+ }
53
+ }
54
+ exports.UsersApiClient = UsersApiClient;
package/dist/main.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./client";
1
+ export * from "./client2";
package/dist/main.js CHANGED
@@ -14,4 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./client"), exports);
17
+ __exportStar(require("./client2"), exports);
package/dist/result.d.ts CHANGED
@@ -7,8 +7,8 @@ export interface ResultErr<TError = unknown> {
7
7
  error: TError;
8
8
  }
9
9
  export type Result<TData = unknown, TError = unknown> = ResultOk<TData> | ResultErr<TError>;
10
- export type inferResultData<TResult extends Result> = TResult extends ResultOk<infer TData> ? TData : never;
11
- export type inferResultError<TResult extends Result> = TResult extends ResultErr<infer TError> ? TError : never;
10
+ export type InferResultData<TResult extends Result> = TResult extends ResultOk<infer TData> ? TData : never;
11
+ export type InferResultError<TResult extends Result> = TResult extends ResultErr<infer TError> ? TError : never;
12
12
  export declare function Err<TCode extends string>(code: TCode): ResultErr<{
13
13
  code: TCode;
14
14
  }>;
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@palmetto/users-sdk",
3
- "private": false,
4
- "version": "0.0.4",
3
+ "version": "0.0.6",
5
4
  "main": "./dist/main.js",
6
5
  "files": [
7
6
  "dist/**/*",
@@ -11,17 +10,28 @@
11
10
  "node": ">=20"
12
11
  },
13
12
  "scripts": {
14
- "build": "tsc",
13
+ "lint": "eslint . --fix --cache",
14
+ "format": "prettier --write \"src/**/*.ts\"",
15
15
  "tc": "tsc --noEmit",
16
+ "build": "tsc",
16
17
  "generate": "node ./scripts/generateApiSchema.mjs",
17
- "prepublishOnly": "yarn build"
18
+ "prepublishOnly": "yarn build",
19
+ "hook:lint": "eslint --cache --fix",
20
+ "hook:format": "prettier --write --loglevel warn",
21
+ "hook:type-check": "tsc --noEmit"
18
22
  },
19
23
  "devDependencies": {
24
+ "@trivago/prettier-plugin-sort-imports": "^4.3.0",
20
25
  "@types/node": "^22.5.5",
26
+ "@typescript-eslint/eslint-plugin": "7.15.0",
27
+ "@typescript-eslint/parser": "7.15.0",
28
+ "eslint": "8.56.0",
21
29
  "openapi-typescript": "^7.4.0",
30
+ "prettier": "2.8.3",
22
31
  "typescript": "5.5.4"
23
32
  },
24
33
  "dependencies": {
34
+ "openapi-fetch": "^0.12.2",
25
35
  "openapi-typescript-fetch": "^2.0.0"
26
36
  },
27
37
  "publishConfig": {