@nasebanal/cli 0.1.0 → 0.2.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.
@@ -1,15 +1,10 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: NASEBANAL - App Template API
4
- description: >-
5
- A template API for NASEBANAL applications. Provides sample CRUD endpoints, user authentication via Auth0 JWT and
6
- Personal Access Tokens (PAT), and integration with the Account API.
4
+ description: |-
5
+ A template API for NASEBANAL applications. Provides sample CRUD endpoints, user authentication via Auth0 JWT and Personal Access Tokens (PAT), and integration with the Account API.
7
6
 
8
-
9
- All responses use a uniform envelope: successful responses are `{ "success": true, "data": ... }` and failures are
10
- `{ "success": false, "error": { "code", "message" } }`. This mirrors `successResponse()` / `errorResponse()` in the
11
- implementation. The `success` discriminator is pinned with `enum` so both Specmatic stub generation and contract
12
- tests treat it as a fixed value per response class.
7
+ All responses use a uniform envelope: successful responses are `{ "success": true, "data": ... }` and failures are `{ "success": false, "error": { "code", "message" } }`. This mirrors `successResponse()` / `errorResponse()` in the implementation. The `success` discriminator is pinned with `enum` so both Specmatic stub generation and contract tests treat it as a fixed value per response class.
13
8
  version: 1.1.1
14
9
  contact:
15
10
  name: NASEBANAL
@@ -31,7 +26,7 @@ paths:
31
26
  description: Returns the health status of the API.
32
27
  security: []
33
28
  responses:
34
- '200':
29
+ "200":
35
30
  description: API is healthy
36
31
  content:
37
32
  application/json:
@@ -43,7 +38,8 @@ paths:
43
38
  properties:
44
39
  success:
45
40
  type: boolean
46
- enum: [true]
41
+ enum:
42
+ - true
47
43
  data:
48
44
  type: object
49
45
  required:
@@ -61,7 +57,7 @@ paths:
61
57
  success: true
62
58
  data:
63
59
  status: ok
64
- timestamp: '2026-05-14T12:00:00Z'
60
+ timestamp: 2026-05-14T12:00:00Z
65
61
  /api/v1/me:
66
62
  get:
67
63
  operationId: getCurrentUser
@@ -70,12 +66,12 @@ paths:
70
66
  summary: Get current user profile
71
67
  description: Returns the authenticated user's profile information from the Account API.
72
68
  responses:
73
- '200':
69
+ "200":
74
70
  description: User profile
75
71
  content:
76
72
  application/json:
77
73
  schema:
78
- $ref: '#/components/schemas/UserResponse'
74
+ $ref: "#/components/schemas/UserResponse"
79
75
  examples:
80
76
  valid:
81
77
  value:
@@ -88,9 +84,9 @@ paths:
88
84
  language: ja
89
85
  plan: pro
90
86
  subscription_status: active
91
- subscription_expires_at: '2026-12-31T23:59:59Z'
92
- '401':
93
- $ref: '#/components/responses/Unauthorized'
87
+ subscription_expires_at: 2026-12-31T23:59:59Z
88
+ "401":
89
+ $ref: "#/components/responses/Unauthorized"
94
90
  /api/v1/items:
95
91
  get:
96
92
  operationId: listItems
@@ -99,7 +95,7 @@ paths:
99
95
  summary: List items
100
96
  description: Returns all items belonging to the authenticated user.
101
97
  responses:
102
- '200':
98
+ "200":
103
99
  description: List of items
104
100
  content:
105
101
  application/json:
@@ -111,7 +107,8 @@ paths:
111
107
  properties:
112
108
  success:
113
109
  type: boolean
114
- enum: [true]
110
+ enum:
111
+ - true
115
112
  data:
116
113
  type: object
117
114
  required:
@@ -121,7 +118,7 @@ paths:
121
118
  data:
122
119
  type: array
123
120
  items:
