create-specment 0.2.2
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/LICENSE +21 -0
- package/README.md +314 -0
- package/bin/commands/create.d.ts +3 -0
- package/bin/commands/create.d.ts.map +1 -0
- package/bin/commands/create.js +30 -0
- package/bin/commands/create.js.map +1 -0
- package/bin/constants/languages.d.ts +15 -0
- package/bin/constants/languages.d.ts.map +1 -0
- package/bin/constants/languages.js +14 -0
- package/bin/constants/languages.js.map +1 -0
- package/bin/core/interactive-setup.d.ts +15 -0
- package/bin/core/interactive-setup.d.ts.map +1 -0
- package/bin/core/interactive-setup.js +171 -0
- package/bin/core/interactive-setup.js.map +1 -0
- package/bin/core/interactive-setup.test.d.ts +2 -0
- package/bin/core/interactive-setup.test.d.ts.map +1 -0
- package/bin/core/interactive-setup.test.js +97 -0
- package/bin/core/interactive-setup.test.js.map +1 -0
- package/bin/core/project-generator.d.ts +12 -0
- package/bin/core/project-generator.d.ts.map +1 -0
- package/bin/core/project-generator.js +83 -0
- package/bin/core/project-generator.js.map +1 -0
- package/bin/features/index.d.ts +3 -0
- package/bin/features/index.d.ts.map +1 -0
- package/bin/features/index.js +47 -0
- package/bin/features/index.js.map +1 -0
- package/bin/generators/docusaurus-config.d.ts +3 -0
- package/bin/generators/docusaurus-config.d.ts.map +1 -0
- package/bin/generators/docusaurus-config.js +285 -0
- package/bin/generators/docusaurus-config.js.map +1 -0
- package/bin/generators/package-json.d.ts +3 -0
- package/bin/generators/package-json.d.ts.map +1 -0
- package/bin/generators/package-json.js +98 -0
- package/bin/generators/package-json.js.map +1 -0
- package/bin/generators/template-files.d.ts +3 -0
- package/bin/generators/template-files.d.ts.map +1 -0
- package/bin/generators/template-files.js +370 -0
- package/bin/generators/template-files.js.map +1 -0
- package/bin/index.d.ts +5 -0
- package/bin/index.d.ts.map +1 -0
- package/bin/index.js +37 -0
- package/bin/index.js.map +1 -0
- package/bin/plugins/i18n-integration.d.ts +25 -0
- package/bin/plugins/i18n-integration.d.ts.map +1 -0
- package/bin/plugins/i18n-integration.js +309 -0
- package/bin/plugins/i18n-integration.js.map +1 -0
- package/bin/plugins/plantuml-integration.d.ts +17 -0
- package/bin/plugins/plantuml-integration.d.ts.map +1 -0
- package/bin/plugins/plantuml-integration.js +111 -0
- package/bin/plugins/plantuml-integration.js.map +1 -0
- package/bin/plugins/redoc-integration.d.ts +25 -0
- package/bin/plugins/redoc-integration.d.ts.map +1 -0
- package/bin/plugins/redoc-integration.js +372 -0
- package/bin/plugins/redoc-integration.js.map +1 -0
- package/bin/plugins/search-integration.d.ts +20 -0
- package/bin/plugins/search-integration.d.ts.map +1 -0
- package/bin/plugins/search-integration.js +165 -0
- package/bin/plugins/search-integration.js.map +1 -0
- package/bin/templates/index.d.ts +4 -0
- package/bin/templates/index.d.ts.map +1 -0
- package/bin/templates/index.js +60 -0
- package/bin/templates/index.js.map +1 -0
- package/bin/templates/template-definitions.d.ts +10 -0
- package/bin/templates/template-definitions.d.ts.map +1 -0
- package/bin/templates/template-definitions.js +296 -0
- package/bin/templates/template-definitions.js.map +1 -0
- package/bin/tests/integration.test.d.ts +2 -0
- package/bin/tests/integration.test.d.ts.map +1 -0
- package/bin/tests/integration.test.js +171 -0
- package/bin/tests/integration.test.js.map +1 -0
- package/bin/types/index.d.ts +44 -0
- package/bin/types/index.d.ts.map +1 -0
- package/bin/types/index.js +2 -0
- package/bin/types/index.js.map +1 -0
- package/bin/utils/config-merger.d.ts +32 -0
- package/bin/utils/config-merger.d.ts.map +1 -0
- package/bin/utils/config-merger.js +216 -0
- package/bin/utils/config-merger.js.map +1 -0
- package/bin/utils/errors.d.ts +9 -0
- package/bin/utils/errors.d.ts.map +1 -0
- package/bin/utils/errors.js +22 -0
- package/bin/utils/errors.js.map +1 -0
- package/bin/utils/install.d.ts +5 -0
- package/bin/utils/install.d.ts.map +1 -0
- package/bin/utils/install.js +38 -0
- package/bin/utils/install.js.map +1 -0
- package/bin/utils/message-formatter.d.ts +15 -0
- package/bin/utils/message-formatter.d.ts.map +1 -0
- package/bin/utils/message-formatter.js +85 -0
- package/bin/utils/message-formatter.js.map +1 -0
- package/bin/utils/template-processor.d.ts +54 -0
- package/bin/utils/template-processor.d.ts.map +1 -0
- package/bin/utils/template-processor.js +139 -0
- package/bin/utils/template-processor.js.map +1 -0
- package/bin/utils/template-processor.test.d.ts +2 -0
- package/bin/utils/template-processor.test.d.ts.map +1 -0
- package/bin/utils/template-processor.test.js +120 -0
- package/bin/utils/template-processor.test.js.map +1 -0
- package/bin/utils/version.d.ts +2 -0
- package/bin/utils/version.d.ts.map +1 -0
- package/bin/utils/version.js +10 -0
- package/bin/utils/version.js.map +1 -0
- package/package.json +67 -0
- package/templates/classic-spec/docusaurus.config.js.template +106 -0
- package/templates/classic-spec/package.json.template +36 -0
- package/templates/external-design/docusaurus.config.js.template +123 -0
- package/templates/external-design/package.json.template +36 -0
- package/templates/internal-design/docusaurus.config.js.template +123 -0
- package/templates/internal-design/package.json.template +36 -0
- package/templates/project-analysis/docusaurus.config.js.template +113 -0
- package/templates/project-analysis/package.json.template +36 -0
- package/templates/requirements/docusaurus.config.js.template +119 -0
- package/templates/requirements/package.json.template +36 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
export class RedocIntegration {
|
|
2
|
+
static getDefaultConfig() {
|
|
3
|
+
return {
|
|
4
|
+
specs: [
|
|
5
|
+
{
|
|
6
|
+
spec: 'static/openapi.yaml',
|
|
7
|
+
route: '/api/',
|
|
8
|
+
id: 'main-api'
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
theme: {
|
|
12
|
+
primaryColor: '#1976d2',
|
|
13
|
+
primaryColorDark: '#1565c0'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
static generateDocusaurusConfig(feature) {
|
|
18
|
+
const config = feature.config?.redocusaurus || RedocIntegration.getDefaultConfig();
|
|
19
|
+
return {
|
|
20
|
+
plugins: [
|
|
21
|
+
[
|
|
22
|
+
'redocusaurus',
|
|
23
|
+
{
|
|
24
|
+
specs: config.specs || RedocIntegration.getDefaultConfig().specs,
|
|
25
|
+
theme: config.theme || RedocIntegration.getDefaultConfig().theme
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
]
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
static getDependencies() {
|
|
32
|
+
return {
|
|
33
|
+
'redocusaurus': '^2.0.0'
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
static generateSampleOpenAPISpec() {
|
|
37
|
+
return `openapi: 3.0.3
|
|
38
|
+
info:
|
|
39
|
+
title: Sample API
|
|
40
|
+
description: |
|
|
41
|
+
これはサンプルAPIの仕様書です。
|
|
42
|
+
|
|
43
|
+
This is a sample API specification.
|
|
44
|
+
version: 1.0.0
|
|
45
|
+
contact:
|
|
46
|
+
name: API Support
|
|
47
|
+
email: support@example.com
|
|
48
|
+
license:
|
|
49
|
+
name: MIT
|
|
50
|
+
url: https://opensource.org/licenses/MIT
|
|
51
|
+
|
|
52
|
+
servers:
|
|
53
|
+
- url: https://api.example.com/v1
|
|
54
|
+
description: Production server
|
|
55
|
+
- url: https://staging-api.example.com/v1
|
|
56
|
+
description: Staging server
|
|
57
|
+
|
|
58
|
+
paths:
|
|
59
|
+
/users:
|
|
60
|
+
get:
|
|
61
|
+
summary: ユーザー一覧を取得 (Get list of users)
|
|
62
|
+
description: システムに登録されているユーザーの一覧を取得します
|
|
63
|
+
tags:
|
|
64
|
+
- Users
|
|
65
|
+
parameters:
|
|
66
|
+
- name: limit
|
|
67
|
+
in: query
|
|
68
|
+
description: 取得する件数の上限
|
|
69
|
+
required: false
|
|
70
|
+
schema:
|
|
71
|
+
type: integer
|
|
72
|
+
minimum: 1
|
|
73
|
+
maximum: 100
|
|
74
|
+
default: 20
|
|
75
|
+
- name: offset
|
|
76
|
+
in: query
|
|
77
|
+
description: 取得開始位置
|
|
78
|
+
required: false
|
|
79
|
+
schema:
|
|
80
|
+
type: integer
|
|
81
|
+
minimum: 0
|
|
82
|
+
default: 0
|
|
83
|
+
responses:
|
|
84
|
+
'200':
|
|
85
|
+
description: ユーザー一覧の取得に成功
|
|
86
|
+
content:
|
|
87
|
+
application/json:
|
|
88
|
+
schema:
|
|
89
|
+
type: object
|
|
90
|
+
properties:
|
|
91
|
+
users:
|
|
92
|
+
type: array
|
|
93
|
+
items:
|
|
94
|
+
$ref: '#/components/schemas/User'
|
|
95
|
+
total:
|
|
96
|
+
type: integer
|
|
97
|
+
description: 総件数
|
|
98
|
+
limit:
|
|
99
|
+
type: integer
|
|
100
|
+
description: 取得件数の上限
|
|
101
|
+
offset:
|
|
102
|
+
type: integer
|
|
103
|
+
description: 取得開始位置
|
|
104
|
+
'400':
|
|
105
|
+
description: リクエストパラメータが不正
|
|
106
|
+
content:
|
|
107
|
+
application/json:
|
|
108
|
+
schema:
|
|
109
|
+
$ref: '#/components/schemas/Error'
|
|
110
|
+
'500':
|
|
111
|
+
description: サーバーエラー
|
|
112
|
+
content:
|
|
113
|
+
application/json:
|
|
114
|
+
schema:
|
|
115
|
+
$ref: '#/components/schemas/Error'
|
|
116
|
+
post:
|
|
117
|
+
summary: 新しいユーザーを作成 (Create a new user)
|
|
118
|
+
description: 新しいユーザーをシステムに登録します
|
|
119
|
+
tags:
|
|
120
|
+
- Users
|
|
121
|
+
requestBody:
|
|
122
|
+
required: true
|
|
123
|
+
content:
|
|
124
|
+
application/json:
|
|
125
|
+
schema:
|
|
126
|
+
$ref: '#/components/schemas/CreateUserRequest'
|
|
127
|
+
responses:
|
|
128
|
+
'201':
|
|
129
|
+
description: ユーザーの作成に成功
|
|
130
|
+
content:
|
|
131
|
+
application/json:
|
|
132
|
+
schema:
|
|
133
|
+
$ref: '#/components/schemas/User'
|
|
134
|
+
'400':
|
|
135
|
+
description: リクエストボディが不正
|
|
136
|
+
content:
|
|
137
|
+
application/json:
|
|
138
|
+
schema:
|
|
139
|
+
$ref: '#/components/schemas/Error'
|
|
140
|
+
'409':
|
|
141
|
+
description: ユーザーが既に存在
|
|
142
|
+
content:
|
|
143
|
+
application/json:
|
|
144
|
+
schema:
|
|
145
|
+
$ref: '#/components/schemas/Error'
|
|
146
|
+
'500':
|
|
147
|
+
description: サーバーエラー
|
|
148
|
+
content:
|
|
149
|
+
application/json:
|
|
150
|
+
schema:
|
|
151
|
+
$ref: '#/components/schemas/Error'
|
|
152
|
+
|
|
153
|
+
/users/{userId}:
|
|
154
|
+
get:
|
|
155
|
+
summary: ユーザー詳細を取得 (Get user details)
|
|
156
|
+
description: 指定されたIDのユーザー詳細情報を取得します
|
|
157
|
+
tags:
|
|
158
|
+
- Users
|
|
159
|
+
parameters:
|
|
160
|
+
- name: userId
|
|
161
|
+
in: path
|
|
162
|
+
required: true
|
|
163
|
+
description: ユーザーID
|
|
164
|
+
schema:
|
|
165
|
+
type: string
|
|
166
|
+
format: uuid
|
|
167
|
+
responses:
|
|
168
|
+
'200':
|
|
169
|
+
description: ユーザー詳細の取得に成功
|
|
170
|
+
content:
|
|
171
|
+
application/json:
|
|
172
|
+
schema:
|
|
173
|
+
$ref: '#/components/schemas/User'
|
|
174
|
+
'404':
|
|
175
|
+
description: ユーザーが見つからない
|
|
176
|
+
content:
|
|
177
|
+
application/json:
|
|
178
|
+
schema:
|
|
179
|
+
$ref: '#/components/schemas/Error'
|
|
180
|
+
'500':
|
|
181
|
+
description: サーバーエラー
|
|
182
|
+
content:
|
|
183
|
+
application/json:
|
|
184
|
+
schema:
|
|
185
|
+
$ref: '#/components/schemas/Error'
|
|
186
|
+
|
|
187
|
+
components:
|
|
188
|
+
schemas:
|
|
189
|
+
User:
|
|
190
|
+
type: object
|
|
191
|
+
required:
|
|
192
|
+
- id
|
|
193
|
+
- name
|
|
194
|
+
- email
|
|
195
|
+
- createdAt
|
|
196
|
+
properties:
|
|
197
|
+
id:
|
|
198
|
+
type: string
|
|
199
|
+
format: uuid
|
|
200
|
+
description: ユーザーID
|
|
201
|
+
example: "123e4567-e89b-12d3-a456-426614174000"
|
|
202
|
+
name:
|
|
203
|
+
type: string
|
|
204
|
+
description: ユーザー名
|
|
205
|
+
minLength: 1
|
|
206
|
+
maxLength: 100
|
|
207
|
+
example: "田中太郎"
|
|
208
|
+
email:
|
|
209
|
+
type: string
|
|
210
|
+
format: email
|
|
211
|
+
description: メールアドレス
|
|
212
|
+
example: "tanaka@example.com"
|
|
213
|
+
age:
|
|
214
|
+
type: integer
|
|
215
|
+
description: 年齢
|
|
216
|
+
minimum: 0
|
|
217
|
+
maximum: 150
|
|
218
|
+
example: 30
|
|
219
|
+
createdAt:
|
|
220
|
+
type: string
|
|
221
|
+
format: date-time
|
|
222
|
+
description: 作成日時
|
|
223
|
+
example: "2023-01-01T00:00:00Z"
|
|
224
|
+
updatedAt:
|
|
225
|
+
type: string
|
|
226
|
+
format: date-time
|
|
227
|
+
description: 更新日時
|
|
228
|
+
example: "2023-01-01T00:00:00Z"
|
|
229
|
+
|
|
230
|
+
CreateUserRequest:
|
|
231
|
+
type: object
|
|
232
|
+
required:
|
|
233
|
+
- name
|
|
234
|
+
- email
|
|
235
|
+
properties:
|
|
236
|
+
name:
|
|
237
|
+
type: string
|
|
238
|
+
description: ユーザー名
|
|
239
|
+
minLength: 1
|
|
240
|
+
maxLength: 100
|
|
241
|
+
example: "田中太郎"
|
|
242
|
+
email:
|
|
243
|
+
type: string
|
|
244
|
+
format: email
|
|
245
|
+
description: メールアドレス
|
|
246
|
+
example: "tanaka@example.com"
|
|
247
|
+
age:
|
|
248
|
+
type: integer
|
|
249
|
+
description: 年齢
|
|
250
|
+
minimum: 0
|
|
251
|
+
maximum: 150
|
|
252
|
+
example: 30
|
|
253
|
+
|
|
254
|
+
Error:
|
|
255
|
+
type: object
|
|
256
|
+
required:
|
|
257
|
+
- code
|
|
258
|
+
- message
|
|
259
|
+
properties:
|
|
260
|
+
code:
|
|
261
|
+
type: string
|
|
262
|
+
description: エラーコード
|
|
263
|
+
example: "INVALID_REQUEST"
|
|
264
|
+
message:
|
|
265
|
+
type: string
|
|
266
|
+
description: エラーメッセージ
|
|
267
|
+
example: "リクエストパラメータが不正です"
|
|
268
|
+
details:
|
|
269
|
+
type: object
|
|
270
|
+
description: エラーの詳細情報
|
|
271
|
+
additionalProperties: true
|
|
272
|
+
|
|
273
|
+
securitySchemes:
|
|
274
|
+
BearerAuth:
|
|
275
|
+
type: http
|
|
276
|
+
scheme: bearer
|
|
277
|
+
bearerFormat: JWT
|
|
278
|
+
|
|
279
|
+
security:
|
|
280
|
+
- BearerAuth: []
|
|
281
|
+
|
|
282
|
+
tags:
|
|
283
|
+
- name: Users
|
|
284
|
+
description: ユーザー管理API (User management API)
|
|
285
|
+
`;
|
|
286
|
+
}
|
|
287
|
+
static generateSampleDocumentation() {
|
|
288
|
+
return `# API Documentation
|
|
289
|
+
|
|
290
|
+
このページではRedocを使用してOpenAPI仕様書を表示しています。
|
|
291
|
+
|
|
292
|
+
## API概要
|
|
293
|
+
|
|
294
|
+
Sample APIは、ユーザー管理機能を提供するRESTful APIです。
|
|
295
|
+
|
|
296
|
+
### 主な機能
|
|
297
|
+
|
|
298
|
+
1. **ユーザー管理**
|
|
299
|
+
- ユーザー一覧の取得
|
|
300
|
+
- ユーザー詳細の取得
|
|
301
|
+
- 新しいユーザーの作成
|
|
302
|
+
|
|
303
|
+
### 認証
|
|
304
|
+
|
|
305
|
+
このAPIはJWT(JSON Web Token)を使用したBearer認証を採用しています。
|
|
306
|
+
|
|
307
|
+
### レスポンス形式
|
|
308
|
+
|
|
309
|
+
すべてのAPIレスポンスはJSON形式で返されます。
|
|
310
|
+
|
|
311
|
+
### エラーハンドリング
|
|
312
|
+
|
|
313
|
+
エラーが発生した場合、適切なHTTPステータスコードとエラー情報を含むJSONレスポンスが返されます。
|
|
314
|
+
|
|
315
|
+
## API仕様書
|
|
316
|
+
|
|
317
|
+
以下のRedocビューアーでAPI仕様書の詳細を確認できます:
|
|
318
|
+
|
|
319
|
+
import Redoc from '@theme/Redoc';
|
|
320
|
+
|
|
321
|
+
<Redoc specUrl="/openapi.yaml" />
|
|
322
|
+
|
|
323
|
+
## 使用例
|
|
324
|
+
|
|
325
|
+
### ユーザー一覧の取得
|
|
326
|
+
|
|
327
|
+
\`\`\`bash
|
|
328
|
+
curl -X GET "https://api.example.com/v1/users?limit=10&offset=0" \\
|
|
329
|
+
-H "Authorization: Bearer YOUR_JWT_TOKEN"
|
|
330
|
+
\`\`\`
|
|
331
|
+
|
|
332
|
+
### 新しいユーザーの作成
|
|
333
|
+
|
|
334
|
+
\`\`\`bash
|
|
335
|
+
curl -X POST "https://api.example.com/v1/users" \\
|
|
336
|
+
-H "Content-Type: application/json" \\
|
|
337
|
+
-H "Authorization: Bearer YOUR_JWT_TOKEN" \\
|
|
338
|
+
-d '{
|
|
339
|
+
"name": "田中太郎",
|
|
340
|
+
"email": "tanaka@example.com",
|
|
341
|
+
"age": 30
|
|
342
|
+
}'
|
|
343
|
+
\`\`\`
|
|
344
|
+
|
|
345
|
+
詳細な使用方法については、上記のAPI仕様書を参照してください。
|
|
346
|
+
`;
|
|
347
|
+
}
|
|
348
|
+
static validateConfig(config) {
|
|
349
|
+
if (!config.specs || config.specs.length === 0) {
|
|
350
|
+
return {
|
|
351
|
+
valid: false,
|
|
352
|
+
message: 'At least one OpenAPI spec must be configured'
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
for (const spec of config.specs) {
|
|
356
|
+
if (!spec.spec || !spec.route) {
|
|
357
|
+
return {
|
|
358
|
+
valid: false,
|
|
359
|
+
message: 'Each spec must have both "spec" and "route" properties'
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
if (!spec.route.startsWith('/')) {
|
|
363
|
+
return {
|
|
364
|
+
valid: false,
|
|
365
|
+
message: 'Route must start with "/"'
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
return { valid: true };
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=redoc-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redoc-integration.js","sourceRoot":"","sources":["../../src/plugins/redoc-integration.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,gBAAgB;QACrB,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,KAAK,EAAE,OAAO;oBACd,EAAE,EAAE,UAAU;iBACf;aACF;YACD,KAAK,EAAE;gBACL,YAAY,EAAE,SAAS;gBACvB,gBAAgB,EAAE,SAAS;aAC5B;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAyB;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;QAEnF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,cAAc;oBACd;wBACE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,KAAK;wBAChE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,KAAK;qBACjE;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO;YACL,cAAc,EAAE,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,yBAAyB;QAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwPV,CAAC;IACA,CAAC;IAED,MAAM,CAAC,2BAA2B;QAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DV,CAAC;IACA,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAmB;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,8CAA8C;aACxD,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,wDAAwD;iBAClE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,2BAA2B;iBACrC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FeatureSelection } from '../types/index.js';
|
|
2
|
+
export interface SearchConfig {
|
|
3
|
+
hashed?: boolean;
|
|
4
|
+
language?: string[];
|
|
5
|
+
removeDefaultStopWordFilter?: boolean;
|
|
6
|
+
highlightSearchTermsOnTargetPage?: boolean;
|
|
7
|
+
searchResultLimits?: number;
|
|
8
|
+
searchResultContextMaxLength?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class SearchIntegration {
|
|
11
|
+
static getDefaultConfig(): SearchConfig;
|
|
12
|
+
static generateDocusaurusConfig(feature: FeatureSelection): any;
|
|
13
|
+
static getDependencies(): Record<string, string>;
|
|
14
|
+
static generateSearchDocumentation(): string;
|
|
15
|
+
static validateConfig(config: SearchConfig): {
|
|
16
|
+
valid: boolean;
|
|
17
|
+
message?: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=search-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-integration.d.ts","sourceRoot":"","sources":["../../src/plugins/search-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,gBAAgB,IAAI,YAAY;IAWvC,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,GAAG;IA0B/D,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMhD,MAAM,CAAC,2BAA2B,IAAI,MAAM;IAsG5C,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;CAwBlF"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { LANG } from '../constants/languages.js';
|
|
2
|
+
export class SearchIntegration {
|
|
3
|
+
static getDefaultConfig() {
|
|
4
|
+
return {
|
|
5
|
+
hashed: false,
|
|
6
|
+
language: [LANG.EN.code, 'ja'],
|
|
7
|
+
removeDefaultStopWordFilter: false,
|
|
8
|
+
highlightSearchTermsOnTargetPage: true,
|
|
9
|
+
searchResultLimits: 8,
|
|
10
|
+
searchResultContextMaxLength: 50
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
static generateDocusaurusConfig(feature) {
|
|
14
|
+
const config = feature.config?.search || SearchIntegration.getDefaultConfig();
|
|
15
|
+
return {
|
|
16
|
+
themes: [
|
|
17
|
+
[
|
|
18
|
+
'@easyops-cn/docusaurus-search-local',
|
|
19
|
+
{
|
|
20
|
+
hashed: config.hashed,
|
|
21
|
+
language: config.language,
|
|
22
|
+
removeDefaultStopWordFilter: config.removeDefaultStopWordFilter,
|
|
23
|
+
highlightSearchTermsOnTargetPage: config.highlightSearchTermsOnTargetPage,
|
|
24
|
+
searchResultLimits: config.searchResultLimits,
|
|
25
|
+
searchResultContextMaxLength: config.searchResultContextMaxLength,
|
|
26
|
+
// 日本語検索の最適化
|
|
27
|
+
indexDocs: true,
|
|
28
|
+
indexBlog: true,
|
|
29
|
+
indexPages: false,
|
|
30
|
+
docsRouteBasePath: '/docs',
|
|
31
|
+
blogRouteBasePath: '/blog'
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
]
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
static getDependencies() {
|
|
38
|
+
return {
|
|
39
|
+
'@easyops-cn/docusaurus-search-local': '^0.52.2'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
static generateSearchDocumentation() {
|
|
43
|
+
return `# 検索機能 (Search Functionality)
|
|
44
|
+
|
|
45
|
+
このドキュメントサイトには@easyops-cn/docusaurus-search-localを使用したローカル検索機能が統合されています。
|
|
46
|
+
|
|
47
|
+
## 使用方法
|
|
48
|
+
|
|
49
|
+
1. **キーボードショートカット**
|
|
50
|
+
- \`Ctrl + K\` (Windows/Linux) または \`Cmd + K\` (Mac) で検索ボックスを開く
|
|
51
|
+
- \`/\` キーでも検索ボックスを開くことができます
|
|
52
|
+
|
|
53
|
+
2. **検索ボックス**
|
|
54
|
+
- ナビゲーションバーの検索アイコンをクリック
|
|
55
|
+
- 検索したいキーワードを入力
|
|
56
|
+
|
|
57
|
+
## 検索のコツ
|
|
58
|
+
|
|
59
|
+
### 基本的な検索
|
|
60
|
+
|
|
61
|
+
- **単語検索**: 単語を入力するだけで関連するページを検索
|
|
62
|
+
- **フレーズ検索**: 引用符で囲むと完全一致検索
|
|
63
|
+
- **部分一致**: 単語の一部でも検索可能
|
|
64
|
+
|
|
65
|
+
### 高度な検索
|
|
66
|
+
|
|
67
|
+
- **AND検索**: 複数のキーワードをスペースで区切る
|
|
68
|
+
- **除外検索**: \`-keyword\` で特定の単語を除外
|
|
69
|
+
|
|
70
|
+
### 日本語検索
|
|
71
|
+
|
|
72
|
+
- ひらがな、カタカナ、漢字での検索に対応
|
|
73
|
+
- 部分一致検索が可能
|
|
74
|
+
- 英語と日本語の混在検索も可能
|
|
75
|
+
|
|
76
|
+
## 検索対象
|
|
77
|
+
|
|
78
|
+
以下のコンテンツが検索対象となります:
|
|
79
|
+
|
|
80
|
+
- ドキュメントページのタイトル
|
|
81
|
+
- ドキュメントの本文
|
|
82
|
+
- ヘッダー(見出し)
|
|
83
|
+
- ブログ記事(有効な場合)
|
|
84
|
+
|
|
85
|
+
## 検索結果
|
|
86
|
+
|
|
87
|
+
検索結果には以下の情報が表示されます:
|
|
88
|
+
|
|
89
|
+
- **ページタイトル**: 該当するページの名前
|
|
90
|
+
- **セクション**: 該当する見出しレベル
|
|
91
|
+
- **プレビュー**: 検索キーワード周辺のテキスト
|
|
92
|
+
- **パンくずリスト**: ページの階層構造
|
|
93
|
+
|
|
94
|
+
## 設定オプション
|
|
95
|
+
|
|
96
|
+
### 基本設定
|
|
97
|
+
|
|
98
|
+
- **hashed**: 検索インデックスのハッシュ化(デフォルト: false)
|
|
99
|
+
- **language**: 検索対象言語(デフォルト: ['en', 'ja'])
|
|
100
|
+
- **removeDefaultStopWordFilter**: デフォルトストップワードフィルターの無効化
|
|
101
|
+
- **highlightSearchTermsOnTargetPage**: 検索語のハイライト表示
|
|
102
|
+
- **searchResultLimits**: 検索結果の表示件数制限
|
|
103
|
+
- **searchResultContextMaxLength**: 検索結果コンテキストの最大長
|
|
104
|
+
|
|
105
|
+
### 詳細設定
|
|
106
|
+
|
|
107
|
+
- **indexDocs**: ドキュメントのインデックス化(デフォルト: true)
|
|
108
|
+
- **indexBlog**: ブログのインデックス化(デフォルト: true)
|
|
109
|
+
- **indexPages**: 静的ページのインデックス化(デフォルト: false)
|
|
110
|
+
|
|
111
|
+
## トラブルシューティング
|
|
112
|
+
|
|
113
|
+
### 検索結果が表示されない場合
|
|
114
|
+
|
|
115
|
+
1. **キーワードの確認**
|
|
116
|
+
- スペルミスがないか確認
|
|
117
|
+
- 別の表現や類義語を試す
|
|
118
|
+
|
|
119
|
+
2. **検索範囲の確認**
|
|
120
|
+
- 該当するコンテンツが存在するか確認
|
|
121
|
+
- 最近追加されたコンテンツは検索インデックスの更新が必要な場合があります
|
|
122
|
+
|
|
123
|
+
3. **ブラウザの確認**
|
|
124
|
+
- ブラウザのキャッシュをクリア
|
|
125
|
+
- JavaScriptが有効になっているか確認
|
|
126
|
+
|
|
127
|
+
### 検索が遅い場合
|
|
128
|
+
|
|
129
|
+
- より具体的なキーワードを使用
|
|
130
|
+
- 検索結果を絞り込むために追加のキーワードを使用
|
|
131
|
+
|
|
132
|
+
### 日本語検索で問題がある場合
|
|
133
|
+
|
|
134
|
+
- 異なる表記(ひらがな/カタカナ/漢字)を試す
|
|
135
|
+
- 英語での検索も併用する
|
|
136
|
+
|
|
137
|
+
## 参考資料
|
|
138
|
+
|
|
139
|
+
- [@easyops-cn/docusaurus-search-local ドキュメント](https://github.com/easyops-cn/docusaurus-search-local)
|
|
140
|
+
- [Docusaurus 検索ガイド](https://docusaurus.io/docs/search)
|
|
141
|
+
`;
|
|
142
|
+
}
|
|
143
|
+
static validateConfig(config) {
|
|
144
|
+
if (config.language && !Array.isArray(config.language)) {
|
|
145
|
+
return {
|
|
146
|
+
valid: false,
|
|
147
|
+
message: 'Search language must be an array'
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
if (config.searchResultLimits && (typeof config.searchResultLimits !== 'number' || config.searchResultLimits <= 0)) {
|
|
151
|
+
return {
|
|
152
|
+
valid: false,
|
|
153
|
+
message: 'Search result limits must be a positive number'
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if (config.searchResultContextMaxLength && (typeof config.searchResultContextMaxLength !== 'number' || config.searchResultContextMaxLength <= 0)) {
|
|
157
|
+
return {
|
|
158
|
+
valid: false,
|
|
159
|
+
message: 'Search result context max length must be a positive number'
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
return { valid: true };
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=search-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-integration.js","sourceRoot":"","sources":["../../src/plugins/search-integration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAWjD,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,gBAAgB;QACrB,OAAO;YACL,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YAC9B,2BAA2B,EAAE,KAAK;YAClC,gCAAgC,EAAE,IAAI;YACtC,kBAAkB,EAAE,CAAC;YACrB,4BAA4B,EAAE,EAAE;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAyB;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAE9E,OAAO;YACL,MAAM,EAAE;gBACN;oBACE,qCAAqC;oBACrC;wBACE,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;wBAC/D,gCAAgC,EAAE,MAAM,CAAC,gCAAgC;wBACzE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;wBAC7C,4BAA4B,EAAE,MAAM,CAAC,4BAA4B;wBACjE,YAAY;wBACZ,SAAS,EAAE,IAAI;wBACf,SAAS,EAAE,IAAI;wBACf,UAAU,EAAE,KAAK;wBACjB,iBAAiB,EAAE,OAAO;wBAC1B,iBAAiB,EAAE,OAAO;qBAC3B;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO;YACL,qCAAqC,EAAE,SAAS;SACjD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,2BAA2B;QAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGV,CAAC;IACA,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAoB;QACxC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,kCAAkC;aAC5C,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,IAAI,CAAC,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,IAAI,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC,EAAE,CAAC;YACnH,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,gDAAgD;aAC1D,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,4BAA4B,IAAI,CAAC,OAAO,MAAM,CAAC,4BAA4B,KAAK,QAAQ,IAAI,MAAM,CAAC,4BAA4B,IAAI,CAAC,CAAC,EAAE,CAAC;YACjJ,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,4DAA4D;aACtE,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAkEhE,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,QAAuB,GAAG,YAAY,EAAE,CAOvF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { LANG } from '../constants/languages.js';
|
|
2
|
+
const TEMPLATE_DATA = [
|
|
3
|
+
{
|
|
4
|
+
name: 'classic-spec',
|
|
5
|
+
displayName: {
|
|
6
|
+
[LANG.EN.code]: 'Classic Specification',
|
|
7
|
+
[LANG.JP.code]: '基本仕様書'
|
|
8
|
+
},
|
|
9
|
+
description: {
|
|
10
|
+
[LANG.EN.code]: 'General-purpose specification documentation template',
|
|
11
|
+
[LANG.JP.code]: '汎用的な仕様書ドキュメントテンプレート'
|
|
12
|
+
},
|
|
13
|
+
features: ['search', 'plantuml']
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'api-spec',
|
|
17
|
+
displayName: {
|
|
18
|
+
[LANG.EN.code]: 'API Specification',
|
|
19
|
+
[LANG.JP.code]: 'API仕様書'
|
|
20
|
+
},
|
|
21
|
+
description: {
|
|
22
|
+
[LANG.EN.code]: 'Template for API specification and documentation',
|
|
23
|
+
[LANG.JP.code]: 'API仕様書・ドキュメント用テンプレート'
|
|
24
|
+
},
|
|
25
|
+
features: ['search', 'plantuml', 'redoc']
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'technical-spec',
|
|
29
|
+
displayName: {
|
|
30
|
+
[LANG.EN.code]: 'Technical Specification',
|
|
31
|
+
[LANG.JP.code]: '技術仕様書'
|
|
32
|
+
},
|
|
33
|
+
description: {
|
|
34
|
+
[LANG.EN.code]: 'Template for technical specification and architecture',
|
|
35
|
+
[LANG.JP.code]: '技術仕様書・アーキテクチャ用テンプレート'
|
|
36
|
+
},
|
|
37
|
+
features: ['search', 'plantuml']
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'enterprise-spec',
|
|
41
|
+
displayName: {
|
|
42
|
+
[LANG.EN.code]: 'Enterprise Specification',
|
|
43
|
+
[LANG.JP.code]: '企業向け仕様書'
|
|
44
|
+
},
|
|
45
|
+
description: {
|
|
46
|
+
[LANG.EN.code]: 'Template for enterprise specification and documentation',
|
|
47
|
+
[LANG.JP.code]: '企業向け仕様書・ドキュメント用テンプレート'
|
|
48
|
+
},
|
|
49
|
+
features: ['search', 'plantuml', 'redoc', 'i18n']
|
|
50
|
+
}
|
|
51
|
+
];
|
|
52
|
+
export function getAvailableTemplates(language = LANG.EN.code) {
|
|
53
|
+
return TEMPLATE_DATA.map(template => ({
|
|
54
|
+
name: template.name,
|
|
55
|
+
displayName: template.displayName[language],
|
|
56
|
+
description: template.description[language],
|
|
57
|
+
features: template.features
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,2BAA2B,CAAC;AAehE,MAAM,aAAa,GAAmB;IACpC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,uBAAuB;YACvC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO;SACxB;QACD,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,sDAAsD;YACtE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,qBAAqB;SACtC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;KACjC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB;YACnC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ;SACzB;QACD,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,kDAAkD;YAClE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,sBAAsB;SACvC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC;KAC1C;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,yBAAyB;YACzC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO;SACxB;QACD,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,uDAAuD;YACvE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,sBAAsB;SACvC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;KACjC;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,0BAA0B;YAC1C,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS;SAC1B;QACD,WAAW,EAAE;YACX,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,yDAAyD;YACzE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,uBAAuB;SACxC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;KAClD;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,WAAqB,IAAI,CAAC,EAAE,CAAC,IAAI;IACrE,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,EAAE,QAAQ,CAAC,IAA4B;QAC3C,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC3C,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC;QAC3C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TemplateConfig } from '../types/index.js';
|
|
2
|
+
export declare const templateDefinitions: Record<string, TemplateConfig>;
|
|
3
|
+
export declare function getTemplateDefinition(templateName: string): TemplateConfig | undefined;
|
|
4
|
+
export declare function getAllTemplateNames(): string[];
|
|
5
|
+
export declare function getTemplateDisplayNames(): Array<{
|
|
6
|
+
name: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
description: string;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=template-definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-definitions.d.ts","sourceRoot":"","sources":["../../src/templates/template-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA6R9D,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtF;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,wBAAgB,uBAAuB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAM3G"}
|