@digicatapult/dtdl-parser 0.0.13 → 0.0.14

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 (302) hide show
  1. package/.depcheckrc +6 -0
  2. package/.github/CODEOWNERS +4 -0
  3. package/.github/workflows/release.yml +198 -0
  4. package/.github/workflows/test.yml +92 -0
  5. package/.gitignore +4 -0
  6. package/.prettierrc +9 -0
  7. package/.swcrc +32 -0
  8. package/build/error.d.ts +2 -0
  9. package/build/error.js +9 -0
  10. package/build/error.js.map +1 -0
  11. package/build/index.d.ts +8 -0
  12. package/build/index.js +59 -0
  13. package/build/index.js.map +1 -0
  14. package/build/interop/_framework/DTDLParserJSInterop.pdb +0 -0
  15. package/build/interop/_framework/DTDLParserJSInterop.wasm +0 -0
  16. package/build/interop/_framework/blazor.boot.json +3 -3
  17. package/build/interop.d.ts +5 -0
  18. package/dtdl/error/error.json +11 -0
  19. package/dtdl/simple/simple.json +9 -0
  20. package/eslint.config.mjs +52 -0
  21. package/package.json +14 -6
  22. package/src/__tests__/index.test.ts +119 -0
  23. package/src/error.ts +25 -0
  24. package/src/index.ts +134 -0
  25. package/src/interop/DTDLParserJSInterop.csproj +26 -0
  26. package/src/interop/LICENSE +21 -0
  27. package/src/interop/ModelParserInterop.cs +19 -0
  28. package/src/interop/README.md +1 -0
  29. package/src/interop/bin/Release/net8.0/browser-wasm/DTDLParser.dll +0 -0
  30. package/src/interop/bin/Release/net8.0/browser-wasm/DTDLParserJSInterop.deps.json +921 -0
  31. package/src/interop/bin/Release/net8.0/browser-wasm/DTDLParserJSInterop.dll +0 -0
  32. package/src/interop/bin/Release/net8.0/browser-wasm/DTDLParserJSInterop.pdb +0 -0
  33. package/src/interop/bin/Release/net8.0/browser-wasm/DTDLParserJSInterop.runtimeconfig.json +40 -0
  34. package/src/interop/bin/Release/net8.0/browser-wasm/Microsoft.CSharp.dll +0 -0
  35. package/src/interop/bin/Release/net8.0/browser-wasm/Microsoft.VisualBasic.Core.dll +0 -0
  36. package/src/interop/bin/Release/net8.0/browser-wasm/Microsoft.VisualBasic.dll +0 -0
  37. package/src/interop/bin/Release/net8.0/browser-wasm/Microsoft.Win32.Primitives.dll +0 -0
  38. package/src/interop/bin/Release/net8.0/browser-wasm/Microsoft.Win32.Registry.dll +0 -0
  39. package/src/interop/bin/Release/net8.0/browser-wasm/System.AppContext.dll +0 -0
  40. package/src/interop/bin/Release/net8.0/browser-wasm/System.Buffers.dll +0 -0
  41. package/src/interop/bin/Release/net8.0/browser-wasm/System.Collections.Concurrent.dll +0 -0
  42. package/src/interop/bin/Release/net8.0/browser-wasm/System.Collections.Immutable.dll +0 -0
  43. package/src/interop/bin/Release/net8.0/browser-wasm/System.Collections.NonGeneric.dll +0 -0
  44. package/src/interop/bin/Release/net8.0/browser-wasm/System.Collections.Specialized.dll +0 -0
  45. package/src/interop/bin/Release/net8.0/browser-wasm/System.Collections.dll +0 -0
  46. package/src/interop/bin/Release/net8.0/browser-wasm/System.ComponentModel.Annotations.dll +0 -0
  47. package/src/interop/bin/Release/net8.0/browser-wasm/System.ComponentModel.DataAnnotations.dll +0 -0
  48. package/src/interop/bin/Release/net8.0/browser-wasm/System.ComponentModel.EventBasedAsync.dll +0 -0
  49. package/src/interop/bin/Release/net8.0/browser-wasm/System.ComponentModel.Primitives.dll +0 -0
  50. package/src/interop/bin/Release/net8.0/browser-wasm/System.ComponentModel.TypeConverter.dll +0 -0
  51. package/src/interop/bin/Release/net8.0/browser-wasm/System.ComponentModel.dll +0 -0
  52. package/src/interop/bin/Release/net8.0/browser-wasm/System.Configuration.dll +0 -0
  53. package/src/interop/bin/Release/net8.0/browser-wasm/System.Console.dll +0 -0
  54. package/src/interop/bin/Release/net8.0/browser-wasm/System.Core.dll +0 -0
  55. package/src/interop/bin/Release/net8.0/browser-wasm/System.Data.Common.dll +0 -0
  56. package/src/interop/bin/Release/net8.0/browser-wasm/System.Data.DataSetExtensions.dll +0 -0
  57. package/src/interop/bin/Release/net8.0/browser-wasm/System.Data.dll +0 -0
  58. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.Contracts.dll +0 -0
  59. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.Debug.dll +0 -0
  60. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.DiagnosticSource.dll +0 -0
  61. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.FileVersionInfo.dll +0 -0
  62. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.Process.dll +0 -0
  63. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.StackTrace.dll +0 -0
  64. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.TextWriterTraceListener.dll +0 -0
  65. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.Tools.dll +0 -0
  66. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.TraceSource.dll +0 -0
  67. package/src/interop/bin/Release/net8.0/browser-wasm/System.Diagnostics.Tracing.dll +0 -0
  68. package/src/interop/bin/Release/net8.0/browser-wasm/System.Drawing.Primitives.dll +0 -0
  69. package/src/interop/bin/Release/net8.0/browser-wasm/System.Drawing.dll +0 -0
  70. package/src/interop/bin/Release/net8.0/browser-wasm/System.Dynamic.Runtime.dll +0 -0
  71. package/src/interop/bin/Release/net8.0/browser-wasm/System.Formats.Asn1.dll +0 -0
  72. package/src/interop/bin/Release/net8.0/browser-wasm/System.Formats.Tar.dll +0 -0
  73. package/src/interop/bin/Release/net8.0/browser-wasm/System.Globalization.Calendars.dll +0 -0
  74. package/src/interop/bin/Release/net8.0/browser-wasm/System.Globalization.Extensions.dll +0 -0
  75. package/src/interop/bin/Release/net8.0/browser-wasm/System.Globalization.dll +0 -0
  76. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.Compression.Brotli.dll +0 -0
  77. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.Compression.FileSystem.dll +0 -0
  78. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.Compression.ZipFile.dll +0 -0
  79. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.Compression.dll +0 -0
  80. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.FileSystem.AccessControl.dll +0 -0
  81. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.FileSystem.DriveInfo.dll +0 -0
  82. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.FileSystem.Primitives.dll +0 -0
  83. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.FileSystem.Watcher.dll +0 -0
  84. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.FileSystem.dll +0 -0
  85. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.IsolatedStorage.dll +0 -0
  86. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.MemoryMappedFiles.dll +0 -0
  87. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.Pipes.AccessControl.dll +0 -0
  88. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.Pipes.dll +0 -0
  89. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.UnmanagedMemoryStream.dll +0 -0
  90. package/src/interop/bin/Release/net8.0/browser-wasm/System.IO.dll +0 -0
  91. package/src/interop/bin/Release/net8.0/browser-wasm/System.Linq.Expressions.dll +0 -0
  92. package/src/interop/bin/Release/net8.0/browser-wasm/System.Linq.Parallel.dll +0 -0
  93. package/src/interop/bin/Release/net8.0/browser-wasm/System.Linq.Queryable.dll +0 -0
  94. package/src/interop/bin/Release/net8.0/browser-wasm/System.Linq.dll +0 -0
  95. package/src/interop/bin/Release/net8.0/browser-wasm/System.Memory.dll +0 -0
  96. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Http.Json.dll +0 -0
  97. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Http.dll +0 -0
  98. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.HttpListener.dll +0 -0
  99. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Mail.dll +0 -0
  100. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.NameResolution.dll +0 -0
  101. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.NetworkInformation.dll +0 -0
  102. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Ping.dll +0 -0
  103. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Primitives.dll +0 -0
  104. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Quic.dll +0 -0
  105. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Requests.dll +0 -0
  106. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Security.dll +0 -0
  107. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.ServicePoint.dll +0 -0
  108. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.Sockets.dll +0 -0
  109. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.WebClient.dll +0 -0
  110. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.WebHeaderCollection.dll +0 -0
  111. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.WebProxy.dll +0 -0
  112. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.WebSockets.Client.dll +0 -0
  113. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.WebSockets.dll +0 -0
  114. package/src/interop/bin/Release/net8.0/browser-wasm/System.Net.dll +0 -0
  115. package/src/interop/bin/Release/net8.0/browser-wasm/System.Numerics.Vectors.dll +0 -0
  116. package/src/interop/bin/Release/net8.0/browser-wasm/System.Numerics.dll +0 -0
  117. package/src/interop/bin/Release/net8.0/browser-wasm/System.ObjectModel.dll +0 -0
  118. package/src/interop/bin/Release/net8.0/browser-wasm/System.Private.CoreLib.dll +0 -0
  119. package/src/interop/bin/Release/net8.0/browser-wasm/System.Private.DataContractSerialization.dll +0 -0
  120. package/src/interop/bin/Release/net8.0/browser-wasm/System.Private.Uri.dll +0 -0
  121. package/src/interop/bin/Release/net8.0/browser-wasm/System.Private.Xml.Linq.dll +0 -0
  122. package/src/interop/bin/Release/net8.0/browser-wasm/System.Private.Xml.dll +0 -0
  123. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.DispatchProxy.dll +0 -0
  124. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.Emit.ILGeneration.dll +0 -0
  125. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.Emit.Lightweight.dll +0 -0
  126. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.Emit.dll +0 -0
  127. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.Extensions.dll +0 -0
  128. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.Metadata.dll +0 -0
  129. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.Primitives.dll +0 -0
  130. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.TypeExtensions.dll +0 -0
  131. package/src/interop/bin/Release/net8.0/browser-wasm/System.Reflection.dll +0 -0
  132. package/src/interop/bin/Release/net8.0/browser-wasm/System.Resources.Reader.dll +0 -0
  133. package/src/interop/bin/Release/net8.0/browser-wasm/System.Resources.ResourceManager.dll +0 -0
  134. package/src/interop/bin/Release/net8.0/browser-wasm/System.Resources.Writer.dll +0 -0
  135. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  136. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.CompilerServices.VisualC.dll +0 -0
  137. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Extensions.dll +0 -0
  138. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Handles.dll +0 -0
  139. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.InteropServices.JavaScript.dll +0 -0
  140. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.InteropServices.RuntimeInformation.dll +0 -0
  141. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.InteropServices.dll +0 -0
  142. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Intrinsics.dll +0 -0
  143. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Loader.dll +0 -0
  144. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Numerics.dll +0 -0
  145. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Serialization.Formatters.dll +0 -0
  146. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Serialization.Json.dll +0 -0
  147. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Serialization.Primitives.dll +0 -0
  148. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Serialization.Xml.dll +0 -0
  149. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.Serialization.dll +0 -0
  150. package/src/interop/bin/Release/net8.0/browser-wasm/System.Runtime.dll +0 -0
  151. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.AccessControl.dll +0 -0
  152. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Claims.dll +0 -0
  153. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.Algorithms.dll +0 -0
  154. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.Cng.dll +0 -0
  155. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.Csp.dll +0 -0
  156. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.Encoding.dll +0 -0
  157. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.OpenSsl.dll +0 -0
  158. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.Primitives.dll +0 -0
  159. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.X509Certificates.dll +0 -0
  160. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Cryptography.dll +0 -0
  161. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Principal.Windows.dll +0 -0
  162. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.Principal.dll +0 -0
  163. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.SecureString.dll +0 -0
  164. package/src/interop/bin/Release/net8.0/browser-wasm/System.Security.dll +0 -0
  165. package/src/interop/bin/Release/net8.0/browser-wasm/System.ServiceModel.Web.dll +0 -0
  166. package/src/interop/bin/Release/net8.0/browser-wasm/System.ServiceProcess.dll +0 -0
  167. package/src/interop/bin/Release/net8.0/browser-wasm/System.Text.Encoding.CodePages.dll +0 -0
  168. package/src/interop/bin/Release/net8.0/browser-wasm/System.Text.Encoding.Extensions.dll +0 -0
  169. package/src/interop/bin/Release/net8.0/browser-wasm/System.Text.Encoding.dll +0 -0
  170. package/src/interop/bin/Release/net8.0/browser-wasm/System.Text.Encodings.Web.dll +0 -0
  171. package/src/interop/bin/Release/net8.0/browser-wasm/System.Text.Json.dll +0 -0
  172. package/src/interop/bin/Release/net8.0/browser-wasm/System.Text.RegularExpressions.dll +0 -0
  173. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Channels.dll +0 -0
  174. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Overlapped.dll +0 -0
  175. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Tasks.Dataflow.dll +0 -0
  176. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Tasks.Extensions.dll +0 -0
  177. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Tasks.Parallel.dll +0 -0
  178. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Tasks.dll +0 -0
  179. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Thread.dll +0 -0
  180. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.ThreadPool.dll +0 -0
  181. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.Timer.dll +0 -0
  182. package/src/interop/bin/Release/net8.0/browser-wasm/System.Threading.dll +0 -0
  183. package/src/interop/bin/Release/net8.0/browser-wasm/System.Transactions.Local.dll +0 -0
  184. package/src/interop/bin/Release/net8.0/browser-wasm/System.Transactions.dll +0 -0
  185. package/src/interop/bin/Release/net8.0/browser-wasm/System.ValueTuple.dll +0 -0
  186. package/src/interop/bin/Release/net8.0/browser-wasm/System.Web.HttpUtility.dll +0 -0
  187. package/src/interop/bin/Release/net8.0/browser-wasm/System.Web.dll +0 -0
  188. package/src/interop/bin/Release/net8.0/browser-wasm/System.Windows.dll +0 -0
  189. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.Linq.dll +0 -0
  190. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.ReaderWriter.dll +0 -0
  191. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.Serialization.dll +0 -0
  192. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.XDocument.dll +0 -0
  193. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.XPath.XDocument.dll +0 -0
  194. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.XPath.dll +0 -0
  195. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.XmlDocument.dll +0 -0
  196. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.XmlSerializer.dll +0 -0
  197. package/src/interop/bin/Release/net8.0/browser-wasm/System.Xml.dll +0 -0
  198. package/src/interop/bin/Release/net8.0/browser-wasm/System.dll +0 -0
  199. package/src/interop/bin/Release/net8.0/browser-wasm/WindowsBase.dll +0 -0
  200. package/src/interop/bin/Release/net8.0/browser-wasm/corebindings.c +104 -0
  201. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet-legacy.d.ts +295 -0
  202. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.d.ts +472 -0
  203. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.es6.extpost.js +2 -0
  204. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.es6.lib.js +163 -0
  205. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.es6.pre.js +5 -0
  206. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.js +4 -0
  207. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.js.map +1 -0
  208. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.native.js +17 -0
  209. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.native.js.symbols +8582 -0
  210. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.native.wasm +0 -0
  211. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.runtime.js +4 -0
  212. package/src/interop/bin/Release/net8.0/browser-wasm/dotnet.runtime.js.map +1 -0
  213. package/src/interop/bin/Release/net8.0/browser-wasm/driver.c +1391 -0
  214. package/src/interop/bin/Release/net8.0/browser-wasm/emcc-default.rsp +0 -0
  215. package/src/interop/bin/Release/net8.0/browser-wasm/emcc-link.rsp +16 -0
  216. package/src/interop/bin/Release/net8.0/browser-wasm/emcc-props.json +14 -0
  217. package/src/interop/bin/Release/net8.0/browser-wasm/gc-common.h +73 -0
  218. package/src/interop/bin/Release/net8.0/browser-wasm/icudt.dat +0 -0
  219. package/src/interop/bin/Release/net8.0/browser-wasm/icudt_CJK.dat +0 -0
  220. package/src/interop/bin/Release/net8.0/browser-wasm/icudt_EFIGS.dat +0 -0
  221. package/src/interop/bin/Release/net8.0/browser-wasm/icudt_hybrid.dat +0 -0
  222. package/src/interop/bin/Release/net8.0/browser-wasm/icudt_no_CJK.dat +0 -0
  223. package/src/interop/bin/Release/net8.0/browser-wasm/libSystem.Globalization.Native.a +0 -0
  224. package/src/interop/bin/Release/net8.0/browser-wasm/libSystem.IO.Compression.Native.a +0 -0
  225. package/src/interop/bin/Release/net8.0/browser-wasm/libSystem.Native.a +0 -0
  226. package/src/interop/bin/Release/net8.0/browser-wasm/libicudata.a +0 -0
  227. package/src/interop/bin/Release/net8.0/browser-wasm/libicui18n.a +0 -0
  228. package/src/interop/bin/Release/net8.0/browser-wasm/libicuuc.a +0 -0
  229. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-debugger-static.a +0 -0
  230. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-debugger-stub-static.a +0 -0
  231. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-diagnostics_tracing-static.a +0 -0
  232. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-diagnostics_tracing-stub-static.a +0 -0
  233. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-hot_reload-static.a +0 -0
  234. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-hot_reload-stub-static.a +0 -0
  235. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-marshal-ilgen-static.a +0 -0
  236. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-component-marshal-ilgen-stub-static.a +0 -0
  237. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-ee-interp.a +0 -0
  238. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-icall-table.a +0 -0
  239. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-profiler-aot.a +0 -0
  240. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-profiler-browser.a +0 -0
  241. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-wasm-eh-js.a +0 -0
  242. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-wasm-eh-wasm.a +0 -0
  243. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-wasm-nosimd.a +0 -0
  244. package/src/interop/bin/Release/net8.0/browser-wasm/libmono-wasm-simd.a +0 -0
  245. package/src/interop/bin/Release/net8.0/browser-wasm/libmonosgen-2.0.a +0 -0
  246. package/src/interop/bin/Release/net8.0/browser-wasm/mscorlib.dll +0 -0
  247. package/src/interop/bin/Release/net8.0/browser-wasm/netstandard.dll +0 -0
  248. package/src/interop/bin/Release/net8.0/browser-wasm/package.json +44 -0
  249. package/src/interop/bin/Release/net8.0/browser-wasm/pal_random.lib.js +45 -0
  250. package/src/interop/bin/Release/net8.0/browser-wasm/pinvoke.c +62 -0
  251. package/src/interop/bin/Release/net8.0/browser-wasm/pinvoke.h +50 -0
  252. package/src/interop/bin/Release/net8.0/browser-wasm/runtimeconfig.bin +1 -0
  253. package/src/interop/bin/Release/net8.0/browser-wasm/wasm-bundled-timezones.a +0 -0
  254. package/src/interop/bin/Release/net8.0/browser-wasm/wasm-config.h +13 -0
  255. package/src/interop/modelParser.js +11 -0
  256. package/src/interop/obj/DTDLParserJSInterop.csproj.nuget.dgspec.json +83 -0
  257. package/src/interop/obj/DTDLParserJSInterop.csproj.nuget.g.props +21 -0
  258. package/src/interop/obj/DTDLParserJSInterop.csproj.nuget.g.targets +6 -0
  259. package/src/interop/obj/Release/net8.0/browser-wasm/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +4 -0
  260. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLPars.F465EEA8.Up2Date +0 -0
  261. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.AssemblyInfo.cs +22 -0
  262. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.AssemblyInfoInputs.cache +1 -0
  263. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.GeneratedMSBuildEditorConfig.editorconfig +17 -0
  264. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.assets.cache +0 -0
  265. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.csproj.AssemblyReference.cache +0 -0
  266. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.csproj.CoreCompileInputs.cache +1 -0
  267. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.csproj.FileListAbsolute.txt +237 -0
  268. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.dll +0 -0
  269. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.genruntimeconfig.cache +1 -0
  270. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.pdb +0 -0
  271. package/src/interop/obj/Release/net8.0/browser-wasm/DTDLParserJSInterop.sourcelink.json +1 -0
  272. package/src/interop/obj/Release/net8.0/browser-wasm/ref/DTDLParserJSInterop.dll +0 -0
  273. package/src/interop/obj/Release/net8.0/browser-wasm/refint/DTDLParserJSInterop.dll +0 -0
  274. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/corebindings.o +0 -0
  275. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/dotnet.native.js +17 -0
  276. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/dotnet.native.wasm +0 -0
  277. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/driver.o +0 -0
  278. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/emcc-compile.rsp +12 -0
  279. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/emcc-link.rsp +38 -0
  280. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/icall-table.h +1653 -0
  281. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/m2n_cache.txt +3 -0
  282. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/pinvoke-table.h +329 -0
  283. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/pinvoke.o +0 -0
  284. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/runtime-icall-table.h +449 -0
  285. package/src/interop/obj/Release/net8.0/browser-wasm/wasm/for-build/wasm_m2n_invoke.g.h +522 -0
  286. package/src/interop/obj/project.assets.json +384 -0
  287. package/src/interop/obj/project.nuget.cache +13 -0
  288. package/src/interop/runtimeconfig.template.json +11 -0
  289. package/src/interop.ts +9 -0
  290. package/test/mocharc.json +6 -0
  291. package/tsconfig.json +31 -0
  292. package/types/DtdlErr.d.ts +26 -0
  293. package/types/DtdlOm.d.ts +372 -0
  294. package/build/package.json +0 -62
  295. package/build/src/error.js +0 -2
  296. package/build/src/error.js.map +0 -1
  297. package/build/src/index.js +0 -6
  298. package/build/src/index.js.map +0 -1
  299. package/build/src/interop.js +0 -2
  300. package/build/src/interop.js.map +0 -1
  301. /package/{build/src → src}/__tests__/fixtures/empty.json +0 -0
  302. /package/{build/src → src}/__tests__/fixtures/nested/nested.json +0 -0