124
- $ref: '#/components/schemas/Item'
121
+ $ref: "#/components/schemas/Item"
125
122
  total:
126
123
  type: integer
127
124
  examples:
@@ -134,11 +131,11 @@ paths:
134
131
  user_id: 42
135
132
  name: My Item
136
133
  description: A sample item description
137
- created_at: '2026-05-14T12:00:00Z'
138
- updated_at: '2026-05-14T12:00:00Z'
134
+ created_at: 2026-05-14T12:00:00Z
135
+ updated_at: 2026-05-14T12:00:00Z
139
136
  total: 1
140
- '401':
141
- $ref: '#/components/responses/Unauthorized'
137
+ "401":
138
+ $ref: "#/components/responses/Unauthorized"
142
139
  post:
143
140
  operationId: createItem
144
141
  tags:
@@ -150,19 +147,19 @@ paths:
150
147
  content:
151
148
  application/json:
152
149
  schema:
153
- $ref: '#/components/schemas/CreateItemInput'
150
+ $ref: "#/components/schemas/CreateItemInput"
154
151
  examples:
155
152
  valid:
156
153
  value:
157
154
  name: My Item
158
155
  description: A sample item description
159
156
  responses:
160
- '201':
157
+ "201":
161
158
  description: Item created
162
159
  content:
163
160
  application/json:
164
161
  schema:
165
- $ref: '#/components/schemas/ItemResponse'
162
+ $ref: "#/components/schemas/ItemResponse"
166
163
  examples:
167
164
  valid:
168
165
  value:
@@ -172,10 +169,10 @@ paths:
172
169
  user_id: 42
173
170
  name: My Item
174
171
  description: A sample item description
175
- created_at: '2026-05-14T12:00:00Z'
176
- updated_at: '2026-05-14T12:00:00Z'
177
- '401':
178
- $ref: '#/components/responses/Unauthorized'
172
+ created_at: 2026-05-14T12:00:00Z
173
+ updated_at: 2026-05-14T12:00:00Z
174
+ "401":
175
+ $ref: "#/components/responses/Unauthorized"
179
176
  /api/v1/items/{id}:
180
177
  get:
181
178
  operationId: getItem
@@ -193,12 +190,12 @@ paths:
193
190
  valid:
194
191
  value: itm_a1b2c3d4
195
192
  responses:
196
- '200':
193
+ "200":
197
194
  description: Item details
198
195
  content:
199
196
  application/json:
200
197
  schema:
201
- $ref: '#/components/schemas/ItemResponse'
198
+ $ref: "#/components/schemas/ItemResponse"
202
199
  examples:
203
200
  valid:
204
201
  value:
@@ -208,12 +205,12 @@ paths:
208
205
  user_id: 42
209
206
  name: My Item
210
207
  description: A sample item description
211
- created_at: '2026-05-14T12:00:00Z'
212
- updated_at: '2026-05-14T12:00:00Z'
213
- '401':
214
- $ref: '#/components/responses/Unauthorized'
215
- '404':
216
- $ref: '#/components/responses/NotFound'
208
+ created_at: 2026-05-14T12:00:00Z
209
+ updated_at: 2026-05-14T12:00:00Z
210
+ "401":
211
+ $ref: "#/components/responses/Unauthorized"
212
+ "404":
213
+ $ref: "#/components/responses/NotFound"
217
214
  put:
218
215
  operationId: updateItem
219
216
  tags:
@@ -234,19 +231,19 @@ paths:
234
231
  content:
235
232
  application/json:
236
233
  schema:
237
- $ref: '#/components/schemas/UpdateItemInput'
234
+ $ref: "#/components/schemas/UpdateItemInput"
238
235
  examples:
239
236
  valid:
240
237
  value:
241
238
  name: Updated Item
242
239
  description: An updated item description
243
240
  responses:
244
- '200':
241
+ "200":
245
242
  description: Item updated
246
243
  content:
247
244
  application/json:
248
245
  schema:
