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.
Files changed (127) hide show
  1. package/README.md +1 -1
  2. package/alpha/table/page/index.html +11487 -0
  3. package/alpha/table/page/style.css +449 -0
  4. package/alpha/table/rag-table-docs/confirm.md +60 -0
  5. package/alpha/table/rag-table-docs/init.md +78 -0
  6. package/alpha/table/rag-table-docs/on_confirm.md +161 -0
  7. package/alpha/table/rag-table-docs/on_init.md +143 -0
  8. package/alpha/table/rag-table-docs/on_search.md +160 -0
  9. package/alpha/table/rag-table-docs/on_select.md +96 -0
  10. package/alpha/table/rag-table-docs/on_status.md +150 -0
  11. package/alpha/table/rag-table-docs/on_update.md +161 -0
  12. package/alpha/table/rag-table-docs/raw_table.json +11198 -0
  13. package/alpha/table/rag-table-docs/search.md +125 -0
  14. package/alpha/table/rag-table-docs/select.md +67 -0
  15. package/alpha/table/rag-table-docs/status.md +41 -0
  16. package/alpha/table/rag-table-docs/update.md +48 -0
  17. package/alpha/table/readme.md +1312 -0
  18. package/alpha/table/validPaths.json +34134 -0
  19. package/alpha/table.zip +0 -0
  20. package/dist/bin/cli.js +6 -0
  21. package/dist/generator/config-compiler.js +16 -0
  22. package/dist/generator/generators/documentation/md-generator.d.ts +11 -5
  23. package/dist/generator/generators/documentation/md-generator.js +22 -28
  24. package/dist/generator/generators/documentation/templates/index.mustache +162 -26
  25. package/dist/generator/generators/documentation/templates/style.css +387 -142
  26. package/dist/generator/generators/rag/rag-generator.d.ts +48 -0
  27. package/dist/generator/generators/rag/rag-generator.js +185 -0
  28. package/dist/generator/generators/rag/rag-table-generator.d.ts +55 -0
  29. package/dist/generator/generators/rag/rag-table-generator.js +263 -0
  30. package/dist/types/compiler-types.d.ts +4 -1
  31. package/dist/types/compiler-types.js +3 -0
  32. package/docs/jval-dsl.md +913 -0
  33. package/package.json +1 -1
  34. package/alpha/golang/newPkg/go.mod +0 -3
  35. package/alpha/golang/newPkg/jsonvalidations/cancel.go +0 -1289
  36. package/alpha/golang/newPkg/jsonvalidations/confirm.go +0 -9121
  37. package/alpha/golang/newPkg/jsonvalidations/init.go +0 -4864
  38. package/alpha/golang/newPkg/jsonvalidations/issue.go +0 -4868
  39. package/alpha/golang/newPkg/jsonvalidations/on_cancel.go +0 -7111
  40. package/alpha/golang/newPkg/jsonvalidations/on_confirm.go +0 -8903
  41. package/alpha/golang/newPkg/jsonvalidations/on_init.go +0 -4445
  42. package/alpha/golang/newPkg/jsonvalidations/on_issue.go +0 -2828
  43. package/alpha/golang/newPkg/jsonvalidations/on_issue_status.go +0 -1938
  44. package/alpha/golang/newPkg/jsonvalidations/on_search.go +0 -3356
  45. package/alpha/golang/newPkg/jsonvalidations/on_status.go +0 -8129
  46. package/alpha/golang/newPkg/jsonvalidations/on_track.go +0 -1415
  47. package/alpha/golang/newPkg/jsonvalidations/on_update.go +0 -8700
  48. package/alpha/golang/newPkg/jsonvalidations/search.go +0 -3585
  49. package/alpha/golang/newPkg/jsonvalidations/status.go +0 -1073
  50. package/alpha/golang/newPkg/jsonvalidations/track.go +0 -1073
  51. package/alpha/golang/newPkg/jsonvalidations/update.go +0 -3012
  52. package/alpha/golang/newPkg/main-validator.go +0 -196
  53. package/alpha/golang/newPkg/main-validator_test.go +0 -165
  54. package/alpha/golang/newPkg/storageutils/api_save_utils.go +0 -83
  55. package/alpha/golang/newPkg/storageutils/cancel.go +0 -30
  56. package/alpha/golang/newPkg/storageutils/confirm.go +0 -30
  57. package/alpha/golang/newPkg/storageutils/index.go +0 -132
  58. package/alpha/golang/newPkg/storageutils/init.go +0 -30
  59. package/alpha/golang/newPkg/storageutils/issue.go +0 -30
  60. package/alpha/golang/newPkg/storageutils/on_cancel.go +0 -30
  61. package/alpha/golang/newPkg/storageutils/on_confirm.go +0 -30
  62. package/alpha/golang/newPkg/storageutils/on_init.go +0 -30
  63. package/alpha/golang/newPkg/storageutils/on_issue.go +0 -30
  64. package/alpha/golang/newPkg/storageutils/on_issue_status.go +0 -30
  65. package/alpha/golang/newPkg/storageutils/on_search.go +0 -30
  66. package/alpha/golang/newPkg/storageutils/on_status.go +0 -30
  67. package/alpha/golang/newPkg/storageutils/on_track.go +0 -30
  68. package/alpha/golang/newPkg/storageutils/on_update.go +0 -30
  69. package/alpha/golang/newPkg/storageutils/save_utils.go +0 -75
  70. package/alpha/golang/newPkg/storageutils/search.go +0 -30
  71. package/alpha/golang/newPkg/storageutils/status.go +0 -30
  72. package/alpha/golang/newPkg/storageutils/track.go +0 -30
  73. package/alpha/golang/newPkg/storageutils/update.go +0 -30
  74. package/alpha/golang/newPkg/validationutils/json_normalizer.go +0 -152
  75. package/alpha/golang/newPkg/validationutils/json_path_utils.go +0 -173
  76. package/alpha/golang/newPkg/validationutils/storage-interface.go +0 -107
  77. package/alpha/golang/newPkg/validationutils/test-config.go +0 -69
  78. package/alpha/golang/newPkg/validationutils/validation_utils.go +0 -429
  79. package/alpha/golang/page/index.html +0 -6137
  80. package/alpha/golang/page/style.css +0 -204
  81. package/alpha/golang/readme.md +0 -5939
  82. package/alpha/golang/validationpkg/go.mod +0 -3
  83. package/alpha/golang/validationpkg/jsonvalidations/cancel.go +0 -1289
  84. package/alpha/golang/validationpkg/jsonvalidations/confirm.go +0 -9121
  85. package/alpha/golang/validationpkg/jsonvalidations/init.go +0 -4864
  86. package/alpha/golang/validationpkg/jsonvalidations/issue.go +0 -4868
  87. package/alpha/golang/validationpkg/jsonvalidations/on_cancel.go +0 -7111
  88. package/alpha/golang/validationpkg/jsonvalidations/on_confirm.go +0 -8903
  89. package/alpha/golang/validationpkg/jsonvalidations/on_init.go +0 -4445
  90. package/alpha/golang/validationpkg/jsonvalidations/on_issue.go +0 -2828
  91. package/alpha/golang/validationpkg/jsonvalidations/on_issue_status.go +0 -1938
  92. package/alpha/golang/validationpkg/jsonvalidations/on_search.go +0 -3356
  93. package/alpha/golang/validationpkg/jsonvalidations/on_status.go +0 -8129
  94. package/alpha/golang/validationpkg/jsonvalidations/on_track.go +0 -1415
  95. package/alpha/golang/validationpkg/jsonvalidations/on_update.go +0 -8700
  96. package/alpha/golang/validationpkg/jsonvalidations/search.go +0 -3585
  97. package/alpha/golang/validationpkg/jsonvalidations/status.go +0 -1073
  98. package/alpha/golang/validationpkg/jsonvalidations/track.go +0 -1073
  99. package/alpha/golang/validationpkg/jsonvalidations/update.go +0 -3012
  100. package/alpha/golang/validationpkg/main-validator.go +0 -196
  101. package/alpha/golang/validationpkg/main-validator_test.go +0 -165
  102. package/alpha/golang/validationpkg/storageutils/api_save_utils.go +0 -83
  103. package/alpha/golang/validationpkg/storageutils/cancel.go +0 -30
  104. package/alpha/golang/validationpkg/storageutils/confirm.go +0 -30
  105. package/alpha/golang/validationpkg/storageutils/index.go +0 -132
  106. package/alpha/golang/validationpkg/storageutils/init.go +0 -30
  107. package/alpha/golang/validationpkg/storageutils/issue.go +0 -30
  108. package/alpha/golang/validationpkg/storageutils/on_cancel.go +0 -30
  109. package/alpha/golang/validationpkg/storageutils/on_confirm.go +0 -30
  110. package/alpha/golang/validationpkg/storageutils/on_init.go +0 -30
  111. package/alpha/golang/validationpkg/storageutils/on_issue.go +0 -30
  112. package/alpha/golang/validationpkg/storageutils/on_issue_status.go +0 -30
  113. package/alpha/golang/validationpkg/storageutils/on_search.go +0 -30
  114. package/alpha/golang/validationpkg/storageutils/on_status.go +0 -30
  115. package/alpha/golang/validationpkg/storageutils/on_track.go +0 -30
  116. package/alpha/golang/validationpkg/storageutils/on_update.go +0 -30
  117. package/alpha/golang/validationpkg/storageutils/save_utils.go +0 -75
  118. package/alpha/golang/validationpkg/storageutils/search.go +0 -30
  119. package/alpha/golang/validationpkg/storageutils/status.go +0 -30
  120. package/alpha/golang/validationpkg/storageutils/track.go +0 -30
  121. package/alpha/golang/validationpkg/storageutils/update.go +0 -30
  122. package/alpha/golang/validationpkg/validationutils/json_normalizer.go +0 -152
  123. package/alpha/golang/validationpkg/validationutils/json_path_utils.go +0 -173
  124. package/alpha/golang/validationpkg/validationutils/storage-interface.go +0 -107
  125. package/alpha/golang/validationpkg/validationutils/test-config.go +0 -69
  126. package/alpha/golang/validationpkg/validationutils/validation_utils.go +0 -429
  127. /package/alpha/{golang/validPaths.json → validPaths.json} +0 -0
@@ -1,429 +0,0 @@
1
- // Code generated by github.com/ONDC-Official/automation-validation-compiler, DO NOT EDIT.
2
-
3
- package validationutils
4
-
5
- import (
6
- "fmt"
7
- "strconv"
8
- "strings"
9
- "sync"
10
- "time"
11
-
12
- "github.com/dlclark/regexp2"
13
- )
14
-
15
- // toStringSlice converts []interface{} to []string, returns false if any element is not a string
16
- func toStringSlice(operand []interface{}) ([]string, bool) {
17
- result := make([]string, len(operand))
18
- for i, v := range operand {
19
- str, ok := v.(string)
20
- if !ok {
21
- // Try to convert to string
22
- if v == nil {
23
- result[i] = "null"
24
- } else {
25
- result[i] = fmt.Sprintf("%v", v)
26
- }
27
- } else {
28
- result[i] = str
29
- }
30
- }
31
- return result, true
32
- }
33
-
34
- func AreUnique(operand []interface{}) bool {
35
- strs, ok := toStringSlice(operand)
36
- if !ok {
37
- return false
38
- }
39
-
40
- valuesSet := make(map[string]struct{})
41
- for _, v := range strs {
42
- valuesSet[v] = struct{}{}
43
- }
44
- return len(valuesSet) == len(strs)
45
- }
46
-
47
- func ArePresent(operand []interface{}) bool {
48
- strs, ok := toStringSlice(operand)
49
- if !ok {
50
- return false
51
- }
52
- return NoneIn(operand, []interface{}{"null", "undefined"}) && len(strs) > 0
53
- }
54
-
55
- // Lookup interface for abstraction
56
- type lookup interface {
57
- contains(string) bool
58
- isEmpty() bool
59
- }
60
-
61
- // Map-based lookup (O(1))
62
- type mapLookup struct {
63
- items map[string]bool
64
- }
65
-
66
- func (m *mapLookup) contains(item string) bool {
67
- return m.items[item]
68
- }
69
-
70
- func (m *mapLookup) isEmpty() bool {
71
- return len(m.items) == 0
72
- }
73
-
74
- // Slice-based lookup (O(n))
75
- type sliceLookup struct {
76
- items []string
77
- }
78
-
79
- func (s *sliceLookup) contains(item string) bool {
80
- for _, v := range s.items {
81
- if v == item {
82
- return true
83
- }
84
- }
85
- return false
86
- }
87
-
88
- func (s *sliceLookup) isEmpty() bool {
89
- return len(s.items) == 0
90
- }
91
-
92
- // Smart lookup creation - auto-detects and optimizes
93
- func createLookup(right []interface{}) (lookup, bool) {
94
- // Case 1: Check if right contains a single map
95
- if len(right) == 1 {
96
- switch m := right[0].(type) {
97
- case map[string]interface{}:
98
- result := make(map[string]bool, len(m))
99
- for k := range m {
100
- result[k] = true
101
- }
102
- return &mapLookup{items: result}, true
103
- case map[string]bool:
104
- return &mapLookup{items: m}, true
105
- case map[string]string:
106
- result := make(map[string]bool, len(m))
107
- for k := range m {
108
- result[k] = true
109
- }
110
- return &mapLookup{items: result}, true
111
- }
112
- }
113
-
114
- // Case 2: Convert slice to string slice
115
- rightStrs, ok := toStringSlice(right)
116
- if !ok {
117
- return nil, false
118
- }
119
-
120
- // Optimization: Convert large slices to maps for better performance
121
- const threshold = 10
122
- if len(rightStrs) > threshold {
123
- m := make(map[string]bool, len(rightStrs))
124
- for _, v := range rightStrs {
125
- m[v] = true
126
- }
127
- return &mapLookup{items: m}, true
128
- }
129
-
130
- return &sliceLookup{items: rightStrs}, true
131
- }
132
-
133
- // Updated comparison functions
134
- func AllIn(left []interface{}, right []interface{}) bool {
135
- leftStrs, ok1 := toStringSlice(left)
136
- if !ok1 {
137
- return false
138
- }
139
-
140
- rightLookup, ok2 := createLookup(right)
141
- if !ok2 {
142
- return false
143
- }
144
-
145
- if len(leftStrs) == 0 && !rightLookup.isEmpty() {
146
- return false
147
- }
148
-
149
- for _, v := range leftStrs {
150
- if !rightLookup.contains(v) {
151
- return false
152
- }
153
- }
154
- return true
155
- }
156
-
157
- func AnyIn(left []interface{}, right []interface{}) bool {
158
- leftStrs, ok1 := toStringSlice(left)
159
- if !ok1 {
160
- return false
161
- }
162
-
163
- rightLookup, ok2 := createLookup(right)
164
- if !ok2 {
165
- return false
166
- }
167
-
168
- if len(leftStrs) == 0 && !rightLookup.isEmpty() {
169
- return false
170
- }
171
-
172
- for _, v := range leftStrs {
173
- if rightLookup.contains(v) {
174
- return true
175
- }
176
- }
177
- return false
178
- }
179
-
180
- func NoneIn(left []interface{}, right []interface{}) bool {
181
- leftStrs, ok1 := toStringSlice(left)
182
- if !ok1 {
183
- return false
184
- }
185
-
186
- rightLookup, ok2 := createLookup(right)
187
- if !ok2 {
188
- return false
189
- }
190
-
191
- for _, v := range leftStrs {
192
- if rightLookup.contains(v) {
193
- return false
194
- }
195
- }
196
- return true
197
- }
198
- func EqualTo(left []interface{}, right []interface{}) bool {
199
- leftStrs, ok1 := toStringSlice(left)
200
- rightStrs, ok2 := toStringSlice(right)
201
- if !ok1 || !ok2 {
202
- return false
203
- }
204
-
205
- if len(leftStrs) != len(rightStrs) {
206
- return false
207
- }
208
- for i, v := range leftStrs {
209
- if v != rightStrs[i] {
210
- return false
211
- }
212
- }
213
- return true
214
- }
215
-
216
- func GreaterThan(left []interface{}, right []interface{}) bool {
217
- leftStrs, ok1 := toStringSlice(left)
218
- rightStrs, ok2 := toStringSlice(right)
219
- if !ok1 || !ok2 {
220
- return false
221
- }
222
-
223
- areAllISO := func(arr []string) bool {
224
- for _, v := range arr {
225
- if !isISO8601(v) {
226
- return false
227
- }
228
- }
229
- return true
230
- }
231
-
232
- areAllNumbers := func(arr []string) bool {
233
- for _, v := range arr {
234
- if _, err := strconv.ParseFloat(v, 64); err != nil {
235
- return false
236
- }
237
- }
238
- return true
239
- }
240
-
241
- if areAllISO(leftStrs) && areAllISO(rightStrs) {
242
- leftDates := make([]int64, len(leftStrs))
243
- for i, date := range leftStrs {
244
- t, _ := time.Parse(time.RFC3339, date)
245
- leftDates[i] = t.UnixMilli()
246
- }
247
-
248
- rightDates := make([]int64, len(rightStrs))
249
- for i, date := range rightStrs {
250
- t, _ := time.Parse(time.RFC3339, date)
251
- rightDates[i] = t.UnixMilli()
252
- }
253
-
254
- for i, ld := range leftDates {
255
- if i >= len(rightDates) || ld <= rightDates[i] {
256
- if i < len(rightDates) {
257
- return false
258
- }
259
- }
260
- }
261
- return true
262
- } else if areAllNumbers(leftStrs) && areAllNumbers(rightStrs) {
263
- leftNumbers := make([]float64, len(leftStrs))
264
- for i, v := range leftStrs {
265
- leftNumbers[i], _ = strconv.ParseFloat(v, 64)
266
- }
267
-
268
- rightNumbers := make([]float64, len(rightStrs))
269
- for i, v := range rightStrs {
270
- rightNumbers[i], _ = strconv.ParseFloat(v, 64)
271
- }
272
-
273
- for i, ln := range leftNumbers {
274
- if i >= len(rightNumbers) || ln <= rightNumbers[i] {
275
- if i < len(rightNumbers) {
276
- return false
277
- }
278
- }
279
- }
280
- return true
281
- }
282
-
283
- return false
284
- }
285
-
286
- func LessThan(left []interface{}, right []interface{}) bool {
287
- leftStrs, ok1 := toStringSlice(left)
288
- rightStrs, ok2 := toStringSlice(right)
289
- if !ok1 || !ok2 {
290
- return false
291
- }
292
-
293
- areAllISO := func(arr []string) bool {
294
- for _, v := range arr {
295
- if !isISO8601(v) {
296
- return false
297
- }
298
- }
299
- return true
300
- }
301
-
302
- areAllNumbers := func(arr []string) bool {
303
- for _, v := range arr {
304
- if _, err := strconv.ParseFloat(v, 64); err != nil {
305
- return false
306
- }
307
- }
308
- return true
309
- }
310
-
311
- if areAllISO(leftStrs) && areAllISO(rightStrs) {
312
- leftDates := make([]int64, len(leftStrs))
313
- for i, date := range leftStrs {
314
- t, _ := time.Parse(time.RFC3339, date)
315
- leftDates[i] = t.UnixMilli()
316
- }
317
-
318
- rightDates := make([]int64, len(rightStrs))
319
- for i, date := range rightStrs {
320
- t, _ := time.Parse(time.RFC3339, date)
321
- rightDates[i] = t.UnixMilli()
322
- }
323
-
324
- for i, ld := range leftDates {
325
- if i >= len(rightDates) || ld >= rightDates[i] {
326
- if i < len(rightDates) {
327
- return false
328
- }
329
- }
330
- }
331
- return true
332
- } else if areAllNumbers(leftStrs) && areAllNumbers(rightStrs) {
333
- leftNumbers := make([]float64, len(leftStrs))
334
- for i, v := range leftStrs {
335
- leftNumbers[i], _ = strconv.ParseFloat(v, 64)
336
- }
337
-
338
- rightNumbers := make([]float64, len(rightStrs))
339
- for i, v := range rightStrs {
340
- rightNumbers[i], _ = strconv.ParseFloat(v, 64)
341
- }
342
-
343
- for i, ln := range leftNumbers {
344
- if i >= len(rightNumbers) || ln >= rightNumbers[i] {
345
- if i < len(rightNumbers) {
346
- return false
347
- }
348
- }
349
- }
350
- return true
351
- }
352
-
353
- return false
354
- }
355
-
356
- var regexCache sync.Map // cache compiled regexes
357
-
358
- func FollowRegex(left []interface{}, regexArray []interface{}) bool {
359
- leftStrs, ok1 := toStringSlice(left)
360
- regexStrs, ok2 := toStringSlice(regexArray)
361
- if !ok1 || !ok2 {
362
- return false
363
- }
364
-
365
- if len(leftStrs) == 0 && len(regexStrs) != 0 {
366
- return false
367
- }
368
-
369
- for _, regexStr := range regexStrs {
370
- var re *regexp2.Regexp
371
- regexStr = sanitizeRegex(regexStr)
372
- fmt.Printf("Using regex: %s\n", regexStr)
373
- // Check cache first
374
- if cached, ok := regexCache.Load(regexStr); ok {
375
- re = cached.(*regexp2.Regexp)
376
- } else {
377
- compiled, err := regexp2.Compile(regexStr, 0)
378
- if err != nil {
379
- fmt.Printf("Invalid regex '%s': %v\n", regexStr, err)
380
- return false
381
- }
382
- regexCache.Store(regexStr, compiled)
383
- re = compiled
384
- }
385
-
386
- for _, v := range leftStrs {
387
- match, err := re.MatchString(v)
388
- if err != nil || !match {
389
- return false
390
- }
391
- }
392
- }
393
-
394
- return true
395
- }
396
-
397
- // Only fixes escapes that are invalid in regexp2
398
- func sanitizeRegex(regex string) string {
399
- regex = strings.ReplaceAll(regex, `\_`, `_`) // escaped underscore → literal
400
- regex = strings.ReplaceAll(regex, `\-`, `-`) // escaped hyphen → literal
401
- return regex
402
- }
403
-
404
- func isISO8601(str string) bool {
405
- iso8601Regex, err := regexp2.Compile(`^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$`, 0)
406
- if err != nil {
407
- return false
408
- }
409
-
410
- match, err := iso8601Regex.MatchString(str)
411
- if err != nil || !match {
412
- return false
413
- }
414
-
415
- _, err = time.Parse(time.RFC3339, str)
416
- return err == nil
417
- }
418
-
419
- // StringSliceToInterface converts []string to []interface{}
420
- func StringSliceToInterface(strs []string) []interface{} {
421
- result := make([]interface{}, len(strs))
422
- for i, v := range strs {
423
- result[i] = v
424
- }
425
- return result
426
- }
427
-
428
- // UnusedFunction to avoid unused variable errors
429
- func UnusedFunction(item interface{}) {}