ondc-code-generator 0.8.8 → 0.9.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/README.md +1 -1
- package/alpha/table/page/index.html +11487 -0
- package/alpha/table/page/style.css +449 -0
- package/alpha/table/rag-table-docs/confirm.md +60 -0
- package/alpha/table/rag-table-docs/init.md +78 -0
- package/alpha/table/rag-table-docs/on_confirm.md +161 -0
- package/alpha/table/rag-table-docs/on_init.md +143 -0
- package/alpha/table/rag-table-docs/on_search.md +160 -0
- package/alpha/table/rag-table-docs/on_select.md +96 -0
- package/alpha/table/rag-table-docs/on_status.md +150 -0
- package/alpha/table/rag-table-docs/on_update.md +161 -0
- package/alpha/table/rag-table-docs/raw_table.json +11198 -0
- package/alpha/table/rag-table-docs/search.md +125 -0
- package/alpha/table/rag-table-docs/select.md +67 -0
- package/alpha/table/rag-table-docs/status.md +41 -0
- package/alpha/table/rag-table-docs/update.md +48 -0
- package/alpha/table/readme.md +1312 -0
- package/alpha/table/validPaths.json +34134 -0
- package/alpha/table.zip +0 -0
- package/dist/bin/cli.js +6 -0
- package/dist/generator/config-compiler.js +16 -0
- package/dist/generator/generators/documentation/md-generator.d.ts +11 -5
- package/dist/generator/generators/documentation/md-generator.js +22 -28
- package/dist/generator/generators/documentation/templates/index.mustache +162 -26
- package/dist/generator/generators/documentation/templates/style.css +387 -142
- package/dist/generator/generators/rag/rag-generator.d.ts +48 -0
- package/dist/generator/generators/rag/rag-generator.js +185 -0
- package/dist/generator/generators/rag/rag-table-generator.d.ts +55 -0
- package/dist/generator/generators/rag/rag-table-generator.js +263 -0
- package/dist/types/compiler-types.d.ts +4 -1
- package/dist/types/compiler-types.js +3 -0
- package/docs/jval-dsl.md +913 -0
- package/package.json +1 -1
- package/alpha/golang/newPkg/go.mod +0 -3
- package/alpha/golang/newPkg/jsonvalidations/cancel.go +0 -1289
- package/alpha/golang/newPkg/jsonvalidations/confirm.go +0 -9121
- package/alpha/golang/newPkg/jsonvalidations/init.go +0 -4864
- package/alpha/golang/newPkg/jsonvalidations/issue.go +0 -4868
- package/alpha/golang/newPkg/jsonvalidations/on_cancel.go +0 -7111
- package/alpha/golang/newPkg/jsonvalidations/on_confirm.go +0 -8903
- package/alpha/golang/newPkg/jsonvalidations/on_init.go +0 -4445
- package/alpha/golang/newPkg/jsonvalidations/on_issue.go +0 -2828
- package/alpha/golang/newPkg/jsonvalidations/on_issue_status.go +0 -1938
- package/alpha/golang/newPkg/jsonvalidations/on_search.go +0 -3356
- package/alpha/golang/newPkg/jsonvalidations/on_status.go +0 -8129
- package/alpha/golang/newPkg/jsonvalidations/on_track.go +0 -1415
- package/alpha/golang/newPkg/jsonvalidations/on_update.go +0 -8700
- package/alpha/golang/newPkg/jsonvalidations/search.go +0 -3585
- package/alpha/golang/newPkg/jsonvalidations/status.go +0 -1073
- package/alpha/golang/newPkg/jsonvalidations/track.go +0 -1073
- package/alpha/golang/newPkg/jsonvalidations/update.go +0 -3012
- package/alpha/golang/newPkg/main-validator.go +0 -196
- package/alpha/golang/newPkg/main-validator_test.go +0 -165
- package/alpha/golang/newPkg/storageutils/api_save_utils.go +0 -83
- package/alpha/golang/newPkg/storageutils/cancel.go +0 -30
- package/alpha/golang/newPkg/storageutils/confirm.go +0 -30
- package/alpha/golang/newPkg/storageutils/index.go +0 -132
- package/alpha/golang/newPkg/storageutils/init.go +0 -30
- package/alpha/golang/newPkg/storageutils/issue.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_cancel.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_confirm.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_init.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_issue.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_issue_status.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_search.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_status.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_track.go +0 -30
- package/alpha/golang/newPkg/storageutils/on_update.go +0 -30
- package/alpha/golang/newPkg/storageutils/save_utils.go +0 -75
- package/alpha/golang/newPkg/storageutils/search.go +0 -30
- package/alpha/golang/newPkg/storageutils/status.go +0 -30
- package/alpha/golang/newPkg/storageutils/track.go +0 -30
- package/alpha/golang/newPkg/storageutils/update.go +0 -30
- package/alpha/golang/newPkg/validationutils/json_normalizer.go +0 -152
- package/alpha/golang/newPkg/validationutils/json_path_utils.go +0 -173
- package/alpha/golang/newPkg/validationutils/storage-interface.go +0 -107
- package/alpha/golang/newPkg/validationutils/test-config.go +0 -69
- package/alpha/golang/newPkg/validationutils/validation_utils.go +0 -429
- package/alpha/golang/page/index.html +0 -6137
- package/alpha/golang/page/style.css +0 -204
- package/alpha/golang/readme.md +0 -5939
- package/alpha/golang/validationpkg/go.mod +0 -3
- package/alpha/golang/validationpkg/jsonvalidations/cancel.go +0 -1289
- package/alpha/golang/validationpkg/jsonvalidations/confirm.go +0 -9121
- package/alpha/golang/validationpkg/jsonvalidations/init.go +0 -4864
- package/alpha/golang/validationpkg/jsonvalidations/issue.go +0 -4868
- package/alpha/golang/validationpkg/jsonvalidations/on_cancel.go +0 -7111
- package/alpha/golang/validationpkg/jsonvalidations/on_confirm.go +0 -8903
- package/alpha/golang/validationpkg/jsonvalidations/on_init.go +0 -4445
- package/alpha/golang/validationpkg/jsonvalidations/on_issue.go +0 -2828
- package/alpha/golang/validationpkg/jsonvalidations/on_issue_status.go +0 -1938
- package/alpha/golang/validationpkg/jsonvalidations/on_search.go +0 -3356
- package/alpha/golang/validationpkg/jsonvalidations/on_status.go +0 -8129
- package/alpha/golang/validationpkg/jsonvalidations/on_track.go +0 -1415
- package/alpha/golang/validationpkg/jsonvalidations/on_update.go +0 -8700
- package/alpha/golang/validationpkg/jsonvalidations/search.go +0 -3585
- package/alpha/golang/validationpkg/jsonvalidations/status.go +0 -1073
- package/alpha/golang/validationpkg/jsonvalidations/track.go +0 -1073
- package/alpha/golang/validationpkg/jsonvalidations/update.go +0 -3012
- package/alpha/golang/validationpkg/main-validator.go +0 -196
- package/alpha/golang/validationpkg/main-validator_test.go +0 -165
- package/alpha/golang/validationpkg/storageutils/api_save_utils.go +0 -83
- package/alpha/golang/validationpkg/storageutils/cancel.go +0 -30
- package/alpha/golang/validationpkg/storageutils/confirm.go +0 -30
- package/alpha/golang/validationpkg/storageutils/index.go +0 -132
- package/alpha/golang/validationpkg/storageutils/init.go +0 -30
- package/alpha/golang/validationpkg/storageutils/issue.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_cancel.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_confirm.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_init.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_issue.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_issue_status.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_search.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_status.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_track.go +0 -30
- package/alpha/golang/validationpkg/storageutils/on_update.go +0 -30
- package/alpha/golang/validationpkg/storageutils/save_utils.go +0 -75
- package/alpha/golang/validationpkg/storageutils/search.go +0 -30
- package/alpha/golang/validationpkg/storageutils/status.go +0 -30
- package/alpha/golang/validationpkg/storageutils/track.go +0 -30
- package/alpha/golang/validationpkg/storageutils/update.go +0 -30
- package/alpha/golang/validationpkg/validationutils/json_normalizer.go +0 -152
- package/alpha/golang/validationpkg/validationutils/json_path_utils.go +0 -173
- package/alpha/golang/validationpkg/validationutils/storage-interface.go +0 -107
- package/alpha/golang/validationpkg/validationutils/test-config.go +0 -69
- package/alpha/golang/validationpkg/validationutils/validation_utils.go +0 -429
- /package/alpha/{golang/validPaths.json → validPaths.json} +0 -0
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
2
|
+
VARIABLES
|
|
3
|
+
═══════════════════════════════════════════════════════════════ */
|
|
4
|
+
:root {
|
|
5
|
+
--bg: #0f1117;
|
|
6
|
+
--bg-mid: #161b27;
|
|
7
|
+
--bg-card: #1c2333;
|
|
8
|
+
--border: #2d3748;
|
|
9
|
+
--accent: #1296d9;
|
|
10
|
+
--accent-dim: #0e6fa3;
|
|
11
|
+
--text: #e2e8f0;
|
|
12
|
+
--text-muted: #8892a4;
|
|
13
|
+
--group-bg: #1a2540;
|
|
14
|
+
--group-text: #93c5fd;
|
|
15
|
+
--leaf-bg: #1c2333;
|
|
16
|
+
--mark-bg: #ffdd57;
|
|
17
|
+
--mark-text: #1a1a1a;
|
|
18
|
+
--sidebar-w: 200px;
|
|
19
|
+
--topbar-h: 56px;
|
|
20
|
+
--radius: 6px;
|
|
21
|
+
--font: "Inter", "Segoe UI", system-ui, sans-serif;
|
|
22
|
+
--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
26
|
+
RESET & BASE
|
|
27
|
+
═══════════════════════════════════════════════════════════════ */
|
|
28
|
+
*,
|
|
29
|
+
*::before,
|
|
30
|
+
*::after {
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
margin: 0;
|
|
33
|
+
padding: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
html {
|
|
37
|
+
scroll-behavior: smooth;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
body {
|
|
41
|
+
font-family: var(--font);
|
|
42
|
+
background: var(--bg);
|
|
43
|
+
color: var(--text);
|
|
44
|
+
line-height: 1.6;
|
|
45
|
+
font-size: 14px;
|
|
46
|
+
min-height: 100vh;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
a {
|
|
50
|
+
color: var(--accent);
|
|
51
|
+
text-decoration: none;
|
|
52
|
+
}
|
|
53
|
+
a:hover {
|
|
54
|
+
text-decoration: underline;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
mark {
|
|
58
|
+
background: var(--mark-bg);
|
|
59
|
+
color: var(--mark-text);
|
|
60
|
+
border-radius: 2px;
|
|
61
|
+
padding: 0 2px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
65
|
+
TOP BAR
|
|
66
|
+
═══════════════════════════════════════════════════════════════ */
|
|
67
|
+
.top-bar {
|
|
68
|
+
position: fixed;
|
|
69
|
+
top: 0;
|
|
70
|
+
left: 0;
|
|
71
|
+
right: 0;
|
|
72
|
+
height: var(--topbar-h);
|
|
73
|
+
background: var(--bg-mid);
|
|
74
|
+
border-bottom: 1px solid var(--border);
|
|
75
|
+
display: flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
gap: 16px;
|
|
78
|
+
padding: 0 20px;
|
|
79
|
+
z-index: 100;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.logo {
|
|
83
|
+
font-weight: 700;
|
|
84
|
+
font-size: 15px;
|
|
85
|
+
color: var(--accent);
|
|
86
|
+
white-space: nowrap;
|
|
87
|
+
margin-right: 8px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.toolbar {
|
|
91
|
+
display: flex;
|
|
92
|
+
align-items: center;
|
|
93
|
+
gap: 12px;
|
|
94
|
+
flex: 1;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* ── Search ── */
|
|
99
|
+
.search-wrap {
|
|
100
|
+
position: relative;
|
|
101
|
+
display: flex;
|
|
102
|
+
align-items: center;
|
|
103
|
+
flex: 1;
|
|
104
|
+
max-width: 480px;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.search-icon {
|
|
108
|
+
position: absolute;
|
|
109
|
+
left: 10px;
|
|
110
|
+
width: 16px;
|
|
111
|
+
height: 16px;
|
|
112
|
+
color: var(--text-muted);
|
|
113
|
+
pointer-events: none;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
#search {
|
|
117
|
+
width: 100%;
|
|
118
|
+
background: var(--bg-card);
|
|
119
|
+
border: 1px solid var(--border);
|
|
120
|
+
border-radius: var(--radius);
|
|
121
|
+
color: var(--text);
|
|
122
|
+
font-family: var(--font);
|
|
123
|
+
font-size: 13px;
|
|
124
|
+
padding: 7px 34px 7px 34px;
|
|
125
|
+
outline: none;
|
|
126
|
+
transition: border-color 0.15s;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
#search:focus {
|
|
130
|
+
border-color: var(--accent);
|
|
131
|
+
box-shadow: 0 0 0 2px rgba(18, 150, 217, 0.18);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
#search::placeholder {
|
|
135
|
+
color: var(--text-muted);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.clear-btn {
|
|
139
|
+
position: absolute;
|
|
140
|
+
right: 8px;
|
|
141
|
+
background: none;
|
|
142
|
+
border: none;
|
|
143
|
+
color: var(--text-muted);
|
|
144
|
+
font-size: 16px;
|
|
145
|
+
cursor: pointer;
|
|
146
|
+
line-height: 1;
|
|
147
|
+
padding: 2px 4px;
|
|
148
|
+
}
|
|
149
|
+
.clear-btn:hover {
|
|
150
|
+
color: var(--text);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* ── Filter pills ── */
|
|
154
|
+
.filter-group {
|
|
155
|
+
display: flex;
|
|
156
|
+
gap: 6px;
|
|
157
|
+
flex-shrink: 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.pill {
|
|
161
|
+
background: var(--bg-card);
|
|
162
|
+
border: 1px solid var(--border);
|
|
163
|
+
border-radius: 20px;
|
|
164
|
+
color: var(--text-muted);
|
|
165
|
+
font-size: 12px;
|
|
166
|
+
padding: 4px 12px;
|
|
167
|
+
cursor: pointer;
|
|
168
|
+
white-space: nowrap;
|
|
169
|
+
transition:
|
|
170
|
+
background 0.15s,
|
|
171
|
+
color 0.15s,
|
|
172
|
+
border-color 0.15s;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.pill:hover {
|
|
176
|
+
border-color: var(--accent);
|
|
177
|
+
color: var(--text);
|
|
178
|
+
}
|
|
179
|
+
.pill.active {
|
|
180
|
+
background: var(--accent);
|
|
181
|
+
border-color: var(--accent);
|
|
182
|
+
color: #fff;
|
|
183
|
+
font-weight: 600;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* ── Match count badge ── */
|
|
187
|
+
#match-count {
|
|
188
|
+
position: fixed;
|
|
189
|
+
bottom: 16px;
|
|
190
|
+
right: 20px;
|
|
191
|
+
background: var(--accent);
|
|
192
|
+
color: #fff;
|
|
193
|
+
font-size: 12px;
|
|
194
|
+
font-weight: 600;
|
|
195
|
+
padding: 5px 12px;
|
|
196
|
+
border-radius: 20px;
|
|
197
|
+
z-index: 200;
|
|
198
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
202
|
+
LAYOUT
|
|
203
|
+
═══════════════════════════════════════════════════════════════ */
|
|
204
|
+
.layout {
|
|
205
|
+
display: flex;
|
|
206
|
+
margin-top: var(--topbar-h);
|
|
207
|
+
min-height: calc(100vh - var(--topbar-h));
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/* ── Sidebar ── */
|
|
211
|
+
#sidebar {
|
|
212
|
+
position: fixed;
|
|
213
|
+
top: var(--topbar-h);
|
|
214
|
+
left: 0;
|
|
215
|
+
bottom: 0;
|
|
216
|
+
width: var(--sidebar-w);
|
|
217
|
+
background: var(--bg-mid);
|
|
218
|
+
border-right: 1px solid var(--border);
|
|
219
|
+
overflow-y: auto;
|
|
220
|
+
padding: 16px 0 24px;
|
|
221
|
+
scrollbar-width: thin;
|
|
222
|
+
scrollbar-color: var(--border) transparent;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.nav-heading {
|
|
226
|
+
font-size: 10px;
|
|
227
|
+
font-weight: 700;
|
|
228
|
+
letter-spacing: 0.08em;
|
|
229
|
+
text-transform: uppercase;
|
|
230
|
+
color: var(--text-muted);
|
|
231
|
+
padding: 0 16px 8px;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
#sidebar a {
|
|
235
|
+
display: block;
|
|
236
|
+
padding: 7px 16px;
|
|
237
|
+
font-size: 13px;
|
|
238
|
+
color: var(--text-muted);
|
|
239
|
+
white-space: nowrap;
|
|
240
|
+
overflow: hidden;
|
|
241
|
+
text-overflow: ellipsis;
|
|
242
|
+
border-left: 2px solid transparent;
|
|
243
|
+
transition:
|
|
244
|
+
color 0.12s,
|
|
245
|
+
border-color 0.12s,
|
|
246
|
+
background 0.12s;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
#sidebar a:hover {
|
|
250
|
+
color: var(--text);
|
|
251
|
+
background: rgba(255, 255, 255, 0.04);
|
|
252
|
+
text-decoration: none;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
#sidebar a.active {
|
|
256
|
+
color: var(--accent);
|
|
257
|
+
border-left-color: var(--accent);
|
|
258
|
+
background: rgba(18, 150, 217, 0.08);
|
|
259
|
+
font-weight: 600;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/* ── Main ── */
|
|
263
|
+
#content {
|
|
264
|
+
margin-left: var(--sidebar-w);
|
|
265
|
+
padding: 28px 32px 60px;
|
|
266
|
+
flex: 1;
|
|
267
|
+
min-width: 0;
|
|
268
|
+
overflow-x: auto;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
272
|
+
TYPOGRAPHY
|
|
273
|
+
═══════════════════════════════════════════════════════════════ */
|
|
274
|
+
#content h1 {
|
|
275
|
+
font-size: 20px;
|
|
276
|
+
font-weight: 700;
|
|
277
|
+
color: var(--text);
|
|
278
|
+
margin: 32px 0 6px;
|
|
279
|
+
border-bottom: 1px solid var(--border);
|
|
280
|
+
padding-bottom: 8px;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
#content h1:first-child {
|
|
284
|
+
margin-top: 0;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
#content > p {
|
|
288
|
+
color: var(--text-muted);
|
|
289
|
+
margin-bottom: 16px;
|
|
290
|
+
font-size: 13px;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
#content hr {
|
|
294
|
+
border: none;
|
|
295
|
+
border-top: 1px solid var(--border);
|
|
296
|
+
margin: 20px 0;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
code {
|
|
300
|
+
font-family: var(--font-mono);
|
|
301
|
+
font-size: 12px;
|
|
302
|
+
background: rgba(255, 255, 255, 0.07);
|
|
303
|
+
border: 1px solid var(--border);
|
|
304
|
+
padding: 1px 5px;
|
|
305
|
+
border-radius: 4px;
|
|
306
|
+
color: #a5d6fa;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
310
|
+
TABLE
|
|
311
|
+
═══════════════════════════════════════════════════════════════ */
|
|
312
|
+
table {
|
|
313
|
+
width: 100%;
|
|
314
|
+
border-collapse: collapse;
|
|
315
|
+
font-size: 13px;
|
|
316
|
+
margin-bottom: 8px;
|
|
317
|
+
table-layout: auto;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/* Sticky header */
|
|
321
|
+
thead {
|
|
322
|
+
position: sticky;
|
|
323
|
+
top: var(--topbar-h);
|
|
324
|
+
z-index: 10;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
thead th {
|
|
328
|
+
background: var(--bg-mid);
|
|
329
|
+
border-bottom: 2px solid var(--accent);
|
|
330
|
+
padding: 10px 12px;
|
|
331
|
+
font-size: 11px;
|
|
332
|
+
font-weight: 700;
|
|
333
|
+
letter-spacing: 0.06em;
|
|
334
|
+
text-transform: uppercase;
|
|
335
|
+
color: var(--text-muted);
|
|
336
|
+
white-space: nowrap;
|
|
337
|
+
text-align: left;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
thead th:first-child {
|
|
341
|
+
text-align: right;
|
|
342
|
+
}
|
|
343
|
+
thead th:nth-child(2) {
|
|
344
|
+
text-align: center;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
tbody tr {
|
|
348
|
+
border-bottom: 1px solid var(--border);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/* Group rows */
|
|
352
|
+
tbody tr[data-rowtype="group"] {
|
|
353
|
+
background: var(--group-bg);
|
|
354
|
+
}
|
|
355
|
+
tbody tr[data-rowtype="group"] td {
|
|
356
|
+
color: var(--group-text);
|
|
357
|
+
font-weight: 600;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/* Leaf rows */
|
|
361
|
+
tbody tr[data-rowtype="leaf"] {
|
|
362
|
+
background: var(--leaf-bg);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
tbody tr:hover {
|
|
366
|
+
background: rgba(255, 255, 255, 0.04);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
td {
|
|
370
|
+
padding: 9px 12px;
|
|
371
|
+
vertical-align: top;
|
|
372
|
+
line-height: 1.5;
|
|
373
|
+
max-width: 420px;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/* # column */
|
|
377
|
+
td:first-child {
|
|
378
|
+
text-align: right;
|
|
379
|
+
color: var(--text-muted);
|
|
380
|
+
font-size: 11px;
|
|
381
|
+
white-space: nowrap;
|
|
382
|
+
padding-right: 8px;
|
|
383
|
+
min-width: 32px;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/* Type column */
|
|
387
|
+
td:nth-child(2) {
|
|
388
|
+
text-align: center;
|
|
389
|
+
width: 36px;
|
|
390
|
+
font-size: 15px;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/* Dash placeholder */
|
|
394
|
+
td:empty::after,
|
|
395
|
+
td:only-child.empty::after {
|
|
396
|
+
content: "—";
|
|
397
|
+
color: var(--text-muted);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/* ── Skip If cell: softer red/orange tint ── */
|
|
401
|
+
td:has(> *):nth-child(7) {
|
|
402
|
+
color: #f6ad55;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/* Error code pill */
|
|
406
|
+
td:last-child:not(:only-child) {
|
|
407
|
+
white-space: nowrap;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/* ── "—" em dash placeholder cells ── */
|
|
411
|
+
td {
|
|
412
|
+
/* GFM table renders literal "—" for empty cells from our generator */
|
|
413
|
+
}
|
|
414
|
+
td:has(> em) {
|
|
415
|
+
color: var(--text-muted);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/* ── Description / skip multiline list ── */
|
|
419
|
+
td ul,
|
|
420
|
+
td ol {
|
|
421
|
+
padding-left: 16px;
|
|
422
|
+
margin: 0;
|
|
423
|
+
}
|
|
424
|
+
td li {
|
|
425
|
+
margin-bottom: 2px;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/* ═══════════════════════════════════════════════════════════════
|
|
429
|
+
UTILITY
|
|
430
|
+
═══════════════════════════════════════════════════════════════ */
|
|
431
|
+
.hidden {
|
|
432
|
+
display: none !important;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/* Scrollbar */
|
|
436
|
+
::-webkit-scrollbar {
|
|
437
|
+
width: 6px;
|
|
438
|
+
height: 6px;
|
|
439
|
+
}
|
|
440
|
+
::-webkit-scrollbar-track {
|
|
441
|
+
background: transparent;
|
|
442
|
+
}
|
|
443
|
+
::-webkit-scrollbar-thumb {
|
|
444
|
+
background: var(--border);
|
|
445
|
+
border-radius: 3px;
|
|
446
|
+
}
|
|
447
|
+
::-webkit-scrollbar-thumb:hover {
|
|
448
|
+
background: var(--text-muted);
|
|
449
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
action: confirm
|
|
3
|
+
codeName: L1validations
|
|
4
|
+
numTests: 45
|
|
5
|
+
generated: 2026-03-10
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# L1validations — `confirm` Validations (Table View)
|
|
9
|
+
|
|
10
|
+
**36** leaf validation rule(s) applied to `confirm` in the **L1validations** flow.
|
|
11
|
+
Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
| # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
|
|
15
|
+
| ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
|
|
16
|
+
| 1 | GRP | **CONFIRM_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
|
|
17
|
+
| 2 | GRP | **CONTEXT_REQUIRED** | CONFIRM_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
|
|
18
|
+
| 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
|
|
19
|
+
| 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
|
|
20
|
+
| 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
|
|
21
|
+
| 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
|
|
22
|
+
| 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
|
|
23
|
+
| 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
|
|
24
|
+
| 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
|
|
25
|
+
| 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
|
|
26
|
+
| 11 | LF | `REQUIRED_CONTEXT_VERSION` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
|
|
27
|
+
| 12 | LF | `REQUIRED_CONTEXT_TTL` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
|
|
28
|
+
| 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
|
|
29
|
+
| 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | CONFIRM_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
|
|
30
|
+
| 15 | GRP | **CONTEXT_ENUM** | CONFIRM_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
|
|
31
|
+
| 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | CONFIRM_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
|
|
32
|
+
| 17 | LF | `VALID_CONTEXT_DOMAIN` | CONFIRM_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
|
|
33
|
+
| 18 | GRP | **CONTEXT_REGEX** | CONFIRM_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
|
|
34
|
+
| 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
|
|
35
|
+
| 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
|
|
36
|
+
| 21 | LF | `REGEX_CONTEXT_BAP_ID` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
|
|
37
|
+
| 22 | LF | `REGEX_CONTEXT_BAP_URI` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
|
|
38
|
+
| 23 | LF | `REQUIRED_CONTEXT_TTL` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
|
|
39
|
+
| 24 | LF | `REGEX_CONTEXT_BPP_ID` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
|
|
40
|
+
| 25 | LF | `REGEX_CONTEXT_BPP_URI` | CONFIRM_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
|
|
41
|
+
| 26 | LF | `REQUIRED_PROVIDER_ID` | — | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
|
|
42
|
+
| 27 | GRP | **REQUIRED_ITEM_FIELDS** | — | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID | — | — |
|
|
43
|
+
| 28 | LF | `REQUIRED_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
|
|
44
|
+
| 29 | LF | `REQUIRED_PARENT_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
|
|
45
|
+
| 30 | GRP | **CONFIRM_PAYMENTS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS | — | — |
|
|
46
|
+
| 31 | GRP | **REQUIRED_PAYMENT_ITEMS** | CONFIRM_PAYMENTS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL | — | — |
|
|
47
|
+
| 32 | LF | `REQUIRED_PAYMENT_ITEMS` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
|
|
48
|
+
| 33 | LF | `REQUIRED_PAYMENT_ID` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
|
|
49
|
+
| 34 | LF | `REQUIRED_PAYMENT_STATUS` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
|
|
50
|
+
| 35 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
|
|
51
|
+
| 36 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
|
|
52
|
+
| 37 | LF | `REQUIRED_PAYMENT_BANK_CODE` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
|
|
53
|
+
| 38 | LF | `REQUIRED_PAYMENT_LABEL` | CONFIRM_PAYMENTS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
|
|
54
|
+
| 39 | GRP | **CONFIRM_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS | — | — |
|
|
55
|
+
| 40 | LF | `VALID_PAYMENT_TAGS` | CONFIRM_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
|
|
56
|
+
| 41 | LF | `REQUIRED_ACCOUNT_DETAILS` | CONFIRM_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
|
|
57
|
+
| 42 | GRP | **CONFIRM_TAGS** | — | — | Sub-tests: REQUIRED_PAYMENT_TAGS, REQUIRED_BAP_TERMS, REQUIRED_BPP_TERMS | — | — |
|
|
58
|
+
| 43 | LF | `REQUIRED_PAYMENT_TAGS` | CONFIRM_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
|
|
59
|
+
| 44 | LF | `REQUIRED_BAP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
|
|
60
|
+
| 45 | LF | `REQUIRED_BPP_TERMS` | CONFIRM_TAGS | `$.message.order.tags[?(@.descriptor.code == BPP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BPP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
action: init
|
|
3
|
+
codeName: L1validations
|
|
4
|
+
numTests: 63
|
|
5
|
+
generated: 2026-03-10
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# L1validations — `init` Validations (Table View)
|
|
9
|
+
|
|
10
|
+
**49** leaf validation rule(s) applied to `init` in the **L1validations** flow.
|
|
11
|
+
Group rows (GRP) list their immediate sub-tests. Leaf rows (LF) show the actual validation logic.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
| # | Type | Test Name | Group | Scope | Description | Skip If | Error Code |
|
|
15
|
+
| ---: | :---: | :--- | :--- | :--- | :--- | :--- | :---: |
|
|
16
|
+
| 1 | GRP | **INIT_CONTEXT** | — | — | Sub-tests: CONTEXT_REQUIRED, CONTEXT_ENUM, CONTEXT_REGEX | — | — |
|
|
17
|
+
| 2 | GRP | **CONTEXT_REQUIRED** | INIT_CONTEXT | — | Sub-tests: REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE, REQUIRED_CONTEXT_LOCATION_CITY_CODE, REQUIRED_CONTEXT_DOMAIN, REQUIRED_CONTEXT_TIMESTAMP, REQUIRED_CONTEXT_BAP_ID, REQUIRED_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TRANSACTION_ID, REQUIRED_CONTEXT_MESSAGE_ID, REQUIRED_CONTEXT_VERSION, REQUIRED_CONTEXT_TTL, REQUIRED_CONTEXT_BPP_ID, REQUIRED_CONTEXT_BPP_URI | — | — |
|
|
18
|
+
| 3 | LF | `REQUIRED_CONTEXT_LOCATION_COUNTRY_CODE` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.country.code must be present in the payload | — | 30000 |
|
|
19
|
+
| 4 | LF | `REQUIRED_CONTEXT_LOCATION_CITY_CODE` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.location.city.code must be present in the payload | — | 30000 |
|
|
20
|
+
| 5 | LF | `REQUIRED_CONTEXT_DOMAIN` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.domain must be present in the payload | — | 30000 |
|
|
21
|
+
| 6 | LF | `REQUIRED_CONTEXT_TIMESTAMP` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.timestamp must be present in the payload | — | 30000 |
|
|
22
|
+
| 7 | LF | `REQUIRED_CONTEXT_BAP_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_id must be present in the payload | — | 30000 |
|
|
23
|
+
| 8 | LF | `REQUIRED_CONTEXT_BAP_URI` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bap_uri must be present in the payload | — | 30000 |
|
|
24
|
+
| 9 | LF | `REQUIRED_CONTEXT_TRANSACTION_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.transaction_id must be present in the payload | — | 30000 |
|
|
25
|
+
| 10 | LF | `REQUIRED_CONTEXT_MESSAGE_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.message_id must be present in the payload | — | 30000 |
|
|
26
|
+
| 11 | LF | `REQUIRED_CONTEXT_VERSION` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.version must be present in the payload | — | 30000 |
|
|
27
|
+
| 12 | LF | `REQUIRED_CONTEXT_TTL` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.ttl must be present in the payload | — | 30000 |
|
|
28
|
+
| 13 | LF | `REQUIRED_CONTEXT_BPP_ID` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_id must be present in the payload | — | 30000 |
|
|
29
|
+
| 14 | LF | `REQUIRED_CONTEXT_BPP_URI` | INIT_CONTEXT > CONTEXT_REQUIRED | — | - $.context.bpp_uri must be present in the payload | — | 30000 |
|
|
30
|
+
| 15 | GRP | **CONTEXT_ENUM** | INIT_CONTEXT | — | Sub-tests: VALID_CONTEXT_LOCATION_COUNTRY_CODE, VALID_CONTEXT_DOMAIN | — | — |
|
|
31
|
+
| 16 | LF | `VALID_CONTEXT_LOCATION_COUNTRY_CODE` | INIT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.location.country.code must be in ["IND"] | - $.context.location.country.code must **not** be present in the payload | 30000 |
|
|
32
|
+
| 17 | LF | `VALID_CONTEXT_DOMAIN` | INIT_CONTEXT > CONTEXT_ENUM | — | - All elements of $.context.domain must be in ["ONDC:FIS12"] | - $.context.domain must **not** be present in the payload | 30000 |
|
|
33
|
+
| 18 | GRP | **CONTEXT_REGEX** | INIT_CONTEXT | — | Sub-tests: REGEX_CONTEXT_LOCATION_CITY_CODE, REGEX_CONTEXT_TIMESTAMP_1, REGEX_CONTEXT_BAP_ID, REGEX_CONTEXT_BAP_URI, REQUIRED_CONTEXT_TTL, REGEX_CONTEXT_BPP_ID, REGEX_CONTEXT_BPP_URI | — | — |
|
|
34
|
+
| 19 | LF | `REGEX_CONTEXT_LOCATION_CITY_CODE` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.location.city.code must follow every regex in ["(\\*)\|(^std\\:[0-9]{2,4}$)"] | - $.context.location.city.code must **not** be present in the payload | 30000 |
|
|
35
|
+
| 20 | LF | `REGEX_CONTEXT_TIMESTAMP_1` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.timestamp must follow every regex in ["^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z\|[+-]\\d{2}:\\d{2})$"] | - $.context.timestamp must **not** be present in the payload | 30000 |
|
|
36
|
+
| 21 | LF | `REGEX_CONTEXT_BAP_ID` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bap_id must **not** be present in the payload | 30000 |
|
|
37
|
+
| 22 | LF | `REGEX_CONTEXT_BAP_URI` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bap_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bap_uri must **not** be present in the payload | 30000 |
|
|
38
|
+
| 23 | LF | `REQUIRED_CONTEXT_TTL` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.ttl must follow every regex in ["^P(?=\\d\|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$"] | - $.context.ttl must **not** be present in the payload | 30000 |
|
|
39
|
+
| 24 | LF | `REGEX_CONTEXT_BPP_ID` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_id must follow every regex in ["^(?!.*\b(?:http\|https\|www)\b)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$"] | - $.context.bpp_id must **not** be present in the payload | 30000 |
|
|
40
|
+
| 25 | LF | `REGEX_CONTEXT_BPP_URI` | INIT_CONTEXT > CONTEXT_REGEX | — | - All elements of $.context.bpp_uri must follow every regex in ["^https:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+(/)?$"] | - $.context.bpp_uri must **not** be present in the payload | 30000 |
|
|
41
|
+
| 26 | LF | `REQUIRED_PROVIDER_ID` | — | — | - $.message.order.provider.id must be present in the payload | — | 30000 |
|
|
42
|
+
| 27 | GRP | **REQUIRED_ITEM_FIELDS** | — | — | Sub-tests: REQUIRED_ITEM_ID, REQUIRED_PARENT_ITEM_ID, REQUIRED_XINPUT_ITEMS | — | — |
|
|
43
|
+
| 28 | LF | `REQUIRED_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].id must be present in the payload | — | 30000 |
|
|
44
|
+
| 29 | LF | `REQUIRED_PARENT_ITEM_ID` | REQUIRED_ITEM_FIELDS | — | - $.message.order.items[*].parent_item_id must be present in the payload | — | 30000 |
|
|
45
|
+
| 30 | GRP | **REQUIRED_XINPUT_ITEMS** | REQUIRED_ITEM_FIELDS | — | Sub-tests: REQUIRED_HEAD_CODE, REQUIRED_FORM_ID, REQUIRED_SUBMISSION_ID | - $.message.order.items[*].xinput.form.id must **not** be present in the payload | — |
|
|
46
|
+
| 31 | LF | `REQUIRED_HEAD_CODE` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.head.descriptor.code must be present in the payload | — | 30000 |
|
|
47
|
+
| 32 | LF | `REQUIRED_FORM_ID` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form.id must be present in the payload | — | 30000 |
|
|
48
|
+
| 33 | LF | `REQUIRED_SUBMISSION_ID` | REQUIRED_ITEM_FIELDS > REQUIRED_XINPUT_ITEMS | — | - $.message.order.items[*].xinput.form_response.submission_id must be present in the payload | - $.message.order.items[*].xinput.form_response.submission_id must **not** be present in the payload | 30000 |
|
|
49
|
+
| 34 | GRP | **INIT_PAYMENT_ITEMS** | — | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, VALID_PAYMENT_ITEMS | — | — |
|
|
50
|
+
| 35 | GRP | **REQUIRED_PAYMENT_ITEMS** | INIT_PAYMENT_ITEMS | — | Sub-tests: REQUIRED_PAYMENT_ITEMS, REQUIRED_PAYMENT_ID, REQUIRED_PAYMENT_STATUS, REQUIRED_PAYMENT_COLLECTED_BY, REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER, REQUIRED_PAYMENT_BANK_CODE, REQUIRED_PAYMENT_LABEL | — | — |
|
|
51
|
+
| 36 | LF | `REQUIRED_PAYMENT_ITEMS` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].type must be present in the payload | — | 30000 |
|
|
52
|
+
| 37 | LF | `REQUIRED_PAYMENT_ID` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].id must be present in the payload | — | 30000 |
|
|
53
|
+
| 38 | LF | `REQUIRED_PAYMENT_STATUS` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].status must be present in the payload | — | 30000 |
|
|
54
|
+
| 39 | LF | `REQUIRED_PAYMENT_COLLECTED_BY` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].collected_by must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
|
|
55
|
+
| 40 | LF | `REQUIRED_PAYMENT_BANK_ACCOUNT_NUMBER` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_account_number must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
|
|
56
|
+
| 41 | LF | `REQUIRED_PAYMENT_BANK_CODE` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].params.bank_code must be present in the payload | - Not all elements of $.message.order.payments[*].time.label may be in ["LOAN_DISBURSMENT"] | 30000 |
|
|
57
|
+
| 42 | LF | `REQUIRED_PAYMENT_LABEL` | INIT_PAYMENT_ITEMS > REQUIRED_PAYMENT_ITEMS | — | - $.message.order.payments[*].time.label must be present in the payload | — | 30000 |
|
|
58
|
+
| 43 | GRP | **VALID_PAYMENT_ITEMS** | INIT_PAYMENT_ITEMS | — | Sub-tests: VALID_PAYMENT_TYPE, VALID_PAYMENT_STATUS, VALID_PAYMENT_COLLECTOR, VALID_PAYMENT_LABEL | — | — |
|
|
59
|
+
| 44 | LF | `VALID_PAYMENT_TYPE` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].type must be in ["ON_ORDER", "ON_FULFILLMENT", "POST_FULFILLMENT"] | - $.message.order.payments[*].type must **not** be present in the payload | 30000 |
|
|
60
|
+
| 45 | LF | `VALID_PAYMENT_STATUS` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].status must be in ["NOT-PAID", "PAID", "DEFERRED", "DELAYED"] | - $.message.order.payments[*].status must **not** be present in the payload | 30000 |
|
|
61
|
+
| 46 | LF | `VALID_PAYMENT_COLLECTOR` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].collected_by must be in ["BPP", "CONSUMER"] | - $.message.order.payments[*].collected_by must **not** be present in the payload | 30000 |
|
|
62
|
+
| 47 | LF | `VALID_PAYMENT_LABEL` | INIT_PAYMENT_ITEMS > VALID_PAYMENT_ITEMS | — | - All elements of $.message.order.payments[*].time.label must be in ["INSTALLMENT", "LOAN_DISBURSMENT"] | - $.message.order.payments[*].time.label must **not** be present in the payload | 30000 |
|
|
63
|
+
| 48 | GRP | **REQUIRED_FULFILMENT_ITEMS** | — | — | Sub-tests: REQUIRED_FULFILLMENT_ID, REQUIRED_CUSTOMER_ITEMS | — | — |
|
|
64
|
+
| 49 | LF | `REQUIRED_FULFILLMENT_ID` | REQUIRED_FULFILMENT_ITEMS | — | - $.message.order.fulfillments[*].id must be present in the payload | — | 30000 |
|
|
65
|
+
| 50 | GRP | **REQUIRED_CUSTOMER_ITEMS** | REQUIRED_FULFILMENT_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_DOB, REQUIRED_CUSTOMER_GENDER, REQUIRED_CREDS, REQUIRED_CUSTOMER_CONTACT_EMAIL, REQUIRED_CUSTOMER_CONTACT_PHONE | - $.message.order.fulfillments[*].customer.person.name must **not** be present in the payload | — |
|
|
66
|
+
| 51 | LF | `REQUIRED_CUSTOMER_DOB` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
|
|
67
|
+
| 52 | LF | `REQUIRED_CUSTOMER_GENDER` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
|
|
68
|
+
| 53 | GRP | **REQUIRED_CREDS** | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | Sub-tests: REQUIRED_CUSTOMER_CREDS_ID, REQUIRED_CUSTOMER_CREDS_TYPE | - $.message.order.fulfillments[*].customer.person.creds[*].id must **not** be present in the payload | — |
|
|
69
|
+
| 54 | LF | `REQUIRED_CUSTOMER_CREDS_ID` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
|
|
70
|
+
| 55 | LF | `REQUIRED_CUSTOMER_CREDS_TYPE` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS > REQUIRED_CREDS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.creds[*].id must be present in the payload | — | 30000 |
|
|
71
|
+
| 56 | LF | `REQUIRED_CUSTOMER_CONTACT_EMAIL` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
|
|
72
|
+
| 57 | LF | `REQUIRED_CUSTOMER_CONTACT_PHONE` | REQUIRED_FULFILMENT_ITEMS > REQUIRED_CUSTOMER_ITEMS | — | - $._EXTERNAL._SELF.message.order.fulfillments[*].customer.person.name must be present in the payload | — | 30000 |
|
|
73
|
+
| 58 | GRP | **INIT_PAYMENT_TAGS** | — | — | Sub-tests: VALID_PAYMENT_TAGS, REQUIRED_ACCOUNT_DETAILS | — | — |
|
|
74
|
+
| 59 | LF | `VALID_PAYMENT_TAGS` | INIT_PAYMENT_TAGS | — | - All elements of $.message.order.payments[*].tags[*].descriptor.code must be in ["ACCOUNT_DETAILS", "BREAKUP"] | - $.message.order.payments[*].tags[*].descriptor.code must **not** be present in the payload | 30000 |
|
|
75
|
+
| 60 | LF | `REQUIRED_ACCOUNT_DETAILS` | INIT_PAYMENT_TAGS | `$.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)]` | - All elements of $.message.order.payments[*].tags[?(@.descriptor.code == ACCOUNT_DETAILS)].list[*].descriptor.code must be in ["ACCOUNT_TYPE", "ACCOUNT_HOLDER_NAME"] | — | 30000 |
|
|
76
|
+
| 61 | GRP | **INIT_BAP_TERM_TAGS** | — | — | Sub-tests: REQUIRED_TLC_TAGS, REQUIRED_BAP_TERMS | — | — |
|
|
77
|
+
| 62 | LF | `REQUIRED_TLC_TAGS` | INIT_BAP_TERM_TAGS | — | - All elements of $.message.order.tags[*].descriptor.code must be in ["BAP_TERMS", "BPP_TERMS"] | - $.message.order.tags[*].descriptor.code must **not** be present in the payload | 30000 |
|
|
78
|
+
| 63 | LF | `REQUIRED_BAP_TERMS` | INIT_BAP_TERM_TAGS | `$.message.order.tags[?(@.descriptor.code == BAP_TERMS)]` | - All elements of $.message.order.tags[?(@.descriptor.code == BAP_TERMS)].list[*].descriptor.code must be in ["STATIC_TERMS", "OFFLINE_CONTRACT"] | — | 30000 |
|