@adstage/web-sdk 1.3.4 → 1.4.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.
Files changed (61) hide show
  1. package/README.md +178 -35
  2. package/dist/index.cjs.js +753 -509
  3. package/dist/index.d.ts +286 -97
  4. package/dist/index.esm.js +737 -485
  5. package/dist/index.standalone.js +737 -485
  6. package/package.json +1 -1
  7. package/src/constants/endpoints.ts +93 -0
  8. package/src/core/AdStage.ts +128 -0
  9. package/src/index.ts +14 -432
  10. package/src/managers/{slider-manager.ts → carousel-slider-manager.ts} +9 -8
  11. package/src/managers/event-tracker.ts +2 -4
  12. package/src/managers/{fade-slider-manager.ts → text-transition-manager.ts} +7 -7
  13. package/src/modules/ads/AdsModule.ts +525 -0
  14. package/src/modules/config/ConfigModule.ts +124 -0
  15. package/src/modules/deeplinks/DeeplinksModule.ts +0 -0
  16. package/src/modules/events/EventsModule.ts +106 -0
  17. package/src/types/config.ts +74 -3
  18. package/src/types/index.ts +2 -1
  19. package/src/utils/api-headers.ts +52 -0
  20. package/src/utils/dom-utils.ts +1 -1
  21. package/examples/README.md +0 -33
  22. package/examples/banner-ads.html +0 -512
  23. package/examples/index.html +0 -338
  24. package/examples/native-ads.html +0 -634
  25. package/examples/react-app/README.md +0 -70
  26. package/examples/react-app/index.html +0 -13
  27. package/examples/react-app/package-lock.json +0 -3042
  28. package/examples/react-app/package.json +0 -26
  29. package/examples/react-app/pnpm-lock.yaml +0 -1857
  30. package/examples/react-app/public/index.standalone.js +0 -2331
  31. package/examples/react-app/src/App.tsx +0 -226
  32. package/examples/react-app/src/index.css +0 -37
  33. package/examples/react-app/src/main.tsx +0 -10
  34. package/examples/react-app/tsconfig.json +0 -25
  35. package/examples/react-app/tsconfig.node.json +0 -10
  36. package/examples/react-app/vite.config.ts +0 -15
  37. package/examples/react-nextjs/app/globals.css +0 -200
  38. package/examples/react-nextjs/app/layout.tsx +0 -27
  39. package/examples/react-nextjs/app/page.tsx +0 -258
  40. package/examples/react-nextjs/next.config.js +0 -9
  41. package/examples/react-nextjs/package.json +0 -22
  42. package/examples/react-nextjs/pnpm-lock.yaml +0 -343
  43. package/examples/react-nextjs/tsconfig.json +0 -34
  44. package/examples/text-ads.html +0 -597
  45. package/examples/video-ads.html +0 -739
  46. package/src/react/components/AdErrorBoundary.tsx +0 -75
  47. package/src/react/components/AdSlot.tsx +0 -144
  48. package/src/react/components/BannerAd.tsx +0 -24
  49. package/src/react/components/InterstitialAd.tsx +0 -24
  50. package/src/react/components/NativeAd.tsx +0 -24
  51. package/src/react/components/TextAd.tsx +0 -24
  52. package/src/react/components/VideoAd.tsx +0 -24
  53. package/src/react/components/index.ts +0 -8
  54. package/src/react/hooks/index.ts +0 -4
  55. package/src/react/hooks/useAdSlot.ts +0 -83
  56. package/src/react/hooks/useAdStage.ts +0 -14
  57. package/src/react/hooks/useAdTracking.ts +0 -61
  58. package/src/react/index.ts +0 -4
  59. package/src/react/providers/AdStageProvider.tsx +0 -86
  60. package/src/react/providers/index.ts +0 -2
  61. package/src/utils/sdk-standalone.ts +0 -155
