ondc-code-generator 0.0.1

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 (139) hide show
  1. package/.idea/code-generator.iml +12 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/vcs.xml +6 -0
  4. package/LICENSE +21 -0
  5. package/README.md +0 -0
  6. package/custom-loader.js +4 -0
  7. package/dist/Generator/config-compiler.js +53 -0
  8. package/dist/Generator/config-validator.js +21 -0
  9. package/dist/Generator/generators/classes/abstract-generator.js +16 -0
  10. package/dist/Generator/generators/documentation/markdown-message-generator.js +37 -0
  11. package/dist/Generator/generators/documentation/md-generator.js +57 -0
  12. package/dist/Generator/generators/markdown-message-generator.js +25 -0
  13. package/dist/Generator/generators/python/py-generator.js +1 -0
  14. package/dist/Generator/generators/typescript/templates/json-path-utils.js +15 -0
  15. package/dist/Generator/generators/typescript/templates/validation-utils.js +91 -0
  16. package/dist/Generator/generators/typescript/ts-ast.js +50 -0
  17. package/dist/Generator/generators/typescript/ts-generator.js +184 -0
  18. package/dist/Generator/pipline.js +1 -0
  19. package/dist/Generator/validators/abstract-validator.js +6 -0
  20. package/dist/Generator/validators/config-validator.js +32 -0
  21. package/dist/Generator/validators/session-data-config/session-data-validator.js +35 -0
  22. package/dist/Generator/validators/tests-config/sub-validations.js +194 -0
  23. package/dist/Generator/validators/tests-config/test-list-validator.js +36 -0
  24. package/dist/Generator/validators/tests-config/test-validator.js +24 -0
  25. package/dist/Generator/validators/validation-error.js +9 -0
  26. package/dist/constants/operations.js +17 -0
  27. package/dist/constants/syntax.js +75 -0
  28. package/dist/index.js +39 -0
  29. package/dist/services/rename-later/main.js +1 -0
  30. package/dist/services/rename-later/parser.js +22 -0
  31. package/dist/services/rename-later/tokens.js +32 -0
  32. package/dist/services/rename-later/tokens1.js +33 -0
  33. package/dist/services/return-complier/ast-functions/compile-to-markdown.js +66 -0
  34. package/dist/services/return-complier/ast-functions/semantic-validations.js +30 -0
  35. package/dist/services/return-complier/ast.js +92 -0
  36. package/dist/services/return-complier/combined.js +7 -0
  37. package/dist/services/return-complier/parser.js +95 -0
  38. package/dist/services/return-complier/tokens.js +144 -0
  39. package/dist/services/schema-service.js +29 -0
  40. package/dist/types/build.js +1 -0
  41. package/dist/types/compiler-types.js +4 -0
  42. package/dist/types/config-types.js +1 -0
  43. package/dist/types/error-codes.js +1 -0
  44. package/dist/types/general-types.js +1 -0
  45. package/dist/utils/config-utils/json-schema-utils.js +91 -0
  46. package/dist/utils/config-utils/yaml.js +16 -0
  47. package/dist/utils/file-system.js +1 -0
  48. package/dist/utils/fs-utils.js +20 -0
  49. package/dist/utils/general-utils/string-utils.js +56 -0
  50. package/dist/utils/general-utils/test-object-utils.js +12 -0
  51. package/dist/utils/general-utils/validation-utils.js +21 -0
  52. package/dist/utils/json-path-utils/extract-string-paths.js +113 -0
  53. package/dist/utils/json-path-utils/paths.js +46 -0
  54. package/dist/utils/logger.js +41 -0
  55. package/docs/error-gen.md +33 -0
  56. package/docs/return-grammer.md +23 -0
  57. package/docs/sampleConfig.md +39 -0
  58. package/generated/L1-validations/api-tests/cancel.ts +569 -0
  59. package/generated/L1-validations/api-tests/confirm.ts +1162 -0
  60. package/generated/L1-validations/api-tests/init.ts +1063 -0
  61. package/generated/L1-validations/api-tests/on_cancel.ts +2069 -0
  62. package/generated/L1-validations/api-tests/on_confirm.ts +2219 -0
  63. package/generated/L1-validations/api-tests/on_init.ts +1949 -0
  64. package/generated/L1-validations/api-tests/on_search.ts +1574 -0
  65. package/generated/L1-validations/api-tests/on_select.ts +1723 -0
  66. package/generated/L1-validations/api-tests/on_status.ts +2221 -0
  67. package/generated/L1-validations/api-tests/on_update.ts +1969 -0
  68. package/generated/L1-validations/api-tests/search.ts +695 -0
  69. package/generated/L1-validations/api-tests/select.ts +994 -0
  70. package/generated/L1-validations/api-tests/status.ts +443 -0
  71. package/generated/L1-validations/api-tests/update.ts +898 -0
  72. package/generated/L1-validations/error.ts +64 -0
  73. package/generated/L1-validations/index.ts +138 -0
  74. package/generated/L1-validations/page/index.html +2118 -0
  75. package/generated/L1-validations/page/style.css +225 -0
  76. package/generated/L1-validations/readme.md +1779 -0
  77. package/generated/L1-validations/types/test-config.ts +27 -0
  78. package/generated/L1-validations/utils/json-path-utils.ts +17 -0
  79. package/generated/L1-validations/utils/validation-utils.ts +116 -0
  80. package/generated-structure/api-tests/search.ts +24 -0
  81. package/generated-structure/error.ts +0 -0
  82. package/generated-structure/index.ts +0 -0
  83. package/generated-structure/types/test-config.ts +21 -0
  84. package/nodemon.json +5 -0
  85. package/package.json +40 -0
  86. package/samples/build.yaml +24799 -0
  87. package/samples/output.md +91 -0
  88. package/samples/output.ts +27 -0
  89. package/samples/selections.json +216 -0
  90. package/samples/validation-config.json +3422 -0
  91. package/samples/x-validations.yaml +2893 -0
  92. package/src/constants/operations.ts +19 -0
  93. package/src/constants/syntax.ts +81 -0
  94. package/src/example.ts +25 -0
  95. package/src/generator/config-compiler.ts +122 -0
  96. package/src/generator/generators/classes/abstract-generator.ts +29 -0
  97. package/src/generator/generators/documentation/markdown-message-generator.ts +43 -0
  98. package/src/generator/generators/documentation/md-generator.ts +76 -0
  99. package/src/generator/generators/documentation/templates/index.mustache +36 -0
  100. package/src/generator/generators/documentation/templates/style.css +204 -0
  101. package/src/generator/generators/python/py-generator.ts +0 -0
  102. package/src/generator/generators/typescript/templates/api-test.mustache +7 -0
  103. package/src/generator/generators/typescript/templates/json-path-utils.ts +17 -0
  104. package/src/generator/generators/typescript/templates/schema-template.mustache +18 -0
  105. package/src/generator/generators/typescript/templates/test-config.mustache +28 -0
  106. package/src/generator/generators/typescript/templates/test-object.mustache +20 -0
  107. package/src/generator/generators/typescript/templates/validation-code.mustache +39 -0
  108. package/src/generator/generators/typescript/templates/validation-utils.ts +117 -0
  109. package/src/generator/generators/typescript/ts-ast.ts +72 -0
  110. package/src/generator/generators/typescript/ts-generator.ts +275 -0
  111. package/src/generator/validators/abstract-validator.ts +23 -0
  112. package/src/generator/validators/config-validator.ts +55 -0
  113. package/src/generator/validators/session-data-config/session-data-validator.ts +58 -0
  114. package/src/generator/validators/tests-config/sub-validations.ts +302 -0
  115. package/src/generator/validators/tests-config/test-list-validator.ts +59 -0
  116. package/src/generator/validators/tests-config/test-validator.ts +69 -0
  117. package/src/index.ts +2 -0
  118. package/src/services/return-complier/ast-functions/compile-to-markdown.ts +152 -0
  119. package/src/services/return-complier/ast-functions/semantic-validations.ts +44 -0
  120. package/src/services/return-complier/ast.ts +147 -0
  121. package/src/services/return-complier/combined.ts +8 -0
  122. package/src/services/return-complier/parser.ts +128 -0
  123. package/src/services/return-complier/tokens.ts +184 -0
  124. package/src/services/schema-service.ts +42 -0
  125. package/src/types/build.ts +51 -0
  126. package/src/types/compiler-types.ts +3 -0
  127. package/src/types/config-types.ts +27 -0
  128. package/src/types/error-codes.ts +6 -0
  129. package/src/types/general-types.ts +2 -0
  130. package/src/utils/config-utils/json-schema-utils.ts +150 -0
  131. package/src/utils/config-utils/yaml.ts +17 -0
  132. package/src/utils/fs-utils.ts +32 -0
  133. package/src/utils/general-utils/string-utils.ts +76 -0
  134. package/src/utils/general-utils/test-object-utils.ts +14 -0
  135. package/src/utils/general-utils/validation-utils.ts +30 -0
  136. package/src/utils/json-path-utils/extract-string-paths.ts +139 -0
  137. package/src/utils/json-path-utils/paths.ts +44 -0
  138. package/src/utils/logger.ts +53 -0
  139. package/tsconfig.json +17 -0
