daiso 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +17 -17
  2. package/dist/api/actionsProxy.js +0 -10
  3. package/dist/api/cgvHandlers.js +4 -3
  4. package/dist/api/configStatus.js +7 -2
  5. package/dist/api/gs25Handlers.js +4 -3
  6. package/dist/api/handlers.js +2 -1
  7. package/dist/api/healthCheckDefinitions.js +0 -9
  8. package/dist/api/healthChecks.js +0 -1
  9. package/dist/api/lottecinemaHandlers.js +4 -3
  10. package/dist/api/lottemartHandlers.js +5 -142
  11. package/dist/api/megaboxHandlers.js +4 -3
  12. package/dist/api/opinetHandlers.js +2 -1
  13. package/dist/api/routes/cgvRoutes.js +3 -3
  14. package/dist/api/routes/cuRoutes.js +2 -2
  15. package/dist/api/routes/gs25Routes.js +3 -3
  16. package/dist/api/routes/lottecinemaRoutes.js +3 -3
  17. package/dist/api/routes/lottemartRoutes.js +4 -16
  18. package/dist/api/routes/megaboxRoutes.js +3 -3
  19. package/dist/api/routes/opinetRoutes.js +4 -4
  20. package/dist/cli.js +5 -5
  21. package/dist/cliHelp.js +0 -3
  22. package/dist/cliHelpDefinitions.js +2 -19
  23. package/dist/index.js +10 -11
  24. package/dist/middleware/dailyRateLimit.js +0 -1
  25. package/dist/pages/openapiFullSpec.js +0 -2
  26. package/dist/pages/openapiSpecActionParameters.js +4 -4
  27. package/dist/pages/openapiSpecComponents.js +0 -2
  28. package/dist/pages/openapiSpecPathsMegabox.js +1 -1
  29. package/dist/pages/promptReferenceText.js +0 -5
  30. package/dist/pages/promptRetailCinemaText.js +0 -26
  31. package/dist/services/cgv/index.js +3 -6
  32. package/dist/services/cgv/location.js +38 -125
  33. package/dist/services/cgv/tools/findTheaters.js +5 -4
  34. package/dist/services/cgv/tools/getTimetable.js +5 -4
  35. package/dist/services/cgv/tools/searchMovies.js +5 -4
  36. package/dist/services/cu/client.js +3 -35
  37. package/dist/services/cu/index.js +1 -0
  38. package/dist/services/cu/tools/checkInventory.js +3 -1
  39. package/dist/services/gs25/client.js +3 -33
  40. package/dist/services/gs25/index.js +2 -2
  41. package/dist/services/gs25/tools/checkInventory.js +3 -1
  42. package/dist/services/gs25/tools/findNearbyStores.js +3 -1
  43. package/dist/services/lottecinema/index.js +3 -6
  44. package/dist/services/lottecinema/location.js +13 -100
  45. package/dist/services/lottecinema/tools/findNearbyTheaters.js +7 -6
  46. package/dist/services/lottecinema/tools/getRemainingSeats.js +5 -4
  47. package/dist/services/lottecinema/tools/listNowShowing.js +5 -4
  48. package/dist/services/lottemart/client.js +5 -32
  49. package/dist/services/lottemart/geocode.js +3 -46
  50. package/dist/services/megabox/index.js +9 -8
  51. package/dist/services/megabox/location.js +19 -84
  52. package/dist/services/megabox/tools/findNearbyTheaters.js +7 -7
  53. package/dist/services/megabox/tools/getRemainingSeats.js +5 -5
  54. package/dist/services/megabox/tools/listNowShowing.js +5 -5
  55. package/dist/services/opinet/client.js +1 -1
  56. package/dist/services/opinet/index.js +1 -1
  57. package/dist/services/opinet/location.js +5 -56
  58. package/dist/services/opinet/tools.js +2 -2
  59. package/dist/utils/geocode.js +155 -0
  60. package/dist/utils/http.js +2 -2
  61. package/openapi.json +4 -183
  62. package/openapi.yaml +4 -131
  63. package/package.json +1 -2
  64. package/dist/pages/openapiSpecComponentsLotteMart.js +0 -85
  65. package/dist/pages/openapiSpecPathsLotteMart.js +0 -157