@@ -1,258 +0,0 @@
1
- 'use client';
2
-
3
- import { useState, useEffect } from 'react';
4
- // @ts-ignore - SDK 로컬 경로 사용
5
- import { AdType, useAdStage } from '../../../dist/index.esm.js';
6
-
7
- export default function HomePage() {
8
- const { sdk, isLoading, error, isInitialized } = useAdStage();
9
- const [message] = useState('Next.js와 AdStage SDK 테스트 페이지입니다!');
10
- const [metrics, setMetrics] = useState({
11
- bannerLoaded: false,
12
- sliderLoaded: false,
13
- eventsTracked: 0
14
- });
15
-
16
- // SDK 초기화 후 자동으로 광고 로드
17
- useEffect(() => {
18
- if (isInitialized && sdk) {
19
- console.log('SDK 초기화 완료, 광고 로드를 시작합니다');
20
- loadAdvertisements();
21
- }
22
- }, [isInitialized, sdk]);
23
-
24
- const loadAdvertisements = async () => {
25
- if (!sdk) return;
26
-
27
- try {
28
- // 배너 광고 로드
29
- await sdk.createSlot(
30
- 'banner-slot-main',
31
- 'banner-container',
32
- AdType.BANNER,
33
- {
34
- width: '100%',
35
- height: 200,
36
- autoSlideInterval: 5,
37
- sliderEffect: 'fade'
38
- }
39
- );
40
- setMetrics(prev => ({ ...prev, bannerLoaded: true }));
41
- console.log('배너 광고 로드 완료');
42
-
43
- // 슬라이더 광고 로드
44
- await sdk.createSlot(
45
- 'slider-slot-main',
46
- 'slider-container',
47
- AdType.SLIDER,
48
- {
49
- width: 400,
50
- height: 200,
51
- autoSlideInterval: 3,
52
- sliderEffect: 'slide'
53
- }
54
- );
55
- setMetrics(prev => ({ ...prev, sliderLoaded: true }));
56
- console.log('슬라이더 광고 로드 완료');
57
-
58
- } catch (error) {
59
- console.error('광고 로드 실패:', error);
60
- }
61
- };
62
-
63
- const trackTestEvent = () => {
64
- if (!sdk) return;
65
-
66
- try {
67
- // trackEvent 메서드가 있다면 사용
68
- if (typeof (sdk as any).trackEvent === 'function') {
69
- (sdk as any).trackEvent('test_button_click', {
70
- button_name: 'test_event',
71
- timestamp: new Date().toISOString(),
72
- page: 'nextjs_example'
73
- });
74
- setMetrics(prev => ({ ...prev, eventsTracked: prev.eventsTracked + 1 }));
75
- console.log('테스트 이벤트 추적 완료');
76
- } else {
77
- console.warn('trackEvent 메서드를 찾을 수 없습니다');
78
- }
79
- } catch (error) {
80
- console.error('이벤트 추적 실패:', error);
81
- }
82
- };
83
-
84
- if (error) {
85
- return (
86
- <div className="min-h-screen flex items-center justify-center bg-red-50">
87
- <div className="text-center">
88
- <h1 className="text-2xl font-bold text-red-600 mb-4">SDK 초기화 오류</h1>
89
- <p className="text-red-500">{error}</p>
90
- <button
91
- onClick={() => window.location.reload()}
92
- className="mt-4 px-4 py-2 bg-red-600 text-white rounded hover:bg-red-700"
93
- >
94
- 페이지 새로고침
95
- </button>
96
- </div>
97
- </div>
98
- );
99
- }
100
-
101
- return (
102
- <div className="min-h-screen bg-gray-50 py-8">
103
- <div className="max-w-4xl mx-auto px-4">
104
- {/* 헤더 */}
105
- <div className="text-center mb-8">
106
- <h1 className="text-4xl font-bold text-gray-900 mb-4">
107
- AdStage SDK Next.js 예제
108
- </h1>
109
- <p className="text-lg text-gray-600">
110
- {message}
111
- </p>
112
- </div>
113
-
114
- {/* 상태 패널 */}
115
- <div className="bg-white rounded-lg shadow p-6 mb-8">
116
- <h2 className="text-xl font-semibold mb-4">SDK 상태</h2>
117
- <div className="space-y-3">
118
- <div className="flex items-center">
119
- <div className={`w-3 h-3 rounded-full mr-3 ${
120
- isInitialized ? 'bg-green-500' : isLoading ? 'bg-yellow-500' : 'bg-red-500'
121
- }`}></div>
122
- <span className="font-medium">
123
- {isLoading ? 'SDK 초기화 중...' : isInitialized ? 'SDK 초기화 완료' : 'SDK 초기화되지 않음'}
124
- </span>
125
- </div>
126
- <div className="flex items-center">
127
- <div className={`w-3 h-3 rounded-full mr-3 ${
128
- metrics.bannerLoaded ? 'bg-green-500' : 'bg-gray-300'
129
- }`}></div>
130
- <span className="font-medium">
131
- 배너 광고: {metrics.bannerLoaded ? '로드됨' : '대기 중'}
132
- </span>
133
- </div>
134
- <div className="flex items-center">
135
- <div className={`w-3 h-3 rounded-full mr-3 ${
136
- metrics.sliderLoaded ? 'bg-green-500' : 'bg-gray-300'
137
- }`}></div>
138
- <span className="font-medium">
139
- 슬라이더 광고: {metrics.sliderLoaded ? '로드됨' : '대기 중'}
140
- </span>
141
- </div>
142
- <div className="flex items-center">
143
- <div className="w-3 h-3 rounded-full mr-3 bg-blue-500"></div>
144
- <span className="font-medium">
145
- 추적된 이벤트: {metrics.eventsTracked}개
146
- </span>
147
- </div>
148
- </div>
149
- </div>
150
-
151
- {/* 설정 정보 */}
152
- <div className="bg-white rounded-lg shadow p-6 mb-8">
153
- <h2 className="text-xl font-semibold mb-4">설정 정보</h2>
154
- <div className="grid grid-cols-1 md:grid-cols-2 gap-4 text-sm">
155
- <div>
156
- <span className="text-gray-600">API Key:</span>
157
- <div className="font-mono text-xs mt-1 p-2 bg-gray-100 rounded">
158
- 7dfddcfda637fbb73225bac3731688b80b90675942fe9f2057a88e2379aba2a4
159
- </div>
160
- </div>
161
- <div>
162
- <span className="text-gray-600">Framework:</span>
163
- <div className="font-medium mt-1">Next.js 14 (App Router)</div>
164
- </div>
165
- <div>
166
- <span className="text-gray-600">SDK Version:</span>
167
- <div className="font-medium mt-1">@adstage/web-sdk (로컬 빌드)</div>
168
- </div>
169
- <div>
170
- <span className="text-gray-600">패턴:</span>
171
- <div className="font-medium mt-1">Context Provider</div>
172
- </div>
173
- </div>
174
- </div>
175
-
176
- {/* 컨트롤 패널 */}
177
- <div className="bg-white rounded-lg shadow p-6 mb-8">
178
- <h2 className="text-xl font-semibold mb-4">테스트 컨트롤</h2>
179
- <div className="flex flex-wrap gap-4">
180
- <button
181
- onClick={loadAdvertisements}
182
- disabled={!isInitialized || isLoading}
183
- className="bg-blue-500 hover:bg-blue-600 disabled:bg-gray-300 text-white font-medium py-2 px-4 rounded-lg transition-colors"
184
- >
185
- 광고 다시 로드
186
- </button>
187
- <button
188
- onClick={trackTestEvent}
189
- disabled={!isInitialized || isLoading}
190
- className="bg-green-500 hover:bg-green-600 disabled:bg-gray-300 text-white font-medium py-2 px-4 rounded-lg transition-colors"
191
- >
192
- 테스트 이벤트 추적
193
- </button>
194
- </div>
195
- </div>
196
-
197
- {/* 테스트 영역 */}
198
- <div className="bg-white rounded-lg shadow p-6 mb-8">
199
- <h2 className="text-xl font-semibold mb-4">테스트 영역</h2>
200
- <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">
201
- {/* 배너 컨테이너 */}
202
- <div>
203
- <h3 className="text-lg font-medium mb-3">
204
- 배너 광고 영역
205
- {metrics.bannerLoaded && <span className="text-green-600 text-sm ml-2">✓ 로드됨</span>}
206
- </h3>
207
- <div
208
- id="banner-container"
209
- className="border-2 border-dashed border-gray-300 rounded-lg p-8 text-center bg-gray-50 min-h-[200px] flex items-center justify-center"
210
- >
211
- {isLoading ? (
212
- <span className="text-blue-500">SDK 초기화 중...</span>
213
- ) : metrics.bannerLoaded ? (
214
- <span className="text-green-600">배너 광고 로드 완료</span>
215
- ) : (
216
- <span className="text-gray-500">배너 광고 대기 중</span>
217
- )}
218
- </div>
219
- </div>
220
-
221
- {/* 슬라이더 컨테이너 */}
222
- <div>
223
- <h3 className="text-lg font-medium mb-3">
224
- 슬라이더 광고 영역
225
- {metrics.sliderLoaded && <span className="text-green-600 text-sm ml-2">✓ 로드됨</span>}
226
- </h3>
227
- <div
228
- id="slider-container"
229
- className="border-2 border-dashed border-gray-300 rounded-lg p-8 text-center bg-gray-50 min-h-[200px] flex items-center justify-center"
230
- >
231
- {isLoading ? (
232
- <span className="text-blue-500">SDK 초기화 중...</span>
233
- ) : metrics.sliderLoaded ? (
234
- <span className="text-green-600">슬라이더 광고 로드 완료</span>
235
- ) : (
236
- <span className="text-gray-500">슬라이더 광고 대기 중</span>
237
- )}
238
- </div>
239
- </div>
240
- </div>
241
- </div>
242
-
243
- {/* 가이드 */}
244
- <div className="bg-blue-50 rounded-lg p-6">
245
- <h3 className="text-lg font-semibold text-blue-900 mb-4">실시간 로그</h3>
246
- <div className="bg-gray-900 text-green-400 rounded p-4 font-mono text-sm">
247
- <div>→ API Key: 7dfddcfda637fbb73225bac3731688b80b90675942fe9f2057a88e2379aba2a4</div>
248
- <div>→ SDK 상태: {isLoading ? '초기화 중...' : isInitialized ? '초기화 완료' : '대기 중'}</div>
249
- <div>→ 배너 광고: {metrics.bannerLoaded ? '로드됨' : '대기 중'}</div>
250
- <div>→ 슬라이더 광고: {metrics.sliderLoaded ? '로드됨' : '대기 중'}</div>
251
- <div>→ 추적된 이벤트: {metrics.eventsTracked}개</div>
252
- <div className="text-yellow-400">→ 브라우저 콘솔에서 더 자세한 로그를 확인하세요</div>
253
- </div>
254
- </div>
255
- </div>
256
- </div>
257
- );
258
- }
@@ -1,9 +0,0 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {
3
- experimental: {
4
- appDir: true,
5
- },
6
- transpilePackages: ['@adstage/web-sdk'],
7
- }
8
-
9
- module.exports = nextConfig
@@ -1,22 +0,0 @@
1
- {
2
- "name": "adstage-nextjs-example",
3
- "version": "1.0.0",
4
- "description": "AdStage SDK Next.js 통합 예제",
5
- "scripts": {
6
- "dev": "next dev",
7
- "build": "next build",
8
- "start": "next start",
9
- "lint": "next lint"
10
- },
11
- "dependencies": {
12
- "next": "^14.0.0",
13
- "react": "^18.0.0",
14
- "react-dom": "^18.0.0"
15
- },
16
- "devDependencies": {
17
- "@types/node": "^20.0.0",
18
- "@types/react": "^18.0.0",
19
- "@types/react-dom": "^18.0.0",
20
- "typescript": "^5.0.0"
21
- }
22
- }
@@ -1,343 +0,0 @@
1
- lockfileVersion: '9.0'
2
-
3
- settings:
4
- autoInstallPeers: true
5
- excludeLinksFromLockfile: false
6
-
7
- importers:
8
-
9
- .:
10
- dependencies:
11
- next:
12
- specifier: ^14.0.0
13
- version: 14.2.31(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
14
- react:
15
- specifier: ^18.0.0
16
- version: 18.3.1
17
- react-dom:
18
- specifier: ^18.0.0
19
- version: 18.3.1(react@18.3.1)
20
- devDependencies:
21
- '@types/node':
22
- specifier: ^20.0.0
23
- version: 20.19.11
24
- '@types/react':
25
- specifier: ^18.0.0
26
- version: 18.3.23
27
- '@types/react-dom':
28
- specifier: ^18.0.0
29
- version: 18.3.7(@types/react@18.3.23)
30
- typescript:
31
- specifier: ^5.0.0
32
- version: 5.9.2
33
-
34
- packages:
35
-
36
- '@next/env@14.2.31':
37
- resolution: {integrity: sha512-X8VxxYL6VuezrG82h0pUA1V+DuTSJp7Nv15bxq3ivrFqZLjx81rfeHMWOE9T0jm1n3DtHGv8gdn6B0T0kr0D3Q==}
38
-
39
- '@next/swc-darwin-arm64@14.2.31':
40
- resolution: {integrity: sha512-dTHKfaFO/xMJ3kzhXYgf64VtV6MMwDs2viedDOdP+ezd0zWMOQZkxcwOfdcQeQCpouTr9b+xOqMCUXxgLizl8Q==}
41
- engines: {node: '>= 10'}
42
- cpu: [arm64]
43
- os: [darwin]
44
-
45
- '@next/swc-darwin-x64@14.2.31':
46
- resolution: {integrity: sha512-iSavebQgeMukUAfjfW8Fi2Iz01t95yxRl2w2wCzjD91h5In9la99QIDKcKSYPfqLjCgwz3JpIWxLG6LM/sxL4g==}
47
- engines: {node: '>= 10'}
48
- cpu: [x64]
49
- os: [darwin]
50
-
51
- '@next/swc-linux-arm64-gnu@14.2.31':
52
- resolution: {integrity: sha512-XJb3/LURg1u1SdQoopG6jDL2otxGKChH2UYnUTcby4izjM0il7ylBY5TIA7myhvHj9lG5pn9F2nR2s3i8X9awQ==}
53
- engines: {node: '>= 10'}
54
- cpu: [arm64]
55
- os: [linux]
56
-
57
- '@next/swc-linux-arm64-musl@14.2.31':
58
- resolution: {integrity: sha512-IInDAcchNCu3BzocdqdCv1bKCmUVO/bKJHnBFTeq3svfaWpOPewaLJ2Lu3GL4yV76c/86ZvpBbG/JJ1lVIs5MA==}
59
- engines: {node: '>= 10'}
60
- cpu: [arm64]
61
- os: [linux]
62
-
63
- '@next/swc-linux-x64-gnu@14.2.31':
64
- resolution: {integrity: sha512-YTChJL5/9e4NXPKW+OJzsQa42RiWUNbE+k+ReHvA+lwXk+bvzTsVQboNcezWOuCD+p/J+ntxKOB/81o0MenBhw==}
65
- engines: {node: '>= 10'}
66
- cpu: [x64]
67
- os: [linux]
68
-
69
- '@next/swc-linux-x64-musl@14.2.31':
70
- resolution: {integrity: sha512-A0JmD1y4q/9ufOGEAhoa60Sof++X10PEoiWOH0gZ2isufWZeV03NnyRlRmJpRQWGIbRkJUmBo9I3Qz5C10vx4w==}
71
- engines: {node: '>= 10'}
72
- cpu: [x64]
73
- os: [linux]
74
-
75
- '@next/swc-win32-arm64-msvc@14.2.31':
76
- resolution: {integrity: sha512-nowJ5GbMeDOMzbTm29YqrdrD6lTM8qn2wnZfGpYMY7SZODYYpaJHH1FJXE1l1zWICHR+WfIMytlTDBHu10jb8A==}
77
- engines: {node: '>= 10'}
78
- cpu: [arm64]
79
- os: [win32]
80
-
81
- '@next/swc-win32-ia32-msvc@14.2.31':
82
- resolution: {integrity: sha512-pk9Bu4K0015anTS1OS9d/SpS0UtRObC+xe93fwnm7Gvqbv/W1ZbzhK4nvc96RURIQOux3P/bBH316xz8wjGSsA==}
83
- engines: {node: '>= 10'}
84
- cpu: [ia32]
85
- os: [win32]
86
-
87
- '@next/swc-win32-x64-msvc@14.2.31':
88
- resolution: {integrity: sha512-LwFZd4JFnMHGceItR9+jtlMm8lGLU/IPkgjBBgYmdYSfalbHCiDpjMYtgDQ2wtwiAOSJOCyFI4m8PikrsDyA6Q==}
89
- engines: {node: '>= 10'}
90
- cpu: [x64]
91
- os: [win32]
92
-
93
- '@swc/counter@0.1.3':
94
- resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
95
-
96
- '@swc/helpers@0.5.5':
97
- resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
98
-
99
- '@types/node@20.19.11':
100
- resolution: {integrity: sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==}
101
-
102
- '@types/prop-types@15.7.15':
103
- resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
104
-
105
- '@types/react-dom@18.3.7':
106
- resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==}
107
- peerDependencies:
108
- '@types/react': ^18.0.0
109
-
110
- '@types/react@18.3.23':
111
- resolution: {integrity: sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==}
112
-
113
- busboy@1.6.0:
114
- resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
115
- engines: {node: '>=10.16.0'}
116
-
117
- caniuse-lite@1.0.30001735:
118
- resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==}
119
-
120
- client-only@0.0.1:
121
- resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
122
-
123
- csstype@3.1.3:
124
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
125
-
126
- graceful-fs@4.2.11:
127
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
128
-
129
- js-tokens@4.0.0:
130
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
131
-
132
- loose-envify@1.4.0:
133
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
134
- hasBin: true
135
-
136
- nanoid@3.3.11:
137
- resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
138
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
139
- hasBin: true
140
-
141
- next@14.2.31:
142
- resolution: {integrity: sha512-Wyw1m4t8PhqG+or5a1U/Deb888YApC4rAez9bGhHkTsfwAy4SWKVro0GhEx4sox1856IbLhvhce2hAA6o8vkog==}
143
- engines: {node: '>=18.17.0'}
144
- hasBin: true
145
- peerDependencies:
146
- '@opentelemetry/api': ^1.1.0
147
- '@playwright/test': ^1.41.2
148
- react: ^18.2.0
149
- react-dom: ^18.2.0
150
- sass: ^1.3.0
151
- peerDependenciesMeta:
152
- '@opentelemetry/api':
153
- optional: true
154
- '@playwright/test':
155
- optional: true
156
- sass:
157
- optional: true
158
-
159
- picocolors@1.1.1:
160
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
161
-
162
- postcss@8.4.31:
163
- resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
164
- engines: {node: ^10 || ^12 || >=14}
165
-
166
- react-dom@18.3.1:
167
- resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
168
- peerDependencies:
169
- react: ^18.3.1
170
-
171
- react@18.3.1:
172
- resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
173
- engines: {node: '>=0.10.0'}
174
-
175
- scheduler@0.23.2:
176
- resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
177
-
178
- source-map-js@1.2.1:
179
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
180
- engines: {node: '>=0.10.0'}
181
-
182
- streamsearch@1.1.0:
183
- resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
184
- engines: {node: '>=10.0.0'}
185
-
186
- styled-jsx@5.1.1:
187
- resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
188
- engines: {node: '>= 12.0.0'}
189
- peerDependencies:
190
- '@babel/core': '*'
191
- babel-plugin-macros: '*'
192
- react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
193
- peerDependenciesMeta:
194
- '@babel/core':
195
- optional: true
196
- babel-plugin-macros:
197
- optional: true
198
-
199
- tslib@2.8.1:
200
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
201
-
202
- typescript@5.9.2:
203
- resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
204
- engines: {node: '>=14.17'}
205
- hasBin: true
206
-
207
- undici-types@6.21.0:
208
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
209
-
210
- snapshots:
211
-
212
- '@next/env@14.2.31': {}
213
-
214
- '@next/swc-darwin-arm64@14.2.31':
215
- optional: true
216
-
217
- '@next/swc-darwin-x64@14.2.31':
218
- optional: true
219
-
220
- '@next/swc-linux-arm64-gnu@14.2.31':
221
- optional: true
222
-
223
- '@next/swc-linux-arm64-musl@14.2.31':
224
- optional: true
225
-
226
- '@next/swc-linux-x64-gnu@14.2.31':
227
- optional: true
228
-
229
- '@next/swc-linux-x64-musl@14.2.31':
230
- optional: true
231
-
232
- '@next/swc-win32-arm64-msvc@14.2.31':
233
- optional: true
234
-
235
- '@next/swc-win32-ia32-msvc@14.2.31':
236
- optional: true
237
-
238
- '@next/swc-win32-x64-msvc@14.2.31':
239
- optional: true
240
-
241
- '@swc/counter@0.1.3': {}
242
-
243
- '@swc/helpers@0.5.5':
244
- dependencies:
245
- '@swc/counter': 0.1.3
246
- tslib: 2.8.1
247
-
248
- '@types/node@20.19.11':
249
- dependencies:
250
- undici-types: 6.21.0
251
-
252
- '@types/prop-types@15.7.15': {}
253
-
254
- '@types/react-dom@18.3.7(@types/react@18.3.23)':
255
- dependencies:
256
- '@types/react': 18.3.23
257
-
258
- '@types/react@18.3.23':
259
- dependencies:
260
- '@types/prop-types': 15.7.15
261
- csstype: 3.1.3
262
-
263
- busboy@1.6.0:
264
- dependencies:
265
- streamsearch: 1.1.0
266
-
267
- caniuse-lite@1.0.30001735: {}
268
-
269
- client-only@0.0.1: {}
270
-
271
- csstype@3.1.3: {}
272
-
273
- graceful-fs@4.2.11: {}
274
-
275
- js-tokens@4.0.0: {}
276
-
277
- loose-envify@1.4.0:
278
- dependencies:
279
- js-tokens: 4.0.0
280
-
281
- nanoid@3.3.11: {}
282
-
283
- next@14.2.31(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
284
- dependencies:
285
- '@next/env': 14.2.31
286
- '@swc/helpers': 0.5.5
287
- busboy: 1.6.0
288
- caniuse-lite: 1.0.30001735
289
- graceful-fs: 4.2.11
290
- postcss: 8.4.31
291
- react: 18.3.1
292
- react-dom: 18.3.1(react@18.3.1)
293
- styled-jsx: 5.1.1(react@18.3.1)
294
- optionalDependencies:
295
- '@next/swc-darwin-arm64': 14.2.31
296
- '@next/swc-darwin-x64': 14.2.31
297
- '@next/swc-linux-arm64-gnu': 14.2.31
298
- '@next/swc-linux-arm64-musl': 14.2.31
299
- '@next/swc-linux-x64-gnu': 14.2.31
300
- '@next/swc-linux-x64-musl': 14.2.31
301
- '@next/swc-win32-arm64-msvc': 14.2.31
302
- '@next/swc-win32-ia32-msvc': 14.2.31
303
- '@next/swc-win32-x64-msvc': 14.2.31
304
- transitivePeerDependencies:
305
- - '@babel/core'
306
- - babel-plugin-macros
307
-
308
- picocolors@1.1.1: {}
309
-
310
- postcss@8.4.31:
311
- dependencies:
312
- nanoid: 3.3.11
313
- picocolors: 1.1.1
314
- source-map-js: 1.2.1
315
-
316
- react-dom@18.3.1(react@18.3.1):
317
- dependencies:
318
- loose-envify: 1.4.0
319
- react: 18.3.1
320
- scheduler: 0.23.2
321
-
322
- react@18.3.1:
323
- dependencies:
324
- loose-envify: 1.4.0
325
-
326
- scheduler@0.23.2:
327
- dependencies:
328
- loose-envify: 1.4.0
329
-
330
- source-map-js@1.2.1: {}
331
-
332
- streamsearch@1.1.0: {}
333
-
334
- styled-jsx@5.1.1(react@18.3.1):
335
- dependencies:
336
- client-only: 0.0.1
337
- react: 18.3.1
338
-
339
- tslib@2.8.1: {}
340
-
341
- typescript@5.9.2: {}
342
-
343
- undici-types@6.21.0: {}
@@ -1,34 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "lib": [
4
- "dom",
5
- "dom.iterable",
6
- "esnext"
7
- ],
8
- "allowJs": true,
9
- "skipLibCheck": true,
10
- "strict": false,
11
- "noEmit": true,
12
- "incremental": true,
13
- "module": "esnext",
14
- "esModuleInterop": true,
15
- "moduleResolution": "node",
16
- "resolveJsonModule": true,
17
- "isolatedModules": true,
18
- "jsx": "preserve",
19
- "plugins": [
20
- {
21
- "name": "next"
22
- }
23
- ]
24
- },
25
- "include": [
26
- "next-env.d.ts",
27
- ".next/types/**/*.ts",
28
- "**/*.ts",
29
- "**/*.tsx"
30
- ],
31
- "exclude": [
32
- "node_modules"
33
- ]
34
- }