@@ -0,0 +1,64 @@
1
+ const errors = [
2
+ { code: 30001, message: "Internal Error Occured" },
3
+ { code: 30008, message: "The provided city cannot be serviced" },
4
+ { code: 50001, message: "Cancellation not possible for the selected item" },
5
+ {
6
+ code: 91201,
7
+ message: "To & from location not serviceable by Seller application",
8
+ },
9
+ {
10
+ code: 91202,
11
+ message: "Origin/To station not operational or unavailable",
12
+ },
13
+ {
14
+ code: 91203,
15
+ message: "Destination/From station not operational or unavailable",
16
+ },
17
+ { code: 91204, message: "Maximum order qty exceeded" },
18
+ {
19
+ code: 91205,
20
+ message: "Tracking not enabled for any fulfillment in the order",
21
+ },
22
+ {
23
+ code: 91206,
24
+ message: "Service temporarily unavailable from seller side",
25
+ },
26
+ { code: 91207, message: "Payment transaction failed" },
27
+ {
28
+ code: 91208,
29
+ message: "Ticketing not allowed during un-operational hours",
30
+ },
31
+ { code: 91209, message: "Unable to retrieve ticket details" },
32
+ { code: 91210, message: "Unable to retrieve station list and data" },
33
+ {
34
+ code: 91211,
35
+ message: "Cannot fetch fare details for the selected route",
36
+ },
37
+ { code: 91212, message: "Cannot process the transaction" },
38
+ {
39
+ code: 91213,
40
+ message: "The action for the transaction has been already processed",
41
+ },
42
+ {
43
+ code: 91214,
44
+ message:
45
+ "The fare collected does not match with the actual fare of the selected item",
46
+ },
47
+ { code: 91215, message: "No item found for the given item_id" },
48
+ {
49
+ code: 20006,
50
+ message: "Invalid response does not meet API contract specifications",
51
+ },
52
+ {
53
+ code: 30000,
54
+ message: "Invalid request does not meet API contract specifications",
55
+ },
56
+ ];
57
+
58
+ export function getError(code: number) {
59
+ const error = errors.find((error) => error.code === code);
60
+ if (!error) {
61
+ throw new Error(`Error code ${code} not found`);
62
+ }
63
+ return error;
64
+ }
@@ -0,0 +1,138 @@
1
+ import search from "./api-tests/search";
2
+ import select from "./api-tests/select";
3
+ import init from "./api-tests/init";
4
+ import confirm from "./api-tests/confirm";
5
+ import status from "./api-tests/status";
6
+ import cancel from "./api-tests/cancel";
7
+ import update from "./api-tests/update";
8
+ import on_search from "./api-tests/on_search";
9
+ import on_select from "./api-tests/on_select";
10
+ import on_init from "./api-tests/on_init";
11
+ import on_confirm from "./api-tests/on_confirm";
12
+ import on_cancel from "./api-tests/on_cancel";
13
+ import on_update from "./api-tests/on_update";
14
+ import on_status from "./api-tests/on_status";
15
+
16
+ export function performL1Validations(
17
+ action: string,
18
+ payload: any,
19
+ allErrors = false,
20
+ externalData = {},
21
+ ) {
22
+ switch (action) {
23
+ case "search":
24
+ return search({
25
+ payload: payload,
26
+ externalData: externalData,
27
+ config: {
28
+ runAllValidations: allErrors,
29
+ },
30
+ });
31
+ case "select":
32
+ return select({
33
+ payload: payload,
34
+ externalData: externalData,
35
+ config: {
36
+ runAllValidations: allErrors,
37
+ },
38
+ });
39
+ case "init":
40
+ return init({
41
+ payload: payload,
42
+ externalData: externalData,
43
+ config: {
44
+ runAllValidations: allErrors,
45
+ },
46
+ });
47
+ case "confirm":
48
+ return confirm({
49
+ payload: payload,
50
+ externalData: externalData,
51
+ config: {
52
+ runAllValidations: allErrors,
53
+ },
54
+ });
55
+ case "status":
56
+ return status({
57
+ payload: payload,
58
+ externalData: externalData,
59
+ config: {
60
+ runAllValidations: allErrors,
61
+ },
62
+ });
63
+ case "cancel":
64
+ return cancel({
65
+ payload: payload,
66
+ externalData: externalData,
67
+ config: {
68
+ runAllValidations: allErrors,
69
+ },
70
+ });
71
+ case "update":
72
+ return update({
73
+ payload: payload,
74
+ externalData: externalData,
75
+ config: {
76
+ runAllValidations: allErrors,
77
+ },
78
+ });
79
+ case "on_search":
80
+ return on_search({
81
+ payload: payload,
82
+ externalData: externalData,
83
+ config: {
84
+ runAllValidations: allErrors,
85
+ },
86
+ });
87
+ case "on_select":
88
+ return on_select({
89
+ payload: payload,
90
+ externalData: externalData,
91
+ config: {
92
+ runAllValidations: allErrors,
93
+ },
94
+ });
95
+ case "on_init":
96
+ return on_init({
97
+ payload: payload,
98
+ externalData: externalData,
99
+ config: {
100
+ runAllValidations: allErrors,
101
+ },
102
+ });
103
+ case "on_confirm":
104
+ return on_confirm({
105
+ payload: payload,
106
+ externalData: externalData,
107
+ config: {
108
+ runAllValidations: allErrors,
109
+ },
110
+ });
111
+ case "on_cancel":
112
+ return on_cancel({
113
+ payload: payload,
114
+ externalData: externalData,
115
+ config: {
116
+ runAllValidations: allErrors,
117
+ },
118
+ });
119
+ case "on_update":
120
+ return on_update({
121
+ payload: payload,
122
+ externalData: externalData,
123
+ config: {
124
+ runAllValidations: allErrors,
125
+ },
126
+ });
127
+ case "on_status":
128
+ return on_status({
129
+ payload: payload,
130
+ externalData: externalData,
131
+ config: {
132
+ runAllValidations: allErrors,
133
+ },
134
+ });
135
+ default:
136
+ throw new Error("Action not found");
137
+ }
138
+ }