249
- $ref: '#/components/schemas/ItemResponse'
246
+ $ref: "#/components/schemas/ItemResponse"
250
247
  examples:
251
248
  valid:
252
249
  value:
@@ -256,12 +253,12 @@ paths:
256
253
  user_id: 42
257
254
  name: Updated Item
258
255
  description: An updated item description
259
- created_at: '2026-05-14T12:00:00Z'
260
- updated_at: '2026-05-15T09:30:00Z'
261
- '401':
262
- $ref: '#/components/responses/Unauthorized'
263
- '404':
264
- $ref: '#/components/responses/NotFound'
256
+ created_at: 2026-05-14T12:00:00Z
257
+ updated_at: 2026-05-15T09:30:00Z
258
+ "401":
259
+ $ref: "#/components/responses/Unauthorized"
260
+ "404":
261
+ $ref: "#/components/responses/NotFound"
265
262
  delete:
266
263
  operationId: deleteItem
267
264
  tags:
@@ -278,22 +275,22 @@ paths:
278
275
  valid:
279
276
  value: itm_a1b2c3d4
280
277
  responses:
281
- '200':
278
+ "200":
282
279
  description: Item deleted
283
280
  content:
284
281
  application/json:
285
282
  schema:
286
- $ref: '#/components/schemas/SuccessResponse'
283
+ $ref: "#/components/schemas/SuccessResponse"
287
284
  examples:
288
285
  valid:
289
286
  value:
290
287
  success: true
291
288
  data:
292
289
  success: true
293
- '401':
294
- $ref: '#/components/responses/Unauthorized'
295
- '404':
296
- $ref: '#/components/responses/NotFound'
290
+ "401":
291
+ $ref: "#/components/responses/Unauthorized"
292
+ "404":
293
+ $ref: "#/components/responses/NotFound"
297
294
  components:
298
295
  securitySchemes:
299
296
  BearerAuth:
@@ -354,9 +351,10 @@ components:
354
351
  properties:
355
352
  success:
356
353
  type: boolean
357
- enum: [true]
354
+ enum:
355
+ - true
358
356
  data:
359
- $ref: '#/components/schemas/User'
357
+ $ref: "#/components/schemas/User"
360
358
  Item:
361
359
  type: object
362
360
  required:
@@ -389,9 +387,10 @@ components:
389
387
  properties:
390
388
  success:
391
389
  type: boolean
392
- enum: [true]
390
+ enum:
391
+ - true
393
392
  data:
394
- $ref: '#/components/schemas/Item'
393
+ $ref: "#/components/schemas/Item"
395
394
  CreateItemInput:
396
395
  type: object
397
396
  required:
@@ -422,7 +421,8 @@ components:
422
421
  properties:
423
422
  success:
424
423
  type: boolean
425
- enum: [true]
424
+ enum:
425
+ - true
426
426
  data:
427
427
  type: object
428
428
  required:
@@ -430,7 +430,8 @@ components:
430
430
  properties:
431
431
  success:
432
432
  type: boolean
433
- enum: [true]
433
+ enum:
434
+ - true
434
435
  Error:
435
436
  type: object
436
437
  required:
@@ -439,7 +440,8 @@ components:
439
440
  properties:
440
441
  success:
441
442
  type: boolean
442
- enum: [false]
443
+ enum:
444
+ - false
443
445
  error:
444
446
  type: object
445
447
  required:
@@ -456,7 +458,7 @@ components:
456
458
  content:
457
459
  application/json:
458
460
  schema:
459
- $ref: '#/components/schemas/Error'
461
+ $ref: "#/components/schemas/Error"
460
462
  examples:
461
463
  unauthorized:
462
464
  value:
@@ -469,7 +471,7 @@ components:
469
471
  content:
470
472
  application/json:
471
473
  schema:
472
- $ref: '#/components/schemas/Error'
474
+ $ref: "#/components/schemas/Error"
473
475
  examples:
474
476
  not_found:
475
477
  value: