eddy 0.1.0 → 0.3.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 (309) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +103 -37
  3. data/.solargraph.yml +4 -0
  4. data/.vscode/settings.json +17 -0
  5. data/.yardopts +2 -2
  6. data/CHANGELOG.md +50 -0
  7. data/Gemfile.lock +21 -7
  8. data/README.md +32 -3
  9. data/Rakefile +1 -10
  10. data/data/004010/code-lists/100.tsv +164 -0
  11. data/data/004010/code-lists/156.tsv +52 -0
  12. data/data/004010/code-lists/26.tsv +499 -0
  13. data/data/004010/code-lists/etc/100-fancy-definitions.tsv +164 -0
  14. data/data/004010/code-lists/etc/100-with-funds-codes.tsv +180 -0
  15. data/data/004010/code-lists/etc/26-alpha2.tsv +250 -0
  16. data/data/004010/code-lists/etc/26-alpha3.tsv +250 -0
  17. data/data/004010/elements-short.tsv +1405 -0
  18. data/data/004010/elements.tsv +3 -3
  19. data/data/004010/segments.tsv +1009 -1003
  20. data/data/004010/segments/ack.segment.yml +15 -0
  21. data/data/004010/segments/bak.segment.yml +9 -0
  22. data/data/004010/segments/beg.segment.yml +17 -0
  23. data/data/004010/segments/big.segment.yml +10 -0
  24. data/data/004010/segments/bsn.segment.yml +10 -0
  25. data/data/004010/segments/cad.segment.yml +14 -0
  26. data/data/004010/segments/ctp.segment.yml +19 -0
  27. data/data/004010/segments/ctt.segment.yml +13 -0
  28. data/data/004010/segments/dtm.segment.yml +7 -0
  29. data/data/004010/segments/envelope/ge.segment.yml +7 -0
  30. data/data/004010/segments/envelope/gs.segment.yml +13 -0
  31. data/data/004010/segments/envelope/iea.segment.yml +8 -0
  32. data/data/004010/segments/envelope/isa.segment.yml +22 -0
  33. data/data/004010/segments/envelope/se.segment.yml +7 -0
  34. data/data/004010/segments/envelope/st.segment.yml +12 -0
  35. data/data/004010/segments/hl.segment.yml +9 -0
  36. data/data/004010/segments/it1.segment.yml +20 -0
  37. data/data/004010/segments/lin.segment.yml +10 -0
  38. data/data/004010/segments/loop/hl.segment.yml +8 -0
  39. data/data/004010/segments/man.segment.yml +7 -0
  40. data/data/004010/segments/n1.segment.yml +9 -0
  41. data/data/004010/segments/n2.segment.yml +7 -0
  42. data/data/004010/segments/n3.segment.yml +6 -0
  43. data/data/004010/segments/n4.segment.yml +9 -0
  44. data/data/004010/segments/pid.segment.yml +10 -0
  45. data/data/004010/segments/po1.segment.yml +14 -0
  46. data/data/004010/segments/prf.segment.yml +9 -0
  47. data/data/004010/segments/ref.segment.yml +7 -0
  48. data/data/004010/segments/sac.segment.yml +20 -0
  49. data/data/004010/segments/sln.segment.yml +12 -0
  50. data/data/004010/segments/sn1.segment.yml +11 -0
  51. data/data/004010/segments/td1.segment.yml +13 -0
  52. data/data/004010/segments/td5.segment.yml +11 -0
  53. data/data/004010/segments/tds.segment.yml +10 -0
  54. data/data/schema/element_summary.json +60 -0
  55. data/data/schema/loop_summary.json +49 -0
  56. data/data/schema/segment_summary.json +66 -0
  57. data/data/schema/src/element_summary.schema.yml +73 -0
  58. data/data/schema/src/loop_summary.schema.yml +50 -0
  59. data/data/schema/src/segment_summary.schema.yml +59 -0
  60. data/data/schema/src/transaction_set_summary.schema.yml +27 -0
  61. data/data/schema/transaction_set_summary.json +33 -0
  62. data/data/sources.md +114 -145
  63. data/eddy.gemspec +6 -3
  64. data/exe/eddy +14 -0
  65. data/lib/definitions/elements/generated/1005.hierarchical_structure_code.rb +98 -0
  66. data/lib/definitions/elements/generated/1019.invoice_type_code.rb +40 -0
  67. data/lib/definitions/elements/generated/103.packaging_code.rb +29 -0
  68. data/lib/definitions/elements/generated/1166.contract_type_code.rb +87 -0
  69. data/lib/definitions/elements/generated/1232.purchase_category.rb +53 -0
  70. data/lib/definitions/elements/generated/127.reference_identification.rb +29 -0
  71. data/lib/definitions/elements/generated/128.reference_identification_qualifier.rb +1540 -0
  72. data/lib/definitions/elements/generated/1300.service_promotion_allowance_or_charge_code.rb +1090 -0
  73. data/lib/definitions/elements/generated/1301.agency_service_promotion_allowance_or_charge_code.rb +29 -0
  74. data/lib/definitions/elements/generated/133.routing_sequence_code.rb +60 -0
  75. data/lib/definitions/elements/generated/166.address_information.rb +29 -0
  76. data/lib/definitions/elements/generated/183.volume.rb +29 -0
  77. data/lib/definitions/elements/generated/187.weight_qualifier.rb +88 -0
  78. data/lib/definitions/elements/generated/19.city_name.rb +29 -0
  79. data/lib/definitions/elements/generated/206.equipment_initial.rb +29 -0
  80. data/lib/definitions/elements/generated/207.equipment_number.rb +29 -0
  81. data/lib/definitions/elements/generated/212.unit_price.rb +29 -0
  82. data/lib/definitions/elements/generated/22.commodity_code.rb +29 -0
  83. data/lib/definitions/elements/generated/23.commodity_code_qualifier.rb +60 -0
  84. data/lib/definitions/elements/generated/234.product_service_id.rb +29 -0
  85. data/lib/definitions/elements/generated/235.product_service_id_qualifier.rb +514 -0
  86. data/lib/definitions/elements/generated/236.price_identifier_code.rb +201 -0
  87. data/lib/definitions/elements/generated/248.allowance_or_charge_indicator.rb +44 -0
  88. data/lib/definitions/elements/generated/26.country_code.rb +535 -0
  89. data/lib/definitions/elements/generated/284.service_level_code.rb +103 -0
  90. data/lib/definitions/elements/generated/324.purchase_order_number.rb +29 -0
  91. data/lib/definitions/elements/generated/326.request_reference_number.rb +29 -0
  92. data/lib/definitions/elements/generated/327.change_order_sequence_number.rb +29 -0
  93. data/lib/definitions/elements/generated/328.release_number.rb +29 -0
  94. data/lib/definitions/elements/generated/330.quantity_ordered.rb +29 -0
  95. data/lib/definitions/elements/generated/347.hash_total.rb +29 -0
  96. data/lib/definitions/elements/generated/349.item_description_type.rb +40 -0
  97. data/lib/definitions/elements/generated/352.description.rb +29 -0
  98. data/lib/definitions/elements/generated/353.transaction_set_purpose_code.rb +102 -0
  99. data/lib/definitions/elements/generated/354.number_of_line_items.rb +30 -0
  100. data/lib/definitions/elements/generated/355.unit_or_basis_for_measurement_code.rb +831 -0
  101. data/lib/definitions/elements/generated/358.quantity_invoiced.rb +29 -0
  102. data/lib/definitions/elements/generated/367.contract_number.rb +29 -0
  103. data/lib/definitions/elements/generated/368.shipment_order_status_code.rb +139 -0
  104. data/lib/definitions/elements/generated/374.date_time_qualifier.rb +1149 -0
  105. data/lib/definitions/elements/generated/380.quantity.rb +29 -0
  106. data/lib/definitions/elements/generated/382.number_of_units_shipped.rb +29 -0
  107. data/lib/definitions/elements/generated/387.routing.rb +29 -0
  108. data/lib/definitions/elements/generated/396.shipment_identification.rb +29 -0
  109. data/lib/definitions/elements/generated/559.agency_qualifier_code.rb +213 -0
  110. data/lib/definitions/elements/generated/587.acknowledgment_type.rb +52 -0
  111. data/lib/definitions/elements/generated/610.amount.rb +30 -0
  112. data/lib/definitions/elements/generated/639.basis_of_unit_price_code.rb +128 -0
  113. data/lib/definitions/elements/generated/640.transaction_type_code.rb +483 -0
  114. data/lib/definitions/elements/generated/646.quantity_shipped_to_date.rb +29 -0
  115. data/lib/definitions/elements/generated/648.price_multiplier_qualifier.rb +43 -0
  116. data/lib/definitions/elements/generated/649.multiplier.rb +29 -0
  117. data/lib/definitions/elements/generated/66.identification_code_qualifier.rb +252 -0
  118. data/lib/definitions/elements/generated/662.relationship_code.rb +42 -0
  119. data/lib/definitions/elements/generated/668.line_item_status_code.rb +63 -0
  120. data/lib/definitions/elements/generated/67.identification_code.rb +29 -0
  121. data/lib/definitions/elements/generated/687.class_of_trade_code.rb +89 -0
  122. data/lib/definitions/elements/generated/750.product_process_characteristic_code.rb +254 -0
  123. data/lib/definitions/elements/generated/751.product_description_code.rb +29 -0
  124. data/lib/definitions/elements/generated/76.invoice_number.rb +29 -0
  125. data/lib/definitions/elements/generated/782.monetary_amount.rb +29 -0
  126. data/lib/definitions/elements/generated/786.security_level_code.rb +54 -0
  127. data/lib/definitions/elements/generated/79.lading_description.rb +29 -0
  128. data/lib/definitions/elements/generated/80.lading_quantity.rb +30 -0
  129. data/lib/definitions/elements/generated/87.marks_and_numbers.rb +29 -0
  130. data/lib/definitions/elements/generated/88.marks_and_numbers_qualifier.rb +57 -0
  131. data/lib/definitions/elements/generated/91.transportation_method_type_code.rb +108 -0
  132. data/lib/definitions/elements/generated/92.purchase_order_type_code.rb +106 -0
  133. data/lib/definitions/elements/generated/98.entity_identifier_code.rb +1349 -0
  134. data/lib/definitions/elements/manual/116.postal_code.rb +44 -0
  135. data/lib/definitions/elements/manual/124.application_receivers_code.rb +29 -0
  136. data/lib/definitions/elements/manual/140.standard_carrier_alpha_code.rb +211 -0
  137. data/lib/definitions/elements/manual/142.application_senders_code.rb +29 -0
  138. data/lib/definitions/elements/manual/143.transaction_set_identifier_code.rb +335 -0
  139. data/lib/definitions/elements/manual/156.state_or_province_code.rb +92 -0
  140. data/lib/definitions/elements/manual/28.group_control_number.rb +34 -0
  141. data/lib/definitions/elements/manual/329.transactional_set_control_number.rb +35 -0
  142. data/lib/definitions/elements/manual/337.time.rb +30 -0
  143. data/lib/definitions/elements/manual/350.assigned_identification.rb +33 -0
  144. data/lib/definitions/elements/manual/373.date.rb +30 -0
  145. data/lib/definitions/elements/manual/455.responsible_agency_code.rb +43 -0
  146. data/lib/definitions/elements/manual/479.functional_identifier_code.rb +271 -0
  147. data/lib/definitions/elements/manual/480.version_release_industry_identifier_code.rb +145 -0
  148. data/lib/definitions/elements/manual/784.length_of_binary_data.rb +30 -0
  149. data/lib/definitions/elements/manual/785.binary_data.rb +30 -0
  150. data/lib/definitions/elements/manual/96.number_of_included_segments.rb +30 -0
  151. data/lib/definitions/elements/manual/97.number_of_transaction_sets_included.rb +30 -0
  152. data/lib/definitions/elements/manual/hl/628.hierarchical_id_number.rb +29 -0
  153. data/lib/definitions/elements/manual/hl/734.hierarchical_parent_id_number.rb +29 -0
  154. data/lib/definitions/elements/manual/hl/735.hierarchical_level_code.rb +207 -0
  155. data/lib/definitions/elements/manual/hl/736.hierarchical_child_code.rb +39 -0
  156. data/lib/definitions/elements/manual/i/I01.authorization_information_qualifier.rb +48 -0
  157. data/lib/definitions/elements/manual/i/I02.authorization_information.rb +33 -0
  158. data/lib/definitions/elements/manual/i/I03.security_information_qualifier.rb +43 -0
  159. data/lib/definitions/elements/manual/i/I04.security_information.rb +33 -0
  160. data/lib/definitions/elements/manual/i/I05.interchange_id_qualifier.rb +75 -0
  161. data/lib/definitions/elements/manual/i/I06.interchange_sender_id.rb +29 -0
  162. data/lib/definitions/elements/manual/i/I07.interchange_receiver_id.rb +29 -0
  163. data/lib/definitions/elements/manual/i/I08.interchange_date.rb +35 -0
  164. data/lib/definitions/elements/manual/i/I09.interchange_time.rb +36 -0
  165. data/lib/definitions/elements/manual/i/I10.interchange_control_standards_identifier.rb +42 -0
  166. data/lib/definitions/elements/manual/i/I11.interchange_control_version_number.rb +55 -0
  167. data/lib/definitions/elements/manual/i/I12.interchange_control_number.rb +34 -0
  168. data/lib/definitions/elements/manual/i/I13.acknowledgment_requested.rb +43 -0
  169. data/lib/definitions/elements/manual/i/I14.usage_indicator.rb +40 -0
  170. data/lib/definitions/elements/manual/i/I15.component_element_separator.rb +36 -0
  171. data/lib/definitions/elements/manual/i/I16.number_of_included_functional_groups.rb +30 -0
  172. data/lib/definitions/elements/manual/misc/81.weight.rb +29 -0
  173. data/lib/definitions/elements/manual/misc/93.name.rb +29 -0
  174. data/lib/definitions/segments/generated/ack.rb +192 -0
  175. data/lib/definitions/segments/generated/bak.rb +90 -0
  176. data/lib/definitions/segments/generated/beg.rb +226 -0
  177. data/lib/definitions/segments/generated/big.rb +107 -0
  178. data/lib/definitions/segments/generated/bsn.rb +107 -0
  179. data/lib/definitions/segments/generated/cad.rb +175 -0
  180. data/lib/definitions/segments/generated/ctp.rb +158 -0
  181. data/lib/definitions/segments/generated/ctt.rb +141 -0
  182. data/lib/definitions/segments/generated/dtm.rb +56 -0
  183. data/lib/definitions/segments/generated/it1.rb +277 -0
  184. data/lib/definitions/segments/generated/lin.rb +107 -0
  185. data/lib/definitions/segments/generated/man.rb +56 -0
  186. data/lib/definitions/segments/generated/n1.rb +90 -0
  187. data/lib/definitions/segments/generated/n3.rb +39 -0
  188. data/lib/definitions/segments/generated/n4.rb +90 -0
  189. data/lib/definitions/segments/generated/pid.rb +107 -0
  190. data/lib/definitions/segments/generated/po1.rb +175 -0
  191. data/lib/definitions/segments/generated/prf.rb +90 -0
  192. data/lib/definitions/segments/generated/ref.rb +56 -0
  193. data/lib/definitions/segments/generated/sac.rb +107 -0
  194. data/lib/definitions/segments/generated/sln.rb +141 -0
  195. data/lib/definitions/segments/generated/sn1.rb +124 -0
  196. data/lib/definitions/segments/generated/td1.rb +158 -0
  197. data/lib/definitions/segments/generated/td5.rb +107 -0
  198. data/lib/definitions/segments/generated/tds.rb +39 -0
  199. data/lib/definitions/segments/manual/envelopes/ge.rb +53 -0
  200. data/lib/definitions/segments/manual/envelopes/gs.rb +163 -0
  201. data/lib/definitions/segments/manual/envelopes/iea.rb +53 -0
  202. data/lib/definitions/segments/manual/envelopes/isa.rb +295 -0
  203. data/lib/definitions/segments/manual/envelopes/se.rb +52 -0
  204. data/lib/definitions/segments/manual/envelopes/st.rb +52 -0
  205. data/lib/definitions/segments/manual/hl.rb +96 -0
  206. data/lib/definitions/segments/manual/n2.rb +52 -0
  207. data/lib/definitions/transaction_sets/manual/810/810.rb +143 -0
  208. data/lib/definitions/transaction_sets/manual/810/loops.rb +109 -0
  209. data/lib/definitions/transaction_sets/manual/850/850.rb +92 -0
  210. data/lib/definitions/transaction_sets/manual/850/loops.rb +58 -0
  211. data/lib/definitions/transaction_sets/manual/855/855.rb +83 -0
  212. data/lib/definitions/transaction_sets/manual/855/loops.rb +104 -0
  213. data/lib/definitions/transaction_sets/manual/856/856.rb +83 -0
  214. data/lib/definitions/transaction_sets/manual/856/loops.rb +155 -0
  215. data/lib/eddy.rb +29 -7
  216. data/lib/eddy/build/build.rb +47 -0
  217. data/lib/eddy/build/elements/element.rb +67 -0
  218. data/lib/eddy/build/elements/elements.rb +46 -0
  219. data/lib/eddy/build/elements/id.rb +55 -0
  220. data/lib/eddy/build/elements/n.rb +48 -0
  221. data/lib/eddy/build/loop_builder.rb +93 -0
  222. data/lib/eddy/build/segment_builder.rb +169 -0
  223. data/lib/eddy/build/transaction_set_builder.rb +218 -0
  224. data/lib/eddy/cli/cli.rb +39 -0
  225. data/lib/eddy/config.rb +51 -0
  226. data/lib/eddy/data.rb +50 -0
  227. data/lib/eddy/data/persistence/active_record.rb +10 -0
  228. data/lib/eddy/data/persistence/base.rb +47 -0
  229. data/lib/eddy/data/persistence/file.rb +50 -0
  230. data/lib/eddy/data/persistence/memory.rb +65 -0
  231. data/lib/eddy/data/store.rb +108 -0
  232. data/lib/eddy/errors.rb +112 -0
  233. data/lib/eddy/models/element.rb +14 -0
  234. data/lib/eddy/models/element/an.rb +55 -0
  235. data/lib/eddy/models/element/b.rb +53 -0
  236. data/lib/eddy/models/element/base.rb +116 -0
  237. data/lib/eddy/models/element/composite.rb +6 -0
  238. data/lib/eddy/models/element/dt.rb +100 -0
  239. data/lib/eddy/models/element/id.rb +58 -0
  240. data/lib/eddy/models/element/n.rb +94 -0
  241. data/lib/eddy/models/element/r.rb +84 -0
  242. data/lib/eddy/models/element/tm.rb +113 -0
  243. data/lib/eddy/models/loop.rb +74 -0
  244. data/lib/eddy/models/segment.rb +35 -0
  245. data/lib/eddy/models/transaction_set.rb +101 -0
  246. data/lib/eddy/parse.rb +58 -0
  247. data/lib/eddy/schema/element_summary.rb +123 -0
  248. data/lib/eddy/schema/loop_summary.rb +101 -0
  249. data/lib/eddy/schema/segment_summary.rb +116 -0
  250. data/lib/eddy/schema/transaction_set_summary.rb +96 -0
  251. data/lib/eddy/schema/validate.rb +41 -0
  252. data/lib/eddy/util.rb +16 -0
  253. data/lib/eddy/util/clean_folder.rb +14 -0
  254. data/lib/eddy/util/edi_data.rb +153 -0
  255. data/lib/eddy/util/new_number.rb +24 -0
  256. data/lib/eddy/util/normalize.rb +51 -0
  257. data/lib/eddy/util/paths.rb +19 -0
  258. data/lib/eddy/util/read.rb +38 -0
  259. data/lib/eddy/util/time.rb +56 -0
  260. data/lib/eddy/util/timestamp.rb +12 -0
  261. data/lib/eddy/util/trim.rb +29 -0
  262. data/lib/eddy/version.rb +1 -1
  263. data/lib/eddy/write/functional_group.rb +33 -0
  264. data/lib/eddy/write/interchange.rb +28 -0
  265. data/lib/eddy/write/simple_interchange.rb +57 -0
  266. data/lib/generators/eddy/initializer/initializer_generator.rb +17 -0
  267. data/lib/generators/eddy/initializer/templates/eddy.rb.erb +6 -0
  268. data/lib/generators/eddy/migration/migration_generator.rb +53 -0
  269. data/lib/generators/eddy/migration/templates/migration.rb.erb +35 -0
  270. data/tasks/build.rake +15 -0
  271. data/tasks/misc/gemspec.rake +12 -0
  272. data/tasks/misc/missing_lists.rake +240 -0
  273. data/tasks/misc/yaml2json.rake +20 -0
  274. data/todo.txt +16 -0
  275. metadata +297 -42
  276. data/data/004010/segments/ISA.tsv +0 -17
  277. data/data/schema.jsonc +0 -67
  278. data/lib/eddy/build/build_an.rb +0 -31
  279. data/lib/eddy/build/build_dt.rb +0 -46
  280. data/lib/eddy/build/build_elements.rb +0 -181
  281. data/lib/eddy/build/build_id.rb +0 -56
  282. data/lib/eddy/build/build_r_and_n.rb +0 -69
  283. data/lib/eddy/build/build_tm.rb +0 -52
  284. data/lib/eddy/build/segments.rb +0 -25
  285. data/lib/eddy/definitions/manual/elements/109.dt.pickup_date.rb +0 -20
  286. data/lib/eddy/definitions/manual/elements/111.tm.pickup_time.rb +0 -20
  287. data/lib/eddy/definitions/manual/elements/112.an.pier_name.rb +0 -19
  288. data/lib/eddy/definitions/manual/elements/785.b.binary_data.rb +0 -19
  289. data/lib/eddy/definitions/manual/elements/81.r.weight.rb +0 -19
  290. data/lib/eddy/definitions/manual/elements/86.n0.total_equipment.rb +0 -20
  291. data/lib/eddy/definitions/manual/elements/I02.authorization_information.rb +0 -20
  292. data/lib/eddy/definitions/manual/elements/I04.security_information.rb +0 -20
  293. data/lib/eddy/definitions/manual/elements/I08.interchange_date.rb +0 -20
  294. data/lib/eddy/definitions/manual/elements/I09.interchange_time.rb +0 -20
  295. data/lib/eddy/definitions/manual/elements/I15.component_element_separator.rb +0 -32
  296. data/lib/eddy/definitions/manual/segments/n1.rb +0 -14
  297. data/lib/eddy/element.rb +0 -14
  298. data/lib/eddy/element/an.rb +0 -36
  299. data/lib/eddy/element/b.rb +0 -9
  300. data/lib/eddy/element/base.rb +0 -37
  301. data/lib/eddy/element/dt.rb +0 -89
  302. data/lib/eddy/element/id.rb +0 -40
  303. data/lib/eddy/element/n.rb +0 -43
  304. data/lib/eddy/element/r.rb +0 -47
  305. data/lib/eddy/element/tm.rb +0 -108
  306. data/lib/eddy/error.rb +0 -14
  307. data/lib/eddy/helpers.rb +0 -31
  308. data/lib/eddy/segment.rb +0 -12
  309. data/lib/eddy/transaction_set.rb +0 -35
