ondc-code-generator 0.0.2 → 0.0.4

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 (117) hide show
  1. package/dist/constants/operations.d.ts +6 -0
  2. package/dist/constants/syntax.d.ts +15 -0
  3. package/dist/generator/config-compiler.d.ts +23 -0
  4. package/dist/generator/generators/classes/abstract-generator.d.ts +11 -0
  5. package/dist/generator/generators/documentation/markdown-message-generator.d.ts +2 -0
  6. package/dist/generator/generators/documentation/md-generator.d.ts +9 -0
  7. package/dist/generator/generators/typescript/templates/json-path-utils.d.ts +5 -0
  8. package/dist/generator/generators/typescript/templates/validation-utils.d.ts +21 -0
  9. package/dist/generator/generators/typescript/ts-ast.d.ts +1 -0
  10. package/dist/generator/generators/typescript/ts-generator.d.ts +17 -0
  11. package/dist/generator/validators/abstract-validator.d.ts +17 -0
  12. package/dist/generator/validators/config-validator.d.ts +11 -0
  13. package/dist/generator/validators/session-data-config/session-data-validator.d.ts +9 -0
  14. package/dist/generator/validators/tests-config/sub-validations.d.ts +38 -0
  15. package/dist/generator/validators/tests-config/test-list-validator.d.ts +10 -0
  16. package/dist/generator/validators/tests-config/test-validator.d.ts +7 -0
  17. package/dist/services/return-complier/ast-functions/compile-to-markdown.d.ts +2 -0
  18. package/dist/services/return-complier/ast-functions/semantic-validations.d.ts +2 -0
  19. package/dist/services/return-complier/ast.d.ts +42 -0
  20. package/dist/services/return-complier/combined.d.ts +2 -0
  21. package/dist/services/return-complier/parser.d.ts +14 -0
  22. package/dist/services/return-complier/tokens.d.ts +22 -0
  23. package/dist/services/schema-service.d.ts +6 -0
  24. package/dist/types/build.d.ts +48 -0
  25. package/dist/types/compiler-types.d.ts +3 -0
  26. package/dist/types/config-types.d.ts +21 -0
  27. package/dist/types/error-codes.d.ts +6 -0
  28. package/dist/utils/config-utils/json-schema-utils.d.ts +7 -0
  29. package/dist/utils/config-utils/yaml.d.ts +1 -0
  30. package/dist/utils/fs-utils.d.ts +3 -0
  31. package/dist/utils/general-utils/string-utils.d.ts +27 -0
  32. package/dist/utils/general-utils/test-object-utils.d.ts +2 -0
  33. package/dist/utils/general-utils/validation-utils.d.ts +5 -0
  34. package/dist/utils/json-path-utils/extract-string-paths.d.ts +8 -0
  35. package/dist/utils/json-path-utils/paths.d.ts +9 -0
  36. package/dist/utils/logger.d.ts +3 -0
  37. package/package.json +2 -3
  38. package/generated/L1-validations/api-tests/cancel.ts +0 -569
  39. package/generated/L1-validations/api-tests/confirm.ts +0 -1162
  40. package/generated/L1-validations/api-tests/init.ts +0 -1063
  41. package/generated/L1-validations/api-tests/on_cancel.ts +0 -2069
  42. package/generated/L1-validations/api-tests/on_confirm.ts +0 -2219
  43. package/generated/L1-validations/api-tests/on_init.ts +0 -1949
  44. package/generated/L1-validations/api-tests/on_search.ts +0 -1574
  45. package/generated/L1-validations/api-tests/on_select.ts +0 -1723
  46. package/generated/L1-validations/api-tests/on_status.ts +0 -2221
  47. package/generated/L1-validations/api-tests/on_update.ts +0 -1969
  48. package/generated/L1-validations/api-tests/search.ts +0 -695
  49. package/generated/L1-validations/api-tests/select.ts +0 -994
  50. package/generated/L1-validations/api-tests/status.ts +0 -443
  51. package/generated/L1-validations/api-tests/update.ts +0 -898
  52. package/generated/L1-validations/error.ts +0 -64
  53. package/generated/L1-validations/index.ts +0 -138
  54. package/generated/L1-validations/page/index.html +0 -2118
  55. package/generated/L1-validations/page/style.css +0 -225
  56. package/generated/L1-validations/readme.md +0 -1779
  57. package/generated/L1-validations/types/test-config.ts +0 -27
  58. package/generated/L1-validations/utils/json-path-utils.ts +0 -17
  59. package/generated/L1-validations/utils/validation-utils.ts +0 -116
  60. package/generated-structure/api-tests/search.ts +0 -24
  61. package/generated-structure/types/test-config.ts +0 -21
  62. package/samples/build.yaml +0 -24799
  63. package/samples/output.md +0 -91
  64. package/samples/output.ts +0 -27
  65. package/samples/selections.json +0 -216
  66. package/samples/validation-config.json +0 -3422
  67. package/samples/x-validations.yaml +0 -2893
  68. package/src/constants/operations.ts +0 -19
  69. package/src/constants/syntax.ts +0 -81
  70. package/src/example.ts +0 -25
  71. package/src/generator/config-compiler.ts +0 -122
  72. package/src/generator/generators/classes/abstract-generator.ts +0 -29
  73. package/src/generator/generators/documentation/markdown-message-generator.ts +0 -43
  74. package/src/generator/generators/documentation/md-generator.ts +0 -76
  75. package/src/generator/generators/documentation/templates/index.mustache +0 -36
  76. package/src/generator/generators/documentation/templates/style.css +0 -204
  77. package/src/generator/generators/python/py-generator.ts +0 -0
  78. package/src/generator/generators/typescript/templates/api-test.mustache +0 -7
  79. package/src/generator/generators/typescript/templates/json-path-utils.ts +0 -17
  80. package/src/generator/generators/typescript/templates/schema-template.mustache +0 -18
  81. package/src/generator/generators/typescript/templates/test-config.mustache +0 -28
  82. package/src/generator/generators/typescript/templates/test-object.mustache +0 -20
  83. package/src/generator/generators/typescript/templates/validation-code.mustache +0 -39
  84. package/src/generator/generators/typescript/templates/validation-utils.ts +0 -117
  85. package/src/generator/generators/typescript/ts-ast.ts +0 -72
  86. package/src/generator/generators/typescript/ts-generator.ts +0 -275
  87. package/src/generator/validators/abstract-validator.ts +0 -23
  88. package/src/generator/validators/config-validator.ts +0 -55
  89. package/src/generator/validators/session-data-config/session-data-validator.ts +0 -58
  90. package/src/generator/validators/tests-config/sub-validations.ts +0 -302
  91. package/src/generator/validators/tests-config/test-list-validator.ts +0 -59
  92. package/src/generator/validators/tests-config/test-validator.ts +0 -69
  93. package/src/services/return-complier/ast-functions/compile-to-markdown.ts +0 -152
  94. package/src/services/return-complier/ast-functions/semantic-validations.ts +0 -44
  95. package/src/services/return-complier/ast.ts +0 -147
  96. package/src/services/return-complier/combined.ts +0 -8
  97. package/src/services/return-complier/parser.ts +0 -128
  98. package/src/services/return-complier/tokens.ts +0 -184
  99. package/src/services/schema-service.ts +0 -42
  100. package/src/types/build.ts +0 -51
  101. package/src/types/compiler-types.ts +0 -3
  102. package/src/types/config-types.ts +0 -27
  103. package/src/types/error-codes.ts +0 -6
  104. package/src/utils/config-utils/json-schema-utils.ts +0 -150
  105. package/src/utils/config-utils/yaml.ts +0 -17
  106. package/src/utils/fs-utils.ts +0 -32
  107. package/src/utils/general-utils/string-utils.ts +0 -76
  108. package/src/utils/general-utils/test-object-utils.ts +0 -14
  109. package/src/utils/general-utils/validation-utils.ts +0 -30
  110. package/src/utils/json-path-utils/extract-string-paths.ts +0 -139
  111. package/src/utils/json-path-utils/paths.ts +0 -44
  112. package/src/utils/logger.ts +0 -53
  113. package/tsconfig.json +0 -17
  114. /package/{generated-structure/error.ts → dist/example.d.ts} +0 -0
  115. /package/{generated-structure/index.ts → dist/generator/generators/python/py-generator.d.ts} +0 -0
  116. /package/{src/index.ts → dist/index.d.ts} +0 -0
  117. /package/{src/types/general-types.ts → dist/types/general-types.d.ts} +0 -0