package/.depcheckrc ADDED
@@ -0,0 +1,6 @@
1
+ ignores: [
2
+ '@swc-node/register',
3
+ 'prettier-plugin-organize-imports',
4
+ 'rimraf',
5
+ 'typescript'
6
+ ]
@@ -0,0 +1,4 @@
1
+ # Github CODEOWNERS file
2
+
3
+ # Global code-owners for this repository
4
+ * @digicatapult/software-engineering
@@ -0,0 +1,198 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches: ['main', 'init-commit']
6
+ jobs:
7
+ preconditions:
8
+ runs-on: ubuntu-latest
9
+ outputs:
10
+ repo_name: ${{ steps.repo_ids.outputs.REPO_NAME }}
11
+ org_name: ${{ steps.repo_ids.outputs.ORG_NAME }}
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v4
15
+ with:
16
+ fetch-depth: 0
17
+ - name: Check Github token
18
+ run: |
19
+ if [ -z "${{ secrets.GITHUB_TOKEN }}"]; then
20
+ echo "Must provide a GITHUB_TOKEN secret in order to run release workflow"
21
+ exit 1
22
+ fi
23
+ - name: Check npmjs token
24
+ run: |
25
+ if [ -z "${{ secrets.NPMJS_TOKEN }}"]; then
26
+ echo "Must provide a NPMJS_TOKEN secret in order to run release workflow"
27
+ exit 1
28
+ fi
29
+ - name: Get repository identifiers
30
+ id: repo_ids
31
+ run: |
32
+ REPO_NAME=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]')
33
+ ORG_NAME=$(echo "${{ github.event.repository.owner.name }}" | tr '[:upper:]' '[:lower:]')
34
+ echo "REPO_NAME=$REPO_NAME" >> $GITHUB_OUTPUT
35
+ echo "ORG_NAME=$ORG_NAME" >> $GITHUB_OUTPUT
36
+ static-checks:
37
+ name: Run Static Analysis Checks
38
+ strategy:
39
+ fail-fast: false
40
+ matrix:
41
+ command: [lint, depcheck, check]
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ - uses: actions/setup-node@v4
46
+ with:
47
+ node-version: 20.x
48
+ - name: Cache Node.js modules
49
+ uses: actions/cache@v4
50
+ with:
51
+ path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
52
+ key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
53
+ restore-keys: |
54
+ ${{ runner.OS }}-node-
55
+ ${{ runner.OS }}-
56
+ - name: Install Packages
57
+ run: npm ci
58
+ - name: Checks
59
+ run: npm run ${{ matrix.command }}
60
+ tests:
61
+ name: Run tests
62
+ strategy:
63
+ fail-fast: false
64
+ matrix:
65
+ command: ['test']
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - uses: actions/checkout@v4
69
+ - uses: actions/setup-dotnet@v4
70
+ with:
71
+ dotnet-version: '8.0.x'
72
+ - uses: actions/setup-node@v4
73
+ with:
74
+ node-version: 20.x
75
+ - name: Cache Node.js modules
76
+ uses: actions/cache@v4
77
+ with:
78
+ path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
79
+ key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
80
+ restore-keys: |
81
+ ${{ runner.OS }}-node-
82
+ ${{ runner.OS }}-
83
+ - name: Install wasm tools
84
+ run: dotnet workload install wasm-tools
85
+ - name: Install Packages
86
+ run: npm ci
87
+ - name: Build
88
+ run: npm run build
89
+ - name: Run tests
90
+ run: npm run ${{ matrix.command }}
91
+ check-version:
92
+ name: 'Check version'
93
+ runs-on: ubuntu-latest
94
+ outputs:
95
+ is_new_version: ${{ steps.get_version.outputs.IS_NEW_VERSION }}
96
+ version: ${{ steps.get_version.outputs.VERSION }}
97
+ build_date: ${{ steps.get_version.outputs.BUILD_DATE }}
98
+ is_prerelease: ${{ steps.get_version.outputs.IS_PRERELEASE }}
99
+
100
+ steps:
101
+ - uses: actions/checkout@v4
102
+ - name: Check version
103
+ id: get_version
104
+ uses: digicatapult/check-version@v1
105
+ with:
106
+ token: ${{ secrets.GITHUB_TOKEN }}
107
+ publish-gh:
108
+ name: 'Publish Github package'
109
+ needs:
110
+ - preconditions
111
+ - static-checks
112
+ - tests
113
+ - check-version
114
+ runs-on: ubuntu-latest
115
+ if: ${{ needs.check-version.outputs.is_new_version == 'true' }}
116
+
117
+ steps:
118
+ - uses: actions/checkout@v4
119
+ - uses: actions/setup-node@v4
120
+ with:
121
+ node-version: '16.x'
122
+ registry-url: 'https://npm.pkg.github.com'
123
+ scope: '@digicatapult'
124
+ - name: Install packages
125
+ run: npm ci
126
+ - name: Publish to github packages
127
+ run: npm publish --access public
128
+ env:
129
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
130
+
131
+ publish-npm:
132
+ name: 'Publish package to NPMJS'
133
+ needs:
134
+ - preconditions
135
+ - static-checks
136
+ - tests
137
+ - check-version
138
+ runs-on: ubuntu-latest
139
+ if: ${{ needs.check-version.outputs.is_new_version == 'true' }}
140
+
141
+ steps:
142
+ - uses: actions/checkout@v4
143
+ - uses: actions/setup-node@v4
144
+ with:
145
+ node-version: '18.x'
146
+ registry-url: 'https://registry.npmjs.org'
147
+ scope: '@digicatapult'
148
+ - uses: actions/setup-dotnet@v4
149
+ with:
150
+ dotnet-version: '8.0.x'
151
+ - name: Install wasm tools
152
+ run: dotnet workload install wasm-tools
153
+ - name: Install packages
154
+ run: npm ci
155
+ - name: Build
156
+ run: npm run build
157
+ - name: Publish to npmjs packages
158
+ run: npm publish --access public
159
+ env:
160
+ NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}
161
+
162
+ publish:
163
+ name: 'Publish release'
164
+ needs: [preconditions, static-checks, tests, check-version]
165
+ runs-on: ubuntu-latest
166
+ if: ${{ needs.check-version.outputs.is_new_version == 'true' }}
167
+
168
+ steps:
169
+ - uses: actions/checkout@v4
170
+
171
+ - name: Build release version
172
+ uses: softprops/action-gh-release@v2
173
+ with:
174
+ token: '${{ secrets.GITHUB_TOKEN }}'
175
+ tag_name: ${{ needs.check-version.outputs.version }}
176
+ prerelease: false
177
+ name: ${{ needs.check-version.outputs.version }}
178
+ generate_release_notes: true
179
+ - name: Delete release latest
180
+ uses: actions/github-script@v7
181
+ with:
182
+ github-token: ${{secrets.GITHUB_TOKEN}}
183
+ script: |
184
+ const { owner, repo } = context.repo
185
+ try {
186
+ await github.rest.git.deleteRef({ owner, repo, ref: 'tags/latest' })
187
+ }
188
+ catch (err) {
189
+ if (err.status !== 422) throw err
190
+ }
191
+ - name: Build release latest
192
+ uses: softprops/action-gh-release@v2
193
+ with:
194
+ token: '${{ secrets.GITHUB_TOKEN }}'
195
+ tag_name: latest
196
+ prerelease: false
197
+ name: Latest ${{ needs.check-version.outputs.version }}
198
+ generate_release_notes: true
@@ -0,0 +1,92 @@
1
+ name: Lint and Test
2
+
3
+ on:
4
+ push:
5
+ branches-ignore: ['main']
6
+
7
+ jobs:
8
+ repo_ids:
9
+ runs-on: ubuntu-latest
10
+ outputs:
11
+ repo_name: ${{ steps.repo_ids.outputs.REPO_NAME }}
12
+ org_name: ${{ steps.repo_ids.outputs.ORG_NAME }}
13
+ steps:
14
+ - name: Checkout
15
+ uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 0
18
+ - name: Get repository identifiers
19
+ id: repo_ids
20
+ run: |
21
+ REPO_NAME=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]')
22
+ ORG_NAME=$(echo "${{ github.event.repository.owner.name }}" | tr '[:upper:]' '[:lower:]')
23
+ echo "REPO_NAME=$REPO_NAME" >> $GITHUB_OUTPUT
24
+ echo "ORG_NAME=$ORG_NAME" >> $GITHUB_OUTPUT
25
+
26
+ static-checks:
27
+ name: Run Static Analysis Checks
28
+ strategy:
29
+ fail-fast: false
30
+ matrix:
31
+ command: [lint, depcheck, check]
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v4
35
+ - uses: actions/setup-node@v4
36
+ with:
37
+ node-version: 20.x
38
+ - name: Cache Node.js modules
39
+ uses: actions/cache@v4
40
+ with:
41
+ path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
42
+ key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
43
+ restore-keys: |
44
+ ${{ runner.OS }}-node-
45
+ ${{ runner.OS }}-
46
+ - name: Install Packages
47
+ run: npm ci
48
+ - name: Lint
49
+ run: npm run ${{ matrix.command }}
50
+
51
+ tests:
52
+ name: Run tests
53
+ strategy:
54
+ fail-fast: false
55
+ matrix:
56
+ command: ['test']
57
+ runs-on: ubuntu-latest
58
+ steps:
59
+ - uses: actions/checkout@v4
60
+ - uses: actions/setup-node@v4
61
+ with:
62
+ node-version: 20.x
63
+ - name: Cache Node.js modules
64
+ uses: actions/cache@v4
65
+ with:
66
+ path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
67
+ key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
68
+ restore-keys: |
69
+ ${{ runner.OS }}-node-
70
+ ${{ runner.OS }}-
71
+ - uses: actions/setup-dotnet@v4
72
+ with:
73
+ dotnet-version: '8.0.x'
74
+ - name: Install wasm tools
75
+ run: dotnet workload install wasm-tools
76
+ - name: Install Packages
77
+ run: npm ci
78
+ - name: Build
79
+ run: npm run build
80
+ - name: Run tests
81
+ run: npm run ${{ matrix.command }}
82
+
83
+ check-version:
84
+ name: 'Check version'
85
+ runs-on: ubuntu-latest
86
+ steps:
87
+ - uses: actions/checkout@v4
88
+ - name: Check version
89
+ id: get_version
90
+ uses: digicatapult/check-version@v1
91
+ with:
92
+ token: ${{ secrets.GITHUB_TOKEN }}
package/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ node_modules/
2
+ bin
3
+ obj
4
+ build/
package/.prettierrc ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "singleQuote": true,
3
+ "semi": false,
4
+ "trailingComma": "es5",
5
+ "printWidth": 120,
6
+ "plugins": [
7
+ "prettier-plugin-organize-imports"
8
+ ]
9
+ }
package/.swcrc ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://swc.rs/schema.json",
3
+ "jsc": {
4
+ "parser": {
5
+ "syntax": "typescript",
6
+ "decorators": true,
7
+ "topLevelAwait": true,
8
+ "importMeta": true
9
+ },
10
+ "transform": {
11
+ "legacyDecorator": true,
12
+ "decoratorMetadata": true,
13
+ "useDefineForClassFields": true
14
+ },
15
+ "minify": {
16
+ "compress": {
17
+ "unused": true
18
+ },
19
+ "mangle": true
20
+ },
21
+ "target": "esnext",
22
+ "experimental": {
23
+ "keepImportAttributes": true
24
+ }
25
+ },
26
+ "exclude": [
27
+ "__tests__",
28
+ "interop"
29
+ ],
30
+ "sourceMaps": true,
31
+ "isModule": true
32
+ }
@@ -0,0 +1,2 @@
1
+ export declare const isResolutionException: (err: unknown) => boolean;
2
+ export declare const errorHandler: (err: unknown) => void;
package/build/error.js ADDED
@@ -0,0 +1,9 @@
1
+ let { error: e } = console, n = (e)=>'Parsing' === e.ExceptionKind, o = (e)=>'Resolution' === e.ExceptionKind;
2
+ export const isResolutionException = (e)=>e instanceof Error && o(JSON.parse(e.message));
3
+ export const errorHandler = (r)=>{
4
+ if (!(r instanceof Error)) return e(`Unexpected error: ${r}`);
5
+ let t = JSON.parse(r.message);
6
+ n(t) || o(t) || e('Unknown exception type'), e(t);
7
+ };
8
+
9
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/error.ts"],"sourcesContent":["import type { ModelingException, ParsingException, ResolutionException } from '../types/DtdlErr.d.ts'\n\nconst { error } = console\n\nconst isParsingEx = (exception: ModelingException): exception is ParsingException => {\n return exception.ExceptionKind === 'Parsing'\n}\n\nconst isResolutionEx = (exception: ModelingException): exception is ResolutionException => {\n return exception.ExceptionKind === 'Resolution'\n}\n\nexport const isResolutionException = (err: unknown) => {\n if (!(err instanceof Error)) return false\n return isResolutionEx(JSON.parse(err.message))\n}\n\nexport const errorHandler = (err: unknown) => {\n if (!(err instanceof Error)) return error(`Unexpected error: ${err}`)\n\n const exception = JSON.parse(err.message) as ModelingException\n\n if (!(isParsingEx(exception) || isResolutionEx(exception))) error('Unknown exception type')\n error(exception)\n}\n"],"names":["error","console","isParsingEx","exception","ExceptionKind","isResolutionEx","isResolutionException","err","Error","JSON","parse","message","errorHandler"],"mappings":"AAEA,IAAM,EAAEA,OAAAA,CAAK,EAAE,GAAGC,SAEZC,IAAc,CAACC,IACZA,AAA4B,cAA5BA,EAAUC,aAAa,EAG1BC,IAAiB,CAACF,IACfA,AAA4B,iBAA5BA,EAAUC,aAAa;AAGhC,OAAO,MAAME,wBAAwB,CAACC,IACpC,AAAMA,aAAeC,SACdH,EAAeI,KAAKC,KAAK,CAACH,EAAII,OAAO,GAC7C;AAED,OAAO,MAAMC,eAAe,CAACL;IAC3B,IAAI,CAAEA,CAAAA,aAAeC,KAAI,GAAI,OAAOR,EAAM,CAAC,kBAAkB,EAAEO,GAAK;IAEpE,IAAMJ,IAAYM,KAAKC,KAAK,CAACH,EAAII,OAAO;IAElCT,EAAYC,MAAcE,EAAeF,MAAaH,EAAM,2BAClEA,EAAMG;AACR,EAAC"}
@@ -0,0 +1,8 @@
1
+ import type { DtdlObjectModel } from '../types/DtdlOm.d.ts';
2
+ import type { Parser } from './interop.js';
3
+ export type * from '../types/DtdlErr.d.ts';
4
+ export type * from '../types/DtdlOm.d.ts';
5
+ export { getInterop } from './interop.js';
6
+ export declare const searchForJsonFiles: (directory: string) => string[];
7
+ export declare const validateDirectories: (directory: string, parser: Parser, incResolutionException: boolean) => boolean;
8
+ export declare const parseDirectories: (directory: string, parser: Parser) => DtdlObjectModel | null;
package/build/index.js ADDED
@@ -0,0 +1,59 @@
1
+ import e from 'fs';
2
+ import r from 'path';
3
+ import { errorHandler as t, isResolutionException as l } from './error.js';
4
+ let { log: n, error: s } = console;
5
+ export { getInterop } from './interop.js';
6
+ export const searchForJsonFiles = (t)=>e.existsSync(t) ? e.readdirSync(t).map((e)=>r.join(t, e)).reduce((t, l)=>e.statSync(l).isDirectory() ? t.concat(searchForJsonFiles(l)) : '.json' === r.extname(l) ? t.concat(l) : t, []) : (s(`'${t}' not a valid filepath`), []);
7
+ let i = (r)=>{
8
+ try {
9
+ let t = e.readFileSync(r, 'utf-8');
10
+ return JSON.parse(t);
11
+ } catch (e) {
12
+ return s(`Invalid JSON at '${r}'`), s(e), null;
13
+ }
14
+ }, a = (e)=>{
15
+ let r = [];
16
+ for (let t of e){
17
+ let e = i(t);
18
+ if (null === e) return null;
19
+ r.push(e);
20
+ }
21
+ return r;
22
+ }, o = (r, i, a)=>{
23
+ try {
24
+ let t = e.readFileSync(r, 'utf-8');
25
+ return i.parse(t), n(`Successfully validated '${r}'`), !0;
26
+ } catch (e) {
27
+ if (!a && l(e)) return n(`Successfully validated '${r}'`), !0;
28
+ return s(`Error parsing '${r}'`), t(e), !1;
29
+ }
30
+ }, u = (e, r)=>{
31
+ try {
32
+ let t = JSON.parse(r.parse(JSON.stringify(e)));
33
+ return n("Successfully parsed"), t;
34
+ } catch (e) {
35
+ return s("Error parsing"), t(e), null;
36
+ }
37
+ };
38
+ export const validateDirectories = (e, r, t)=>{
39
+ n(`${r.parserVersion()}\n`), n(`Validating DTDL at: '${e}'`);
40
+ let l = searchForJsonFiles(e);
41
+ if (l.length < 1) return !1;
42
+ for (let e of (n(`Found ${l.length} files:`), n(l), l))if (!o(e, r, t)) return !1;
43
+ return n(`All files validated!\n`), !0;
44
+ };
45
+ export const parseDirectories = (e, r)=>{
46
+ n(`${r.parserVersion()}\n`), n(`Parsing DTDL at: '${e}'`);
47
+ let t = searchForJsonFiles(e);
48
+ if (t.length < 1) return null;
49
+ n(`Found ${t.length} files:`), n(t);
50
+ let l = a(t);
51
+ if (null === l) return null;
52
+ let s = u(l, r);
53
+ if (null === s) return null;
54
+ n(`All files parsed!\n`), n("Entities:"), n(Object.keys(s));
55
+ let i = Object.values(s).filter((e)=>'Interface' === e.EntityKind);
56
+ return n(`Number of interfaces: ${i.length}`), s;
57
+ };
58
+
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport type { DtdlObjectModel, InterfaceInfo } from '../types/DtdlOm.d.ts'\nimport { errorHandler, isResolutionException } from './error.js'\nimport type { Parser } from './interop.js'\n\nconst { log, error } = console\n\nexport type * from '../types/DtdlErr.d.ts'\nexport type * from '../types/DtdlOm.d.ts'\nexport { getInterop } from './interop.js'\n\nexport const searchForJsonFiles = (directory: string): string[] => {\n if (!fs.existsSync(directory)) {\n error(`'${directory}' not a valid filepath`)\n return []\n }\n\n return fs\n .readdirSync(directory)\n .map((file) => path.join(directory, file))\n .reduce((jsonFiles, fullPath) => {\n if (fs.statSync(fullPath).isDirectory()) {\n return jsonFiles.concat(searchForJsonFiles(fullPath)) //recursive\n } else if (path.extname(fullPath) === '.json') {\n return jsonFiles.concat(fullPath)\n }\n return jsonFiles\n }, [] as string[])\n}\n\nconst readJsonFile = (filepath: string): unknown | null => {\n try {\n const file = fs.readFileSync(filepath, 'utf-8')\n const json = JSON.parse(file)\n return json\n } catch (err) {\n error(`Invalid JSON at '${filepath}'`)\n error(err)\n return null\n }\n}\n\nconst combineJson = (filepaths: string[]) => {\n const combinedJson: unknown[] = []\n\n for (const filepath of filepaths) {\n const json = readJsonFile(filepath)\n if (json === null) {\n return null // exit on any error\n }\n combinedJson.push(json)\n }\n\n return combinedJson\n}\n\nconst validateFile = (filepath: string, parserModule: Parser, incResolutionException: boolean): boolean => {\n try {\n const file = fs.readFileSync(filepath, 'utf-8')\n parserModule.parse(file)\n log(`Successfully validated '${filepath}'`)\n return true\n } catch (err) {\n if (!incResolutionException && isResolutionException(err)) {\n // ignore resolution exception\n log(`Successfully validated '${filepath}'`)\n return true\n }\n error(`Error parsing '${filepath}'`)\n errorHandler(err)\n return false\n }\n}\n\nconst parseDtdl = (json: unknown[], parserModule: Parser): DtdlObjectModel | null => {\n try {\n const model = JSON.parse(parserModule.parse(JSON.stringify(json))) as DtdlObjectModel\n log(`Successfully parsed`)\n return model\n } catch (err) {\n error(`Error parsing`)\n errorHandler(err)\n return null\n }\n}\n\nexport const validateDirectories = (directory: string, parser: Parser, incResolutionException: boolean): boolean => {\n log(`${parser.parserVersion()}\\n`)\n log(`Validating DTDL at: '${directory}'`)\n\n const filepaths = searchForJsonFiles(directory)\n if (filepaths.length < 1) return false\n\n log(`Found ${filepaths.length} files:`)\n log(filepaths)\n\n for (const filepath of filepaths) {\n const isValid = validateFile(filepath, parser, incResolutionException)\n if (!isValid) return false // stop validating if error\n }\n\n log(`All files validated!\\n`)\n return true\n}\n\nexport const parseDirectories = (directory: string, parser: Parser): DtdlObjectModel | null => {\n log(`${parser.parserVersion()}\\n`)\n log(`Parsing DTDL at: '${directory}'`)\n\n const filepaths = searchForJsonFiles(directory)\n if (filepaths.length < 1) return null\n\n log(`Found ${filepaths.length} files:`)\n log(filepaths)\n\n const fullJson = combineJson(filepaths)\n if (fullJson === null) return null\n\n const fullModel = parseDtdl(fullJson, parser)\n if (fullModel === null) return null\n\n log(`All files parsed!\\n`)\n log(`Entities:`)\n log(Object.keys(fullModel))\n\n // Example type guard\n const interfaces: InterfaceInfo[] = Object.values(fullModel).filter(\n (value): value is InterfaceInfo => value.EntityKind === 'Interface'\n )\n log(`Number of interfaces: ${interfaces.length}`)\n\n return fullModel\n}\n"],"names":["fs","path","errorHandler","isResolutionException","log","error","console","getInterop","searchForJsonFiles","directory","existsSync","readdirSync","map","file","join","reduce","jsonFiles","fullPath","statSync","isDirectory","concat","extname","readJsonFile","filepath","readFileSync","JSON","parse","err","combineJson","filepaths","combinedJson","json","push","validateFile","parserModule","incResolutionException","parseDtdl","model","stringify","validateDirectories","parser","parserVersion","length","parseDirectories","fullJson","fullModel","Object","keys","interfaces","values","filter","value","EntityKind"],"mappings":"AAAA,OAAOA,OAAQ,KAAI;AACnB,OAAOC,OAAU,OAAM;AAEvB,SAASC,gBAAAA,CAAY,EAAEC,yBAAAA,CAAqB,QAAQ,aAAY;AAGhE,IAAM,EAAEC,KAAAA,CAAG,EAAEC,OAAAA,CAAK,EAAE,GAAGC;AAIvB,SAASC,UAAU,QAAQ,eAAc;AAEzC,OAAO,MAAMC,qBAAqB,CAACC,IACjC,AAAKT,EAAGU,UAAU,CAACD,KAKZT,EACJW,WAAW,CAACF,GACZG,GAAG,CAAC,CAACC,IAASZ,EAAKa,IAAI,CAACL,GAAWI,IACnCE,MAAM,CAAC,CAACC,GAAWC,IAClB,AAAIjB,EAAGkB,QAAQ,CAACD,GAAUE,WAAW,KAC5BH,EAAUI,MAAM,CAACZ,mBAAmBS,MAClChB,AAA2B,YAA3BA,EAAKoB,OAAO,CAACJ,KACfD,EAAUI,MAAM,CAACH,KAEnBD,GACN,EAAE,KAdLX,EAAM,CAAC,CAAC,EAAEI,EAAU,sBAAsB,CAAC,GACpC,EAAE,EAcZ;AAED,IAAMa,IAAe,CAACC;IACpB,IAAI;QACF,IAAMV,IAAOb,EAAGwB,YAAY,CAACD,GAAU;QAEvC,OADaE,KAAKC,KAAK,CAACb;IAE1B,EAAE,OAAOc,GAAK;QAGZ,OAFAtB,EAAM,CAAC,iBAAiB,EAAEkB,EAAS,CAAC,CAAC,GACrClB,EAAMsB,IACC;IACT;AACF,GAEMC,IAAc,CAACC;IACnB,IAAMC,IAA0B,EAAE;IAElC,KAAK,IAAMP,KAAYM,EAAW;QAChC,IAAME,IAAOT,EAAaC;QAC1B,IAAIQ,AAAS,SAATA,GACF,OAAO;QAETD,EAAaE,IAAI,CAACD;IACpB;IAEA,OAAOD;AACT,GAEMG,IAAe,CAACV,GAAkBW,GAAsBC;IAC5D,IAAI;QACF,IAAMtB,IAAOb,EAAGwB,YAAY,CAACD,GAAU;QAGvC,OAFAW,EAAaR,KAAK,CAACb,IACnBT,EAAI,CAAC,wBAAwB,EAAEmB,EAAS,CAAC,CAAC,GACnC,CAAA;IACT,EAAE,OAAOI,GAAK;QACZ,IAAI,CAACQ,KAA0BhC,EAAsBwB,IAGnD,OADAvB,EAAI,CAAC,wBAAwB,EAAEmB,EAAS,CAAC,CAAC,GACnC,CAAA;QAIT,OAFAlB,EAAM,CAAC,eAAe,EAAEkB,EAAS,CAAC,CAAC,GACnCrB,EAAayB,IACN,CAAA;IACT;AACF,GAEMS,IAAY,CAACL,GAAiBG;IAClC,IAAI;QACF,IAAMG,IAAQZ,KAAKC,KAAK,CAACQ,EAAaR,KAAK,CAACD,KAAKa,SAAS,CAACP;QAE3D,OADA3B,EAAI,wBACGiC;IACT,EAAE,OAAOV,GAAK;QAGZ,OAFAtB,EAAM,kBACNH,EAAayB,IACN;IACT;AACF;AAEA,OAAO,MAAMY,sBAAsB,CAAC9B,GAAmB+B,GAAgBL;IACrE/B,EAAI,GAAGoC,EAAOC,aAAa,GAAG,EAAE,CAAC,GACjCrC,EAAI,CAAC,qBAAqB,EAAEK,EAAU,CAAC,CAAC;IAExC,IAAMoB,IAAYrB,mBAAmBC;IACrC,IAAIoB,EAAUa,MAAM,GAAG,GAAG,OAAO,CAAA;IAKjC,KAAK,IAAMnB,MAHXnB,EAAI,CAAC,MAAM,EAAEyB,EAAUa,MAAM,CAAC,OAAO,CAAC,GACtCtC,EAAIyB,IAEmBA,GAErB,IAAI,CADYI,EAAaV,GAAUiB,GAAQL,IACjC,OAAO,CAAA;IAIvB,OADA/B,EAAI,CAAC,sBAAsB,CAAC,GACrB,CAAA;AACT,EAAC;AAED,OAAO,MAAMuC,mBAAmB,CAAClC,GAAmB+B;IAClDpC,EAAI,GAAGoC,EAAOC,aAAa,GAAG,EAAE,CAAC,GACjCrC,EAAI,CAAC,kBAAkB,EAAEK,EAAU,CAAC,CAAC;IAErC,IAAMoB,IAAYrB,mBAAmBC;IACrC,IAAIoB,EAAUa,MAAM,GAAG,GAAG,OAAO;IAEjCtC,EAAI,CAAC,MAAM,EAAEyB,EAAUa,MAAM,CAAC,OAAO,CAAC,GACtCtC,EAAIyB;IAEJ,IAAMe,IAAWhB,EAAYC;IAC7B,IAAIe,AAAa,SAAbA,GAAmB,OAAO;IAE9B,IAAMC,IAAYT,EAAUQ,GAAUJ;IACtC,IAAIK,AAAc,SAAdA,GAAoB,OAAO;IAE/BzC,EAAI,CAAC,mBAAmB,CAAC,GACzBA,EAAI,cACJA,EAAI0C,OAAOC,IAAI,CAACF;IAGhB,IAAMG,IAA8BF,OAAOG,MAAM,CAACJ,GAAWK,MAAM,CACjE,CAACC,IAAkCA,AAAqB,gBAArBA,EAAMC,UAAU;IAIrD,OAFAhD,EAAI,CAAC,sBAAsB,EAAE4C,EAAWN,MAAM,EAAE,GAEzCG;AACT,EAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "DTDLParserJSInterop.dll",
3
3
  "resources": {
4
- "hash": "sha256-5cGxkmEEpCF3YePOrNrvthHd5RFniq/IvMYK6PV6Fds=",
4
+ "hash": "sha256-QX5JG5/DtNnflHHj0ApuxEODJm2ljBbWqU8++LXEupQ=",
5
5
  "jsModuleNative": {
6
6
  "dotnet.native.js": "sha256-79LdZogK41buIci0KtOWmQvQc2swMI3jvDQCoN23NBM="
7
7
  },
@@ -181,10 +181,10 @@
181
181
  "mscorlib.wasm": "sha256-KvqZaNpjwhrOuzE4b4aMFsI+VUTyiWfoDI4zn4l9BM8=",
182
182
  "netstandard.wasm": "sha256-v+s7sWxtOM6bnOvC0jFrtnm6uMfbDymwl2nHNgbS2LM=",
183
183
  "System.Private.CoreLib.wasm": "sha256-pklll63uFQoY6vaD3vbluS9osYiJWLLLmob1yHFgepI=",
184
- "DTDLParserJSInterop.wasm": "sha256-rV43Cc+yFKyJXJN7aKOt49fNpeW1ZGzJoZDt4xU4rVo="
184
+ "DTDLParserJSInterop.wasm": "sha256-LIeTpiKwtFb7qU5P0NKMm5a6hQkbwycXeHoKOsEC0uE="
185
185
  },
186
186
  "pdb": {
187
- "DTDLParserJSInterop.pdb": "sha256-bycm3YQJrleZI6Dmbqn8bpz2mt7IKGMA95KK71LceA0="
187
+ "DTDLParserJSInterop.pdb": "sha256-st4B4B7o6fJ74mewyGLB7nd5YPDyE58Kqim9h+hnfdw="
188
188
  },
189
189
  "vfs": {
190
190
  "runtimeconfig.bin": {
@@ -0,0 +1,5 @@
1
+ export declare const getInterop: () => Promise<Parser>;
2
+ export interface Parser {
3
+ parse: (file: string) => string;
4
+ parserVersion: () => string;
5
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "@type": "Interface",
3
+ "@id": "dtmi:com:example:Thermostat",
4
+ "contents": [
5
+ {
6
+ "@type": "Telemetry",
7
+ "name": "temperature",
8
+ "schema": "double"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "@context": ["dtmi:dtdl:context;3"],
3
+ "@id": "dtmi:com:example;1",
4
+ "@type": "Interface",
5
+ "extends": {
6
+ "@type": "Interface",
7
+ "@id": "dtmi:com:example:base;1"
8
+ }
9
+ }
@@ -0,0 +1,52 @@
1
+ import { FlatCompat } from '@eslint/eslintrc'
2
+ import js from '@eslint/js'
3
+ import typescriptEslint from '@typescript-eslint/eslint-plugin'
4
+ import tsParser from '@typescript-eslint/parser'
5
+ import prettier from 'eslint-plugin-prettier'
6
+ import globals from 'globals'
7
+ import path from 'node:path'
8
+ import { fileURLToPath } from 'node:url'
9
+
10
+ const __filename = fileURLToPath(import.meta.url)
11
+ const __dirname = path.dirname(__filename)
12
+ const compat = new FlatCompat({
13
+ baseDirectory: __dirname,
14
+ recommendedConfig: js.configs.recommended,
15
+ allConfig: js.configs.all,
16
+ })
17
+
18
+ export default [
19
+ ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'),
20
+ {
21
+ plugins: {
22
+ prettier,
23
+ '@typescript-eslint': typescriptEslint,
24
+ },
25
+
26
+ languageOptions: {
27
+ globals: {
28
+ ...globals.node,
29
+ },
30
+
31
+ parser: tsParser,
32
+ ecmaVersion: 12,
33
+ sourceType: 'module',
34
+ },
35
+
36
+ rules: {
37
+ 'prettier/prettier': 'error',
38
+ '@typescript-eslint/no-unused-vars': [
39
+ 'warn',
40
+ {
41
+ ignoreRestSiblings: true,
42
+ },
43
+ ],
44
+
45
+ 'no-console': 2,
46
+ 'no-duplicate-imports': 'warn',
47
+ },
48
+ },
49
+ {
50
+ ignores: ['build/', 'node_modules/', 'interop/'],
51
+ },
52
+ ]
package/package.json CHANGED
@@ -1,14 +1,21 @@
1
1
  {
2
2
  "name": "@digicatapult/dtdl-parser",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "description": "JS tool to parse DTDL defined Ontologies",
5
- "main": "build/src/index.js",
5
+ "main": "build/index.js",
6
6
  "type": "module",
7
+ "exports": {
8
+ "import": "./build/index.js"
9
+ },
10
+ "types": "./build/index.d.ts",
7
11
  "scripts": {
8
12
  "test": "NODE_ENV=test ./node_modules/.bin/mocha --config ./test/mocharc.json ./src/**/*.test.ts",
9
- "build": "swc ./src ./package.json -d ./build --copy-files && npm run interop:build",
13
+ "build": "npm run build:ts && npm run interop:build && npm run build:declarations",
14
+ "build:declarations": "tsc --emitDeclarationOnly",
10
15
  "interop:debug": "dotnet build interop",
11
- "interop:build": "dotnet build interop --configuration Release",
16
+ "interop:build": "dotnet build src/interop --configuration Release",
17
+ "build:ts": "swc ./src -d ./build --strip-leading-paths",
18
+ "check": "tsc --noEmit",
12
19
  "clean": "rimraf -rf ./build",
13
20
  "lint": "eslint .",
14
21
  "depcheck": "depcheck"
@@ -18,7 +25,8 @@
18
25
  "url": "git+https://github.com/digicatapult/dtdl-parser.git"
19
26
  },
20
27
  "files": [
21
- "build"
28
+ "build",
29
+ ""
22
30
  ],
23
31
  "keywords": [
24
32
  "dtdl",
@@ -59,4 +67,4 @@
59
67
  "engines": {
60
68
  "node": ">= 20"
61
69
  }
62
- }
70
+ }