@@ -0,0 +1,60 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/element_summary.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Element Summary",
5
+ "description": "An individual EDI Data Element. Used in Companion Guides to define requirements for a Segment.",
6
+ "required": [
7
+ "ref",
8
+ "id",
9
+ "req"
10
+ ],
11
+ "type": "object",
12
+ "additionalProperties": false,
13
+ "properties": {
14
+ "default": {
15
+ "description": "Default value for the Element",
16
+ "type": ["string", "integer", "number"]
17
+ },
18
+ "description": {
19
+ "description": "Description of the Element.",
20
+ "type": "string"
21
+ },
22
+ "id": {
23
+ "description": "Short string used to identify the Element.",
24
+ "type": "string"
25
+ },
26
+ "max": {
27
+ "description": "Maximum length for a valid Element value. Used for validation.",
28
+ "type": "integer",
29
+ "minimum": 1
30
+ },
31
+ "min": {
32
+ "description": "Minimum length for a valid Element value. Used for validation.",
33
+ "type": "integer",
34
+ "minimum": 1
35
+ },
36
+ "name": {
37
+ "description": "Full name of the Element.",
38
+ "type": "string"
39
+ },
40
+ "ref": {
41
+ "description": "Indicates the order in which Elements should appear in their Segment.",
42
+ "type": "string"
43
+ },
44
+ "req": {
45
+ "description": "Defines if/how the Element is required.",
46
+ "type": "string",
47
+ "enum": ["M", "O", "X", "Z"]
48
+ },
49
+ "type": {
50
+ "description": "The kind of value the Element will contain.",
51
+ "type": "string",
52
+ "enum": [ "AN", "B", "DT", "TM", "ID", "R", "N", "N0", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "N8" ]
53
+ },
54
+ "valid_values": {
55
+ "description": "A list of valid values for the Element.",
56
+ "type": "array",
57
+ "items": {"type": "string"}
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/loop_summary.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Loop Summary",
5
+ "description": "A repeated collection of Segments and/or other Loops. Used in Companion Guides.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "loop_id",
10
+ "repeat",
11
+ "components"
12
+ ],
13
+ "properties": {
14
+ "loop_id": {
15
+ "description": "A unique string used to identify the Loop within its Transaction Set.",
16
+ "type": "string"
17
+ },
18
+ "repeat": {
19
+ "description": "Number of times a particular Loop may be repeated.",
20
+ "type": "integer",
21
+ "minimum": 1
22
+ },
23
+ "notes": {
24
+ "description": "*Syntax*, *Semantic*, or *Comment* notes on a Loop.",
25
+ "type": "string"
26
+ },
27
+ "loop": {
28
+ "description": "Loop in which the Loop appears.",
29
+ "type": "string"
30
+ },
31
+ "level": {
32
+ "description": "Indicates where the Loop is located in the Transaction Set.",
33
+ "type": "string",
34
+ "enum": ["Heading", "Detail", "Summary", "Not Defined"]
35
+ },
36
+ "req": {
37
+ "description": "Defines if/how the Loop is required.",
38
+ "type": "string",
39
+ "enum": ["M", "O", "X", "Z"]
40
+ },
41
+ "components": {
42
+ "description": "An array of Segments and/or Loops that comprise the Loop.",
43
+ "type" : "array", "items": { "anyOf": [
44
+ { "$ref": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/loop_summary.json" },
45
+ { "$ref": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/segment_summary.json" }
46
+ ]}
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,66 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/segment_summary.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Segment Summary",
5
+ "description": "A collection of Data Elements. Used in Companion Guides to define a Transaction Set.",
6
+ "required": [
7
+ "id"
8
+ ],
9
+ "type": "object",
10
+ "additionalProperties": false,
11
+ "properties": {
12
+ "pos": {
13
+ "description": "Indicates the order in which Segments should appear in their Level of the Transaction Set.",
14
+ "type": "string"
15
+ },
16
+ "id": {
17
+ "description": "Short string identifying the Segment.",
18
+ "type": "string"
19
+ },
20
+ "name": {
21
+ "description": "Full name of the Segment.",
22
+ "type": "string"
23
+ },
24
+ "purpose": {
25
+ "description": "Documents the purpose of a Segment.",
26
+ "type": "string"
27
+ },
28
+ "max_use": {
29
+ "description": "Number of times a particular Segment may be repeated at its location in the Transaction Set.",
30
+ "type": "integer",
31
+ "minimum": 1
32
+ },
33
+ "notes": {
34
+ "description": "*Syntax*, *Semantic*, or *Comment* notes on a Segment.",
35
+ "type": "string"
36
+ },
37
+ "usage": {
38
+ "description": " Indicates whether or not the Segment must be used; Somewhat redundant due to `Req`.",
39
+ "type": "string"
40
+ },
41
+ "loop": {
42
+ "description": "Loop in which the Segment appears.",
43
+ "type": "string"
44
+ },
45
+ "element_count": {
46
+ "description": "Number of Data Elements included in the Segment. Used for comparison against standard segment definitions.",
47
+ "type": "integer",
48
+ "minimum": 1
49
+ },
50
+ "req": {
51
+ "description": "Defines if/how the Segment is required.",
52
+ "type": "string",
53
+ "enum": ["M", "O", "X", "Z"]
54
+ },
55
+ "level": {
56
+ "description": "Indicates where the Segment is located in the Transaction Set.",
57
+ "type": "string",
58
+ "enum": ["Heading", "Detail", "Summary", "Not Defined"]
59
+ },
60
+ "elements": {
61
+ "description": "Data Elements that comprise the Segment.",
62
+ "type" : "array",
63
+ "items": {"$ref": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/element_summary.json"}
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,73 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/element_summary.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Element Summary
5
+ description: An individual EDI Data Element. Used in Companion Guides to define requirements for a Segment.
6
+ required:
7
+ - ref
8
+ - id
9
+ - req
10
+ type: object
11
+ additionalProperties: false
12
+ properties:
13
+ default:
14
+ description: Default value for the Element
15
+ type:
16
+ - string
17
+ - integer
18
+ - number
19
+ description:
20
+ description: Description of the Element.
21
+ type: string
22
+ id:
23
+ description: Short string used to identify the Element.
24
+ type: string
25
+ max:
26
+ description: Maximum length for a valid Element value. Used for validation.
27
+ type: integer
28
+ minimum: 1
29
+ min:
30
+ description: Minimum length for a valid Element value. Used for validation.
31
+ type: integer
32
+ minimum: 1
33
+ name:
34
+ description: Full name of the Element.
35
+ type: string
36
+ ref:
37
+ description: Indicates the order in which Elements should appear in their Segment.
38
+ type: string
39
+ req:
40
+ description: Defines if/how the Element is required.
41
+ type: string
42
+ enum: [M, O, X, Z]
43
+ type:
44
+ description: The kind of value the Element will contain.
45
+ type: string
46
+ enum:
47
+ - AN
48
+ - B
49
+ - DT
50
+ - TM
51
+ - ID
52
+ - R
53
+ - N
54
+ - N0
55
+ - N1
56
+ - N2
57
+ - N3
58
+ - N4
59
+ - N5
60
+ - N6
61
+ - N7
62
+ - N8
63
+ usage:
64
+ description: Indicates whether or not the Segment is required by a specific business partner. This value takes precedence over `req` for validation.
65
+ type: string
66
+ enum:
67
+ - Must Use
68
+ - Used
69
+ valid_values:
70
+ description: A list of valid values for the Element.
71
+ type: array
72
+ items:
73
+ type: string
@@ -0,0 +1,50 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/loop_summary.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Loop Summary
5
+ description: A repeated collection of Segments and/or other Loops. Used in Companion Guides.
6
+ type: object
7
+ additionalProperties: false
8
+ required:
9
+ - loop_id
10
+ - repeat
11
+ - components
12
+ properties:
13
+ loop_id:
14
+ description: A unique string used to identify the Loop within its Transaction Set.
15
+ type: string
16
+ repeat:
17
+ description: Number of times a particular Loop may be repeated.
18
+ type: integer
19
+ minimum: 1
20
+ notes:
21
+ description: "*Syntax*, *Semantic*, or *Comment* notes on a Loop."
22
+ type: string
23
+ loop:
24
+ description: Loop in which the Loop appears.
25
+ type: string
26
+ level:
27
+ description: Indicates where the Loop is located in the Transaction Set.
28
+ type: string
29
+ enum:
30
+ - Heading
31
+ - Detail
32
+ - Summary
33
+ - Not Defined
34
+ req:
35
+ description: Defines if/how the Loop is required.
36
+ type: string
37
+ enum: [M, O, X, Z]
38
+ usage:
39
+ description: Indicates whether or not the Segment is required by a specific business partner. This value takes precedence over `req` for validation.
40
+ type: string
41
+ enum:
42
+ - Must Use
43
+ - Used
44
+ components:
45
+ description: An array of Segments and/or Loops that comprise the Loop.
46
+ type: array
47
+ items:
48
+ anyOf:
49
+ - "$ref": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/loop_summary.json
50
+ - "$ref": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/segment_summary.json
@@ -0,0 +1,59 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/segment_summary.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Segment Summary
5
+ description: A collection of Data Elements. Used in Companion Guides to define a Transaction Set.
6
+ required:
7
+ - id
8
+ type: object
9
+ additionalProperties: false
10
+ properties:
11
+ pos:
12
+ description: Specifies the order (usually in multiples of ten) in which the Segment appears in the Transaction Set.
13
+ type: string
14
+ id:
15
+ description: Short string identifying the Segment.
16
+ type: string
17
+ name:
18
+ description: Full name of the Segment.
19
+ type: string
20
+ purpose:
21
+ description: Documents the purpose of a Segment.
22
+ type: string
23
+ max_use:
24
+ description: Number of times a particular Segment may be repeated at its location in the Transaction Set.
25
+ type: integer
26
+ minimum: 1
27
+ notes:
28
+ description: "*Syntax*, *Semantic*, or *Comment* notes on a Segment."
29
+ type: string
30
+ loop:
31
+ description: Loop in which the Segment appears.
32
+ type: string
33
+ element_count:
34
+ description: Number of Data Elements included in the Segment. Used for comparison against standard segment definitions.
35
+ type: integer
36
+ minimum: 1
37
+ req:
38
+ description: Defines if/how the Segment is required.
39
+ type: string
40
+ enum: [M, O, X, Z]
41
+ level:
42
+ description: Indicates where the Segment is located in the Transaction Set.
43
+ type: string
44
+ enum:
45
+ - Heading
46
+ - Detail
47
+ - Summary
48
+ - Not Defined
49
+ usage:
50
+ description: Indicates whether or not the Segment is required by a specific business partner. This value takes precedence over `req` for validation.
51
+ type: string
52
+ enum:
53
+ - Must Use
54
+ - Used
55
+ elements:
56
+ description: Data Elements that comprise the Segment.
57
+ type: array
58
+ items:
59
+ "$ref": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/element_summary.json
@@ -0,0 +1,27 @@
1
+ ---
2
+ "$id": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/transaction_set_summary.json
3
+ "$schema": http://json-schema.org/draft-07/schema#
4
+ title: Transaction Set Summary
5
+ description: An outline of all required components for an EDI transaction set implementation.
6
+ required:
7
+ - id
8
+ - functional_group
9
+ - components
10
+ type: object
11
+ properties:
12
+ id:
13
+ description: A short code identifying the Transaction Set.
14
+ type: number
15
+ name:
16
+ description: A descriptive name for the Transaction Set.
17
+ type: string
18
+ functional_group:
19
+ description: A short string used to group related Transaction Sets.
20
+ type: string
21
+ components:
22
+ description: The components that make up the Transaction Set.
23
+ type: array
24
+ items:
25
+ anyOf:
26
+ - "$ref": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/loop_summary.json
27
+ - "$ref": https://raw.githubusercontent.com/tcd/eddy/master/data/schema/segment_summary.json
@@ -0,0 +1,33 @@
1
+ {
2
+ "$id": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/transaction_set_summary.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Transaction Set Summary",
5
+ "description": "An outline of all required components for an EDI transaction set implementation.",
6
+ "required": [
7
+ "id",
8
+ "functional_group",
9
+ "components"
10
+ ],
11
+ "type": "object",
12
+ "properties": {
13
+ "id": {
14
+ "description": "A short code identifying the Transaction Set.",
15
+ "type": "number"
16
+ },
17
+ "name": {
18
+ "description": "A descriptive name for the Transaction Set.",
19
+ "type": "string"
20
+ },
21
+ "functional_group": {
22
+ "description": "A short string used to group related Transaction Sets.",
23
+ "type": "string"
24
+ },
25
+ "components": {
26
+ "description": "The components that make up the Transaction Set.",
27
+ "type" : "array", "items": { "anyOf": [
28
+ {"$ref": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/loop_summary.json"},
29
+ {"$ref": "https://raw.githubusercontent.com/tcd/eddy/master/data/schema/segment_summary.json"}
30
+ ]}
31
+ }
32
+ }
33
+ }
@@ -1,43 +1,3 @@
1
- # Notes
2
-
3
- ## EDI
4
-
5
- - Document/Interchange/Envelope/File
6
- - Sections:
7
- - Heading
8
- - Detail
9
- - Summary
10
- - Transaction Sets
11
- - Transaction Set
12
- - Segments
13
- - Segment
14
- - Segment Data
15
- - Section
16
- - Position
17
- - Loop
18
- - Usage
19
- - Purpose (description)
20
- - Max Use
21
- - Syntax Notes
22
- - Semantic Notes
23
- - Comments
24
- - Data Elements
25
- - Data Element
26
- - Ref
27
- - Id
28
- - Name
29
- - Type
30
- - Req
31
- - Min
32
- - Max
33
- - Usage
34
-
35
-
36
- ## Segment Id Codes
37
-
38
- - 143
39
- - List of the transaction sets (100-998)
40
-
41
1
  # Sources
42
2
 
43
3
  ## Transaction Sets
@@ -60,11 +20,6 @@
60
20
  - https://www.jobisez.com/edi/documents/segments-elements.aspx?set-id={100-999}
61
21
  - https://www.edifactory.de/x12/transaction-sets
62
22
 
63
- ### Missing
64
-
65
- - 218
66
- - 980
67
-
68
23
  ## Data Element Definitions
69
24
 
70
25
  - http://ecomgx17.ecomtoday.com/edi/EDI_4009/
@@ -72,103 +27,117 @@
72
27
 
73
28
  ### Missing
74
29
 
75
- - Missing Code List
76
- - 4
77
- - 5
78
- - 24
79
- - 26
80
- - 35
81
- - 100
82
- - 116
83
- - 140
84
- - 141
85
- - 154
86
- - 156
87
- - 168
88
- - 177
89
- - 196
90
- - 215
91
- - 218
92
- - 222
93
- - 230
94
- - 254
95
- - 264
96
- - 265
97
- - 268
98
- - 269
99
- - 277
100
- - 296
101
- - 298
102
- - 301
103
- - 333
104
- - 348
105
- - 464
106
- - 498
107
- - 540
108
- - 541
109
- - 556
110
- - 573
111
- - 581
112
- - 597
113
- - 638
114
- - 702
115
- - 712
116
- - 721
117
- - 746
118
- - 758
119
- - 781
120
- - 806
121
- - 807
122
- - 819
123
- - 833
124
- - 860
125
- - 874
126
- - 876
127
- - 899
128
- - 930
129
- - 1003
130
- - 1011
131
- - 1014
132
- - 1034
133
- - 1049
134
- - 1072
135
- - 1096
136
- - 1126
137
- - 1148
138
- - 1149
139
- - 1155
140
- - 1158
141
- - 1245
142
- - 1252
143
- - 1253
144
- - 1255
145
- - 1256
146
- - 1276
147
- - 1314
148
- - 1315
149
- - 1318
150
- - 1325
151
- - 1334
152
- - 1352
153
- - 1354
154
- - 1397
155
- - 1415
156
- - 1460
157
- - 1482
158
- - 1490
159
- - 1494
160
- - 1654
161
- - 1655
162
- - 1661
163
- - 1684
164
- - 1688
165
- - I38
166
- - Missing:
167
- - 333
168
- - 373
169
- - 427
170
- - 475
171
- - 484
172
- - Complicated:
173
- - 1434
174
- - 347
30
+ #### Missing Element Definitions:
31
+
32
+ - 427 - Unit Price Difference
33
+ - 475
34
+ - 484
35
+ - 706 Entity Relationship Code ID 2 2
36
+ - 749 Supplementary Information Qualifier
37
+
38
+ #### Incomplete Element Definitions:
39
+
40
+ - 167
41
+
42
+ #### Complicated Elements:
43
+
44
+ - 1434
45
+ - 347
46
+
47
+ #### Missing Code Lists:
48
+
49
+ - 4 (Air Carrier Code)
50
+ - https://en.wikipedia.org/wiki/List_of_airline_codes
51
+ - 5 (Airport Code)
52
+ - https://en.wikipedia.org/wiki/List_of_airports_by_IATA_and_ICAO_code
53
+ - 24 (Equipment Type)
54
+ - 35 (Disposition Code)
55
+ - 116 (Postal Code)
56
+ - http://download.geonames.org/export/zip/
57
+ - https://github.com/ankane/postjoy
58
+ - https://github.com/monterail/zip-codes
59
+ - 140 (Standard Carrier Alpha Code)
60
+ - 141 (Schedule B Code)
61
+ - 154 (Standard Point Location Code)
62
+ - 168 (Tariff Agency Code)
63
+ - 177 (Intermodal Service Code)
64
+ - 196 (Mortgagor Response Code)
65
+ - 215 (Hazardous Classification)
66
+ - 218 (Hazardous Placard Notation)
67
+ - 222 (Hazardous Endorsement)
68
+ - 230 (Subsidiary Classification)
69
+ - 254 (Packing Group Code)
70
+ - 264 (Census Merchandise Type Code)
71
+ - 265 (Census Export License Identifier Code)
72
+ - 268 (Census Container Code)
73
+ - 269 (Census Special Identifier Code)
74
+ - 277 (UN/NA Identification Code)
75
+ - 296 (Intermediate Switch Carrier)
76
+ - 298 (Origin EDI Carrier Code)
77
+ - 301 (Car Type Code)
78
+ - 333 (Terms Basis Date Code)
79
+ - 348 (Jurisdiction Code)
80
+ - 464 (Container Terms Code)
81
+ - 498 (Condition Code)
82
+ - 540 (Damage Type Code)
83
+ - 541 (Damage Severity Code)
84
+ - 556 (Damage Area Code)
85
+ - 573 (Freight Station Accounting Code)
86
+ - 581 (Customs Entry Type Code)
87
+ - 597 (Vessel Code)
88
+ - 638 (Rule 260 Junction Code)
89
+ - 702 (Financial Transaction Code)
90
+ - 712 (Category Reference Code)
91
+ - 721 (Segment ID Code)
92
+ - 746 (Protective Service Rule Code)
93
+ - 758 (Hazardous Mnemonic Code)
94
+ - 781 (Statement Format Code)
95
+ - 806 (EPA Waste Stream Number Code)
96
+ - 807 (Waste Characteristics Code)
97
+ - 819 (Language Code)
98
+ - 833 (Automotive Manufacturers Code)
99
+ - 860 (D-U-N-S Number)
100
+ - 874 (Space Management Reference Code)
101
+ - 876 (Alternate Tiers per Pallet)
102
+ - 899 (Unload Terminal Elevator Code)
103
+ - 930 (Regulatory Agency Code)
104
+ - 1003 (Account Type Code)
105
+ - 1011 (Association of American Railroads (AAR) Pool Code)
106
+ - 1014 (Car Type Group Code)
107
+ - 1034 (Claim Adjustment Reason Code)
108
+ - 1049 (Tax Payment Type Code)
109
+ - 1072 (Rounding System Code)
110
+ - 1096 (County Designator)
111
+ - 1126 (Academic Degree Code)
112
+ - 1148 (Academic Grade Qualifier)
113
+ - 1149 (Occupation Code)
114
+ - 1155 (Educational Test or Requirement Code)
115
+ - 1158 (Subtest Code)
116
+ - 1245 (Vehicle Identification Number (VIN) Plant Code)
117
+ - 1252 (Health Screening Type Code)
118
+ - 1253 (Immunization Type Code)
119
+ - 1255 (Disease Condition Type Code)
120
+ - 1256 (Medical Treatment Type Code)
121
+ - 1276 (Machine Separable Indicator Code)
122
+ - 1314 (Admission Source Code)
123
+ - 1315 (Admission Type Code)
124
+ - 1318 (Approval Code)
125
+ - 1325 (Claim Frequency Type Code)
126
+ - 1334 (Health Care Professional Shortage Area Code)
127
+ - 1352 (Patient Status Code)
128
+ - 1354 (Diagnosis Related Group (DRG) Code)
129
+ - 1397 (Inquiry Response Code)
130
+ - 1415 (Specimen Kit Type Code)
131
+ - 1460 (Part of Body Code)
132
+ - 1482 (Mechanical Car Code)
133
+ - 1490 (Association of American Railroads Car Grade Code)
134
+ - 1494 (Transportation Condition Code)
135
+ - 1654 (Longitude Code)
136
+ - 1655 (Latitude Code)
137
+ - 1661 (Source Code)
138
+ - 1684 (Attendance Type Code)
139
+ - 1688 (Deduction Type Code)
140
+ - I38 (Service Request Handler ID Qualifier)
141
+
142
+ - Hazmat
143
+ - http://www.unece.org/trans/danger/publi/unrec/rev14/14files_e.html