package/openapi.json CHANGED
@@ -91,8 +91,6 @@
91
91
  "emart24FindStores",
92
92
  "emart24SearchProducts",
93
93
  "emart24CheckInventory",
94
- "lottemartFindStores",
95
- "lottemartSearchProducts",
96
94
  "gs25FindStores",
97
95
  "gs25SearchProducts",
98
96
  "gs25CheckInventory",
@@ -300,7 +298,7 @@
300
298
  "name": "area",
301
299
  "in": "query",
302
300
  "required": false,
303
- "description": "롯데마트 지역",
301
+ "description": "지역",
304
302
  "schema": {
305
303
  "type": "string"
306
304
  }
@@ -336,7 +334,7 @@
336
334
  "name": "brandVariant",
337
335
  "in": "query",
338
336
  "required": false,
339
- "description": "롯데마트 브랜드 변형",
337
+ "description": "브랜드 변형",
340
338
  "schema": {
341
339
  "type": "string"
342
340
  }
@@ -383,7 +381,7 @@
383
381
  "name": "pageLimit",
384
382
  "in": "query",
385
383
  "required": false,
386
- "description": "롯데마트 추가 페이지 수",
384
+ "description": "추가 페이지 수",
387
385
  "schema": {
388
386
  "type": "integer"
389
387
  }
@@ -446,7 +444,7 @@
446
444
  "name": "storeName",
447
445
  "in": "query",
448
446
  "required": false,
449
- "description": "매장명. 롯데마트 상품 조회에서 storeCode가 없을 때 사용하며, 모르면 먼저 lottemartFindNearbyStores 또는 /api/lottemart/stores로 확인하세요.",
447
+ "description": "매장명",
450
448
  "schema": {
451
449
  "type": "string"
452
450
  }
@@ -2084,183 +2082,6 @@
2084
2082
  }
2085
2083
  }
2086
2084
  },
