@kajidog/connpass-api-client 0.1.0
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/LICENCE +21 -0
- package/README.md +184 -0
- package/dist/application/ConnpassClient.d.ts +41 -0
- package/dist/application/ConnpassClient.d.ts.map +1 -0
- package/dist/application/ConnpassClient.js +108 -0
- package/dist/application/ConnpassClient.js.map +1 -0
- package/dist/application/services/EventService.d.ts +10 -0
- package/dist/application/services/EventService.d.ts.map +1 -0
- package/dist/application/services/EventService.js +45 -0
- package/dist/application/services/EventService.js.map +1 -0
- package/dist/application/services/GroupService.d.ts +9 -0
- package/dist/application/services/GroupService.d.ts.map +1 -0
- package/dist/application/services/GroupService.js +39 -0
- package/dist/application/services/GroupService.js.map +1 -0
- package/dist/application/services/UserService.d.ts +25 -0
- package/dist/application/services/UserService.d.ts.map +1 -0
- package/dist/application/services/UserService.js +76 -0
- package/dist/application/services/UserService.js.map +1 -0
- package/dist/application/services/index.d.ts +4 -0
- package/dist/application/services/index.d.ts.map +1 -0
- package/dist/application/services/index.js +20 -0
- package/dist/application/services/index.js.map +1 -0
- package/dist/domain/entities/Event.d.ts +46 -0
- package/dist/domain/entities/Event.d.ts.map +1 -0
- package/dist/domain/entities/Event.js +3 -0
- package/dist/domain/entities/Event.js.map +1 -0
- package/dist/domain/entities/Group.d.ts +28 -0
- package/dist/domain/entities/Group.d.ts.map +1 -0
- package/dist/domain/entities/Group.js +3 -0
- package/dist/domain/entities/Group.js.map +1 -0
- package/dist/domain/entities/Presentation.d.ts +17 -0
- package/dist/domain/entities/Presentation.d.ts.map +1 -0
- package/dist/domain/entities/Presentation.js +3 -0
- package/dist/domain/entities/Presentation.js.map +1 -0
- package/dist/domain/entities/User.d.ts +23 -0
- package/dist/domain/entities/User.d.ts.map +1 -0
- package/dist/domain/entities/User.js +3 -0
- package/dist/domain/entities/User.js.map +1 -0
- package/dist/domain/entities/index.d.ts +5 -0
- package/dist/domain/entities/index.d.ts.map +1 -0
- package/dist/domain/entities/index.js +21 -0
- package/dist/domain/entities/index.js.map +1 -0
- package/dist/domain/errors/ConnpassError.d.ts +18 -0
- package/dist/domain/errors/ConnpassError.d.ts.map +1 -0
- package/dist/domain/errors/ConnpassError.js +46 -0
- package/dist/domain/errors/ConnpassError.js.map +1 -0
- package/dist/domain/errors/index.d.ts +2 -0
- package/dist/domain/errors/index.d.ts.map +1 -0
- package/dist/domain/errors/index.js +18 -0
- package/dist/domain/errors/index.js.map +1 -0
- package/dist/domain/repositories/IEventRepository.d.ts +6 -0
- package/dist/domain/repositories/IEventRepository.d.ts.map +1 -0
- package/dist/domain/repositories/IEventRepository.js +3 -0
- package/dist/domain/repositories/IEventRepository.js.map +1 -0
- package/dist/domain/repositories/IGroupRepository.d.ts +5 -0
- package/dist/domain/repositories/IGroupRepository.d.ts.map +1 -0
- package/dist/domain/repositories/IGroupRepository.js +3 -0
- package/dist/domain/repositories/IGroupRepository.js.map +1 -0
- package/dist/domain/repositories/IUserRepository.d.ts +19 -0
- package/dist/domain/repositories/IUserRepository.d.ts.map +1 -0
- package/dist/domain/repositories/IUserRepository.js +3 -0
- package/dist/domain/repositories/IUserRepository.js.map +1 -0
- package/dist/domain/repositories/index.d.ts +4 -0
- package/dist/domain/repositories/index.d.ts.map +1 -0
- package/dist/domain/repositories/index.js +20 -0
- package/dist/domain/repositories/index.js.map +1 -0
- package/dist/domain/utils/validators.d.ts +9 -0
- package/dist/domain/utils/validators.d.ts.map +1 -0
- package/dist/domain/utils/validators.js +76 -0
- package/dist/domain/utils/validators.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/cache/PresentationCache.d.ts +20 -0
- package/dist/infrastructure/cache/PresentationCache.d.ts.map +1 -0
- package/dist/infrastructure/cache/PresentationCache.js +91 -0
- package/dist/infrastructure/cache/PresentationCache.js.map +1 -0
- package/dist/infrastructure/http/HttpClient.d.ts +17 -0
- package/dist/infrastructure/http/HttpClient.d.ts.map +1 -0
- package/dist/infrastructure/http/HttpClient.js +75 -0
- package/dist/infrastructure/http/HttpClient.js.map +1 -0
- package/dist/infrastructure/repositories/EventRepository.d.ts +14 -0
- package/dist/infrastructure/repositories/EventRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/EventRepository.js +117 -0
- package/dist/infrastructure/repositories/EventRepository.js.map +1 -0
- package/dist/infrastructure/repositories/GroupRepository.d.ts +10 -0
- package/dist/infrastructure/repositories/GroupRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/GroupRepository.js +35 -0
- package/dist/infrastructure/repositories/GroupRepository.js.map +1 -0
- package/dist/infrastructure/repositories/UserRepository.d.ts +24 -0
- package/dist/infrastructure/repositories/UserRepository.d.ts.map +1 -0
- package/dist/infrastructure/repositories/UserRepository.js +68 -0
- package/dist/infrastructure/repositories/UserRepository.js.map +1 -0
- package/dist/infrastructure/repositories/index.d.ts +4 -0
- package/dist/infrastructure/repositories/index.d.ts.map +1 -0
- package/dist/infrastructure/repositories/index.js +20 -0
- package/dist/infrastructure/repositories/index.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,91 @@
|
|
|
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.PresentationCache = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
class PresentationCache {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.cache = new Map();
|
|
12
|
+
this.isLoaded = false;
|
|
13
|
+
this.filePath = options.filePath;
|
|
14
|
+
this.ttlMs = Math.max(options.ttlMs, 0);
|
|
15
|
+
this.enabled = options.enabled;
|
|
16
|
+
}
|
|
17
|
+
async get(eventId) {
|
|
18
|
+
if (!this.enabled) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
await this.ensureLoaded();
|
|
22
|
+
const entry = this.cache.get(eventId);
|
|
23
|
+
if (!entry) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
if (this.ttlMs === 0 || Date.now() <= entry.expiresAt) {
|
|
27
|
+
return entry.data;
|
|
28
|
+
}
|
|
29
|
+
this.cache.delete(eventId);
|
|
30
|
+
await this.persist();
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
async set(eventId, data) {
|
|
34
|
+
if (!this.enabled) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
await this.ensureLoaded();
|
|
38
|
+
const expiresAt = this.ttlMs === 0 ? Number.MAX_SAFE_INTEGER : Date.now() + this.ttlMs;
|
|
39
|
+
this.cache.set(eventId, { data, expiresAt });
|
|
40
|
+
await this.persist();
|
|
41
|
+
}
|
|
42
|
+
async clear() {
|
|
43
|
+
if (!this.enabled) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.cache.clear();
|
|
47
|
+
await this.persist();
|
|
48
|
+
}
|
|
49
|
+
async ensureLoaded() {
|
|
50
|
+
if (this.isLoaded || !this.enabled) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const raw = await fs_1.promises.readFile(this.filePath, 'utf-8');
|
|
55
|
+
const parsed = JSON.parse(raw);
|
|
56
|
+
const now = Date.now();
|
|
57
|
+
for (const [key, entry] of Object.entries(parsed)) {
|
|
58
|
+
const eventId = Number(key);
|
|
59
|
+
if (!Number.isFinite(eventId)) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (this.ttlMs === 0 || entry.expiresAt > now) {
|
|
63
|
+
this.cache.set(eventId, entry);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
if (error?.code !== 'ENOENT') {
|
|
69
|
+
console.warn('[api-client] Failed to load presentation cache:', error?.message ?? error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
this.isLoaded = true;
|
|
74
|
+
await this.persist();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async persist() {
|
|
78
|
+
if (!this.enabled) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const dir = path_1.default.dirname(this.filePath);
|
|
82
|
+
await fs_1.promises.mkdir(dir, { recursive: true });
|
|
83
|
+
const serializable = {};
|
|
84
|
+
for (const [eventId, entry] of this.cache.entries()) {
|
|
85
|
+
serializable[String(eventId)] = entry;
|
|
86
|
+
}
|
|
87
|
+
await fs_1.promises.writeFile(this.filePath, JSON.stringify(serializable, null, 2), 'utf-8');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.PresentationCache = PresentationCache;
|
|
91
|
+
//# sourceMappingURL=PresentationCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PresentationCache.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/PresentationCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
export interface HttpClientConfig {
|
|
3
|
+
baseURL: string;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
timeout?: number;
|
|
6
|
+
rateLimitDelay?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class HttpClient {
|
|
9
|
+
private client;
|
|
10
|
+
private lastRequestTime;
|
|
11
|
+
private rateLimitDelay;
|
|
12
|
+
constructor(config: HttpClientConfig);
|
|
13
|
+
private setupInterceptors;
|
|
14
|
+
private waitForRateLimit;
|
|
15
|
+
get<T>(url: string, params?: Record<string, any>): Promise<AxiosResponse<T>>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=HttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpClient.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/HttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,aAAa,EAAc,MAAM,OAAO,CAAC;AAIxE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,EAAE,gBAAgB;IAkBpC,OAAO,CAAC,iBAAiB;YAmCX,gBAAgB;IAYxB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAQnF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
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.HttpClient = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const qs_1 = require("qs");
|
|
9
|
+
const errors_1 = require("../../domain/errors");
|
|
10
|
+
class HttpClient {
|
|
11
|
+
constructor(config) {
|
|
12
|
+
this.lastRequestTime = 0;
|
|
13
|
+
this.rateLimitDelay = config.rateLimitDelay ?? 1000;
|
|
14
|
+
this.client = axios_1.default.create({
|
|
15
|
+
baseURL: config.baseURL,
|
|
16
|
+
timeout: config.timeout ?? 30000,
|
|
17
|
+
headers: {
|
|
18
|
+
'X-API-Key': config.apiKey,
|
|
19
|
+
'Content-Type': 'application/json',
|
|
20
|
+
},
|
|
21
|
+
paramsSerializer: params => {
|
|
22
|
+
return (0, qs_1.stringify)(params, { arrayFormat: 'repeat' });
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
this.setupInterceptors();
|
|
26
|
+
}
|
|
27
|
+
setupInterceptors() {
|
|
28
|
+
this.client.interceptors.response.use((response) => response, (error) => {
|
|
29
|
+
if (error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT') {
|
|
30
|
+
throw new errors_1.ConnpassTimeoutError('Request timeout');
|
|
31
|
+
}
|
|
32
|
+
if (error.response) {
|
|
33
|
+
const status = error.response.status;
|
|
34
|
+
const data = error.response.data;
|
|
35
|
+
switch (status) {
|
|
36
|
+
case 429:
|
|
37
|
+
throw new errors_1.ConnpassRateLimitError('Rate limit exceeded');
|
|
38
|
+
case 400:
|
|
39
|
+
throw new errors_1.ConnpassApiError('Bad Request', status, data);
|
|
40
|
+
case 401:
|
|
41
|
+
throw new errors_1.ConnpassApiError('Unauthorized - Invalid API key', status, data);
|
|
42
|
+
case 403:
|
|
43
|
+
throw new errors_1.ConnpassApiError('Forbidden', status, data);
|
|
44
|
+
case 404:
|
|
45
|
+
throw new errors_1.ConnpassApiError('Not Found', status, data);
|
|
46
|
+
case 500:
|
|
47
|
+
throw new errors_1.ConnpassApiError('Internal Server Error', status, data);
|
|
48
|
+
default:
|
|
49
|
+
throw new errors_1.ConnpassApiError(`HTTP ${status}`, status, data);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
throw new errors_1.ConnpassError(`Network error: ${error.message}`);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async waitForRateLimit() {
|
|
56
|
+
const now = Date.now();
|
|
57
|
+
const timeSinceLastRequest = now - this.lastRequestTime;
|
|
58
|
+
if (timeSinceLastRequest < this.rateLimitDelay) {
|
|
59
|
+
const waitTime = this.rateLimitDelay - timeSinceLastRequest;
|
|
60
|
+
await new Promise(resolve => setTimeout(resolve, waitTime));
|
|
61
|
+
}
|
|
62
|
+
this.lastRequestTime = Date.now();
|
|
63
|
+
}
|
|
64
|
+
async get(url, params) {
|
|
65
|
+
try {
|
|
66
|
+
await this.waitForRateLimit();
|
|
67
|
+
return await this.client.get(url, { params });
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.HttpClient = HttpClient;
|
|
75
|
+
//# sourceMappingURL=HttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpClient.js","sourceRoot":"","sources":["../../../src/infrastructure/http/HttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IEventRepository } from '../../domain/repositories';
|
|
2
|
+
import { EventSearchParams, EventsResponse, PresentationsResponse } from '../../domain/entities';
|
|
3
|
+
import { HttpClient } from '../http/HttpClient';
|
|
4
|
+
import { PresentationCache } from '../cache/PresentationCache';
|
|
5
|
+
export declare class EventRepository implements IEventRepository {
|
|
6
|
+
private httpClient;
|
|
7
|
+
private presentationCache?;
|
|
8
|
+
constructor(httpClient: HttpClient, presentationCache?: PresentationCache | undefined);
|
|
9
|
+
searchEvents(params: EventSearchParams): Promise<EventsResponse>;
|
|
10
|
+
getEventPresentations(eventId: number): Promise<PresentationsResponse>;
|
|
11
|
+
private buildEventQueryParams;
|
|
12
|
+
private mapEventsResponse;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=EventRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/EventRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAS,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,qBAAa,eAAgB,YAAW,gBAAgB;IAC1C,OAAO,CAAC,UAAU;IAAc,OAAO,CAAC,iBAAiB,CAAC;gBAAlD,UAAU,EAAE,UAAU,EAAU,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IAEnF,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAOhE,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAa5E,OAAO,CAAC,qBAAqB;IA4C7B,OAAO,CAAC,iBAAiB;CAoC1B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventRepository = void 0;
|
|
4
|
+
const validators_1 = require("../../domain/utils/validators");
|
|
5
|
+
class EventRepository {
|
|
6
|
+
constructor(httpClient, presentationCache) {
|
|
7
|
+
this.httpClient = httpClient;
|
|
8
|
+
this.presentationCache = presentationCache;
|
|
9
|
+
}
|
|
10
|
+
async searchEvents(params) {
|
|
11
|
+
validators_1.Validators.validateEventSearchParams(params);
|
|
12
|
+
const queryParams = this.buildEventQueryParams(params);
|
|
13
|
+
const response = await this.httpClient.get('/events/', queryParams);
|
|
14
|
+
return this.mapEventsResponse(response.data);
|
|
15
|
+
}
|
|
16
|
+
async getEventPresentations(eventId) {
|
|
17
|
+
validators_1.Validators.validatePositiveInteger(eventId, 'eventId');
|
|
18
|
+
const cached = await this.presentationCache?.get(eventId);
|
|
19
|
+
if (cached) {
|
|
20
|
+
return cached;
|
|
21
|
+
}
|
|
22
|
+
const response = await this.httpClient.get(`/events/${eventId}/presentations/`);
|
|
23
|
+
const data = response.data;
|
|
24
|
+
await this.presentationCache?.set(eventId, data);
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
buildEventQueryParams(params) {
|
|
28
|
+
const queryParams = {};
|
|
29
|
+
if (params.eventId)
|
|
30
|
+
queryParams.event_id = params.eventId;
|
|
31
|
+
if (params.keyword)
|
|
32
|
+
queryParams.keyword = params.keyword;
|
|
33
|
+
if (params.keywordOr)
|
|
34
|
+
queryParams.keyword_or = params.keywordOr;
|
|
35
|
+
if (params.ymd)
|
|
36
|
+
queryParams.ymd = params.ymd.join(',');
|
|
37
|
+
// For v2 compatibility: expand ymdFrom..ymdTo into comma-separated ymd list, while still passing v1 params
|
|
38
|
+
if (params.ymdFrom)
|
|
39
|
+
queryParams.ymd_from = params.ymdFrom;
|
|
40
|
+
if (params.ymdTo)
|
|
41
|
+
queryParams.ymd_to = params.ymdTo;
|
|
42
|
+
if (params.ymdFrom || params.ymdTo) {
|
|
43
|
+
const from = params.ymdFrom ? new Date(params.ymdFrom) : undefined;
|
|
44
|
+
const to = params.ymdTo ? new Date(params.ymdTo) : undefined;
|
|
45
|
+
if (from && !Number.isNaN(from.getTime())) {
|
|
46
|
+
const end = to && !Number.isNaN(to.getTime()) ? to : from;
|
|
47
|
+
const list = [];
|
|
48
|
+
const cur = new Date(from);
|
|
49
|
+
// normalize to local date, increment by 1 day
|
|
50
|
+
// cap at 366 iterations to avoid runaway
|
|
51
|
+
let guard = 0;
|
|
52
|
+
while (cur <= end && guard < 366) {
|
|
53
|
+
const y = cur.getFullYear();
|
|
54
|
+
const m = String(cur.getMonth() + 1).padStart(2, '0');
|
|
55
|
+
const d = String(cur.getDate()).padStart(2, '0');
|
|
56
|
+
list.push(`${y}${m}${d}`);
|
|
57
|
+
cur.setDate(cur.getDate() + 1);
|
|
58
|
+
guard += 1;
|
|
59
|
+
}
|
|
60
|
+
if (list.length) {
|
|
61
|
+
queryParams.ymd = list.join(',');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (params.nickname)
|
|
66
|
+
queryParams.nickname = params.nickname;
|
|
67
|
+
if (params.ownerNickname)
|
|
68
|
+
queryParams.owner_nickname = params.ownerNickname;
|
|
69
|
+
if (params.groupId)
|
|
70
|
+
queryParams.group_id = params.groupId;
|
|
71
|
+
if (params.prefecture)
|
|
72
|
+
queryParams.prefecture = params.prefecture;
|
|
73
|
+
if (params.count)
|
|
74
|
+
queryParams.count = params.count;
|
|
75
|
+
if (params.order)
|
|
76
|
+
queryParams.order = params.order;
|
|
77
|
+
if (params.start)
|
|
78
|
+
queryParams.start = params.start;
|
|
79
|
+
return queryParams;
|
|
80
|
+
}
|
|
81
|
+
mapEventsResponse(data) {
|
|
82
|
+
// Accept both v1-like snake_case and v2-like camelCase
|
|
83
|
+
const eventsArray = data.events ?? data.event ?? [];
|
|
84
|
+
const events = eventsArray.map((e) => ({
|
|
85
|
+
id: e.id ?? e.event_id,
|
|
86
|
+
title: e.title,
|
|
87
|
+
catchPhrase: e.catch ?? e.catchPhrase ?? '',
|
|
88
|
+
description: e.description ?? '',
|
|
89
|
+
url: e.url ?? e.event_url,
|
|
90
|
+
imageUrl: e.image_url ?? e.imageUrl ?? undefined,
|
|
91
|
+
hashTag: e.hash_tag ?? e.hashTag ?? '',
|
|
92
|
+
startedAt: e.started_at ?? e.startedAt ?? '',
|
|
93
|
+
endedAt: e.ended_at ?? e.endedAt ?? '',
|
|
94
|
+
limit: e.limit ?? undefined,
|
|
95
|
+
participantCount: e.accepted ?? e.participantCount ?? 0,
|
|
96
|
+
waitingCount: e.waiting ?? e.waitingCount ?? 0,
|
|
97
|
+
ownerNickname: e.owner_nickname ?? e.ownerNickname ?? '',
|
|
98
|
+
ownerDisplayName: e.owner_display_name ?? e.ownerDisplayName ?? '',
|
|
99
|
+
place: e.place ?? undefined,
|
|
100
|
+
address: e.address ?? undefined,
|
|
101
|
+
lat: e.lat ?? undefined,
|
|
102
|
+
lon: e.lon ?? undefined,
|
|
103
|
+
groupId: (e.group?.id ?? e.series?.id) ?? undefined,
|
|
104
|
+
groupTitle: (e.group?.title ?? e.series?.title) ?? undefined,
|
|
105
|
+
groupUrl: (e.group?.url ?? e.series?.url) ?? undefined,
|
|
106
|
+
updatedAt: e.updated_at ?? e.updatedAt ?? '',
|
|
107
|
+
}));
|
|
108
|
+
return {
|
|
109
|
+
eventsReturned: data.results_returned ?? data.eventsReturned ?? events.length,
|
|
110
|
+
eventsAvailable: data.results_available ?? data.eventsAvailable ?? events.length,
|
|
111
|
+
eventsStart: data.results_start ?? data.eventsStart ?? 1,
|
|
112
|
+
events,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.EventRepository = EventRepository;
|
|
117
|
+
//# sourceMappingURL=EventRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/EventRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IGroupRepository } from '../../domain/repositories';
|
|
2
|
+
import { GroupSearchParams, GroupsResponse } from '../../domain/entities';
|
|
3
|
+
import { HttpClient } from '../http/HttpClient';
|
|
4
|
+
export declare class GroupRepository implements IGroupRepository {
|
|
5
|
+
private httpClient;
|
|
6
|
+
constructor(httpClient: HttpClient);
|
|
7
|
+
searchGroups(params: GroupSearchParams): Promise<GroupsResponse>;
|
|
8
|
+
private buildGroupQueryParams;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=GroupRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/GroupRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,qBAAa,eAAgB,YAAW,gBAAgB;IAC1C,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEpC,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAOtE,OAAO,CAAC,qBAAqB;CAa9B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GroupRepository = void 0;
|
|
4
|
+
const validators_1 = require("../../domain/utils/validators");
|
|
5
|
+
class GroupRepository {
|
|
6
|
+
constructor(httpClient) {
|
|
7
|
+
this.httpClient = httpClient;
|
|
8
|
+
}
|
|
9
|
+
async searchGroups(params) {
|
|
10
|
+
validators_1.Validators.validateGroupSearchParams(params);
|
|
11
|
+
const queryParams = this.buildGroupQueryParams(params);
|
|
12
|
+
const response = await this.httpClient.get('/groups/', queryParams);
|
|
13
|
+
return response.data;
|
|
14
|
+
}
|
|
15
|
+
buildGroupQueryParams(params) {
|
|
16
|
+
const queryParams = {};
|
|
17
|
+
if (params.groupId)
|
|
18
|
+
queryParams.group_id = params.groupId.join(',');
|
|
19
|
+
if (params.keyword)
|
|
20
|
+
queryParams.keyword = params.keyword;
|
|
21
|
+
if (params.countryCode)
|
|
22
|
+
queryParams.country_code = params.countryCode;
|
|
23
|
+
if (params.prefecture)
|
|
24
|
+
queryParams.prefecture = params.prefecture;
|
|
25
|
+
if (params.count)
|
|
26
|
+
queryParams.count = params.count;
|
|
27
|
+
if (params.order)
|
|
28
|
+
queryParams.order = params.order;
|
|
29
|
+
if (params.start)
|
|
30
|
+
queryParams.start = params.start;
|
|
31
|
+
return queryParams;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.GroupRepository = GroupRepository;
|
|
35
|
+
//# sourceMappingURL=GroupRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroupRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/GroupRepository.ts"],"names":[],"mappings":";;;AAGA,8DAA2D;AAE3D,MAAa,eAAe;IAC1B,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C,KAAK,CAAC,YAAY,CAAC,MAAyB;QAC1C,uBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,UAAU,EAAE,WAAW,CAAC,CAAC;QACpF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAEO,qBAAqB,CAAC,MAAyB;QACrD,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,OAAO;YAAE,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACzD,IAAI,MAAM,CAAC,WAAW;YAAE,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU;YAAE,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAClE,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEnD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAvBD,0CAuBC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IUserRepository } from '../../domain/repositories';
|
|
2
|
+
import { UserSearchParams, UsersResponse, GroupsResponse, EventsResponse } from '../../domain/entities';
|
|
3
|
+
import { HttpClient } from '../http/HttpClient';
|
|
4
|
+
export declare class UserRepository implements IUserRepository {
|
|
5
|
+
private httpClient;
|
|
6
|
+
constructor(httpClient: HttpClient);
|
|
7
|
+
searchUsers(params: UserSearchParams): Promise<UsersResponse>;
|
|
8
|
+
getUserGroups(nickname: string, params?: {
|
|
9
|
+
count?: number;
|
|
10
|
+
start?: number;
|
|
11
|
+
}): Promise<GroupsResponse>;
|
|
12
|
+
getUserAttendedEvents(nickname: string, params?: {
|
|
13
|
+
count?: number;
|
|
14
|
+
order?: 1 | 2 | 3;
|
|
15
|
+
start?: number;
|
|
16
|
+
}): Promise<EventsResponse>;
|
|
17
|
+
getUserPresenterEvents(nickname: string, params?: {
|
|
18
|
+
count?: number;
|
|
19
|
+
order?: 1 | 2 | 3;
|
|
20
|
+
start?: number;
|
|
21
|
+
}): Promise<EventsResponse>;
|
|
22
|
+
private buildUserQueryParams;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=UserRepository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/UserRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,qBAAa,cAAe,YAAW,eAAe;IACxC,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,UAAU;IAEpC,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAO7D,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAcrG,qBAAqB,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO,CAAC,cAAc,CAAC;IAepB,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO,CAAC,cAAc,CAAC;IAe1B,OAAO,CAAC,oBAAoB;CAW7B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserRepository = void 0;
|
|
4
|
+
const validators_1 = require("../../domain/utils/validators");
|
|
5
|
+
class UserRepository {
|
|
6
|
+
constructor(httpClient) {
|
|
7
|
+
this.httpClient = httpClient;
|
|
8
|
+
}
|
|
9
|
+
async searchUsers(params) {
|
|
10
|
+
validators_1.Validators.validateUserSearchParams(params);
|
|
11
|
+
const queryParams = this.buildUserQueryParams(params);
|
|
12
|
+
const response = await this.httpClient.get('/users/', queryParams);
|
|
13
|
+
return response.data;
|
|
14
|
+
}
|
|
15
|
+
async getUserGroups(nickname, params) {
|
|
16
|
+
validators_1.Validators.validateNickname(nickname, 'nickname');
|
|
17
|
+
const queryParams = {};
|
|
18
|
+
if (params?.count)
|
|
19
|
+
queryParams.count = params.count;
|
|
20
|
+
if (params?.start)
|
|
21
|
+
queryParams.start = params.start;
|
|
22
|
+
const encodedNickname = encodeURIComponent(nickname.trim());
|
|
23
|
+
const response = await this.httpClient.get(`/users/${encodedNickname}/groups/`, queryParams);
|
|
24
|
+
return response.data;
|
|
25
|
+
}
|
|
26
|
+
async getUserAttendedEvents(nickname, params) {
|
|
27
|
+
validators_1.Validators.validateNickname(nickname, 'nickname');
|
|
28
|
+
const queryParams = {};
|
|
29
|
+
if (params?.count)
|
|
30
|
+
queryParams.count = params.count;
|
|
31
|
+
if (params?.order)
|
|
32
|
+
queryParams.order = params.order;
|
|
33
|
+
if (params?.start)
|
|
34
|
+
queryParams.start = params.start;
|
|
35
|
+
const encodedNickname = encodeURIComponent(nickname.trim());
|
|
36
|
+
const response = await this.httpClient.get(`/users/${encodedNickname}/attended_events/`, queryParams);
|
|
37
|
+
return response.data;
|
|
38
|
+
}
|
|
39
|
+
async getUserPresenterEvents(nickname, params) {
|
|
40
|
+
validators_1.Validators.validateNickname(nickname, 'nickname');
|
|
41
|
+
const queryParams = {};
|
|
42
|
+
if (params?.count)
|
|
43
|
+
queryParams.count = params.count;
|
|
44
|
+
if (params?.order)
|
|
45
|
+
queryParams.order = params.order;
|
|
46
|
+
if (params?.start)
|
|
47
|
+
queryParams.start = params.start;
|
|
48
|
+
const encodedNickname = encodeURIComponent(nickname.trim());
|
|
49
|
+
const response = await this.httpClient.get(`/users/${encodedNickname}/presenter_events/`, queryParams);
|
|
50
|
+
return response.data;
|
|
51
|
+
}
|
|
52
|
+
buildUserQueryParams(params) {
|
|
53
|
+
const queryParams = {};
|
|
54
|
+
if (params.userId)
|
|
55
|
+
queryParams.user_id = params.userId.join(',');
|
|
56
|
+
if (params.nickname)
|
|
57
|
+
queryParams.nickname = params.nickname;
|
|
58
|
+
if (params.count)
|
|
59
|
+
queryParams.count = params.count;
|
|
60
|
+
if (params.order)
|
|
61
|
+
queryParams.order = params.order;
|
|
62
|
+
if (params.start)
|
|
63
|
+
queryParams.start = params.start;
|
|
64
|
+
return queryParams;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.UserRepository = UserRepository;
|
|
68
|
+
//# sourceMappingURL=UserRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/UserRepository.ts"],"names":[],"mappings":";;;AAGA,8DAA2D;AAE3D,MAAa,cAAc;IACzB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C,KAAK,CAAC,WAAW,CAAC,MAAwB;QACxC,uBAAU,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAgB,SAAS,EAAE,WAAW,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,MAA2C;QAC/E,uBAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,WAAW,GAAwB,EAAE,CAAC;QAC5C,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEpD,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,UAAU,eAAe,UAAU,EACnC,WAAW,CACZ,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,QAAgB,EAChB,MAA8D;QAE9D,uBAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,WAAW,GAAwB,EAAE,CAAC;QAC5C,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEpD,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,UAAU,eAAe,mBAAmB,EAC5C,WAAW,CACZ,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,QAAgB,EAChB,MAA8D;QAE9D,uBAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,WAAW,GAAwB,EAAE,CAAC;QAC5C,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,EAAE,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEpD,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CACxC,UAAU,eAAe,oBAAoB,EAC7C,WAAW,CACZ,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAEO,oBAAoB,CAAC,MAAwB;QACnD,MAAM,WAAW,GAAwB,EAAE,CAAC;QAE5C,IAAI,MAAM,CAAC,MAAM;YAAE,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,QAAQ;YAAE,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC5D,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACnD,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAEnD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAvED,wCAuEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./EventRepository"), exports);
|
|
18
|
+
__exportStar(require("./GroupRepository"), exports);
|
|
19
|
+
__exportStar(require("./UserRepository"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,mDAAiC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kajidog/connpass-api-client",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript client for Connpass API v2",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"axios": "^1.6.0",
|
|
9
|
+
"qs": "^6.11.2"
|
|
10
|
+
},
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"@types/node": "^20.0.0",
|
|
13
|
+
"@types/qs": "^6.9.10",
|
|
14
|
+
"typescript": "^5.0.0"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"connpass",
|
|
18
|
+
"typescript"
|
|
19
|
+
],
|
|
20
|
+
"type": "commonjs",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "https://github.com/kajidog/connpass-in-chatgpt.git",
|
|
25
|
+
"directory": "packages/api-client"
|
|
26
|
+
},
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/kajidog/connpass-in-chatgpt/issues"
|
|
29
|
+
},
|
|
30
|
+
"homepage": "https://github.com/kajidog/connpass-in-chatgpt#readme",
|
|
31
|
+
"engines": {
|
|
32
|
+
"node": ">=18"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist",
|
|
36
|
+
"README.md"
|
|
37
|
+
],
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"sideEffects": false,
|
|
42
|
+
"exports": {
|
|
43
|
+
".": "./dist/index.js"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsc -b",
|
|
47
|
+
"dev": "tsc -b --watch",
|
|
48
|
+
"lint": "eslint src --ext .ts",
|
|
49
|
+
"typecheck": "tsc --noEmit"
|
|
50
|
+
}
|
|
51
|
+
}
|