@mojaksebastian/allegro-client 1.1.0 → 1.2.1
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 +16 -9
- package/dist/auth/helpers/TokenStorage.d.ts +1 -3
- package/dist/auth/helpers/TokenStorage.d.ts.map +1 -1
- package/dist/auth/helpers/TokenStorage.js +18 -11
- package/dist/auth/helpers/TokenStorage.js.map +1 -1
- package/dist/auth/index.d.ts +4 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +15 -13
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/strategies/DeviceFlow.d.ts +1 -1
- package/dist/auth/strategies/DeviceFlow.d.ts.map +1 -1
- package/dist/auth/strategies/DeviceFlow.js +5 -6
- package/dist/auth/strategies/DeviceFlow.js.map +1 -1
- package/dist/auth/types.d.ts +2 -2
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/client/index.d.ts +17 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +37 -4
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.d.ts +14 -2
- package/dist/client/types.d.ts.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -31,7 +31,12 @@ const config = {
|
|
|
31
31
|
clientId: process.env.ALLEGRO_CLIENT_ID,
|
|
32
32
|
clientSecret: process.env.ALLEGRO_CLIENT_SECRET,
|
|
33
33
|
},
|
|
34
|
-
|
|
34
|
+
userAgent: { // NAGŁÓWEK USER AGENT WYMAGANY PRZEZ ALLEGRO DO KOŃCA CZERWCA 2026 !!!
|
|
35
|
+
name: "AllegroClient", // nazwa aplikacji
|
|
36
|
+
version: "1.0.0", // wersja (w formie x.x.x / x.x / x)
|
|
37
|
+
url: "https://github.com/mojaksebastian/allegro-client", // należy podać URL do strony projektu
|
|
38
|
+
}
|
|
39
|
+
strategy: "DeviceFlow", // Na razie tylko DeviceFlow
|
|
35
40
|
env: "sandbox", // Opcje: "production" | "sandbox"
|
|
36
41
|
};
|
|
37
42
|
|
|
@@ -95,24 +100,26 @@ const allegro = new AllegroClient({
|
|
|
95
100
|
### Interfejs konfiguracji (IAllegroClientConfig)
|
|
96
101
|
|
|
97
102
|
| Właściwość | Typ | Wymagane | Opis |
|
|
98
|
-
| :------------ | :-------------------------- |
|
|
99
|
-
| `credentials` | `IAuthCredentials` |
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
| `
|
|
103
|
+
| :------------ | :-------------------------- | :------- | :--------------------------------------------------------------------- |
|
|
104
|
+
| `credentials` | `IAuthCredentials` | Tak | Obiekt zawierający `clientId` oraz `clientSecret`. |
|
|
105
|
+
| `userAgent` | `IUserAgent` | Tak | Obiekt z metadanymi aplikacji (wymagany nagłówek User-Agent). |
|
|
106
|
+
| `strategy` | `TStrategy` | Tak | Wybrana strategia autoryzacji (np. `"DeviceFlow"`). |
|
|
107
|
+
| `env` | `"production" \| "sandbox"` | Nie | Środowisko Allegro (Domyślnie: `"production"`). |
|
|
108
|
+
| `storage` | `ITokenStorage` | Nie | Instancja klasy zarządzającej zapisem (Domyślnie: `FileTokenStorage`). |
|
|
103
109
|
|
|
104
110
|
### Metody klasy AllegroClient
|
|
105
111
|
|
|
106
|
-
|
|
112
|
+
- **getAccessToken(): Promise<string>** – Zwraca aktywny token dostępowy. Jeśli token wygasł lub nie istnieje, inicjuje proces odświeżania lub autoryzacji.
|
|
113
|
+
|
|
114
|
+
- **clearTokens(): Promise<void>** – Usuwa token zapisany w pamięci klienta.
|
|
107
115
|
|
|
108
|
-
|
|
116
|
+
- **send(path: string, options: RequestInit): Promise<void>** – Metoda pomocnicza do wysyłania żądań HTTP do API Allegro. Automatycznie uwzględnia nagłówki Authorization oraz User-Agent.
|
|
109
117
|
|
|
110
118
|
## Rozwój projektu
|
|
111
119
|
|
|
112
120
|
Biblioteka wymaga Node.js w wersji 20.x lub wyższej.
|
|
113
121
|
|
|
114
122
|
```bash
|
|
115
|
-
|
|
116
123
|
# Kompilacja kodu źródłowego (TypeScript -> JavaScript)
|
|
117
124
|
npm run build
|
|
118
125
|
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import type { ITokenStorage, IAllegroTokens } from "../types.js";
|
|
2
2
|
import { TEnv } from "../../client/types.js";
|
|
3
3
|
export declare class FileTokenStorage implements ITokenStorage {
|
|
4
|
-
private readonly fileName;
|
|
5
|
-
private readonly devFileName;
|
|
6
4
|
private readonly filePath;
|
|
7
|
-
constructor(env: TEnv,
|
|
5
|
+
constructor(env: TEnv, clientId: string);
|
|
8
6
|
save(tokens: IAllegroTokens): Promise<void>;
|
|
9
7
|
read(): Promise<IAllegroTokens | null>;
|
|
10
8
|
clear(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenStorage.d.ts","sourceRoot":"","sources":["../../../src/auth/helpers/TokenStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TokenStorage.d.ts","sourceRoot":"","sources":["../../../src/auth/helpers/TokenStorage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAE7C,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM;IAmBjC,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3C,IAAI,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAUtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import { writeFile, readFile, unlink } from "node:fs/promises";
|
|
2
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
2
3
|
import { join } from "node:path";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { createHash } from "node:crypto";
|
|
3
6
|
export class FileTokenStorage {
|
|
4
|
-
fileName = ".allegro_sessionon";
|
|
5
|
-
devFileName = ".allegro_sessionon_dev";
|
|
6
7
|
filePath;
|
|
7
|
-
constructor(env,
|
|
8
|
-
//
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
constructor(env, clientId) {
|
|
9
|
+
// Generowanie hasha dla każdej instancji oraz production/sandbox
|
|
10
|
+
const clientHash = createHash("sha256")
|
|
11
|
+
.update(`${clientId}-${env}`)
|
|
12
|
+
.digest("hex")
|
|
13
|
+
.substring(0, 8);
|
|
14
|
+
const fileName = `session-${env}-${clientHash}.json`;
|
|
15
|
+
// Domyślnie używanie ukrytego folderu w /home użytkownika systemu
|
|
16
|
+
const homeConfigDir = join(homedir(), ".allegro-client");
|
|
17
|
+
this.filePath = join(homeConfigDir, fileName);
|
|
18
|
+
if (!existsSync(homeConfigDir)) {
|
|
19
|
+
mkdirSync(homeConfigDir, { recursive: true });
|
|
20
|
+
}
|
|
13
21
|
}
|
|
14
22
|
async save(tokens) {
|
|
15
23
|
try {
|
|
16
24
|
const data = JSON.stringify(tokens, null, 2);
|
|
17
|
-
console.log(data);
|
|
18
25
|
await writeFile(this.filePath, data, "utf-8");
|
|
19
26
|
}
|
|
20
27
|
catch (error) {
|
|
@@ -27,7 +34,7 @@ export class FileTokenStorage {
|
|
|
27
34
|
return JSON.parse(data);
|
|
28
35
|
}
|
|
29
36
|
catch (error) {
|
|
30
|
-
// Jeśli plik nie istnieje,
|
|
37
|
+
// Jeśli plik nie istnieje, zwrócenie null
|
|
31
38
|
return null;
|
|
32
39
|
}
|
|
33
40
|
}
|
|
@@ -36,7 +43,7 @@ export class FileTokenStorage {
|
|
|
36
43
|
await unlink(this.filePath);
|
|
37
44
|
}
|
|
38
45
|
catch (error) {
|
|
39
|
-
//
|
|
46
|
+
// Ignorowanie błędu, jeśli plik już nie istnieje
|
|
40
47
|
}
|
|
41
48
|
}
|
|
42
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenStorage.js","sourceRoot":"","sources":["../../../src/auth/helpers/TokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenStorage.js","sourceRoot":"","sources":["../../../src/auth/helpers/TokenStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,OAAO,gBAAgB;IACV,QAAQ,CAAS;IAElC,YAAY,GAAS,EAAE,QAAgB;QACrC,iEAAiE;QACjE,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC;aACpC,MAAM,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;aAC5B,MAAM,CAAC,KAAK,CAAC;aACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnB,MAAM,QAAQ,GAAG,WAAW,GAAG,IAAI,UAAU,OAAO,CAAC;QAErD,kEAAkE;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAE9C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC7F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0CAA0C;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iDAAiD;QACnD,CAAC;IACH,CAAC;CACF"}
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -4,10 +4,12 @@ export declare class AllegroAuth implements IAuthConfig {
|
|
|
4
4
|
private strategy;
|
|
5
5
|
private storage;
|
|
6
6
|
private credentials;
|
|
7
|
+
private userAgent;
|
|
7
8
|
private readonly tokenUrl;
|
|
8
9
|
private readonly authUrl;
|
|
9
|
-
constructor(baseUrl: URL, strategy: IAuthStrategy, storage: ITokenStorage, credentials: IAuthCredentials);
|
|
10
|
+
constructor(baseUrl: URL, strategy: IAuthStrategy, storage: ITokenStorage, credentials: IAuthCredentials, userAgent: string);
|
|
11
|
+
authorize(): Promise<string>;
|
|
10
12
|
getToken(): Promise<string>;
|
|
11
|
-
|
|
13
|
+
clearTokens(): Promise<void>;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,WAAW,EACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,WAAW,EACZ,MAAM,YAAY,CAAC;AAIpB,qBAAa,WAAY,YAAW,WAAW;IAK3C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IARnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;gBAGpB,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,MAAM;IAMrB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAU5B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAiC3B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
|
package/dist/auth/index.js
CHANGED
|
@@ -4,47 +4,49 @@ export class AllegroAuth {
|
|
|
4
4
|
strategy;
|
|
5
5
|
storage;
|
|
6
6
|
credentials;
|
|
7
|
+
userAgent;
|
|
7
8
|
tokenUrl;
|
|
8
9
|
authUrl;
|
|
9
|
-
constructor(baseUrl, strategy, storage, credentials) {
|
|
10
|
+
constructor(baseUrl, strategy, storage, credentials, userAgent) {
|
|
10
11
|
this.baseUrl = baseUrl;
|
|
11
12
|
this.strategy = strategy;
|
|
12
13
|
this.storage = storage;
|
|
13
14
|
this.credentials = credentials;
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
15
|
+
this.userAgent = userAgent;
|
|
16
|
+
this.authUrl = new URL("auth/oauth/device", this.baseUrl);
|
|
17
|
+
this.tokenUrl = new URL("auth/oauth/token", this.baseUrl);
|
|
18
|
+
}
|
|
19
|
+
async authorize() {
|
|
20
|
+
const tokens = await this.strategy.authorize(this.authUrl, this.credentials, this.userAgent);
|
|
21
|
+
await this.storage.save(tokens);
|
|
22
|
+
return tokens.accessToken;
|
|
16
23
|
}
|
|
17
24
|
async getToken() {
|
|
18
25
|
let tokens = await this.storage.read();
|
|
19
26
|
// Brak jakichkolwiek tokenów
|
|
20
27
|
if (!tokens) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
await this.storage.save(tokens);
|
|
24
|
-
return tokens.accessToken;
|
|
28
|
+
const accessToken = await this.authorize();
|
|
29
|
+
return accessToken;
|
|
25
30
|
}
|
|
26
31
|
// Sprawdzenie ważności
|
|
27
32
|
// Jeśli obecny czas + 5 min jest większy niż czas wygaśnięcia, odświeżanie
|
|
28
33
|
const safetyMargin = 5 * 60 * 1000;
|
|
29
34
|
const isExpired = Date.now() + safetyMargin >= tokens.expiresAt;
|
|
30
35
|
if (isExpired) {
|
|
31
|
-
console.log("[Auth] Token wygasł lub zaraz wygaśnie. Odświeżam...");
|
|
32
36
|
try {
|
|
33
37
|
const newTokens = await refresh(this.tokenUrl, this.credentials, tokens.refreshToken);
|
|
34
38
|
await this.storage.save(newTokens);
|
|
35
39
|
return newTokens.accessToken;
|
|
36
40
|
}
|
|
37
41
|
catch (error) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
await this.clearToken();
|
|
41
|
-
throw new Error("Sesja wygasła. Wymagana ponowna autoryzacja użytkownika.");
|
|
42
|
+
await this.storage.clear();
|
|
43
|
+
return this.authorize();
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
// Token jest nadal ważny
|
|
45
47
|
return tokens.accessToken;
|
|
46
48
|
}
|
|
47
|
-
async
|
|
49
|
+
async clearTokens() {
|
|
48
50
|
await this.storage.clear();
|
|
49
51
|
}
|
|
50
52
|
}
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,MAAM,OAAO,WAAW;IAKZ;IACA;IACA;IACA;IACA;IARO,QAAQ,CAAM;IACd,OAAO,CAAM;IAE9B,YACU,OAAY,EACZ,QAAuB,EACvB,OAAsB,EACtB,WAA6B,EAC7B,SAAiB;QAJjB,YAAO,GAAP,OAAO,CAAK;QACZ,aAAQ,GAAR,QAAQ,CAAe;QACvB,YAAO,GAAP,OAAO,CAAe;QACtB,gBAAW,GAAX,WAAW,CAAkB;QAC7B,cAAS,GAAT,SAAS,CAAQ;QAEzB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAC1C,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,CACf,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEvC,6BAA6B;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,uBAAuB;QACvB,2EAA2E;QAC3E,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC;QAEhE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,EAChB,MAAM,CAAC,YAAY,CACpB,CAAC;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACnC,OAAO,SAAS,CAAC,WAAW,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IAuthStrategy, IAllegroTokens, IAuthCredentials } from "../types.js";
|
|
2
2
|
export declare class DeviceFlow implements IAuthStrategy {
|
|
3
|
-
authorize(authUrl: URL, credentials: IAuthCredentials): Promise<IAllegroTokens>;
|
|
3
|
+
authorize(authUrl: URL, credentials: IAuthCredentials, userAgent: string): Promise<IAllegroTokens>;
|
|
4
4
|
}
|
|
5
5
|
//# sourceMappingURL=DeviceFlow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceFlow.d.ts","sourceRoot":"","sources":["../../../src/auth/strategies/DeviceFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AAErB,qBAAa,UAAW,YAAW,aAAa;IACxC,SAAS,CACb,OAAO,EAAE,GAAG,EACZ,WAAW,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"DeviceFlow.d.ts","sourceRoot":"","sources":["../../../src/auth/strategies/DeviceFlow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AAErB,qBAAa,UAAW,YAAW,aAAa;IACxC,SAAS,CACb,OAAO,EAAE,GAAG,EACZ,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;CAoF3B"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export class DeviceFlow {
|
|
2
|
-
async authorize(authUrl, credentials) {
|
|
2
|
+
async authorize(authUrl, credentials, userAgent) {
|
|
3
3
|
const { clientId, clientSecret } = credentials;
|
|
4
4
|
const basicAuth = Buffer.from(`${clientId}:${clientSecret}`).toString("base64");
|
|
5
|
-
//
|
|
6
|
-
console.log(`[DeviceFlow] Requesting device code from ${authUrl}/device`);
|
|
5
|
+
// Pobieranie deviceCode
|
|
7
6
|
const deviceResponse = await fetch(`${authUrl}/device?client_id=${clientId}`, {
|
|
8
7
|
method: "POST",
|
|
9
8
|
headers: {
|
|
10
9
|
Authorization: `Basic ${basicAuth}`,
|
|
11
10
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
11
|
+
"User-Agent": userAgent,
|
|
12
12
|
},
|
|
13
13
|
});
|
|
14
14
|
if (!deviceResponse.ok) {
|
|
@@ -23,7 +23,6 @@ export class DeviceFlow {
|
|
|
23
23
|
// KROK 2: Polling (odpytywanie o token)
|
|
24
24
|
return new Promise((resolve, reject) => {
|
|
25
25
|
const intervalMs = deviceData.interval * 1000;
|
|
26
|
-
console.log(`[DeviceFlow] Starting polling for token every ${deviceData.interval}s...`);
|
|
27
26
|
const poll = setInterval(async () => {
|
|
28
27
|
try {
|
|
29
28
|
const tokenResponse = await fetch(`${authUrl}/token`, {
|
|
@@ -31,6 +30,7 @@ export class DeviceFlow {
|
|
|
31
30
|
headers: {
|
|
32
31
|
Authorization: `Basic ${basicAuth}`,
|
|
33
32
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
33
|
+
"User-Agent": userAgent,
|
|
34
34
|
},
|
|
35
35
|
body: new URLSearchParams({
|
|
36
36
|
grant_type: "urn:ietf:params:oauth:grant-type:device_code",
|
|
@@ -39,7 +39,6 @@ export class DeviceFlow {
|
|
|
39
39
|
});
|
|
40
40
|
const data = (await tokenResponse.json());
|
|
41
41
|
if (tokenResponse.ok) {
|
|
42
|
-
console.log(`[DeviceFlow] Access token successfully acquired!`);
|
|
43
42
|
clearInterval(poll);
|
|
44
43
|
resolve({
|
|
45
44
|
accessToken: data.access_token,
|
|
@@ -57,7 +56,7 @@ export class DeviceFlow {
|
|
|
57
56
|
clearInterval(poll);
|
|
58
57
|
reject(new Error("Niepoprawny, wygasły lub zużyty device_code."));
|
|
59
58
|
}
|
|
60
|
-
// Inne błędy (np. authorization_pending)
|
|
59
|
+
// Inne błędy (np. authorization_pending) ignorować i czekać dalej
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceFlow.js","sourceRoot":"","sources":["../../../src/auth/strategies/DeviceFlow.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,UAAU;IACrB,KAAK,CAAC,SAAS,CACb,OAAY,EACZ,WAA6B;
|
|
1
|
+
{"version":3,"file":"DeviceFlow.js","sourceRoot":"","sources":["../../../src/auth/strategies/DeviceFlow.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/types.d.ts
CHANGED
|
@@ -43,11 +43,11 @@ export interface ITokenStorage {
|
|
|
43
43
|
clear(): Promise<void>;
|
|
44
44
|
}
|
|
45
45
|
export interface IAuthStrategy {
|
|
46
|
-
authorize(authUrl: URL, credentials: IAuthCredentials): Promise<IAllegroTokens>;
|
|
46
|
+
authorize(authUrl: URL, credentials: IAuthCredentials, userAgent: string): Promise<IAllegroTokens>;
|
|
47
47
|
}
|
|
48
48
|
export interface IAuthConfig {
|
|
49
49
|
getToken(): Promise<string>;
|
|
50
|
-
|
|
50
|
+
clearTokens(): Promise<void>;
|
|
51
51
|
}
|
|
52
52
|
export interface IRefreshTokensParameters {
|
|
53
53
|
refresh(refreshUrl: URL, credentials: IAuthCredentials, refreshToken: string): Promise<IAllegroTokens>;
|
package/dist/auth/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CACP,OAAO,EAAE,GAAG,EACZ,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CACL,UAAU,EAAE,GAAG,EACf,WAAW,EAAE,gBAAgB,EAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,11 +1,26 @@
|
|
|
1
|
-
import { IAllegroClientConfig } from "./types.js";
|
|
2
|
-
export declare class AllegroClient {
|
|
1
|
+
import { IAllegroClient, IAllegroClientConfig } from "./types.js";
|
|
2
|
+
export declare class AllegroClient implements IAllegroClient {
|
|
3
3
|
private auth;
|
|
4
|
+
private baseUrl;
|
|
5
|
+
private userAgent;
|
|
4
6
|
constructor(config: IAllegroClientConfig);
|
|
5
7
|
/**
|
|
6
8
|
* Metoda pomocnicza do ręcznego wywołania autoryzacji
|
|
7
9
|
* lub po prostu pobrania aktualnego tokena.
|
|
8
10
|
*/
|
|
9
11
|
getAccessToken(): Promise<string>;
|
|
12
|
+
/**
|
|
13
|
+
* Usuwa zapisane tokeny z magazynu (wylogowanie).
|
|
14
|
+
*/
|
|
15
|
+
clearTokens(): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Wykonuje autoryzowane zapytanie do API Allegro.
|
|
18
|
+
* Automatycznie dołącza token Bearer oraz User-Agent.
|
|
19
|
+
*
|
|
20
|
+
* @param path Ścieżka endpointu (np. '/sale/offers')
|
|
21
|
+
* @param options Opcje fetch (metoda, body, dodatkowe nagłówki)
|
|
22
|
+
* @returns Sparsowany wynik typu T
|
|
23
|
+
*/
|
|
24
|
+
send<T>(path: string, options?: RequestInit): Promise<T>;
|
|
10
25
|
}
|
|
11
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKlE,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,oBAAoB;IAqCxC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;;;;OAOG;IACG,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC;CAmBnE"}
|
package/dist/client/index.js
CHANGED
|
@@ -5,13 +5,16 @@ const baseUrl = new URL("https://allegro.pl");
|
|
|
5
5
|
const devBaseUrl = new URL("https://allegro.pl.allegrosandbox.pl");
|
|
6
6
|
export class AllegroClient {
|
|
7
7
|
auth;
|
|
8
|
+
baseUrl;
|
|
9
|
+
userAgent;
|
|
8
10
|
constructor(config) {
|
|
9
11
|
console.log("Inicjalizacja AllegroClient...");
|
|
10
12
|
const { env = "production", // Domyślnie production, jeśli nie podano
|
|
11
|
-
credentials, strategy, storage, } = config;
|
|
12
|
-
|
|
13
|
+
credentials, strategy, storage, userAgent, } = config;
|
|
14
|
+
this.baseUrl = env === "sandbox" ? devBaseUrl : baseUrl;
|
|
15
|
+
this.userAgent = `${userAgent.name}/${userAgent.version} (+${userAgent.url})`;
|
|
13
16
|
// Inicjalizacja Storage (wbudowany/użytkownika)
|
|
14
|
-
const tokenStorage = storage ?? new FileTokenStorage(env);
|
|
17
|
+
const tokenStorage = storage ?? new FileTokenStorage(env, credentials.clientId);
|
|
15
18
|
// Wybór strategii
|
|
16
19
|
console.log("Strategia autoryzacji: " + strategy);
|
|
17
20
|
let strategyInstance;
|
|
@@ -21,7 +24,7 @@ export class AllegroClient {
|
|
|
21
24
|
strategyInstance = new DeviceFlow();
|
|
22
25
|
}
|
|
23
26
|
// Zarządca autoryzacji
|
|
24
|
-
this.auth = new AllegroAuth(
|
|
27
|
+
this.auth = new AllegroAuth(this.baseUrl, strategyInstance, tokenStorage, credentials, this.userAgent);
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
27
30
|
* Metoda pomocnicza do ręcznego wywołania autoryzacji
|
|
@@ -30,5 +33,35 @@ export class AllegroClient {
|
|
|
30
33
|
async getAccessToken() {
|
|
31
34
|
return await this.auth.getToken();
|
|
32
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Usuwa zapisane tokeny z magazynu (wylogowanie).
|
|
38
|
+
*/
|
|
39
|
+
async clearTokens() {
|
|
40
|
+
await this.auth.clearTokens();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Wykonuje autoryzowane zapytanie do API Allegro.
|
|
44
|
+
* Automatycznie dołącza token Bearer oraz User-Agent.
|
|
45
|
+
*
|
|
46
|
+
* @param path Ścieżka endpointu (np. '/sale/offers')
|
|
47
|
+
* @param options Opcje fetch (metoda, body, dodatkowe nagłówki)
|
|
48
|
+
* @returns Sparsowany wynik typu T
|
|
49
|
+
*/
|
|
50
|
+
async send(path, options = {}) {
|
|
51
|
+
const token = await this.getAccessToken();
|
|
52
|
+
const url = new URL(path, this.baseUrl);
|
|
53
|
+
const response = await fetch(url.toString(), {
|
|
54
|
+
...options,
|
|
55
|
+
headers: {
|
|
56
|
+
...options.headers,
|
|
57
|
+
Authorization: `Bearer ${token}`,
|
|
58
|
+
"User-Agent": this.userAgent,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok) {
|
|
62
|
+
throw new Error(`Allegro API error: ${response.statusText}`);
|
|
63
|
+
}
|
|
64
|
+
return (await response.json());
|
|
65
|
+
}
|
|
33
66
|
}
|
|
34
67
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAEnE,MAAM,OAAO,aAAa;IAChB,IAAI,CAAc;IAE1B,YAAY,MAA4B;QACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,EACJ,GAAG,GAAG,YAAY,EAAE,yCAAyC;QAC7D,WAAW,EACX,QAAQ,EACR,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,sCAAsC,CAAC,CAAC;AAEnE,MAAM,OAAO,aAAa;IAChB,IAAI,CAAc;IAClB,OAAO,CAAM;IACb,SAAS,CAAS;IAE1B,YAAY,MAA4B;QACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,EACJ,GAAG,GAAG,YAAY,EAAE,yCAAyC;QAC7D,WAAW,EACX,QAAQ,EACR,OAAO,EACP,SAAS,GACV,GAAG,MAA8B,CAAC;QAEnC,IAAI,CAAC,OAAO,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,MAAM,SAAS,CAAC,GAAG,GAAG,CAAC;QAE9E,gDAAgD;QAChD,MAAM,YAAY,GAChB,OAAO,IAAI,IAAI,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7D,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,QAAQ,CAAC,CAAC;QAElD,IAAI,gBAAgB,CAAC;QACrB,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,YAAY;gBACf,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,gBAAgB,GAAG,IAAI,UAAU,EAAE,CAAC;QACxC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CACzB,IAAI,CAAC,OAAO,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,UAAuB,EAAE;QACnD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC3C,GAAG,OAAO;YACV,OAAO,EAAE;gBACP,GAAG,OAAO,CAAC,OAAO;gBAClB,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,YAAY,EAAE,IAAI,CAAC,SAAS;aAC7B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACtC,CAAC;CACF"}
|
package/dist/client/types.d.ts
CHANGED
|
@@ -3,10 +3,22 @@ import type { IAuthCredentials, ITokenStorage, Tstrategy } from "../auth/types.j
|
|
|
3
3
|
* Client Configuration Types
|
|
4
4
|
*/
|
|
5
5
|
export type TEnv = "production" | "sandbox";
|
|
6
|
+
export type TVersion = `${number}.${number}.${number}` | `${number}.${number}` | number;
|
|
7
|
+
export interface IUserAgent {
|
|
8
|
+
name: string;
|
|
9
|
+
version: TVersion;
|
|
10
|
+
url: `http://${string}` | `https://${string}` | URL;
|
|
11
|
+
}
|
|
12
|
+
export interface IAllegroClient {
|
|
13
|
+
getAccessToken(): Promise<string>;
|
|
14
|
+
clearTokens(): Promise<void>;
|
|
15
|
+
send<T>(path: string, options?: RequestInit): Promise<T>;
|
|
16
|
+
}
|
|
6
17
|
export interface IAllegroClientConfig {
|
|
7
|
-
credentials: IAuthCredentials;
|
|
8
18
|
env?: TEnv;
|
|
9
|
-
|
|
19
|
+
credentials: IAuthCredentials;
|
|
10
20
|
strategy: Tstrategy;
|
|
21
|
+
storage?: ITokenStorage;
|
|
22
|
+
userAgent: IUserAgent;
|
|
11
23
|
}
|
|
12
24
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACV,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,YAAY,GAAG,SAAS,CAAC;AAE5C,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACV,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,YAAY,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,QAAQ,GAChB,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GAC/B,GAAG,MAAM,IAAI,MAAM,EAAE,GACrB,MAAM,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;IAClB,GAAG,EAAE,UAAU,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,GAAG,GAAG,CAAC;CACrD;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC;CACvB"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mojaksebastian/allegro-client",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Klient Allegro REST API z automatycznym odświeżaniem tokenów. Pobiera tokeny z Allegro i udostępnia je użytkownikowi. Obsługuje zarówno środowisko produkcyjne, jak i sandbox.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/mojaksebastian/allegro-client"
|
|
10
|
+
},
|
|
7
11
|
"exports": {
|
|
8
12
|
".": {
|
|
9
13
|
"types": "./dist/index.d.ts",
|
|
@@ -16,9 +20,6 @@
|
|
|
16
20
|
],
|
|
17
21
|
"scripts": {
|
|
18
22
|
"build": "rm -rf dist && tsc",
|
|
19
|
-
"test": "node dist/test.js",
|
|
20
|
-
"start": "node dist/server.js",
|
|
21
|
-
"dev": "node --loader ts-node/esm src/server.ts",
|
|
22
23
|
"prepublishOnly": "npm run build"
|
|
23
24
|
},
|
|
24
25
|
"keywords": [
|
|
@@ -30,7 +31,6 @@
|
|
|
30
31
|
"license": "MIT",
|
|
31
32
|
"devDependencies": {
|
|
32
33
|
"@types/node": "^20.11.0",
|
|
33
|
-
"ts-node": "^10.9.2",
|
|
34
34
|
"typescript": "^5.4.0"
|
|
35
35
|
}
|
|
36
36
|
}
|