@@ -1,443 +0,0 @@
1
- import payloadUtils from "../utils/json-path-utils";
2
- import validations from "../utils/validation-utils";
3
- import {
4
- testFunctionArray,
5
- validationInput,
6
- validationOutput,
7
- } from "../types/test-config";
8
-
9
- export default function status(input: validationInput): validationOutput {
10
- const scope = payloadUtils.getJsonPath(input.payload, "$");
11
- let subResults: validationOutput = [];
12
- let valid = true;
13
- for (const testObj of scope) {
14
- testObj._EXTERNAL = input.externalData;
15
-
16
- function Attri_Required_1_CONTEXT_TIMESTAMP(
17
- input: validationInput,
18
- ): validationOutput {
19
- const scope = payloadUtils.getJsonPath(input.payload, "$");
20
- let subResults: validationOutput = [];
21
- let valid = true;
22
- for (const testObj of scope) {
23
- testObj._EXTERNAL = input.externalData;
24
- const attr = payloadUtils.getJsonPath(
25
- testObj,
26
- "$.context.timestamp",
27
- );
28
-
29
- const validate = validations.arePresent(attr);
30
-
31
- if (!validate) {
32
- return [
33
- {
34
- valid: false,
35
- code: 30000,
36
- description: `- **condition Attri_Required_1_CONTEXT_TIMESTAMP**: $.context.timestamp must be present in the payload`,
37
- },
38
- ];
39
- }
40
-
41
- delete testObj._EXTERNAL;
42
- }
43
- return [{ valid: valid, code: 200 }, ...subResults];
44
- }
45
- function Attri_Required_2_CONTEXT_BAP_ID(
46
- input: validationInput,
47
- ): validationOutput {
48
- const scope = payloadUtils.getJsonPath(input.payload, "$");
49
- let subResults: validationOutput = [];
50
- let valid = true;
51
- for (const testObj of scope) {
52
- testObj._EXTERNAL = input.externalData;
53
- const attr = payloadUtils.getJsonPath(
54
- testObj,
55
- "$.context.bap_id",
56
- );
57
-
58
- const validate = validations.arePresent(attr);
59
-
60
- if (!validate) {
61
- return [
62
- {
63
- valid: false,
64
- code: 30000,
65
- description: `- **condition Attri_Required_2_CONTEXT_BAP_ID**: $.context.bap_id must be present in the payload`,
66
- },
67
- ];
68
- }
69
-
70
- delete testObj._EXTERNAL;
71
- }
72
- return [{ valid: valid, code: 200 }, ...subResults];
73
- }
74
- function Attri_Required_3_CONTEXT_TRANSACTION_ID(
75
- input: validationInput,
76
- ): validationOutput {
77
- const scope = payloadUtils.getJsonPath(input.payload, "$");
78
- let subResults: validationOutput = [];
79
- let valid = true;
80
- for (const testObj of scope) {
81
- testObj._EXTERNAL = input.externalData;
82
- const attr = payloadUtils.getJsonPath(
83
- testObj,
84
- "$.context.transaction_id",
85
- );
86
-
87
- const validate = validations.arePresent(attr);
88
-
89
- if (!validate) {
90
- return [
91
- {
92
- valid: false,
93
- code: 30000,
94
- description: `- **condition Attri_Required_3_CONTEXT_TRANSACTION_ID**: $.context.transaction_id must be present in the payload`,
95
- },
96
- ];
97
- }
98
-
99
- delete testObj._EXTERNAL;
100
- }
101
- return [{ valid: valid, code: 200 }, ...subResults];
102
- }
103
- function Attri_Required_4_CONTEXT_MESSAGE_ID(
104
- input: validationInput,
105
- ): validationOutput {
106
- const scope = payloadUtils.getJsonPath(input.payload, "$");
107
- let subResults: validationOutput = [];
108
- let valid = true;
109
- for (const testObj of scope) {
110
- testObj._EXTERNAL = input.externalData;
111
- const attr = payloadUtils.getJsonPath(
112
- testObj,
113
- "$.context.message_id",
114
- );
115
-
116
- const validate = validations.arePresent(attr);
117
-
118
- if (!validate) {
119
- return [
120
- {
121
- valid: false,
122
- code: 30000,
123
- description: `- **condition Attri_Required_4_CONTEXT_MESSAGE_ID**: $.context.message_id must be present in the payload`,
124
- },
125
- ];
126
- }
127
-
128
- delete testObj._EXTERNAL;
129
- }
130
- return [{ valid: valid, code: 200 }, ...subResults];
131
- }
132
- function Attri_Required_5_CONTEXT_VERSION(
133
- input: validationInput,
134
- ): validationOutput {
135
- const scope = payloadUtils.getJsonPath(input.payload, "$");
136
- let subResults: validationOutput = [];
137
- let valid = true;
138
- for (const testObj of scope) {
139
- testObj._EXTERNAL = input.externalData;
140
- const attr = payloadUtils.getJsonPath(
141
- testObj,
142
- "$.context.version",
143
- );
144
-
145
- const validate = validations.arePresent(attr);
146
-
147
- if (!validate) {
148
- return [
149
- {
150
- valid: false,
151
- code: 30000,
152
- description: `- **condition Attri_Required_5_CONTEXT_VERSION**: $.context.version must be present in the payload`,
153
- },
154
- ];
155
- }
156
-
157
- delete testObj._EXTERNAL;
158
- }
159
- return [{ valid: valid, code: 200 }, ...subResults];
160
- }
161
- function Attri_Required_6_CONTEXT_BAP_URI(
162
- input: validationInput,
163
- ): validationOutput {
164
- const scope = payloadUtils.getJsonPath(input.payload, "$");
165
- let subResults: validationOutput = [];
166
- let valid = true;
167
- for (const testObj of scope) {
168
- testObj._EXTERNAL = input.externalData;
169
- const attr = payloadUtils.getJsonPath(
170
- testObj,
171
- "$.context.bap_uri",
172
- );
173
-
174
- const validate = validations.arePresent(attr);
175
-
176
- if (!validate) {
177
- return [
178
- {
179
- valid: false,
180
- code: 30000,
181
- description: `- **condition Attri_Required_6_CONTEXT_BAP_URI**: $.context.bap_uri must be present in the payload`,
182
- },
183
- ];
184
- }
185
-
186
- delete testObj._EXTERNAL;
187
- }
188
- return [{ valid: valid, code: 200 }, ...subResults];
189
- }
190
- function Attri_Required_7_CONTEXT_TTL(
191
- input: validationInput,
192
- ): validationOutput {
193
- const scope = payloadUtils.getJsonPath(input.payload, "$");
194
- let subResults: validationOutput = [];
195
- let valid = true;
196
- for (const testObj of scope) {
197
- testObj._EXTERNAL = input.externalData;
198
- const attr = payloadUtils.getJsonPath(testObj, "$.context.ttl");
199
-
200
- const validate = validations.arePresent(attr);
201
-
202
- if (!validate) {
203
- return [
204
- {
205
- valid: false,
206
- code: 30000,
207
- description: `- **condition Attri_Required_7_CONTEXT_TTL**: $.context.ttl must be present in the payload`,
208
- },
209
- ];
210
- }
211
-
212
- delete testObj._EXTERNAL;
213
- }
214
- return [{ valid: valid, code: 200 }, ...subResults];
215
- }
216
- function Attri_Required_8_CONTEXT_BPP_ID(
217
- input: validationInput,
218
- ): validationOutput {
219
- const scope = payloadUtils.getJsonPath(input.payload, "$");
220
- let subResults: validationOutput = [];
221
- let valid = true;
222
- for (const testObj of scope) {
223
- testObj._EXTERNAL = input.externalData;
224
- const attr = payloadUtils.getJsonPath(
225
- testObj,
226
- "$.context.bpp_id",
227
- );
228
-
229
- const validate = validations.arePresent(attr);
230
-
231
- if (!validate) {
232
- return [
233
- {
234
- valid: false,
235
- code: 30000,
236
- description: `- **condition Attri_Required_8_CONTEXT_BPP_ID**: $.context.bpp_id must be present in the payload`,
237
- },
238
- ];
239
- }
240
-
241
- delete testObj._EXTERNAL;
242
- }
243
- return [{ valid: valid, code: 200 }, ...subResults];
244
- }
245
- function Attri_Required_9_CONTEXT_BPP_URI(
246
- input: validationInput,
247
- ): validationOutput {
248
- const scope = payloadUtils.getJsonPath(input.payload, "$");
249
- let subResults: validationOutput = [];
250
- let valid = true;
251
- for (const testObj of scope) {
252
- testObj._EXTERNAL = input.externalData;
253
- const attr = payloadUtils.getJsonPath(
254
- testObj,
255
- "$.context.bpp_uri",
256
- );
257
-
258
- const validate = validations.arePresent(attr);
259
-
260
- if (!validate) {
261
- return [
262
- {
263
- valid: false,
264
- code: 30000,
265
- description: `- **condition Attri_Required_9_CONTEXT_BPP_URI**: $.context.bpp_uri must be present in the payload`,
266
- },
267
- ];
268
- }
269
-
270
- delete testObj._EXTERNAL;
271
- }
272
- return [{ valid: valid, code: 200 }, ...subResults];
273
- }
274
- function Enum_Required_10_CONTEXT_ACTION(
275
- input: validationInput,
276
- ): validationOutput {
277
- const scope = payloadUtils.getJsonPath(input.payload, "$");
278
- let subResults: validationOutput = [];
279
- let valid = true;
280
- for (const testObj of scope) {
281
- testObj._EXTERNAL = input.externalData;
282
- const enumList = ["status"];
283
- const enumPath = payloadUtils.getJsonPath(
284
- testObj,
285
- "$.context.action",
286
- );
287
-
288
- const validate =
289
- validations.allIn(enumPath, enumList) &&
290
- validations.arePresent(enumPath);
291
-
292
- if (!validate) {
293
- return [
294
- {
295
- valid: false,
296
- code: 30000,
297
- description: `- **condition Enum_Required_10_CONTEXT_ACTION**: all of the following sub conditions must be met:
298
-
299
- - **condition Enum_Required_10_CONTEXT_ACTION.1**: every element of $.context.action must be in ["status"]
300
- - **condition Enum_Required_10_CONTEXT_ACTION.2**: $.context.action must be present in the payload`,
301
- },
302
- ];
303
- }
304
-
305
- delete testObj._EXTERNAL;
306
- }
307
- return [{ valid: valid, code: 200 }, ...subResults];
308
- }
309
- function Enum_Required_11_COUNTRY_CODE(
310
- input: validationInput,
311
- ): validationOutput {
312
- const scope = payloadUtils.getJsonPath(input.payload, "$");
313
- let subResults: validationOutput = [];
314
- let valid = true;
315
- for (const testObj of scope) {
316
- testObj._EXTERNAL = input.externalData;
317
- const enumList = ["IND"];
318
- const enumPath = payloadUtils.getJsonPath(
319
- testObj,
320
- "$.context.location.country.code",
321
- );
322
-
323
- const validate =
324
- validations.allIn(enumPath, enumList) &&
325
- validations.arePresent(enumPath);
326
-
327
- if (!validate) {
328
- return [
329
- {
330
- valid: false,
331
- code: 30000,
332
- description: `- **condition Enum_Required_11_COUNTRY_CODE**: all of the following sub conditions must be met:
333
-
334
- - **condition Enum_Required_11_COUNTRY_CODE.1**: every element of $.context.location.country.code must be in ["IND"]
335
- - **condition Enum_Required_11_COUNTRY_CODE.2**: $.context.location.country.code must be present in the payload`,
336
- },
337
- ];
338
- }
339
-
340
- delete testObj._EXTERNAL;
341
- }
342
- return [{ valid: valid, code: 200 }, ...subResults];
343
- }
344
- function Enum_Required_12_CITY_CODE(
345
- input: validationInput,
346
- ): validationOutput {
347
- const scope = payloadUtils.getJsonPath(input.payload, "$");
348
- let subResults: validationOutput = [];
349
- let valid = true;
350
- for (const testObj of scope) {
351
- testObj._EXTERNAL = input.externalData;
352
- const enumPath = payloadUtils.getJsonPath(
353
- testObj,
354
- "$.context.location.city.code",
355
- );
356
-
357
- const validate = validations.arePresent(enumPath);
358
-
359
- if (!validate) {
360
- return [
361
- {
362
- valid: false,
363
- code: 30000,
364
- description: `- **condition Enum_Required_12_CITY_CODE**: $.context.location.city.code must be present in the payload`,
365
- },
366
- ];
367
- }
368
-
369
- delete testObj._EXTERNAL;
370
- }
371
- return [{ valid: valid, code: 200 }, ...subResults];
372
- }
373
- function Enum_Required_13_CONTEXT_DOMAIN(
374
- input: validationInput,
375
- ): validationOutput {
376
- const scope = payloadUtils.getJsonPath(input.payload, "$");
377
- let subResults: validationOutput = [];
378
- let valid = true;
379
- for (const testObj of scope) {
380
- testObj._EXTERNAL = input.externalData;
381
- const enumList = ["ONDC:TRV11"];
382
- const enumPath = payloadUtils.getJsonPath(
383
- testObj,
384
- "$.context.domain",
385
- );
386
-
387
- const validate =
388
- validations.allIn(enumPath, enumList) &&
389
- validations.arePresent(enumPath);
390
-
391
- if (!validate) {
392
- return [
393
- {
394
- valid: false,
395
- code: 30000,
396
- description: `- **condition Enum_Required_13_CONTEXT_DOMAIN**: all of the following sub conditions must be met:
397
-
398
- - **condition Enum_Required_13_CONTEXT_DOMAIN.1**: every element of $.context.domain must be in ["ONDC:TRV11"]
399
- - **condition Enum_Required_13_CONTEXT_DOMAIN.2**: $.context.domain must be present in the payload`,
400
- },
401
- ];
402
- }
403
-
404
- delete testObj._EXTERNAL;
405
- }
406
- return [{ valid: valid, code: 200 }, ...subResults];
407
- }
408
-
409
- const testFunctions: testFunctionArray = [
410
- Attri_Required_1_CONTEXT_TIMESTAMP,
411
- Attri_Required_2_CONTEXT_BAP_ID,
412
- Attri_Required_3_CONTEXT_TRANSACTION_ID,
413
- Attri_Required_4_CONTEXT_MESSAGE_ID,
414
- Attri_Required_5_CONTEXT_VERSION,
415
- Attri_Required_6_CONTEXT_BAP_URI,
416
- Attri_Required_7_CONTEXT_TTL,
417
- Attri_Required_8_CONTEXT_BPP_ID,
418
- Attri_Required_9_CONTEXT_BPP_URI,
419
- Enum_Required_10_CONTEXT_ACTION,
420
- Enum_Required_11_COUNTRY_CODE,
421
- Enum_Required_12_CITY_CODE,
422
- Enum_Required_13_CONTEXT_DOMAIN,
423
- ];
424
-
425
- let invalidResults: validationOutput = [];
426
- for (const fn of testFunctions) {
427
- const subResult = fn(input);
428
- // .filter(r => !r.valid);
429
- invalidResults = [...invalidResults, ...subResult];
430
- if (!input.config.runAllValidations && invalidResults.length > 0) {
431
- return invalidResults;
432
- }
433
- }
434
- if (invalidResults.length > 0) {
435
- // return invalidResults;
436
- subResults = invalidResults;
437
- valid = subResults.every((r) => r.valid);
438
- }
439
-
440
- delete testObj._EXTERNAL;
441
- }
442
- return [{ valid: valid, code: 200 }, ...subResults];
443
- }