2087
- "LotteMartStore": {
2088
- "type": "object",
2089
- "properties": {
2090
- "area": {
2091
- "type": "string",
2092
- "example": "서울"
2093
- },
2094
- "storeCode": {
2095
- "type": "string",
2096
- "example": "2301"
2097
- },
2098
- "storeName": {
2099
- "type": "string",
2100
- "example": "강변점"
2101
- },
2102
- "brandVariant": {
2103
- "type": "string",
2104
- "example": "lottemart"
2105
- },
2106
- "address": {
2107
- "type": "string",
2108
- "example": "서울 광진구 광나루로 56길 85 테크노마트 B2"
2109
- },
2110
- "phone": {
2111
- "type": "string",
2112
- "example": "02-3424-2502"
2113
- },
2114
- "openTime": {
2115
- "type": "string",
2116
- "example": "10:00~23:00"
2117
- },
2118
- "closedDays": {
2119
- "type": "string",
2120
- "example": "03/08(일), 03/22(일)"
2121
- },
2122
- "parkingType": {
2123
- "type": "string",
2124
- "example": "유료"
2125
- },
2126
- "parkingDetails": {
2127
- "type": "string",
2128
- "example": "최초 무료주차 : 1시간"
2129
- },
2130
- "detailUrl": {
2131
- "type": "string",
2132
- "example": "/mobiledowa/market/detail_shop.asp?werks=2301"
2133
- },
2134
- "latitude": {
2135
- "type": "number",
2136
- "format": "float",
2137
- "example": 37.5354
2138
- },
2139
- "longitude": {
2140
- "type": "number",
2141
- "format": "float",
2142
- "example": 127.0958
2143
- },
2144
- "distanceM": {
2145
- "type": "number",
2146
- "nullable": true,
2147
- "example": 530
2148
- }
2149
- }
2150
- },
2151
- "LotteMartProduct": {
2152
- "type": "object",
2153
- "properties": {
2154
- "area": {
2155
- "type": "string",
2156
- "example": "서울"
2157
- },
2158
- "storeCode": {
2159
- "type": "string",
2160
- "example": "2301"
2161
- },
2162
- "storeName": {
2163
- "type": "string",
2164
- "example": "강변점"
2165
- },
2166
- "keyword": {
2167
- "type": "string",
2168
- "example": "콜라"
2169
- },
2170
- "productName": {
2171
- "type": "string",
2172
- "example": "코카콜라"
2173
- },
2174
- "barcode": {
2175
- "type": "string",
2176
- "example": "8801094011307"
2177
- },
2178
- "spec": {
2179
- "type": "string",
2180
- "example": "1.2L"
2181
- },
2182
- "manufacturer": {
2183
- "type": "string",
2184
- "example": "코카콜라음료 주식회사"
2185
- },
2186
- "price": {
2187
- "type": "integer",
2188
- "example": 2980
2189
- },
2190
- "stockQuantity": {
2191
- "type": "integer",
2192
- "example": 20
2193
- }
2194
- }
2195
- },
2196
- "LotteMartStoreSearchResponse": {
2197
- "type": "object",
2198
- "properties": {
2199
- "success": {
2200
- "type": "boolean",
2201
- "example": true
2202
- },
2203
- "data": {
2204
- "type": "object",
2205
- "properties": {
2206
- "stores": {
2207
- "type": "array",
2208
- "items": {
2209
- "$ref": "#/components/schemas/LotteMartStore"
2210
- }
2211
- }
2212
- }
2213
- },
2214
- "meta": {
2215
- "type": "object",
2216
- "properties": {
2217
- "total": {
2218
- "type": "integer"
2219
- },
2220
- "page": {
2221
- "type": "integer"
2222
- },
2223
- "pageSize": {
2224
- "type": "integer"
2225
- }
2226
- }
2227
- }
2228
- }
2229
- },
2230
- "LotteMartProductSearchResponse": {
2231
- "type": "object",
2232
- "properties": {
2233
- "success": {
2234
- "type": "boolean",
2235
- "example": true
2236
- },
2237
- "data": {
2238
- "type": "object",
2239
- "properties": {
2240
- "products": {
2241
- "type": "array",
2242
- "items": {
2243
- "$ref": "#/components/schemas/LotteMartProduct"
2244
- }
2245
- }
2246
- }
2247
- },
2248
- "meta": {
2249
- "type": "object",
2250
- "properties": {
2251
- "total": {
2252
- "type": "integer"
2253
- },
2254
- "page": {
2255
- "type": "integer"
2256
- },
2257
- "pageSize": {
2258
- "type": "integer"
2259
- }
2260
- }
2261
- }
2262
- }
2263
- },
2264
2085
  "Gs25Store": {
2265
2086
  "type": "object",
2266
2087
  "properties": {
package/openapi.yaml CHANGED
@@ -77,8 +77,6 @@ paths:
77
77
  - emart24FindStores
78
78
  - emart24SearchProducts
79
79
  - emart24CheckInventory
80
- - lottemartFindStores
81
- - lottemartSearchProducts
82
80
  - gs25FindStores
83
81
  - gs25SearchProducts
84
82
  - gs25CheckInventory
@@ -222,7 +220,7 @@ paths:
222
220
  - name: area
223
221
  in: query
224
222
  required: false
225
- description: 롯데마트 지역
223
+ description: 지역
226
224
  schema:
227
225
  type: string
228
226
  - name: area1
@@ -246,7 +244,7 @@ paths:
246
244
  - name: brandVariant
247
245
  in: query
248
246
  required: false
249
- description: 롯데마트 브랜드 변형
247
+ description: 브랜드 변형
250
248
  schema:
251
249
  type: string
252
250
  - name: lat
@@ -278,7 +276,7 @@ paths:
278
276
  - name: pageLimit
279
277
  in: query
280
278
  required: false
281
- description: 롯데마트 추가 페이지 수
279
+ description: 추가 페이지 수
282
280
  schema:
283
281
  type: integer
284
282
  - name: pageSize
@@ -320,7 +318,7 @@ paths:
320
318
  - name: storeName
321
319
  in: query
322
320
  required: false
323
- description: 매장명. 롯데마트 상품 조회에서 storeCode가 없을 때 사용하며, 모르면 먼저 lottemartFindNearbyStores 또는 /api/lottemart/stores로 확인하세요.
321
+ description: 매장명
324
322
  schema:
325
323
  type: string
326
324
  - name: storeKeyword
@@ -1460,131 +1458,6 @@ components:
1460
1458
  type: number
1461
1459
  nullable: true
1462
1460
  example: 120
1463
- LotteMartStore:
1464
- type: object
1465
- properties:
1466
- area:
1467
- type: string
1468
- example: 서울
1469
- storeCode:
1470
- type: string
1471
- example: 2301
1472
- storeName:
1473
- type: string
1474
- example: 강변점
1475
- brandVariant:
1476
- type: string
1477
- example: lottemart
1478
- address:
1479
- type: string
1480
- example: 서울 광진구 광나루로 56길 85 테크노마트 B2
1481
- phone:
1482
- type: string
1483
- example: 02-3424-2502
1484
- openTime:
1485
- type: string
1486
- example: "10:00~23:00"
1487
- closedDays:
1488
- type: string
1489
- example: 03/08(일), 03/22(일)
1490
- parkingType:
1491
- type: string
1492
- example: 유료
1493
- parkingDetails:
1494
- type: string
1495
- example: "최초 무료주차 : 1시간"
1496
- detailUrl:
1497
- type: string
1498
- example: /mobiledowa/market/detail_shop.asp?werks=2301
1499
- latitude:
1500
- type: number
1501
- format: float
1502
- example: 37.5354
1503
- longitude:
1504
- type: number
1505
- format: float
1506
- example: 127.0958
1507
- distanceM:
1508
- type: number
1509
- nullable: true
1510
- example: 530
1511
- LotteMartProduct:
1512
- type: object
1513
- properties:
1514
- area:
1515
- type: string
1516
- example: 서울
1517
- storeCode:
1518
- type: string
1519
- example: 2301
1520
- storeName:
1521
- type: string
1522
- example: 강변점
1523
- keyword:
1524
- type: string
1525
- example: 콜라
1526
- productName:
1527
- type: string
1528
- example: 코카콜라
1529
- barcode:
1530
- type: string
1531
- example: 8801094011307
1532
- spec:
1533
- type: string
1534
- example: 1.2L
1535
- manufacturer:
1536
- type: string
1537
- example: 코카콜라음료 주식회사
1538
- price:
1539
- type: integer
1540
- example: 2980
1541
- stockQuantity:
1542
- type: integer
1543
- example: 20
1544
- LotteMartStoreSearchResponse:
1545
- type: object
1546
- properties:
1547
- success:
1548
- type: boolean
1549
- example: true
1550
- data:
1551
- type: object
1552
- properties:
1553
- stores:
1554
- type: array
1555
- items:
1556
- $ref: "#/components/schemas/LotteMartStore"
1557
- meta:
1558
- type: object
1559
- properties:
1560
- total:
1561
- type: integer
1562
- page:
1563
- type: integer
1564
- pageSize:
1565
- type: integer
1566
- LotteMartProductSearchResponse:
1567
- type: object
1568
- properties:
1569
- success:
1570
- type: boolean
1571
- example: true
1572
- data:
1573
- type: object
1574
- properties:
1575
- products:
1576
- type: array
1577
- items:
1578
- $ref: "#/components/schemas/LotteMartProduct"
1579
- meta:
1580
- type: object
1581
- properties:
1582
- total:
1583
- type: integer
1584
- page:
1585
- type: integer
1586
- pageSize:
1587
- type: integer
1588
1461
  Gs25Store:
1589
1462
  type: object
1590
1463
  properties:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "daiso",
3
- "version": "1.2.8",
3
+ "version": "1.2.9",
4
4
  "description": "Korean retail and cinema MCP server, CLI, and Codex Skill for Daiso, convenience stores, marts, Olive Young, and theaters",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -59,7 +59,6 @@
59
59
  "cu",
60
60
  "seveneleven",
61
61
  "emart24",
62
- "lottemart",
63
62
  "cgv",
64
63
  "megabox",
65
64
  "lottecinema",
@@ -1,85 +0,0 @@
1
- /**
2
- * OpenAPI 컴포넌트 스키마 정의 (롯데마트)
3
- */
4
- export const OPENAPI_LOTTEMART_COMPONENT_SCHEMAS = {
5
- LotteMartStore: {
6
- type: 'object',
7
- properties: {
8
- area: { type: 'string', example: '서울' },
9
- storeCode: { type: 'string', example: '2301' },
10
- storeName: { type: 'string', example: '강변점' },
11
- brandVariant: { type: 'string', example: 'lottemart' },
12
- address: { type: 'string', example: '서울 광진구 광나루로 56길 85 테크노마트 B2' },
13
- phone: { type: 'string', example: '02-3424-2502' },
14
- openTime: { type: 'string', example: '10:00~23:00' },
15
- closedDays: { type: 'string', example: '03/08(일), 03/22(일)' },
16
- parkingType: { type: 'string', example: '유료' },
17
- parkingDetails: { type: 'string', example: '최초 무료주차 : 1시간' },
18
- detailUrl: { type: 'string', example: '/mobiledowa/market/detail_shop.asp?werks=2301' },
19
- latitude: { type: 'number', format: 'float', example: 37.5354 },
20
- longitude: { type: 'number', format: 'float', example: 127.0958 },
21
- distanceM: { type: 'number', nullable: true, example: 530 },
22
- },
23
- },
24
- LotteMartProduct: {
25
- type: 'object',
26
- properties: {
27
- area: { type: 'string', example: '서울' },
28
- storeCode: { type: 'string', example: '2301' },
29
- storeName: { type: 'string', example: '강변점' },
30
- keyword: { type: 'string', example: '콜라' },
31
- productName: { type: 'string', example: '코카콜라' },
32
- barcode: { type: 'string', example: '8801094011307' },
33
- spec: { type: 'string', example: '1.2L' },
34
- manufacturer: { type: 'string', example: '코카콜라음료 주식회사' },
35
- price: { type: 'integer', example: 2980 },
36
- stockQuantity: { type: 'integer', example: 20 },
37
- },
38
- },
39
- LotteMartStoreSearchResponse: {
40
- type: 'object',
41
- properties: {
42
- success: { type: 'boolean', example: true },
43
- data: {
44
- type: 'object',
45
- properties: {
46
- stores: {
47
- type: 'array',
48
- items: { $ref: '#/components/schemas/LotteMartStore' },
49
- },
50
- },
51
- },
52
- meta: {
53
- type: 'object',
54
- properties: {
55
- total: { type: 'integer' },
56
- page: { type: 'integer' },
57
- pageSize: { type: 'integer' },
58
- },
59
- },
60
- },
61
- },
62
- LotteMartProductSearchResponse: {
63
- type: 'object',
64
- properties: {
65
- success: { type: 'boolean', example: true },
66
- data: {
67
- type: 'object',
68
- properties: {
69
- products: {
70
- type: 'array',
71
- items: { $ref: '#/components/schemas/LotteMartProduct' },
72
- },
73
- },
74
- },
75
- meta: {
76
- type: 'object',
77
- properties: {
78
- total: { type: 'integer' },
79
- page: { type: 'integer' },
80
- pageSize: { type: 'integer' },
81
- },
82
- },
83
- },
84
- },
85
- };
@@ -1,157 +0,0 @@
1
- /**
2
- * OpenAPI 경로 정의 (롯데마트)
3
- */
4
- export const OPENAPI_PATHS_LOTTEMART = {
5
- '/api/lottemart/stores': {
6
- get: {
7
- operationId: 'lottemartFindStores',
8
- summary: '롯데마트 매장 검색',
9
- description: '지역/키워드 조건으로 롯데마트 계열 매장을 조회합니다.',
10
- parameters: [
11
- {
12
- name: 'keyword',
13
- in: 'query',
14
- required: false,
15
- description: '매장명 또는 주소 키워드',
16
- schema: { type: 'string' },
17
- },
18
- {
19
- name: 'area',
20
- in: 'query',
21
- required: false,
22
- description: '지역 (예: 서울, 경기, 제주)',
23
- schema: { type: 'string' },
24
- },
25
- {
26
- name: 'brandVariant',
27
- in: 'query',
28
- required: false,
29
- description: '브랜드 변형 필터',
30
- schema: {
31
- type: 'string',
32
- enum: [
33
- 'lottemart',
34
- 'toysrus',
35
- 'max',
36
- 'bottlebunker',
37
- 'mealguru',
38
- 'grandgrocery',
39
- 'other',
40
- ],
41
- },
42
- },
43
- {
44
- name: 'lat',
45
- in: 'query',
46
- required: false,
47
- description: '위도',
48
- schema: { type: 'number', format: 'float' },
49
- },
50
- {
51
- name: 'lng',
52
- in: 'query',
53
- required: false,
54
- description: '경도',
55
- schema: { type: 'number', format: 'float' },
56
- },
57
- {
58
- name: 'limit',
59
- in: 'query',
60
- required: false,
61
- description: '최대 결과 수',
62
- schema: { type: 'integer', default: 20, minimum: 1, maximum: 100 },
63
- },
64
- ],
65
- responses: {
66
- '200': {
67
- description: '검색 성공',
68
- content: {
69
- 'application/json': {
70
- schema: { $ref: '#/components/schemas/LotteMartStoreSearchResponse' },
71
- },
72
- },
73
- },
74
- },
75
- },
76
- },
77
- '/api/lottemart/products': {
78
- get: {
79
- operationId: 'lottemartSearchProducts',
80
- summary: '롯데마트 상품 검색',
81
- description: '특정 롯데마트 매장을 기준으로 상품 가격과 재고를 조회합니다.',
82
- parameters: [
83
- {
84
- name: 'keyword',
85
- in: 'query',
86
- required: true,
87
- description: '상품 검색어',
88
- schema: { type: 'string' },
89
- example: '콜라',
90
- },
91
- {
92
- name: 'storeCode',
93
- in: 'query',
94
- required: false,
95
- description: '매장 코드',
96
- schema: { type: 'string' },
97
- example: '2301',
98
- },
99
- {
100
- name: 'storeName',
101
- in: 'query',
102
- required: false,
103
- description: '매장명',
104
- schema: { type: 'string' },
105
- example: '강변점',
106
- },
107
- {
108
- name: 'area',
109
- in: 'query',
110
- required: false,
111
- description: '지역 (storeName 해석 보조용)',
112
- schema: { type: 'string' },
113
- example: '서울',
114
- },
115
- {
116
- name: 'pageLimit',
117
- in: 'query',
118
- required: false,
119
- description: '추가 조회할 최대 페이지 수',
120
- schema: { type: 'integer', default: 3, minimum: 1, maximum: 20 },
121
- },
122
- {
123
- name: 'source',
124
- in: 'query',
125
- required: false,
126
- description: '상품 검색 경로',
127
- schema: { type: 'string', enum: ['auto', 'legacy', 'zetta'], default: 'auto' },
128
- },
129
- {
130
- name: 'timeoutMs',
131
- in: 'query',
132
- required: false,
133
- description: '요청 제한 시간(ms)',
134
- schema: { type: 'integer', default: 15000, minimum: 1 },
135
- },
136
- ],
137
- responses: {
138
- '200': {
139
- description: '검색 성공',
140
- content: {
141
- 'application/json': {
142
- schema: { $ref: '#/components/schemas/LotteMartProductSearchResponse' },
143
- },
144
- },
145
- },
146
- '400': {
147
- description: '잘못된 요청',
148
- content: {
149
- 'application/json': {
150
- schema: { $ref: '#/components/schemas/ErrorResponse' },
151
- },
152
- },
153
- },
154
- },
155
- },
156
- },
157
- };