From fdc4773125fb37bf7140476460a117e575e420ae Mon Sep 17 00:00:00 2001 From: olscholz Date: Mon, 16 Sep 2024 16:40:31 +0200 Subject: [PATCH 01/15] add tryGetColumnByHeaderBy member and static + tests Changes in ArcTavle.fs and ArcTable.Tests.fs adding the functionality discussed in Issue #440 --- src/Core/Table/ArcTable.fs | 10 ++++++++++ tests/Core/ArcTable.Tests.fs | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/src/Core/Table/ArcTable.fs b/src/Core/Table/ArcTable.fs index a852bcf7..dcd1ee3e 100644 --- a/src/Core/Table/ArcTable.fs +++ b/src/Core/Table/ArcTable.fs @@ -385,6 +385,16 @@ type ArcTable(name: string, headers: ResizeArray, values: Syste fun (table:ArcTable) -> table.TryGetColumnByHeader(header) + // tryGetColumnByHeaderBy + member this.TryGetColumnByHeaderBy (headerPredicate:CompositeHeader -> bool) = //better name for header / action + this.Headers + |> Seq.tryFindIndex headerPredicate + |> Option.map (fun i -> this.GetColumn(i)) + + static member tryGetColumnByHeaderBy (headerPredicate:CompositeHeader -> bool) = + fun (table:ArcTable) -> + table.TryGetColumnByHeaderBy(headerPredicate) + member this.GetColumnByHeader (header:CompositeHeader) = match this.TryGetColumnByHeader(header) with | Some c -> c diff --git a/tests/Core/ArcTable.Tests.fs b/tests/Core/ArcTable.Tests.fs index 1c70de8e..50b1b9a0 100644 --- a/tests/Core/ArcTable.Tests.fs +++ b/tests/Core/ArcTable.Tests.fs @@ -1863,6 +1863,40 @@ let private tests_RemoveColumns = Expect.equal table.Values.[(table.ColumnCount-1,table.RowCount-1)] (CompositeCell.createTerm oa_SCIEXInstrumentModel) "table.ColumnCount-1,table.RowCount-1" ) ] + +let private tests_TryGetColumnByHeaderBy = + testList "TryGetColumnByHeaderBy" [ + testCase "on empty column" (fun () -> + let table = create_testTable() + let colOption = table.TryGetColumnByHeaderBy (fun (header:CompositeHeader) -> + match header with + | CompositeHeader.Component oa -> oa = oa_instrumentModel + | _ -> false ) + let col = Expect.wantSome colOption "should have found col but returned None" + Expect.sequenceEqual col.Cells column_component.Cells "cells did not match" + ) + testCase "find ontology with values" (fun () -> + let table = create_testTable() + let column_Chlamy = CompositeColumn.create(CompositeHeader.Characteristic oa_species, createCells_Term 8) + table.AddColumns[|column_Chlamy|] + let colOption = table.TryGetColumnByHeaderBy (fun (header:CompositeHeader) -> + match header with + | CompositeHeader.Characteristic oa -> oa = oa_species + | _ -> false ) + let col = Expect.wantSome colOption "should find column with values" + Expect.sequenceEqual col.Cells column_Chlamy.Cells "cells did match" + ) + testCase "fail to find ontology" (fun () -> + let table = create_testTable() + let colOption = table.TryGetColumnByHeaderBy (fun (header:CompositeHeader) -> + match header with + | CompositeHeader.Parameter oa -> oa = oa_temperature + | _ -> false ) + Expect.isNone colOption "fails to find col therefore returns none" + ) + ] + + let private tests_MoveColumn = testList "MoveColumn" [ testCase "CheckBoundaries" (fun () -> @@ -2541,6 +2575,7 @@ let main = tests_AddColumnFill tests_RemoveColumn tests_RemoveColumns + tests_TryGetColumnByHeaderBy tests_MoveColumn tests_RemoveRow tests_RemoveRows From 1a5c4d64cdd3c591a2c7af73c4bdb7a9261c5ffb Mon Sep 17 00:00:00 2001 From: olscholz Date: Tue, 17 Sep 2024 14:01:00 +0200 Subject: [PATCH 02/15] Update ArcTable.Tests.fs small changes to testCases for tryGetColumnByHeaderBy --- tests/Core/ArcTable.Tests.fs | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/Core/ArcTable.Tests.fs b/tests/Core/ArcTable.Tests.fs index 50b1b9a0..c95e6ee8 100644 --- a/tests/Core/ArcTable.Tests.fs +++ b/tests/Core/ArcTable.Tests.fs @@ -1866,27 +1866,31 @@ let private tests_RemoveColumns = let private tests_TryGetColumnByHeaderBy = testList "TryGetColumnByHeaderBy" [ - testCase "on empty column" (fun () -> - let table = create_testTable() - let colOption = table.TryGetColumnByHeaderBy (fun (header:CompositeHeader) -> + testCase "Empty column" (fun () -> + let emptyTable = ArcTable.init("empty table") + let column_species = CompositeColumn.create(CompositeHeader.Characteristic oa_species) + emptyTable.AddColumns[|column_species|] + let colOption = emptyTable.TryGetColumnByHeaderBy (fun (header:CompositeHeader) -> match header with - | CompositeHeader.Component oa -> oa = oa_instrumentModel + | CompositeHeader.Characteristic oa -> oa = oa_species | _ -> false ) let col = Expect.wantSome colOption "should have found col but returned None" - Expect.sequenceEqual col.Cells column_component.Cells "cells did not match" + // Expect.sequenceEqual col.Cells column_component.Cells "cells did not match" + Expect.hasLength col.Cells 0 "cells did not match" ) - testCase "find ontology with values" (fun () -> + testCase "Column with values" (fun () -> let table = create_testTable() - let column_Chlamy = CompositeColumn.create(CompositeHeader.Characteristic oa_species, createCells_Term 8) - table.AddColumns[|column_Chlamy|] + let column_species = CompositeColumn.create(CompositeHeader.Characteristic oa_species, createCells_Term 8) + table.AddColumns[|column_species|] let colOption = table.TryGetColumnByHeaderBy (fun (header:CompositeHeader) -> match header with | CompositeHeader.Characteristic oa -> oa = oa_species | _ -> false ) - let col = Expect.wantSome colOption "should find column with values" - Expect.sequenceEqual col.Cells column_Chlamy.Cells "cells did match" + let col = Expect.wantSome colOption "should have found col but returned None" + // Expect.hasLength col.Cells 8 "cells did not match" + Expect.sequenceEqual col.Cells column_species.Cells "cells did not match" ) - testCase "fail to find ontology" (fun () -> + testCase "Non-existing column" (fun () -> let table = create_testTable() let colOption = table.TryGetColumnByHeaderBy (fun (header:CompositeHeader) -> match header with From 29d1bb250a2fc6ee4253e8a94f820f03bf87a09d Mon Sep 17 00:00:00 2001 From: HLWeil Date: Thu, 26 Sep 2024 16:41:03 +0200 Subject: [PATCH 03/15] update to thoth.json.core 0.4.0 and use temporary FsSpreadsheet implementations for js and py --- src/ARCtrl/WebRequest/WebRequest.Node.fs | 4 +- src/Json/ARC.fs | 6 +-- src/Json/ARCtrl.Json.fsproj | 8 ++-- src/Json/Assay.fs | 20 +++++----- src/Json/Comment.fs | 6 +-- src/Json/Data.fs | 6 +-- src/Json/DataMap/DataContext.fs | 2 +- src/Json/Encode.fs | 43 +++++++++++----------- src/Json/IDTable.fs | 6 +-- src/Json/Investigation.fs | 26 ++++++------- src/Json/OntologyAnnotation.fs | 12 +++--- src/Json/OntologySourceReference.fs | 8 ++-- src/Json/Person.fs | 10 ++--- src/Json/Process/Component.fs | 2 +- src/Json/Process/FactorValue.fs | 2 +- src/Json/Process/Material.fs | 6 +-- src/Json/Process/MaterialAttributeValue.fs | 2 +- src/Json/Process/Process.fs | 6 +-- src/Json/Process/ProcessParameterValue.fs | 2 +- src/Json/Process/Protocol.fs | 6 +-- src/Json/Process/Sample.fs | 8 ++-- src/Json/Process/Source.fs | 8 ++-- src/Json/PropertyValue.fs | 8 ++-- src/Json/Publication.fs | 6 +-- src/Json/Study.fs | 20 +++++----- src/Json/Table/Compression.fs | 25 ++++++++----- src/Json/Table/Templates.fs | 16 ++++---- src/Spreadsheet/ARCtrl.Spreadsheet.fsproj | 2 +- 28 files changed, 140 insertions(+), 136 deletions(-) diff --git a/src/ARCtrl/WebRequest/WebRequest.Node.fs b/src/ARCtrl/WebRequest/WebRequest.Node.fs index 1a239003..6886c2eb 100644 --- a/src/ARCtrl/WebRequest/WebRequest.Node.fs +++ b/src/ARCtrl/WebRequest/WebRequest.Node.fs @@ -1,9 +1,9 @@ -module ARCtrl.WebRequestHelpers.NodeJs +module ARCtrl.WebRequestHelpers.NodeJs +#if FABLE_COMPILER_JAVASCRIPT open Fable.Core open Fable.SimpleHttp -#if FABLE_COMPILER_JAVASCRIPT open Fable.Core.JsInterop open Fable.SimpleHttp diff --git a/src/Json/ARC.fs b/src/Json/ARC.fs index 781bd642..a129ec8c 100644 --- a/src/Json/ARC.fs +++ b/src/Json/ARC.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -17,8 +17,8 @@ module ARC = Encode.tryInclude "@type" Encode.string (Some "CreativeWork") Encode.tryInclude "@id" Encode.string (Some "ro-crate-metadata.json") Encode.tryInclude "about" Investigation.ROCrate.encoder (Some isa) - "conformsTo", ROCrateContext.ROCrate.conformsTo_jsonvalue - "@context", ROCrateContext.ROCrate.context_jsonvalue + "conformsTo", ROCrateContext.ROCrate.conformsTo_jsonvalue |> Some + "@context", ROCrateContext.ROCrate.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/ARCtrl.Json.fsproj b/src/Json/ARCtrl.Json.fsproj index aa191f3b..e7ae82e5 100644 --- a/src/Json/ARCtrl.Json.fsproj +++ b/src/Json/ARCtrl.Json.fsproj @@ -82,10 +82,10 @@ - - - - + + + + diff --git a/src/Json/Assay.fs b/src/Json/Assay.fs index 97b6d51a..65b48863 100644 --- a/src/Json/Assay.fs +++ b/src/Json/Assay.fs @@ -11,7 +11,7 @@ module Assay = let encoder (assay:ArcAssay) = [ - "Identifier", Encode.string assay.Identifier + "Identifier", Encode.string assay.Identifier |> Some Encode.tryInclude "MeasurementType" OntologyAnnotation.encoder assay.MeasurementType Encode.tryInclude "TechnologyType" OntologyAnnotation.encoder assay.TechnologyType Encode.tryInclude "TechnologyPlatform" OntologyAnnotation.encoder assay.TechnologyPlatform @@ -43,7 +43,7 @@ module Assay = let encoderCompressed (stringTable : StringTableMap) (oaTable : OATableMap) (cellTable : CellTableMap) (assay:ArcAssay) = [ - "Identifier", Encode.string assay.Identifier + "Identifier", Encode.string assay.Identifier |> Some Encode.tryInclude "MeasurementType" OntologyAnnotation.encoder assay.MeasurementType Encode.tryInclude "TechnologyType" OntologyAnnotation.encoder assay.TechnologyType Encode.tryInclude "TechnologyPlatform" OntologyAnnotation.encoder assay.TechnologyPlatform @@ -84,11 +84,11 @@ module Assay = let dataFiles = ProcessSequence.getData processes [ - "@id", Encode.string (a |> genID) - "@type", (Encode.list [ Encode.string "Assay"]) - "additionalType", Encode.string "Assay" - "identifier", Encode.string a.Identifier - "filename", Encode.string fileName + "@id", Encode.string (a |> genID) |> Some + "@type", (Encode.list [ Encode.string "Assay"]) |> Some + "additionalType", Encode.string "Assay" |> Some + "identifier", Encode.string a.Identifier |> Some + "filename", Encode.string fileName |> Some Encode.tryInclude "measurementType" OntologyAnnotation.ROCrate.encoderPropertyValue a.MeasurementType Encode.tryInclude "technologyType" OntologyAnnotation.ROCrate.encoderDefinedTerm a.TechnologyType Encode.tryInclude "technologyPlatform" OntologyAnnotation.ROCrate.encoderDefinedTerm a.TechnologyPlatform @@ -96,7 +96,7 @@ module Assay = Encode.tryIncludeList "dataFiles" Data.ROCrate.encoder dataFiles Encode.tryIncludeList "processSequence" (Process.ROCrate.encoder studyName (Some a.Identifier)) processes Encode.tryIncludeSeq "comments" Comment.ROCrate.encoder a.Comments - "@context", ROCrateContext.Assay.context_jsonvalue + "@context", ROCrateContext.Assay.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object @@ -139,7 +139,7 @@ module Assay = |> Encode.tryIncludeList "dataFiles" (Data.ISAJson.encoder idMap) let units = ProcessSequence.getUnits processes [ - "filename", Encode.string fileName + "filename", Encode.string fileName |> Some Encode.tryInclude "@id" Encode.string (ROCrate.genID a |> Some) Encode.tryInclude "measurementType" (OntologyAnnotation.ISAJson.encoder idMap) a.MeasurementType Encode.tryInclude "technologyType" (OntologyAnnotation.ISAJson.encoder idMap) a.TechnologyType @@ -199,7 +199,7 @@ module AssayExtensions = static member fromCompressedJsonString (s: string) = try Decode.fromJsonString (Compression.decode Assay.decoderCompressed) s with - | e -> failwithf "Error. Unable to parse json string to ArcStudy: %s" e.Message + | e -> failwithf "Error. Unable to parse json string to ArcAssay: %s" e.Message static member toCompressedJsonString(?spaces) = fun (obj:ArcAssay) -> diff --git a/src/Json/Comment.fs b/src/Json/Comment.fs index 8ac0926b..00384d2c 100644 --- a/src/Json/Comment.fs +++ b/src/Json/Comment.fs @@ -32,11 +32,11 @@ module Comment = let encoder (comment : Comment) = [ - "@id", Encode.string (comment |> genID) - "@type", Encode.string "Comment" + "@id", Encode.string (comment |> genID) |> Some + "@type", Encode.string "Comment" |> Some Encode.tryInclude "name" Encode.string (comment.Name) Encode.tryInclude "value" Encode.string (comment.Value) - "@context", ROCrateContext.Comment.context_jsonvalue + "@context", ROCrateContext.Comment.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Data.fs b/src/Json/Data.fs index 42986661..1f969ceb 100644 --- a/src/Json/Data.fs +++ b/src/Json/Data.fs @@ -76,14 +76,14 @@ module Data = let encoder (oa : Data) = [ - "@id", Encode.string (oa |> genID) - "@type", (Encode.list [Encode.string "Data"]) + "@id", Encode.string (oa |> genID) |> Some + "@type", (Encode.list [Encode.string "Data"]) |> Some Encode.tryInclude "name" Encode.string (oa.Name) Encode.tryInclude "type" DataFile.ROCrate.encoder oa.DataType Encode.tryInclude "encodingFormat" Encode.string oa.Format Encode.tryInclude "usageInfo" Encode.string oa.SelectorFormat Encode.tryIncludeSeq "comments" Comment.ROCrate.encoder oa.Comments - "@context", ROCrateContext.Data.context_jsonvalue + "@context", ROCrateContext.Data.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/DataMap/DataContext.fs b/src/Json/DataMap/DataContext.fs index ff868359..b7edbca7 100644 --- a/src/Json/DataMap/DataContext.fs +++ b/src/Json/DataMap/DataContext.fs @@ -11,7 +11,7 @@ module DataContext = let encoder (dc:DataContext) = [ - "data", Data.encoder dc + "data", Data.encoder dc |> Some Encode.tryInclude "explication" OntologyAnnotation.encoder dc.Explication Encode.tryInclude "unit" OntologyAnnotation.encoder dc.Unit Encode.tryInclude "objectType" OntologyAnnotation.encoder dc.ObjectType diff --git a/src/Json/Encode.fs b/src/Json/Encode.fs index 4b480dcb..72f38233 100644 --- a/src/Json/Encode.fs +++ b/src/Json/Encode.fs @@ -14,7 +14,7 @@ open Fable.Core.JsInterop [] module Encode = - let inline toJsonString spaces (value : Json) = + let inline toJsonString spaces (value : IEncodable) = #if FABLE_COMPILER_PYTHON Thoth.Json.Python.Encode.toString spaces value #endif @@ -25,44 +25,43 @@ module Encode = Thoth.Json.Newtonsoft.Encode.toString spaces value #endif - let inline choose (kvs : (string * Json) list) = + let inline choose (kvs : (string * IEncodable option) list) = kvs - |> List.choose (fun (k,v) -> - if v = Encode.nil then None - else Some (k,v) + |> List.choose (fun (k,v) -> + v + |> Option.map (fun v -> k,v) ) /// Try to encode the given object using the given encoder, or return Encode.nil if the object is null - let tryInclude (name : string) (encoder : 'Value -> Json) (value : 'Value option) = + let tryInclude (name : string) (encoder : 'Value -> IEncodable) (value : 'Value option) = name, - match value with - | Some(o) -> encoder o - | _ -> Encode.nil + value + |> Option.map encoder /// Try to encode the given object using the given encoder, or return Encode.nil if the object is null - let tryIncludeSeq name (encoder : 'Value -> Json) (value : #seq<'Value>) = + let tryIncludeSeq name (encoder : 'Value -> IEncodable) (value : #seq<'Value>) = name, - if Seq.isEmpty value then Encode.nil - else value |> Seq.map encoder |> Encode.seq + if Seq.isEmpty value then None + else value |> Seq.map encoder |> Encode.seq |> Some - let tryIncludeArray name (encoder : 'Value -> Json) (value : 'Value array) = + let tryIncludeArray name (encoder : 'Value -> IEncodable) (value : 'Value array) = name, - if Array.isEmpty value then Encode.nil - else value |> Array.map encoder |> Encode.array + if Array.isEmpty value then None + else value |> Array.map encoder |> Encode.array |> Some - let tryIncludeList name (encoder : 'Value -> Json) (value : 'Value list) = + let tryIncludeList name (encoder : 'Value -> IEncodable) (value : 'Value list) = name, - if List.isEmpty value then Encode.nil - else value |> List.map encoder |> Encode.list + if List.isEmpty value then None + else value |> List.map encoder |> Encode.list |> Some - let tryIncludeListOpt name (encoder : 'Value -> Json) (value : 'Value list option) = + let tryIncludeListOpt name (encoder : 'Value -> IEncodable) (value : 'Value list option) = name, match value with | Some(o) -> - if List.isEmpty o then Encode.nil - else o |> List.map encoder |> Encode.list + if List.isEmpty o then None + else o |> List.map encoder |> Encode.list |> Some | _ -> - Encode.nil + None let DefaultSpaces = 0 diff --git a/src/Json/IDTable.fs b/src/Json/IDTable.fs index b1fa4b11..34fcc3a5 100644 --- a/src/Json/IDTable.fs +++ b/src/Json/IDTable.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open System.Collections.Generic open Thoth.Json.Core @@ -8,7 +8,7 @@ open ARCtrl.Helper module IDTable = - type IDTableWrite = Dictionary + type IDTableWrite = Dictionary type IDTableRead = Dictionary @@ -16,7 +16,7 @@ module IDTable = ["@id",Encode.string id] |> Encode.object - let encode (genID: 'Value -> URI) (encoder : 'Value -> Json) (value : 'Value) (table:IDTableWrite) = + let encode (genID: 'Value -> URI) (encoder : 'Value -> IEncodable) (value : 'Value) (table:IDTableWrite) = let id = genID value if table.ContainsKey id then encodeID id diff --git a/src/Json/Investigation.fs b/src/Json/Investigation.fs index a34e148a..49a54c8c 100644 --- a/src/Json/Investigation.fs +++ b/src/Json/Investigation.fs @@ -9,7 +9,7 @@ module Investigation = let encoder (inv : ArcInvestigation) = [ - "Identifier", Encode.string inv.Identifier + "Identifier", Encode.string inv.Identifier |> Some Encode.tryInclude "Title" Encode.string inv.Title Encode.tryInclude "Description" Encode.string inv.Description Encode.tryInclude "SubmissionDate" Encode.string inv.SubmissionDate @@ -50,7 +50,7 @@ module Investigation = let encoderCompressed (stringTable : StringTableMap) (oaTable : OATableMap) (cellTable : CellTableMap) (inv : ArcInvestigation) = [ - "Identifier", Encode.string inv.Identifier + "Identifier", Encode.string inv.Identifier |> Some Encode.tryInclude "Title" Encode.string inv.Title Encode.tryInclude "Description" Encode.string inv.Description Encode.tryInclude "SubmissionDate" Encode.string inv.SubmissionDate @@ -100,11 +100,11 @@ module Investigation = let encoder (oa : ArcInvestigation) = [ - "@id", Encode.string (oa |> genID) - "@type", Encode.string "Investigation" - "additionalType", Encode.string "Investigation" - "identifier", Encode.string oa.Identifier - "filename", Encode.string ArcInvestigation.FileName + "@id", Encode.string (oa |> genID) |> Some + "@type", Encode.string "Investigation" |> Some + "additionalType", Encode.string "Investigation" |> Some + "identifier", Encode.string oa.Identifier |> Some + "filename", Encode.string ArcInvestigation.FileName |> Some Encode.tryInclude "title" Encode.string oa.Title Encode.tryInclude "description" Encode.string oa.Description Encode.tryInclude "submissionDate" Encode.string oa.SubmissionDate @@ -114,7 +114,7 @@ module Investigation = Encode.tryIncludeSeq "people" Person.ROCrate.encoder oa.Contacts Encode.tryIncludeSeq "studies" (Study.ROCrate.encoder None) oa.Studies Encode.tryIncludeSeq "comments" Comment.ROCrate.encoder oa.Comments - "@context", ROCrateContext.Investigation.context_jsonvalue + "@context", ROCrateContext.Investigation.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object @@ -155,8 +155,8 @@ module Investigation = Encode.tryInclude "@type" Encode.string (Some "CreativeWork") Encode.tryInclude "@id" Encode.string (Some "ro-crate-metadata.json") Encode.tryInclude "about" encoder (Some oa) - "conformsTo", ROCrateContext.ROCrate.conformsTo_jsonvalue - "@context", ROCrateContext.ROCrate.context_jsonvalue + "conformsTo", ROCrateContext.ROCrate.conformsTo_jsonvalue |> Some + "@context", ROCrateContext.ROCrate.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object @@ -167,9 +167,9 @@ module Investigation = let encoder idMap (inv: ArcInvestigation) = [ - "@id", Encode.string (inv |> ROCrate.genID) - "filename", Encode.string ArcInvestigation.FileName - "identifier", Encode.string (inv.Identifier) + "@id", Encode.string (inv |> ROCrate.genID) |> Some + "filename", Encode.string ArcInvestigation.FileName |> Some + "identifier", Encode.string (inv.Identifier) |> Some Encode.tryInclude "title" Encode.string (inv.Title) Encode.tryInclude "description" Encode.string (inv.Description) Encode.tryInclude "submissionDate" Encode.string (inv.SubmissionDate) diff --git a/src/Json/OntologyAnnotation.fs b/src/Json/OntologyAnnotation.fs index 2ea0dbf1..bb2a2cd0 100644 --- a/src/Json/OntologyAnnotation.fs +++ b/src/Json/OntologyAnnotation.fs @@ -79,13 +79,13 @@ module OntologyAnnotation = let encoderDefinedTerm (oa : OntologyAnnotation) = [ - "@id", Encode.string (oa |> genID) - "@type", Encode.string "OntologyAnnotation" + "@id", Encode.string (oa |> genID) |> Some + "@type", Encode.string "OntologyAnnotation" |> Some Encode.tryInclude "annotationValue" Encode.string (oa.Name) Encode.tryInclude "termSource" Encode.string (oa.TermSourceREF) Encode.tryInclude "termAccession" Encode.string (oa.TermAccessionNumber) Encode.tryIncludeSeq "comments" Comment.ROCrate.encoderDisambiguatingDescription (oa.Comments) - "@context", ROCrateContext.OntologyAnnotation.context_jsonvalue + "@context", ROCrateContext.OntologyAnnotation.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object @@ -102,13 +102,13 @@ module OntologyAnnotation = let encoderPropertyValue (oa : OntologyAnnotation) = [ - "@id", Encode.string (oa |> genID) - "@type", Encode.string "PropertyValue" + "@id", Encode.string (oa |> genID) |> Some + "@type", Encode.string "PropertyValue" |> Some Encode.tryInclude "category" Encode.string oa.Name Encode.tryInclude "categoryCode" Encode.string oa.TermAccessionNumber Encode.tryIncludeSeq "comments" Comment.ROCrate.encoderDisambiguatingDescription (oa.Comments) - "@context", ROCrateContext.PropertyValue.context_jsonvalue + "@context", ROCrateContext.PropertyValue.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/OntologySourceReference.fs b/src/Json/OntologySourceReference.fs index 4bb17177..90d34a01 100644 --- a/src/Json/OntologySourceReference.fs +++ b/src/Json/OntologySourceReference.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core open ARCtrl @@ -42,14 +42,14 @@ module OntologySourceReference = let encoder (osr : OntologySourceReference) = [ - "@id", Encode.string (osr |> genID) - "@type", Encode.string "OntologySourceReference" + "@id", Encode.string (osr |> genID) |> Some + "@type", Encode.string "OntologySourceReference" |> Some Encode.tryInclude "description" Encode.string (osr.Description) Encode.tryInclude "file" Encode.string (osr.File) Encode.tryInclude "name" Encode.string (osr.Name) Encode.tryInclude "version" Encode.string (osr.Version) Encode.tryIncludeSeq "comments" Comment.encoder (osr.Comments) - "@context", ROCrateContext.OntologySourceReference.context_jsonvalue + "@context", ROCrateContext.OntologySourceReference.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Person.fs b/src/Json/Person.fs index a6fd6d3a..11838e5b 100644 --- a/src/Json/Person.fs +++ b/src/Json/Person.fs @@ -81,8 +81,8 @@ module Person = let encoder (oa : Person) = [ - "@id", Encode.string (oa |> genID) - "@type", Encode.string "Person" + "@id", Encode.string (oa |> genID) |> Some + "@type", Encode.string "Person" |> Some Encode.tryInclude "orcid" Encode.string oa.ORCID Encode.tryInclude "firstName" Encode.string oa.FirstName Encode.tryInclude "lastName" Encode.string oa.LastName @@ -94,7 +94,7 @@ module Person = Encode.tryInclude "affiliation" Affiliation.encoder oa.Affiliation Encode.tryIncludeSeq "roles" OntologyAnnotation.ROCrate.encoderDefinedTerm oa.Roles Encode.tryIncludeSeq "comments" Comment.ROCrate.encoderDisambiguatingDescription oa.Comments - "@context", ROCrateContext.Person.context_jsonvalue + "@context", ROCrateContext.Person.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object @@ -133,9 +133,9 @@ module Person = let names = authorList.Split([|separator|], System.StringSplitOptions.None) |> Array.map (fun s -> s.Trim()) let encodeSingle (name:string) = [ - "@type", Encode.string "Person" + "@type", Encode.string "Person" |> Some Encode.tryInclude "name" Encode.string (Some name) - "@context", ROCrateContext.Person.contextMinimal_jsonValue + "@context", ROCrateContext.Person.contextMinimal_jsonValue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Process/Component.fs b/src/Json/Process/Component.fs index 003def93..13c95a57 100644 --- a/src/Json/Process/Component.fs +++ b/src/Json/Process/Component.fs @@ -10,7 +10,7 @@ module Component = module ROCrate = - let encoder : Component -> Json= + let encoder : Component -> IEncodable = PropertyValue.ROCrate.encoder let decoder : Decoder = diff --git a/src/Json/Process/FactorValue.fs b/src/Json/Process/FactorValue.fs index 59408c32..640b9f4f 100644 --- a/src/Json/Process/FactorValue.fs +++ b/src/Json/Process/FactorValue.fs @@ -12,7 +12,7 @@ module FactorValue = module ROCrate = - let encoder : FactorValue -> Json= + let encoder : FactorValue -> IEncodable = PropertyValue.ROCrate.encoder let decoder : Decoder = diff --git a/src/Json/Process/Material.fs b/src/Json/Process/Material.fs index d724b746..9173c25e 100644 --- a/src/Json/Process/Material.fs +++ b/src/Json/Process/Material.fs @@ -18,13 +18,13 @@ module Material = let rec encoder (oa : Material) = [ - "@id", Encode.string (oa |> genID) - "@type", (Encode.list [Encode.string "Material"]) + "@id", Encode.string (oa |> genID) |> Some + "@type", (Encode.list [Encode.string "Material"]) |> Some Encode.tryInclude "name" Encode.string oa.Name Encode.tryInclude "type" MaterialType.ROCrate.encoder oa.MaterialType Encode.tryIncludeListOpt "characteristics" MaterialAttributeValue.ROCrate.encoder oa.Characteristics Encode.tryIncludeListOpt "derivesFrom" encoder oa.DerivesFrom - "@context", ROCrateContext.Material.context_jsonvalue + "@context", ROCrateContext.Material.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Process/MaterialAttributeValue.fs b/src/Json/Process/MaterialAttributeValue.fs index 71e79a7d..afd1b047 100644 --- a/src/Json/Process/MaterialAttributeValue.fs +++ b/src/Json/Process/MaterialAttributeValue.fs @@ -10,7 +10,7 @@ module MaterialAttributeValue = module ROCrate = - let encoder : MaterialAttributeValue -> Json= + let encoder : MaterialAttributeValue -> IEncodable = PropertyValue.ROCrate.encoder let decoder : Decoder = diff --git a/src/Json/Process/Process.fs b/src/Json/Process/Process.fs index d00eaa23..f1a1b46e 100644 --- a/src/Json/Process/Process.fs +++ b/src/Json/Process/Process.fs @@ -18,8 +18,8 @@ module Process = let encoder (studyName:string Option) (assayName:string Option) (oa : Process) = [ - "@id", Encode.string (oa |> genID) - "@type", (Encode.list [Encode.string "Process"]) + "@id", Encode.string (oa |> genID) |> Some + "@type", (Encode.list [Encode.string "Process"]) |> Some Encode.tryInclude "name" Encode.string (oa.Name) Encode.tryInclude "executesProtocol" (Protocol.ROCrate.encoder studyName assayName oa.Name) (oa.ExecutesProtocol) Encode.tryIncludeListOpt "parameterValues" ProcessParameterValue.ROCrate.encoder (oa.ParameterValues) @@ -28,7 +28,7 @@ module Process = Encode.tryIncludeListOpt "inputs" ProcessInput.ROCrate.encoder (oa.Inputs) Encode.tryIncludeListOpt "outputs" ProcessOutput.ROCrate.encoder (oa.Outputs) Encode.tryIncludeListOpt "comments" Comment.ROCrate.encoder (oa.Comments) - "@context", ROCrateContext.Process.context_jsonvalue + "@context", ROCrateContext.Process.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Process/ProcessParameterValue.fs b/src/Json/Process/ProcessParameterValue.fs index 19ad84c1..1768fdec 100644 --- a/src/Json/Process/ProcessParameterValue.fs +++ b/src/Json/Process/ProcessParameterValue.fs @@ -9,7 +9,7 @@ module ProcessParameterValue = module ROCrate = - let encoder : ProcessParameterValue -> Json= + let encoder : ProcessParameterValue -> IEncodable = PropertyValue.ROCrate.encoder let decoder : Decoder = diff --git a/src/Json/Process/Protocol.fs b/src/Json/Process/Protocol.fs index 5460c6d3..0586e1c2 100644 --- a/src/Json/Process/Protocol.fs +++ b/src/Json/Process/Protocol.fs @@ -27,8 +27,8 @@ module Protocol = let encoder (studyName:string Option) (assayName:string Option) (processName:string Option) (oa : Protocol) = [ - "@id", Encode.string (genID studyName assayName processName oa) - "@type", (Encode.list [Encode.string "Protocol"]) + "@id", Encode.string (genID studyName assayName processName oa) |> Some + "@type", (Encode.list [Encode.string "Protocol"]) |> Some Encode.tryInclude "name" Encode.string (oa.Name) Encode.tryInclude "protocolType" OntologyAnnotation.ROCrate.encoderDefinedTerm (oa.ProtocolType) Encode.tryInclude "description" Encode.string (oa.Description) @@ -36,7 +36,7 @@ module Protocol = Encode.tryInclude "version" Encode.string (oa.Version) Encode.tryIncludeListOpt "components" Component.ROCrate.encoder oa.Components Encode.tryIncludeListOpt "comments" Comment.ROCrate.encoder oa.Comments - "@context", ROCrateContext.Protocol.context_jsonvalue + "@context", ROCrateContext.Protocol.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Process/Sample.fs b/src/Json/Process/Sample.fs index a4743d0f..eeeed337 100644 --- a/src/Json/Process/Sample.fs +++ b/src/Json/Process/Sample.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -22,11 +22,11 @@ module Sample = oa.Characteristics |> Option.defaultValue [] |> List.map MaterialAttributeValue.ROCrate.encoder |> List.append (oa.FactorValues |> Option.defaultValue [] |> List.map FactorValue.ROCrate.encoder) [ - "@id", Encode.string (oa |> genID) - "@type", (Encode.list [ Encode.string "Sample"]) + "@id", Encode.string (oa |> genID) |> Some + "@type", (Encode.list [ Encode.string "Sample"]) |> Some Encode.tryInclude "name" Encode.string (oa.Name) Encode.tryIncludeList "additionalProperties" id additionalProperties - "@context", ROCrateContext.Sample.context_jsonvalue + "@context", ROCrateContext.Sample.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Process/Source.fs b/src/Json/Process/Source.fs index 6a4af31b..fdf39e50 100644 --- a/src/Json/Process/Source.fs +++ b/src/Json/Process/Source.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -18,11 +18,11 @@ module Source = let rec encoder (oa : Source) = [ - "@id", Encode.string (oa |> genID) - "@type", (Encode.list [ Encode.string "Source"]) + "@id", Encode.string (oa |> genID) |> Some + "@type", (Encode.list [ Encode.string "Source"]) |> Some Encode.tryInclude "name" Encode.string (oa.Name) Encode.tryIncludeListOpt "characteristics" MaterialAttributeValue.ROCrate.encoder (oa.Characteristics) - "@context", ROCrateContext.Source.context_jsonvalue + "@context", ROCrateContext.Source.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/PropertyValue.fs b/src/Json/PropertyValue.fs index ed96feeb..2f1bfbe0 100644 --- a/src/Json/PropertyValue.fs +++ b/src/Json/PropertyValue.fs @@ -38,9 +38,9 @@ module PropertyValue = oa.Name, oa.TermAccessionNumber | None -> None, None [ - "@id", Encode.string (pv |> genID) - "@type", Encode.string "PropertyValue" - "additionalType", Encode.string (pv.GetAdditionalType()) + "@id", Encode.string (pv |> genID) |> Some + "@type", Encode.string "PropertyValue" |> Some + "additionalType", Encode.string (pv.GetAdditionalType()) |> Some Encode.tryInclude "alternateName" Encode.string (pv.AlternateName()) Encode.tryInclude "measurementMethod" Encode.string (pv.MeasurementMethod()) Encode.tryInclude "description" Encode.string (pv.Description()) @@ -50,7 +50,7 @@ module PropertyValue = Encode.tryInclude "valueCode" id valueCode Encode.tryInclude "unit" Encode.string unit Encode.tryInclude "unitCode" Encode.string unitCode - "@context", ROCrateContext.PropertyValue.context_jsonvalue + "@context", ROCrateContext.PropertyValue.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Publication.fs b/src/Json/Publication.fs index c841e00c..5a12b226 100644 --- a/src/Json/Publication.fs +++ b/src/Json/Publication.fs @@ -46,15 +46,15 @@ module Publication = let encoder (oa : Publication) = [ - "@id", Encode.string (oa |> genID) - "@type", Encode.string "Publication" + "@id", Encode.string (oa |> genID) |> Some + "@type", Encode.string "Publication" |> Some Encode.tryInclude "pubMedID" Encode.string oa.PubMedID Encode.tryInclude "doi" Encode.string (oa.DOI) Encode.tryInclude "authorList" Person.ROCrate.encodeAuthorListString oa.Authors Encode.tryInclude "title" Encode.string (oa.Title) Encode.tryInclude "status" OntologyAnnotation.ROCrate.encoderDefinedTerm oa.Status Encode.tryIncludeSeq "comments" Comment.ROCrate.encoderDisambiguatingDescription oa.Comments - "@context", ROCrateContext.Publication.context_jsonvalue + "@context", ROCrateContext.Publication.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object diff --git a/src/Json/Study.fs b/src/Json/Study.fs index 020ac31c..0bb5489a 100644 --- a/src/Json/Study.fs +++ b/src/Json/Study.fs @@ -28,7 +28,7 @@ module Study = let encoder (study:ArcStudy) = [ - "Identifier", Encode.string study.Identifier + "Identifier", Encode.string study.Identifier |> Some Encode.tryInclude "Title" Encode.string study.Title Encode.tryInclude "Description" Encode.string study.Description Encode.tryInclude "SubmissionDate" Encode.string study.SubmissionDate @@ -68,7 +68,7 @@ module Study = let encoderCompressed (stringTable : StringTableMap) (oaTable : OATableMap) (cellTable : CellTableMap) (study:ArcStudy) = [ - "Identifier", Encode.string study.Identifier + "Identifier", Encode.string study.Identifier |> Some Encode.tryInclude "Title" Encode.string study.Title Encode.tryInclude "Description" Encode.string study.Description Encode.tryInclude "SubmissionDate" Encode.string study.SubmissionDate @@ -116,10 +116,10 @@ module Study = let processes = s.GetProcesses() let assays = Helper.getAssayInformation assays s [ - "@id", Encode.string (s |> genID) - "@type", (Encode.list [Encode.string "Study"]) - "additionalType", Encode.string "Study" - "identifier", Encode.string (s.Identifier) + "@id", Encode.string (s |> genID) |> Some + "@type", (Encode.list [Encode.string "Study"]) |> Some + "additionalType", Encode.string "Study" |> Some + "identifier", Encode.string (s.Identifier) |> Some Encode.tryInclude "filename" Encode.string fileName Encode.tryInclude "title" Encode.string (s.Title) Encode.tryInclude "description" Encode.string (s.Description) @@ -131,7 +131,7 @@ module Study = Encode.tryIncludeList "processSequence" (Process.ROCrate.encoder (Some s.Identifier) None) processes Encode.tryIncludeSeq "assays" (Assay.ROCrate.encoder (Some s.Identifier)) assays Encode.tryIncludeSeq "comments" Comment.ROCrate.encoder s.Comments - "@context", ROCrateContext.Study.context_jsonvalue + "@context", ROCrateContext.Study.context_jsonvalue |> Some ] |> Encode.choose |> Encode.object @@ -205,9 +205,9 @@ module Study = ProcessSequence.getProtocols processes |> Encode.tryIncludeList "protocols" (Protocol.ISAJson.encoder (Some s.Identifier) None None idMap) [ - "@id", Encode.string (study |> ROCrate.genID) - "filename", Encode.string fileName - "identifier", Encode.string study.Identifier + "@id", Encode.string (study |> ROCrate.genID) |> Some + "filename", Encode.string fileName |> Some + "identifier", Encode.string study.Identifier |> Some Encode.tryInclude "title" Encode.string study.Title Encode.tryInclude "description" Encode.string study.Description Encode.tryInclude "submissionDate" Encode.string study.SubmissionDate diff --git a/src/Json/Table/Compression.fs b/src/Json/Table/Compression.fs index 2a56fa63..a6376fc9 100644 --- a/src/Json/Table/Compression.fs +++ b/src/Json/Table/Compression.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -9,16 +9,21 @@ open System.Collections.Generic /// This module is used to generalize json compression helpers module Compression = - let encode (encoder: Dictionary -> Dictionary -> Dictionary -> 'A -> Json) (obj: 'A) = - let stringTable = Dictionary() - let oaTable = Dictionary() - let cellTable = Dictionary() - let arcStudy = encoder stringTable oaTable cellTable obj + let encode (encoder: Dictionary -> Dictionary -> Dictionary -> 'A -> IEncodable) (obj: 'A) = + let stringTable = Dictionary() + let oaTable = Dictionary() + let cellTable = Dictionary() + let object = encoder stringTable oaTable cellTable obj + object |> Encode.toJsonString 0 |> ignore + let encodedCellTable = CellTable.arrayFromMap cellTable |> CellTable.encoder stringTable oaTable + let encodedOATable = OATable.arrayFromMap oaTable |> OATable.encoder stringTable + let encodedStringTable = StringTable.arrayFromMap stringTable |> StringTable.encoder + Encode.object [ - "cellTable", CellTable.arrayFromMap cellTable |> CellTable.encoder stringTable oaTable - "oaTable", OATable.arrayFromMap oaTable |> OATable.encoder stringTable - "stringTable", StringTable.arrayFromMap stringTable |> StringTable.encoder - "object", arcStudy + "cellTable", encodedCellTable + "oaTable", encodedOATable + "stringTable", encodedStringTable + "object", object ] let decode (decoder) = diff --git a/src/Json/Table/Templates.fs b/src/Json/Table/Templates.fs index 56577960..fafea678 100644 --- a/src/Json/Table/Templates.fs +++ b/src/Json/Table/Templates.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -28,9 +28,9 @@ module Template = "description", Encode.string template.Description "organisation", Organisation.encoder template.Organisation "version", Encode.string template.Version - Encode.tryIncludeSeq "authors" Person.encoder template.Authors - Encode.tryIncludeSeq "endpoint_repositories" OntologyAnnotation.encoder template.EndpointRepositories - Encode.tryIncludeSeq "tags" OntologyAnnotation.encoder template.Tags + "authors", (template.Authors |> Seq.map Person.encoder |> Encode.seq) + "endpoint_repositories", (template.EndpointRepositories |> Seq.map OntologyAnnotation.encoder |> Encode.seq) + "tags", (template.Tags |> Seq.map OntologyAnnotation.encoder |> Encode.seq) "last_updated", Encode.dateTime template.LastUpdated ] @@ -52,15 +52,15 @@ module Template = let encoderCompressed stringTable oaTable cellTable (template: Template) = Encode.object [ - "id", Encode.guid template.Id + "id", Encode.guid template.Id "table", ArcTable.encoderCompressed stringTable oaTable cellTable template.Table "name", Encode.string template.Name "description", Encode.string template.Description "organisation", Organisation.encoder template.Organisation "version", Encode.string template.Version - Encode.tryIncludeSeq "authors" Person.encoder template.Authors - Encode.tryIncludeSeq "endpoint_repositories" OntologyAnnotation.encoder template.EndpointRepositories - Encode.tryIncludeSeq "tags" OntologyAnnotation.encoder template.Tags + "authors", (template.Authors |> Seq.map Person.encoder |> Encode.seq) + "endpoint_repositories", (template.EndpointRepositories |> Seq.map OntologyAnnotation.encoder |> Encode.seq) + "tags", (template.Tags |> Seq.map OntologyAnnotation.encoder |> Encode.seq) "last_updated", Encode.datetime template.LastUpdated ] diff --git a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj index f1f6cada..a98bcabb 100644 --- a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj +++ b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj @@ -33,7 +33,7 @@ - + From 2e479798a7812233b109da566db68246fc9df7a2 Mon Sep 17 00:00:00 2001 From: HLWeil Date: Mon, 30 Sep 2024 16:54:41 +0200 Subject: [PATCH 04/15] start working on ro-crate-json parsing --- src/ARCtrl/ARCtrl.fsproj | 5 +- src/Contract/ARCtrl.Contract.fsproj | 5 +- src/Json/ARCtrl.Json.fsproj | 6 +- src/Json/ROCrateObject.fs | 123 ++++++++++++++++++ src/ROCrate/ARCtrl.ROCrate.fsproj | 6 +- src/ROCrate/ISAProfile/Assay.fs | 18 +-- src/ROCrate/ISAProfile/Data.fs | 8 +- src/ROCrate/ISAProfile/Investigation.fs | 24 ++-- src/ROCrate/ISAProfile/LabProcess.fs | 16 +-- src/ROCrate/ISAProfile/LabProtocol.fs | 18 +-- src/ROCrate/ISAProfile/Person.fs | 22 ++-- src/ROCrate/ISAProfile/PropertyValue.fs | 12 +- src/ROCrate/ISAProfile/Sample.fs | 6 +- src/ROCrate/ISAProfile/ScholarlyArticle.fs | 12 +- src/ROCrate/ISAProfile/Study.fs | 24 ++-- src/ROCrate/ROCrateObject.fs | 2 + src/ROCrate/playground.fsx | 48 +++---- tests/ARCtrl/ARCtrl.Tests.fsproj | 3 + tests/Contract/ARCtrl.Contract.Tests.fsproj | 3 + tests/Core/ARCtrl.Core.Tests.fsproj | 3 + .../FileSystem/ARCtrl.FileSystem.Tests.fsproj | 3 + tests/Json/ARCtrl.Json.Tests.fsproj | 3 + tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj | 3 + tests/ROCrate/Common.fs | 8 +- tests/ROCrate/ISAProfile/Assay.Tests.fs | 8 +- tests/ROCrate/ISAProfile/Data.Tests.fs | 8 +- tests/ROCrate/ISAProfile/Dataset.Tests.fs | 8 +- .../ROCrate/ISAProfile/Investigation.Tests.fs | 8 +- tests/ROCrate/ISAProfile/LabProcess.tests.fs | 8 +- tests/ROCrate/ISAProfile/LabProtocol.Tests.fs | 8 +- tests/ROCrate/ISAProfile/Person.Tests.fs | 8 +- .../ROCrate/ISAProfile/PropertyValue.Tests.fs | 8 +- tests/ROCrate/ISAProfile/Sample.tests.fs | 8 +- .../ISAProfile/ScholarlyArticle.Tests.fs | 8 +- tests/ROCrate/ISAProfile/Study.Tests.fs | 8 +- tests/ROCrate/ROCrateObject.Tests.fs | 8 +- tests/Speedtest/Speedtest.fsproj | 3 + .../ARCtrl.Spreadsheet.Tests.fsproj | 3 + tests/TestingUtils/TestingUtils.fsproj | 19 +-- .../ARCtrl.ValidationPackages.Tests.fsproj | 3 + tests/Yaml/ARCtrl.Yaml.Tests.fsproj | 3 + 41 files changed, 340 insertions(+), 168 deletions(-) create mode 100644 src/Json/ROCrateObject.fs diff --git a/src/ARCtrl/ARCtrl.fsproj b/src/ARCtrl/ARCtrl.fsproj index 23cc02db..f48195cb 100644 --- a/src/ARCtrl/ARCtrl.fsproj +++ b/src/ARCtrl/ARCtrl.fsproj @@ -1,4 +1,4 @@ - + netstandard2.0 @@ -47,4 +47,7 @@ + + + \ No newline at end of file diff --git a/src/Contract/ARCtrl.Contract.fsproj b/src/Contract/ARCtrl.Contract.fsproj index 44b70361..a46ed9ba 100644 --- a/src/Contract/ARCtrl.Contract.fsproj +++ b/src/Contract/ARCtrl.Contract.fsproj @@ -1,4 +1,4 @@ - + netstandard2.0 @@ -35,4 +35,7 @@ https://github.com/nfdi4plants/ARCtrl git + + + \ No newline at end of file diff --git a/src/Json/ARCtrl.Json.fsproj b/src/Json/ARCtrl.Json.fsproj index e7ae82e5..0b45cc58 100644 --- a/src/Json/ARCtrl.Json.fsproj +++ b/src/Json/ARCtrl.Json.fsproj @@ -5,7 +5,6 @@ true - @@ -78,6 +77,7 @@ + @@ -89,6 +89,10 @@ + + + + nfdi4plants, Lukas Weil, Florian Wetzels, Kevin Frey diff --git a/src/Json/ROCrateObject.fs b/src/Json/ROCrateObject.fs new file mode 100644 index 00000000..3d128634 --- /dev/null +++ b/src/Json/ROCrateObject.fs @@ -0,0 +1,123 @@ +namespace ARCtrl.Json + +open ARCtrl +open System +open ARCtrl.ROCrate +open Thoth.Json.Core +open DynamicObj + +module rec ROCrateObject = + + #if !FABLE_COMPILER + let (|SomeObj|_|) = + // create generalized option type + let ty = typedefof> + fun (a:obj) -> + // Check for nulls otherwise 'a.GetType()' would fail + if isNull a + then + None + else + let aty = a.GetType() + // Get option'.Value + let v = aty.GetProperty("Value") + if aty.IsGenericType && aty.GetGenericTypeDefinition() = ty then + // return value if existing + Some(v.GetValue(a, [| |])) + else + None + #endif + + + let genericEncoder (obj : obj) : IEncodable = + match obj with + | :? string as s -> Encode.string s + | :? int as i -> Encode.int i + | :? bool as b -> Encode.bool b + | :? float as f -> Encode.float f + | :? DateTime as d -> Encode.dateTime d + | :? ROCrateObject as o -> encoder o + #if !FABLE_COMPILER + | SomeObj o -> genericEncoder o + #endif + | null -> Encode.nil + | :? System.Collections.IEnumerable as l -> [ for x in l -> genericEncoder x] |> Encode.list + | _ -> failwith "Unknown type" + + let rec encoder(obj: ROCrateObject) = + obj.GetProperties true + |> Seq.map (fun kv -> + kv.Key, + genericEncoder obj + ) + |> Encode.object + + + let rec decoder : Decoder = + let rec decode() = + let decodeObject : Decoder = + { new Decoder with + member _.Decode(helpers, value) = + if helpers.isObject value then + let getters = Decode.Getters(helpers, value) + let properties = helpers.getProperties value + let builder = + fun (get : Decode.IGetters) -> + let o = ROCrateObject( + id = get.Required.Field "@id" Decode.string, + schemaType = get.Required.Field "@type" Decode.string + ) + for property in properties do + if property <> "@id" && property <> "@type" then + o.SetProperty(property,get.Required.Field property (decode())) + o + let result = builder getters + match getters.Errors with + | [] -> Ok result + | fst :: _ as errors -> + if errors.Length > 1 then + ("", BadOneOf errors) |> Error + else + Error fst + else + ("", BadPrimitive("an object", value)) |> Error + } + let resizeArray : Decoder> = + { new Decoder> with + member _.Decode(helpers, value) = + if helpers.isArray value then + let mutable i = -1 + let tokens = helpers.asArray value + let arr = ResizeArray() + + (Ok arr, tokens) + ||> Array.fold (fun acc value -> + i <- i + 1 + + match acc with + | Error _ -> acc + | Ok acc -> + match decode().Decode(helpers, value) with + | Error er -> + Error( + er + |> Helpers.prependPath ( + ".[" + (i.ToString()) + "]" + ) + ) + | Ok value -> + acc.Add value + Ok acc + ) + else + ("", BadPrimitive("an array", value)) |> Error + } + Decode.oneOf [ + Decode.map box (decodeObject) + Decode.map box (resizeArray) + Decode.map box (Decode.string) + Decode.map box (Decode.int) + Decode.map box (Decode.decimal) + + ] + decode() \ No newline at end of file diff --git a/src/ROCrate/ARCtrl.ROCrate.fsproj b/src/ROCrate/ARCtrl.ROCrate.fsproj index b16f34a1..121cfb37 100644 --- a/src/ROCrate/ARCtrl.ROCrate.fsproj +++ b/src/ROCrate/ARCtrl.ROCrate.fsproj @@ -21,7 +21,11 @@ - + + + + + Kevin Schneider, nfdi4plants, DataPLANT OSS contributors diff --git a/src/ROCrate/ISAProfile/Assay.fs b/src/ROCrate/ISAProfile/Assay.fs index 152c9403..525433ff 100644 --- a/src/ROCrate/ISAProfile/Assay.fs +++ b/src/ROCrate/ISAProfile/Assay.fs @@ -19,13 +19,13 @@ type Assay( ) as this = inherit Dataset(id, "Assay") do - DynObj.setValue this (nameof identifier) identifier + DynObj.setProperty (nameof identifier) identifier this - DynObj.setValueOpt this (nameof measurementMethod) measurementMethod - DynObj.setValueOpt this (nameof measurementTechnique) measurementTechnique - DynObj.setValueOpt this (nameof variableMeasured) variableMeasured - DynObj.setValueOpt this (nameof about) about - DynObj.setValueOpt this (nameof comment) comment - DynObj.setValueOpt this (nameof creator) creator - DynObj.setValueOpt this (nameof hasPart) hasPart - DynObj.setValueOpt this (nameof url) url \ No newline at end of file + DynObj.setOptionalProperty (nameof measurementMethod) measurementMethod this + DynObj.setOptionalProperty (nameof measurementTechnique) measurementTechnique this + DynObj.setOptionalProperty (nameof variableMeasured) variableMeasured this + DynObj.setOptionalProperty (nameof about) about this + DynObj.setOptionalProperty (nameof comment) comment this + DynObj.setOptionalProperty (nameof creator) creator this + DynObj.setOptionalProperty (nameof hasPart) hasPart this + DynObj.setOptionalProperty (nameof url) url this \ No newline at end of file diff --git a/src/ROCrate/ISAProfile/Data.fs b/src/ROCrate/ISAProfile/Data.fs index 476e9d68..7aa09fb9 100644 --- a/src/ROCrate/ISAProfile/Data.fs +++ b/src/ROCrate/ISAProfile/Data.fs @@ -15,9 +15,9 @@ type Data( ) as this = inherit ROCrateObject(id = id, schemaType = "schema.org/MediaObject", ?additionalType = additionalType) do - DynObj.setValue this (nameof name) name + DynObj.setProperty (nameof name) name this - DynObj.setValueOpt this (nameof comment) comment - DynObj.setValueOpt this (nameof encodingFormat) encodingFormat - DynObj.setValueOpt this (nameof disambiguatingDescription) disambiguatingDescription + DynObj.setOptionalProperty (nameof comment) comment this + DynObj.setOptionalProperty (nameof encodingFormat) encodingFormat this + DynObj.setOptionalProperty (nameof disambiguatingDescription) disambiguatingDescription this diff --git a/src/ROCrate/ISAProfile/Investigation.fs b/src/ROCrate/ISAProfile/Investigation.fs index 2498807c..607170fa 100644 --- a/src/ROCrate/ISAProfile/Investigation.fs +++ b/src/ROCrate/ISAProfile/Investigation.fs @@ -22,16 +22,16 @@ type Investigation( ) as this = inherit Dataset(id, "Investigation") do - DynObj.setValue this (nameof identifier) identifier + DynObj.setProperty (nameof identifier) identifier this - DynObj.setValueOpt this (nameof citation) citation - DynObj.setValueOpt this (nameof comment) comment - DynObj.setValueOpt this (nameof creator) creator - DynObj.setValueOpt this (nameof dateCreated) dateCreated - DynObj.setValueOpt this (nameof dateModified) dateModified - DynObj.setValueOpt this (nameof datePublished) datePublished - DynObj.setValueOpt this (nameof hasPart) hasPart - DynObj.setValueOpt this (nameof headline) headline - DynObj.setValueOpt this (nameof mentions) mentions - DynObj.setValueOpt this (nameof url) url - DynObj.setValueOpt this (nameof description) description + DynObj.setOptionalProperty (nameof citation) citation this + DynObj.setOptionalProperty (nameof comment) comment this + DynObj.setOptionalProperty (nameof creator) creator this + DynObj.setOptionalProperty (nameof dateCreated) dateCreated this + DynObj.setOptionalProperty (nameof dateModified) dateModified this + DynObj.setOptionalProperty (nameof datePublished) datePublished this + DynObj.setOptionalProperty (nameof hasPart) hasPart this + DynObj.setOptionalProperty (nameof headline) headline this + DynObj.setOptionalProperty (nameof mentions) mentions this + DynObj.setOptionalProperty (nameof url) url this + DynObj.setOptionalProperty (nameof description) description this diff --git a/src/ROCrate/ISAProfile/LabProcess.fs b/src/ROCrate/ISAProfile/LabProcess.fs index a92bb6b9..a891ff30 100644 --- a/src/ROCrate/ISAProfile/LabProcess.fs +++ b/src/ROCrate/ISAProfile/LabProcess.fs @@ -19,12 +19,12 @@ type LabProcess( ) as this = inherit ROCrateObject(id = id, schemaType = "bioschemas.org/LabProcess", ?additionalType = additionalType) do - DynObj.setValue this (nameof name) name - DynObj.setValue this (nameof agent) agent - DynObj.setValue this (nameof object) object - DynObj.setValue this (nameof result) result + DynObj.setProperty (nameof name) name this + DynObj.setProperty (nameof agent) agent this + DynObj.setProperty (nameof object) object this + DynObj.setProperty (nameof result) result this - DynObj.setValueOpt this (nameof executesLabProtocol) executesLabProtocol - DynObj.setValueOpt this (nameof parameterValue) parameterValue - DynObj.setValueOpt this (nameof endTime) endTime - DynObj.setValueOpt this (nameof disambiguatingDescription) disambiguatingDescription \ No newline at end of file + DynObj.setOptionalProperty (nameof executesLabProtocol) executesLabProtocol this + DynObj.setOptionalProperty (nameof parameterValue) parameterValue this + DynObj.setOptionalProperty (nameof endTime) endTime this + DynObj.setOptionalProperty (nameof disambiguatingDescription) disambiguatingDescription this \ No newline at end of file diff --git a/src/ROCrate/ISAProfile/LabProtocol.fs b/src/ROCrate/ISAProfile/LabProtocol.fs index ec830005..bee27aeb 100644 --- a/src/ROCrate/ISAProfile/LabProtocol.fs +++ b/src/ROCrate/ISAProfile/LabProtocol.fs @@ -20,12 +20,12 @@ type LabProtocol( ) as this = inherit ROCrateObject(id = id, schemaType = "bioschemas.org/LabProtocol", ?additionalType = additionalType) do - DynObj.setValueOpt this (nameof name) name - DynObj.setValueOpt this (nameof intendedUse) intendedUse - DynObj.setValueOpt this (nameof description) description - DynObj.setValueOpt this (nameof url) url - DynObj.setValueOpt this (nameof comment) comment - DynObj.setValueOpt this (nameof version) version - DynObj.setValueOpt this (nameof labEquipment) labEquipment - DynObj.setValueOpt this (nameof reagent) reagent - DynObj.setValueOpt this (nameof computationalTool) computationalTool + DynObj.setOptionalProperty (nameof name) name this + DynObj.setOptionalProperty (nameof intendedUse) intendedUse this + DynObj.setOptionalProperty (nameof description) description this + DynObj.setOptionalProperty (nameof url) url this + DynObj.setOptionalProperty (nameof comment) comment this + DynObj.setOptionalProperty (nameof version) version this + DynObj.setOptionalProperty (nameof labEquipment) labEquipment this + DynObj.setOptionalProperty (nameof reagent) reagent this + DynObj.setOptionalProperty (nameof computationalTool) computationalTool this diff --git a/src/ROCrate/ISAProfile/Person.fs b/src/ROCrate/ISAProfile/Person.fs index 39aa17be..baabb839 100644 --- a/src/ROCrate/ISAProfile/Person.fs +++ b/src/ROCrate/ISAProfile/Person.fs @@ -23,15 +23,15 @@ type Person( inherit ROCrateObject(id = id, schemaType = "schema.org/Person", ?additionalType = additionalType) do - DynObj.setValue this (nameof givenName) givenName + DynObj.setProperty (nameof givenName) givenName this - DynObj.setValueOpt this (nameof familyName) familyName - DynObj.setValueOpt this (nameof email) email - DynObj.setValueOpt this (nameof identifier) identifier - DynObj.setValueOpt this (nameof affiliation) affiliation - DynObj.setValueOpt this (nameof jobTitle) jobTitle - DynObj.setValueOpt this (nameof additionalName) additionalName - DynObj.setValueOpt this (nameof address) address - DynObj.setValueOpt this (nameof telephone) telephone - DynObj.setValueOpt this (nameof faxNumber) faxNumber - DynObj.setValueOpt this (nameof disambiguatingDescription) disambiguatingDescription + DynObj.setOptionalProperty (nameof familyName) familyName this + DynObj.setOptionalProperty (nameof email) email this + DynObj.setOptionalProperty (nameof identifier) identifier this + DynObj.setOptionalProperty (nameof affiliation) affiliation this + DynObj.setOptionalProperty (nameof jobTitle) jobTitle this + DynObj.setOptionalProperty (nameof additionalName) additionalName this + DynObj.setOptionalProperty (nameof address) address this + DynObj.setOptionalProperty (nameof telephone) telephone this + DynObj.setOptionalProperty (nameof faxNumber) faxNumber this + DynObj.setOptionalProperty (nameof disambiguatingDescription) disambiguatingDescription this diff --git a/src/ROCrate/ISAProfile/PropertyValue.fs b/src/ROCrate/ISAProfile/PropertyValue.fs index 886d694f..650aab8f 100644 --- a/src/ROCrate/ISAProfile/PropertyValue.fs +++ b/src/ROCrate/ISAProfile/PropertyValue.fs @@ -18,10 +18,10 @@ type PropertyValue( inherit ROCrateObject(id = id, schemaType = "schema.org/PropertyValue", ?additionalType = additionalType) do - DynObj.setValue this (nameof name) name - DynObj.setValue this (nameof value) value + DynObj.setProperty (nameof name) name this + DynObj.setProperty (nameof value) value this - DynObj.setValueOpt this (nameof propertyID) propertyID - DynObj.setValueOpt this (nameof unitCode) unitCode - DynObj.setValueOpt this (nameof unitText) unitText - DynObj.setValueOpt this (nameof valueReference) valueReference + DynObj.setOptionalProperty (nameof propertyID) propertyID this + DynObj.setOptionalProperty (nameof unitCode) unitCode this + DynObj.setOptionalProperty (nameof unitText) unitText this + DynObj.setOptionalProperty (nameof valueReference) valueReference this diff --git a/src/ROCrate/ISAProfile/Sample.fs b/src/ROCrate/ISAProfile/Sample.fs index e03deab3..a1f2a45f 100644 --- a/src/ROCrate/ISAProfile/Sample.fs +++ b/src/ROCrate/ISAProfile/Sample.fs @@ -14,7 +14,7 @@ type Sample( ) as this = inherit ROCrateObject(id = id, schemaType = "bioschemas.org/Sample", ?additionalType = additionalType) do - DynObj.setValue this (nameof name) name + DynObj.setProperty (nameof name) name this - DynObj.setValueOpt this (nameof additionalProperty) additionalProperty - DynObj.setValueOpt this (nameof derivesFrom) derivesFrom + DynObj.setOptionalProperty (nameof additionalProperty) additionalProperty this + DynObj.setOptionalProperty (nameof derivesFrom) derivesFrom this diff --git a/src/ROCrate/ISAProfile/ScholarlyArticle.fs b/src/ROCrate/ISAProfile/ScholarlyArticle.fs index 797b611a..06c72e50 100644 --- a/src/ROCrate/ISAProfile/ScholarlyArticle.fs +++ b/src/ROCrate/ISAProfile/ScholarlyArticle.fs @@ -19,10 +19,10 @@ type ScholarlyArticle( inherit ROCrateObject(id = id, schemaType = "schema.org/ScholarlyArticle", ?additionalType = additionalType) do - DynObj.setValue this (nameof headline) headline - DynObj.setValue this (nameof identifier) identifier + DynObj.setProperty (nameof headline) headline this + DynObj.setProperty (nameof identifier) identifier this - DynObj.setValueOpt this (nameof author) author - DynObj.setValueOpt this (nameof url) url - DynObj.setValueOpt this (nameof creativeWorkStatus) creativeWorkStatus - DynObj.setValueOpt this (nameof disambiguatingDescription) disambiguatingDescription \ No newline at end of file + DynObj.setOptionalProperty (nameof author) author this + DynObj.setOptionalProperty (nameof url) url this + DynObj.setOptionalProperty (nameof creativeWorkStatus) creativeWorkStatus this + DynObj.setOptionalProperty (nameof disambiguatingDescription) disambiguatingDescription this \ No newline at end of file diff --git a/src/ROCrate/ISAProfile/Study.fs b/src/ROCrate/ISAProfile/Study.fs index e8007004..d2463da7 100644 --- a/src/ROCrate/ISAProfile/Study.fs +++ b/src/ROCrate/ISAProfile/Study.fs @@ -22,17 +22,17 @@ type Study( ) as this = inherit Dataset(id, "Study") do - DynObj.setValue this (nameof identifier) identifier + DynObj.setProperty (nameof identifier) identifier this - DynObj.setValueOpt this (nameof about) about - DynObj.setValueOpt this (nameof citation) citation - DynObj.setValueOpt this (nameof comment) comment - DynObj.setValueOpt this (nameof creator) creator - DynObj.setValueOpt this (nameof dateCreated) dateCreated - DynObj.setValueOpt this (nameof dateModified) dateModified - DynObj.setValueOpt this (nameof datePublished) datePublished - DynObj.setValueOpt this (nameof description) description - DynObj.setValueOpt this (nameof hasPart) hasPart - DynObj.setValueOpt this (nameof headline) headline - DynObj.setValueOpt this (nameof url) url + DynObj.setOptionalProperty (nameof about) about this + DynObj.setOptionalProperty (nameof citation) citation this + DynObj.setOptionalProperty (nameof comment) comment this + DynObj.setOptionalProperty (nameof creator) creator this + DynObj.setOptionalProperty (nameof dateCreated) dateCreated this + DynObj.setOptionalProperty (nameof dateModified) dateModified this + DynObj.setOptionalProperty (nameof datePublished) datePublished this + DynObj.setOptionalProperty (nameof description) description this + DynObj.setOptionalProperty (nameof hasPart) hasPart this + DynObj.setOptionalProperty (nameof headline) headline this + DynObj.setOptionalProperty (nameof url) url this diff --git a/src/ROCrate/ROCrateObject.fs b/src/ROCrate/ROCrateObject.fs index 30b30108..35d18f0f 100644 --- a/src/ROCrate/ROCrateObject.fs +++ b/src/ROCrate/ROCrateObject.fs @@ -1,6 +1,8 @@ namespace ARCtrl.ROCrate open DynamicObj +open Thoth.Json.Core +open System /// Base interface implemented by all explicitly known objects in our ROCrate profiles. type IROCrateObject = diff --git a/src/ROCrate/playground.fsx b/src/ROCrate/playground.fsx index 4b939a85..c999a0b3 100644 --- a/src/ROCrate/playground.fsx +++ b/src/ROCrate/playground.fsx @@ -65,20 +65,20 @@ type Study(id: string) = let ds = Study(id = id) // Properties from CreativeWork - DynObj.setValueOpt ds (nameof about) about - DynObj.setValueOpt ds (nameof citation) citation - DynObj.setValueOpt ds (nameof comment) comment - DynObj.setValueOpt ds (nameof creator) creator - DynObj.setValueOpt ds (nameof dateCreated) dateCreated - DynObj.setValueOpt ds (nameof dateModified) dateModified - DynObj.setValueOpt ds (nameof datePublished) datePublished - DynObj.setValueOpt ds (nameof hasPart) hasPart - DynObj.setValueOpt ds (nameof headline) headline - DynObj.setValueOpt ds (nameof url) url + DynObj.setOptionalProperty ds (nameof about) about + DynObj.setOptionalProperty ds (nameof citation) citation + DynObj.setOptionalProperty ds (nameof comment) comment + DynObj.setOptionalProperty ds (nameof creator) creator + DynObj.setOptionalProperty ds (nameof dateCreated) dateCreated + DynObj.setOptionalProperty ds (nameof dateModified) dateModified + DynObj.setOptionalProperty ds (nameof datePublished) datePublished + DynObj.setOptionalProperty ds (nameof hasPart) hasPart + DynObj.setOptionalProperty ds (nameof headline) headline + DynObj.setOptionalProperty ds (nameof url) url // Properties from Thing - DynObj.setValueOpt ds (nameof description) description - DynObj.setValue ds (nameof identifier) identifier + DynObj.setOptionalProperty ds (nameof description) description + DynObj.setProperty ds (nameof identifier) identifier ds @@ -108,20 +108,20 @@ module I = do // Properties from CreativeWork - DynObj.setValueOpt i (nameof citation) citation - DynObj.setValueOpt i (nameof comment) comment - DynObj.setValueOpt i (nameof creator) creator - DynObj.setValueOpt i (nameof dateCreated) dateCreated - DynObj.setValueOpt i (nameof dateModified) dateModified - DynObj.setValueOpt i (nameof datePublished) datePublished - DynObj.setValueOpt i (nameof hasPart) hasPart - DynObj.setValueOpt i (nameof headline) headline - DynObj.setValueOpt i (nameof mentions) mentions - DynObj.setValueOpt i (nameof url) url + DynObj.setOptionalProperty i (nameof citation) citation + DynObj.setOptionalProperty i (nameof comment) comment + DynObj.setOptionalProperty i (nameof creator) creator + DynObj.setOptionalProperty i (nameof dateCreated) dateCreated + DynObj.setOptionalProperty i (nameof dateModified) dateModified + DynObj.setOptionalProperty i (nameof datePublished) datePublished + DynObj.setOptionalProperty i (nameof hasPart) hasPart + DynObj.setOptionalProperty i (nameof headline) headline + DynObj.setOptionalProperty i (nameof mentions) mentions + DynObj.setOptionalProperty i (nameof url) url // Properties from Thing - DynObj.setValueOpt i (nameof description) description - DynObj.setValue i (nameof identifier) identifier + DynObj.setOptionalProperty i (nameof description) description + DynObj.setProperty i (nameof identifier) identifier I.Investigation("lol", [1.]) I.Investigation("lol", "") diff --git a/tests/ARCtrl/ARCtrl.Tests.fsproj b/tests/ARCtrl/ARCtrl.Tests.fsproj index bfab53f6..2e6d9347 100644 --- a/tests/ARCtrl/ARCtrl.Tests.fsproj +++ b/tests/ARCtrl/ARCtrl.Tests.fsproj @@ -18,4 +18,7 @@ + + + \ No newline at end of file diff --git a/tests/Contract/ARCtrl.Contract.Tests.fsproj b/tests/Contract/ARCtrl.Contract.Tests.fsproj index 20bf61dd..d00e7558 100644 --- a/tests/Contract/ARCtrl.Contract.Tests.fsproj +++ b/tests/Contract/ARCtrl.Contract.Tests.fsproj @@ -13,4 +13,7 @@ + + + \ No newline at end of file diff --git a/tests/Core/ARCtrl.Core.Tests.fsproj b/tests/Core/ARCtrl.Core.Tests.fsproj index 21aac3ce..e123c4d0 100644 --- a/tests/Core/ARCtrl.Core.Tests.fsproj +++ b/tests/Core/ARCtrl.Core.Tests.fsproj @@ -30,4 +30,7 @@ + + + \ No newline at end of file diff --git a/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj b/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj index 28d81336..47c0e64b 100644 --- a/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj +++ b/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj @@ -13,4 +13,7 @@ + + + \ No newline at end of file diff --git a/tests/Json/ARCtrl.Json.Tests.fsproj b/tests/Json/ARCtrl.Json.Tests.fsproj index 1bf42250..f5f0619c 100644 --- a/tests/Json/ARCtrl.Json.Tests.fsproj +++ b/tests/Json/ARCtrl.Json.Tests.fsproj @@ -45,4 +45,7 @@ + + + \ No newline at end of file diff --git a/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj b/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj index 7d2bcc81..dc71d818 100644 --- a/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj +++ b/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj @@ -25,4 +25,7 @@ + + + diff --git a/tests/ROCrate/Common.fs b/tests/ROCrate/Common.fs index 862477e1..350659bd 100644 --- a/tests/ROCrate/Common.fs +++ b/tests/ROCrate/Common.fs @@ -18,16 +18,16 @@ module Expect = Expect.equal roc.AdditionalType (Some expectedAdditionalType) "object did not contain correct additionalType" let inline ROCrateObjectHasDynamicProperty (expectedPropertyName:string) (expectedPropertyValue:'P) (roc:#ROCrateObject) = - Expect.isSome (roc.TryGetDynamicPropertyInfo(expectedPropertyName)) $"object did not contain the dynamic property '{expectedPropertyName}'" + Expect.isSome (roc.TryGetDynamicPropertyHelper(expectedPropertyName)) $"object did not contain the dynamic property '{expectedPropertyName}'" Expect.equal - (DynObj.tryGetTypedValue<'P> expectedPropertyName roc) + (DynObj.tryGetTypedPropertyValue<'P> expectedPropertyName roc) (Some expectedPropertyValue) $"property value of '{expectedPropertyName}' was not correct" let inline ROCrateObjectHasStaticProperty (expectedPropertyName:string) (expectedPropertyValue:'P) (roc:#ROCrateObject) = - Expect.isSome (roc.TryGetStaticPropertyInfo(expectedPropertyName)) $"object did not contain the dynamic property '{expectedPropertyName}'" + Expect.isSome (roc.TryGetDynamicPropertyHelper(expectedPropertyName)) $"object did not contain the dynamic property '{expectedPropertyName}'" Expect.equal - (DynObj.tryGetTypedValue<'P> expectedPropertyName roc) + (DynObj.tryGetTypedPropertyValue<'P> expectedPropertyName roc) (Some expectedPropertyValue) $"property value of '{expectedPropertyName}' was not correct" diff --git a/tests/ROCrate/ISAProfile/Assay.Tests.fs b/tests/ROCrate/ISAProfile/Assay.Tests.fs index d32fafd8..7017443d 100644 --- a/tests/ROCrate/ISAProfile/Assay.Tests.fs +++ b/tests/ROCrate/ISAProfile/Assay.Tests.fs @@ -54,13 +54,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/Data.Tests.fs b/tests/ROCrate/ISAProfile/Data.Tests.fs index 79d12cdb..50df419e 100644 --- a/tests/ROCrate/ISAProfile/Data.Tests.fs +++ b/tests/ROCrate/ISAProfile/Data.Tests.fs @@ -44,13 +44,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/Dataset.Tests.fs b/tests/ROCrate/ISAProfile/Dataset.Tests.fs index a6619d0a..86dd30c5 100644 --- a/tests/ROCrate/ISAProfile/Dataset.Tests.fs +++ b/tests/ROCrate/ISAProfile/Dataset.Tests.fs @@ -28,13 +28,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/Investigation.Tests.fs b/tests/ROCrate/ISAProfile/Investigation.Tests.fs index 1e0d15de..48da23ab 100644 --- a/tests/ROCrate/ISAProfile/Investigation.Tests.fs +++ b/tests/ROCrate/ISAProfile/Investigation.Tests.fs @@ -60,13 +60,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/LabProcess.tests.fs b/tests/ROCrate/ISAProfile/LabProcess.tests.fs index a713a077..7ba286e7 100644 --- a/tests/ROCrate/ISAProfile/LabProcess.tests.fs +++ b/tests/ROCrate/ISAProfile/LabProcess.tests.fs @@ -59,13 +59,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/LabProtocol.Tests.fs b/tests/ROCrate/ISAProfile/LabProtocol.Tests.fs index 3e88ea43..55559c39 100644 --- a/tests/ROCrate/ISAProfile/LabProtocol.Tests.fs +++ b/tests/ROCrate/ISAProfile/LabProtocol.Tests.fs @@ -52,13 +52,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/Person.Tests.fs b/tests/ROCrate/ISAProfile/Person.Tests.fs index cf72916c..67a4de84 100644 --- a/tests/ROCrate/ISAProfile/Person.Tests.fs +++ b/tests/ROCrate/ISAProfile/Person.Tests.fs @@ -58,13 +58,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/PropertyValue.Tests.fs b/tests/ROCrate/ISAProfile/PropertyValue.Tests.fs index 6ca0eebe..10400219 100644 --- a/tests/ROCrate/ISAProfile/PropertyValue.Tests.fs +++ b/tests/ROCrate/ISAProfile/PropertyValue.Tests.fs @@ -50,13 +50,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/Sample.tests.fs b/tests/ROCrate/ISAProfile/Sample.tests.fs index bcc5b025..0396e829 100644 --- a/tests/ROCrate/ISAProfile/Sample.tests.fs +++ b/tests/ROCrate/ISAProfile/Sample.tests.fs @@ -42,13 +42,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/ScholarlyArticle.Tests.fs b/tests/ROCrate/ISAProfile/ScholarlyArticle.Tests.fs index ba498f3d..9e7534ef 100644 --- a/tests/ROCrate/ISAProfile/ScholarlyArticle.Tests.fs +++ b/tests/ROCrate/ISAProfile/ScholarlyArticle.Tests.fs @@ -50,13 +50,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ISAProfile/Study.Tests.fs b/tests/ROCrate/ISAProfile/Study.Tests.fs index 05151e08..b6ce52de 100644 --- a/tests/ROCrate/ISAProfile/Study.Tests.fs +++ b/tests/ROCrate/ISAProfile/Study.Tests.fs @@ -60,13 +60,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/ROCrate/ROCrateObject.Tests.fs b/tests/ROCrate/ROCrateObject.Tests.fs index 6d2b0e5f..08ebaa97 100644 --- a/tests/ROCrate/ROCrateObject.Tests.fs +++ b/tests/ROCrate/ROCrateObject.Tests.fs @@ -28,13 +28,13 @@ let tests_interface_members = testList "interface members" [ let tests_dynamic_members = testSequenced ( testList "dynamic members" [ - testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" + testCase "property not present before setting" <| fun _ -> Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be set" testCase "Set dynamic property" <| fun _ -> - mandatory_properties.SetValue("yes",42) + mandatory_properties.SetProperty("yes",42) Expect.ROCrateObjectHasDynamicProperty "yes" 42 mandatory_properties testCase "Remove dynamic property" <| fun _ -> - mandatory_properties.Remove("yes") - Expect.isNone (DynObj.tryGetTypedValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" + mandatory_properties.RemoveProperty("yes") |> ignore + Expect.isNone (DynObj.tryGetTypedPropertyValue "yes" mandatory_properties) "dynamic property 'yes' was set although it was expected not to be removed" ] ) diff --git a/tests/Speedtest/Speedtest.fsproj b/tests/Speedtest/Speedtest.fsproj index 5014ef63..11052fc6 100644 --- a/tests/Speedtest/Speedtest.fsproj +++ b/tests/Speedtest/Speedtest.fsproj @@ -20,4 +20,7 @@ + + + diff --git a/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj b/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj index 14c6b3ea..47f89b0a 100644 --- a/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj +++ b/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj @@ -25,4 +25,7 @@ + + + \ No newline at end of file diff --git a/tests/TestingUtils/TestingUtils.fsproj b/tests/TestingUtils/TestingUtils.fsproj index 955e0f06..2009ed93 100644 --- a/tests/TestingUtils/TestingUtils.fsproj +++ b/tests/TestingUtils/TestingUtils.fsproj @@ -27,12 +27,15 @@ - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj b/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj index b25e098c..10d2d7d9 100644 --- a/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj +++ b/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj @@ -14,4 +14,7 @@ + + + \ No newline at end of file diff --git a/tests/Yaml/ARCtrl.Yaml.Tests.fsproj b/tests/Yaml/ARCtrl.Yaml.Tests.fsproj index ce2443a6..cc404497 100644 --- a/tests/Yaml/ARCtrl.Yaml.Tests.fsproj +++ b/tests/Yaml/ARCtrl.Yaml.Tests.fsproj @@ -14,4 +14,7 @@ + + + \ No newline at end of file From f6afa53b83b8003f16c7881a8bd7ea958466c5fb Mon Sep 17 00:00:00 2001 From: HLWeil Date: Tue, 1 Oct 2024 14:47:29 +0200 Subject: [PATCH 05/15] first buildable version after fable restructure --- ARCtrl.sln | 16 + Directory.Build.props | 19 + Directory.Packages.props | 21 + build/Build.Packages.props | 18 + build/Build.fsproj | 26 +- build/packages.lock.json | 782 ++++++++++++++++++ src/ARCtrl/ARCtrl.Javascript.fsproj | 90 ++ src/ARCtrl/ARCtrl.Python.fsproj | 85 ++ src/ARCtrl/ARCtrl.fsproj | 60 +- src/ARCtrl/Json/ARC.fs | 30 + src/ARCtrl/Json/Assay.fs | 59 ++ src/ARCtrl/Json/Comment.fs | 47 ++ src/ARCtrl/Json/Data.fs | 32 + src/ARCtrl/Json/DataFile.fs | 30 + src/ARCtrl/Json/DataMap/DataMap.fs | 38 + src/ARCtrl/Json/Decode.fs | 32 + src/ARCtrl/Json/Encode.fs | 26 + src/ARCtrl/Json/Investigation.fs | 56 ++ src/ARCtrl/Json/OntologyAnnotation.fs | 41 + src/ARCtrl/Json/OntologySourceReference.fs | 42 + src/ARCtrl/Json/Person.fs | 44 + src/ARCtrl/Json/Process/Component.fs | 32 + src/ARCtrl/Json/Process/Factor.fs | 19 + src/ARCtrl/Json/Process/FactorValue.fs | 21 + src/ARCtrl/Json/Process/Material.fs | 32 + src/ARCtrl/Json/Process/MaterialAttribute.fs | 23 + .../Json/Process/MaterialAttributeValue.fs | 32 + src/ARCtrl/Json/Process/MaterialType.fs | 20 + src/ARCtrl/Json/Process/Process.fs | 32 + src/ARCtrl/Json/Process/ProcessInput.fs | 21 + src/ARCtrl/Json/Process/ProcessOutput.fs | 32 + .../Json/Process/ProcessParameterValue.fs | 32 + .../Json/Process/ProcessSequence.fs | 0 src/ARCtrl/Json/Process/Protocol.fs | 32 + src/ARCtrl/Json/Process/ProtocolParameter.fs | 19 + src/ARCtrl/Json/Process/Sample.fs | 32 + src/ARCtrl/Json/Process/Source.fs | 32 + src/ARCtrl/Json/Process/StudyMaterials.fs | 35 + src/ARCtrl/Json/Process/Value.fs | 24 + src/ARCtrl/Json/Publication.fs | 44 + src/ARCtrl/Json/ROCrateHelper.fs | 10 + src/ARCtrl/Json/ROCrateObject.fs | 123 +++ src/ARCtrl/Json/Study.fs | 58 ++ src/ARCtrl/Json/Table/ArcTable.fs | 49 ++ src/ARCtrl/Json/Table/CompositeCell.fs | 19 + src/ARCtrl/Json/Table/CompositeHeader.fs | 19 + src/{ => ARCtrl}/Json/Table/Compression.fs | 0 src/ARCtrl/Json/Table/IOType.fs | 19 + src/ARCtrl/Json/Table/Templates.fs | 52 ++ src/ARCtrl/WebRequest/WebRequest.fs | 7 +- src/ARCtrl/packages.lock.json | 165 ++++ src/CWL/packages.lock.json | 21 + src/Contract/ARCtrl.Contract.fsproj | 3 - src/Contract/packages.lock.json | 134 +++ src/Core/Process/FactorValue.fs | 1 + src/Core/packages.lock.json | 36 + src/FileSystem/ARCtrl.FileSystem.fsproj | 4 +- src/FileSystem/packages.lock.json | 27 + src/Json/ARCtrl.Json.fsproj | 14 +- src/Json/ArcInvestigation.fs | 97 --- src/Json/Assay.fs | 58 +- src/Json/Comment.fs | 63 +- src/Json/Data.fs | 31 +- src/Json/DataFile.fs | 28 +- src/Json/Decode.fs | 30 +- src/Json/Encode.fs | 11 - src/Json/Investigation.fs | 55 +- src/Json/OntologyAnnotation.fs | 39 - src/Json/OntologySourceReference.fs | 41 +- src/Json/Person.fs | 43 +- src/Json/Process/Component.fs | 29 - src/Json/Process/Factor.fs | 16 - src/Json/Process/FactorValue.fs | 18 - src/Json/Process/Material.fs | 30 +- src/Json/Process/MaterialAttribute.fs | 21 +- src/Json/Process/MaterialAttributeValue.fs | 29 - src/Json/Process/MaterialType.fs | 20 +- src/Json/Process/Process.fs | 29 - src/Json/Process/ProcessInput.fs | 20 +- src/Json/Process/ProcessOutput.fs | 32 +- src/Json/Process/ProcessParameterValue.fs | 31 +- src/Json/Process/Protocol.fs | 30 - src/Json/Process/ProtocolParameter.fs | 18 +- src/Json/Process/Sample.fs | 31 +- src/Json/Process/Source.fs | 31 +- src/Json/Process/Value.fs | 26 +- src/Json/Publication.fs | 41 - src/Json/ROCrateHelper.fs | 4 +- src/Json/Study.fs | 58 +- src/Json/Table/ArcTable.fs | 48 +- src/Json/Table/CompositeCell.fs | 20 +- src/Json/Table/CompositeHeader.fs | 20 +- src/Json/Table/IOType.fs | 21 +- src/Json/Table/Templates.fs | 37 +- src/Json/packages.lock.json | 83 ++ src/ROCrate/ARCtrl.ROCrate.fsproj | 7 +- src/ROCrate/packages.lock.json | 60 ++ src/Spreadsheet/ARCtrl.Spreadsheet.fsproj | 4 +- src/Spreadsheet/packages.lock.json | 77 ++ src/ValidationPackages/packages.lock.json | 43 + src/Yaml/ARCtrl.Yaml.fsproj | 2 +- src/Yaml/packages.lock.json | 65 ++ tests/ARCtrl/packages.lock.json | 261 ++++++ tests/Contract/packages.lock.json | 261 ++++++ tests/Core/packages.lock.json | 261 ++++++ tests/FileSystem/packages.lock.json | 261 ++++++ tests/Json/packages.lock.json | 261 ++++++ tests/ROCrate/packages.lock.json | 261 ++++++ tests/Speedtest/packages.lock.json | 261 ++++++ tests/Spreadsheet/packages.lock.json | 261 ++++++ tests/TestingUtils/TestingUtils.fsproj | 4 +- tests/TestingUtils/packages.lock.json | 252 ++++++ tests/ValidationPackages/packages.lock.json | 261 ++++++ tests/Yaml/packages.lock.json | 261 ++++++ 114 files changed, 6068 insertions(+), 1164 deletions(-) create mode 100644 Directory.Build.props create mode 100644 Directory.Packages.props create mode 100644 build/Build.Packages.props create mode 100644 build/packages.lock.json create mode 100644 src/ARCtrl/ARCtrl.Javascript.fsproj create mode 100644 src/ARCtrl/ARCtrl.Python.fsproj create mode 100644 src/ARCtrl/Json/ARC.fs create mode 100644 src/ARCtrl/Json/Assay.fs create mode 100644 src/ARCtrl/Json/Comment.fs create mode 100644 src/ARCtrl/Json/Data.fs create mode 100644 src/ARCtrl/Json/DataFile.fs create mode 100644 src/ARCtrl/Json/DataMap/DataMap.fs create mode 100644 src/ARCtrl/Json/Decode.fs create mode 100644 src/ARCtrl/Json/Encode.fs create mode 100644 src/ARCtrl/Json/Investigation.fs create mode 100644 src/ARCtrl/Json/OntologyAnnotation.fs create mode 100644 src/ARCtrl/Json/OntologySourceReference.fs create mode 100644 src/ARCtrl/Json/Person.fs create mode 100644 src/ARCtrl/Json/Process/Component.fs create mode 100644 src/ARCtrl/Json/Process/Factor.fs create mode 100644 src/ARCtrl/Json/Process/FactorValue.fs create mode 100644 src/ARCtrl/Json/Process/Material.fs create mode 100644 src/ARCtrl/Json/Process/MaterialAttribute.fs create mode 100644 src/ARCtrl/Json/Process/MaterialAttributeValue.fs create mode 100644 src/ARCtrl/Json/Process/MaterialType.fs create mode 100644 src/ARCtrl/Json/Process/Process.fs create mode 100644 src/ARCtrl/Json/Process/ProcessInput.fs create mode 100644 src/ARCtrl/Json/Process/ProcessOutput.fs create mode 100644 src/ARCtrl/Json/Process/ProcessParameterValue.fs rename src/{ => ARCtrl}/Json/Process/ProcessSequence.fs (100%) create mode 100644 src/ARCtrl/Json/Process/Protocol.fs create mode 100644 src/ARCtrl/Json/Process/ProtocolParameter.fs create mode 100644 src/ARCtrl/Json/Process/Sample.fs create mode 100644 src/ARCtrl/Json/Process/Source.fs create mode 100644 src/ARCtrl/Json/Process/StudyMaterials.fs create mode 100644 src/ARCtrl/Json/Process/Value.fs create mode 100644 src/ARCtrl/Json/Publication.fs create mode 100644 src/ARCtrl/Json/ROCrateHelper.fs create mode 100644 src/ARCtrl/Json/ROCrateObject.fs create mode 100644 src/ARCtrl/Json/Study.fs create mode 100644 src/ARCtrl/Json/Table/ArcTable.fs create mode 100644 src/ARCtrl/Json/Table/CompositeCell.fs create mode 100644 src/ARCtrl/Json/Table/CompositeHeader.fs rename src/{ => ARCtrl}/Json/Table/Compression.fs (100%) create mode 100644 src/ARCtrl/Json/Table/IOType.fs create mode 100644 src/ARCtrl/Json/Table/Templates.fs create mode 100644 src/ARCtrl/packages.lock.json create mode 100644 src/CWL/packages.lock.json create mode 100644 src/Contract/packages.lock.json create mode 100644 src/Core/packages.lock.json create mode 100644 src/FileSystem/packages.lock.json delete mode 100644 src/Json/ArcInvestigation.fs create mode 100644 src/Json/packages.lock.json create mode 100644 src/ROCrate/packages.lock.json create mode 100644 src/Spreadsheet/packages.lock.json create mode 100644 src/ValidationPackages/packages.lock.json create mode 100644 src/Yaml/packages.lock.json create mode 100644 tests/ARCtrl/packages.lock.json create mode 100644 tests/Contract/packages.lock.json create mode 100644 tests/Core/packages.lock.json create mode 100644 tests/FileSystem/packages.lock.json create mode 100644 tests/Json/packages.lock.json create mode 100644 tests/ROCrate/packages.lock.json create mode 100644 tests/Speedtest/packages.lock.json create mode 100644 tests/Spreadsheet/packages.lock.json create mode 100644 tests/TestingUtils/packages.lock.json create mode 100644 tests/ValidationPackages/packages.lock.json create mode 100644 tests/Yaml/packages.lock.json diff --git a/ARCtrl.sln b/ARCtrl.sln index e6c5457b..987ec0d9 100644 --- a/ARCtrl.sln +++ b/ARCtrl.sln @@ -10,6 +10,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution .github\workflows\build-test.yml = .github\workflows\build-test.yml build.cmd = build.cmd build.sh = build.sh + Directory.Build.props = Directory.Build.props + Directory.Packages.props = Directory.Packages.props .config\dotnet-tools.json = .config\dotnet-tools.json global.json = global.json package.json = package.json @@ -86,6 +88,10 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.ROCrate", "src\ROCra EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.ROCrate.Tests", "tests\ROCrate\ARCtrl.ROCrate.Tests.fsproj", "{212A1C64-02FC-465A-B0FA-F69735F37ACC}" EndProject +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.Javascript", "src\ARCtrl\ARCtrl.Javascript.fsproj", "{53641ACF-DCE9-4A2C-93A2-8680A9AC6108}" +EndProject +Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.Python", "src\ARCtrl\ARCtrl.Python.fsproj", "{F8330698-3C79-4C14-8D46-AAF8910C2D2F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -180,6 +186,14 @@ Global {212A1C64-02FC-465A-B0FA-F69735F37ACC}.Debug|Any CPU.Build.0 = Debug|Any CPU {212A1C64-02FC-465A-B0FA-F69735F37ACC}.Release|Any CPU.ActiveCfg = Release|Any CPU {212A1C64-02FC-465A-B0FA-F69735F37ACC}.Release|Any CPU.Build.0 = Release|Any CPU + {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Release|Any CPU.Build.0 = Release|Any CPU + {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -208,6 +222,8 @@ Global {D10D12C7-B877-423B-867D-161D99E673C9} = {64B34A6E-318D-4E6E-9262-CE52C9B85A38} {658BF141-B4B5-4B90-891D-AC36A3FD7574} = {6DA2330B-D407-4FB1-AF05-B0184034EC44} {212A1C64-02FC-465A-B0FA-F69735F37ACC} = {64B34A6E-318D-4E6E-9262-CE52C9B85A38} + {53641ACF-DCE9-4A2C-93A2-8680A9AC6108} = {6DA2330B-D407-4FB1-AF05-B0184034EC44} + {F8330698-3C79-4C14-8D46-AAF8910C2D2F} = {6DA2330B-D407-4FB1-AF05-B0184034EC44} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1E354DE6-99BA-421E-9EF8-E808B855A85F} diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 00000000..1c1ceb55 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,19 @@ + + + + true + true + + + + true + + + true + true + + + + 3 + + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..1bd823aa --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,21 @@ + + + true + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/Build.Packages.props b/build/Build.Packages.props new file mode 100644 index 00000000..1507db77 --- /dev/null +++ b/build/Build.Packages.props @@ -0,0 +1,18 @@ + + + true + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/Build.fsproj b/build/Build.fsproj index d5929968..69da9aae 100644 --- a/build/Build.fsproj +++ b/build/Build.fsproj @@ -5,6 +5,7 @@ Exe + @@ -19,17 +20,20 @@ + - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/packages.lock.json b/build/packages.lock.json new file mode 100644 index 00000000..2928f2a5 --- /dev/null +++ b/build/packages.lock.json @@ -0,0 +1,782 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "BlackFox.Fake.BuildTask": { + "type": "Direct", + "requested": "[0.1.3, )", + "resolved": "0.1.3", + "contentHash": "ve7Bkm/ldS7kcf7TnM+Nl3JhZ7Q0ujBGlmWzofCgmb237l4d7Gn2xRNy7FD25MTP9lbBOX+qT4fnNcTXBcxhPQ==", + "dependencies": { + "FSharp.Core": "4.3.4", + "Fake.Core.Target": "5.1.0" + } + }, + "Fake.Api.GitHub": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "rAqsHw8F4IssTmiK9etJstx5d1zyjiMnwf7waSLgkuA8PKlx1i9l/l820Pmdm1cRXK6TdSYGeqQOIRf7e6layA==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Octokit": "0.50.0" + } + }, + "Fake.Core.Process": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "E/Uck6951pHs8MLfRX/+OsyZbZiicaVbNAchn9w7SDs8J/CDfMSsUG50Sz3LfQ1rU0B93NwuqvVEyuLWab2kMQ==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Environment": "6.0.0", + "Fake.Core.FakeVar": "6.0.0", + "Fake.Core.String": "6.0.0", + "Fake.Core.Trace": "6.0.0", + "Fake.IO.FileSystem": "6.0.0", + "System.Collections.Immutable": "6.0.0" + } + }, + "Fake.Core.ReleaseNotes": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "yLTqvk8DA6D45uCrqawcziwOomFNzHc8Sn/XpKH800fa/f0oEfWCliBQsusUdeB+qMzJnDOPaKKiJx0bX2yXag==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.SemVer": "6.0.0", + "Fake.Core.String": "6.0.0" + } + }, + "Fake.Core.Target": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "9UnYpWv8UJsB00d3/nPbnJSFedvenv1vsWlRT8tPH/ClHvJsB4panNxbJ6HP0VpYe9hvmHhXWAGdd8bQwfwCTQ==", + "dependencies": { + "FSharp.Control.Reactive": "5.0.2", + "FSharp.Core": "6.0.3", + "Fake.Core.CommandLineParsing": "6.0.0", + "Fake.Core.Context": "6.0.0", + "Fake.Core.Environment": "6.0.0", + "Fake.Core.FakeVar": "6.0.0", + "Fake.Core.Process": "6.0.0", + "Fake.Core.String": "6.0.0", + "Fake.Core.Trace": "6.0.0" + } + }, + "Fake.DotNet.Cli": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "t3P+JjczFsOncE9bpgTWxRuxTvkcHFXPuMmbWzIj+DGylopiGNAI2XT4IT+Of05zZKlOd99hgpsSMWVclr+uGQ==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Environment": "6.0.0", + "Fake.Core.Process": "6.0.0", + "Fake.Core.String": "6.0.0", + "Fake.Core.Trace": "6.0.0", + "Fake.DotNet.MSBuild": "6.0.0", + "Fake.DotNet.NuGet": "6.0.0", + "Fake.IO.FileSystem": "6.0.0", + "Mono.Posix.NETStandard": "1.0.0", + "Newtonsoft.Json": "13.0.1" + } + }, + "Fake.DotNet.MSBuild": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "HrgCFD1lyweQx36BKbU2XP3rmGbEzhunaxHe7Rh8L2PcJslHPglU+hPNuoQEka3Jf35FbM69pUAVct54LYeotA==", + "dependencies": { + "BlackFox.VsWhere": "1.1.0", + "FSharp.Core": "6.0.3", + "Fake.Core.Environment": "6.0.0", + "Fake.Core.Process": "6.0.0", + "Fake.Core.String": "6.0.0", + "Fake.Core.Trace": "6.0.0", + "Fake.IO.FileSystem": "6.0.0", + "MSBuild.StructuredLogger": "2.1.545" + } + }, + "Fake.Extensions.Release": { + "type": "Direct", + "requested": "[0.3.0, )", + "resolved": "0.3.0", + "contentHash": "gxOJ2uv1H4SNgo8e4hbIPICE3B0Ufh26I/Uf3r/JFk317Qq3jQimG3BzkAcEzAbOoeyDeEsQxKmoSrHJDB6wew==", + "dependencies": { + "FSharp.Core": "6.0.5-beta.22281.4", + "Fake.Api.GitHub": "5.23.0-alpha002", + "Fake.Core.ReleaseNotes": "5.23.0-alpha002", + "Fake.Core.Target": "5.23.0-alpha002", + "Fake.DotNet.AssemblyInfoFile": "5.23.0-alpha002", + "Fake.IO.FileSystem": "5.23.0-alpha002", + "Fake.IO.Zip": "5.23.0-alpha002", + "Fake.Tools.Git": "5.23.0-alpha002" + } + }, + "Fake.IO.FileSystem": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "NYAl2zgaBNjWjcbgqohbBUd7hnwjEUFn/PHujthbeQwD3IWGcOxyauB09wr5RUMIUaRtcIofEkbknrDWXLCyYg==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.String": "6.0.0", + "Fake.Core.Trace": "6.0.0" + } + }, + "Fake.JavaScript.Npm": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "P36ttjaOYbyMZN2y7SvkTrM3D6B+9sxVgtKzgBx9f4I3V5YX5aqDP2ewaHKNhr1YRXe0FKl+bwzSwEsRFPjSUA==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Process": "6.0.0", + "Fake.Testing.Common": "6.0.0" + } + }, + "Fake.Tools.Git": { + "type": "Direct", + "requested": "[6.0.0, )", + "resolved": "6.0.0", + "contentHash": "LmN3mk8r7eGYb3QWAk/ur1KPtjMuzWWdWWxrCLCujj+lyLQKybwA5ml0Vp3uUh7ZtJsmsC37VPmlwbCFOION1Q==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Environment": "6.0.0", + "Fake.Core.Process": "6.0.0", + "Fake.Core.SemVer": "6.0.0", + "Fake.Core.String": "6.0.0", + "Fake.Core.Trace": "6.0.0", + "Fake.IO.FileSystem": "6.0.0" + } + }, + "BlackFox.VsWhere": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "rqIFENkurSkGU0ecXG21Ez96pXDwIXUoE9f4DhEDRE4T3iYVIKMHPaQ0XUQH4Rgf9bqUHUW1TO87UR7xEndqNQ==", + "dependencies": { + "FSharp.Core": "4.2.3", + "Microsoft.Win32.Registry": "4.7.0" + } + }, + "Fake.Core.CommandLineParsing": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "vrGSNUhJ0X5UEd+h7YL4AsowcawW2bHWDL4h6Um4CoNTbM2t7vDvyBano0AF9AFTkkTsXUghoE+fmtvy6MRcVQ==", + "dependencies": { + "FParsec": "1.1.1", + "FSharp.Core": "6.0.3" + } + }, + "Fake.Core.Context": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "3KXiyowTESIDm8JCwDyh7GZeLHPROI1vFNmBwd6ymee8cKONf8oftpjZRJXEXfBHuMRyQMnEdvKnRF8OQACuEQ==", + "dependencies": { + "FSharp.Core": "6.0.3" + } + }, + "Fake.Core.Environment": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "fbarOWC6HMgrn5dVZddsHOSRayRME0T9PWuy5sAhun4SI8eQOBuYYPTalcceF8KJcEWbxy1OY9XU2LLcUfd/Ew==", + "dependencies": { + "FSharp.Core": "6.0.3" + } + }, + "Fake.Core.FakeVar": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/TLaCwN5++K2En+T7T9q0VZfoHeSue+fUNvUHeA/J0qhuBhY/8WJQs4wkO9fPbHjxVnP1e2nOaDiHBy7NfQOSg==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Context": "6.0.0" + } + }, + "Fake.Core.SemVer": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "G/z284JTpNcNwvnozM54wRHUdM4rBHaokba5r7d96qvGbAXh4RTFBqxPb9aEG4RsZL+nbGguDJHOkQeLDopBJw==", + "dependencies": { + "FSharp.Core": "6.0.3" + } + }, + "Fake.Core.String": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "tXE96HyXIk+Ggy5FH5Jf+2Vuyllna3/qZ2ox8DBZJLa7djXL8zDCMgWCYY4pKJLr3JJpkuZnVFf3oj3WIOJTmA==", + "dependencies": { + "FSharp.Core": "6.0.3" + } + }, + "Fake.Core.Tasks": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "iuCKA9cTtAcllMSpaB41Cm7YDyThTB0CXDyIg/I0aTFB73P/V7ki4ckXu7rgwT63hcDfwliKz5valyOLzN4Hsw==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Trace": "6.0.0" + } + }, + "Fake.Core.Trace": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/2nvydKHgxAyPQzd1AzuNTumhM8jAeQFwU/fA1S511B8EV0kjHSN693+Qdicb5Hiw2YTBjhmhONyvW89jD0N8A==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Environment": "6.0.0", + "Fake.Core.FakeVar": "6.0.0" + } + }, + "Fake.Core.Xml": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "CRu4Cyi87WLnBYIR5Ne3ryw0PG7mANOJVPUT3AxgUSLUhYcS1S7R66iHjnQmLZZvwW+dsUjPWKUiDyTB41gUmw==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.String": "6.0.0" + } + }, + "Fake.DotNet.AssemblyInfoFile": { + "type": "Transitive", + "resolved": "5.23.0-alpha002", + "contentHash": "4nvG+ADYkBJgzQv9y+L872+mg3e2LXYXKEuUU3BwjTQCzr7IItsXOCmaxmc8OcLQs6jAEEAuoI/GaBNNoQrWDQ==", + "dependencies": { + "FSharp.Core": "6.0.0", + "Fake.Core.Environment": "5.23.0-alpha002", + "Fake.Core.String": "5.23.0-alpha002", + "Fake.Core.Trace": "5.23.0-alpha002", + "Fake.IO.FileSystem": "5.23.0-alpha002" + } + }, + "Fake.DotNet.NuGet": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dBmXKz+WIyc2w7jln6d5nrs+fl5kHf3X8lT142F66z9wzB1QYJfaginMcwxTT/dxNS7iOQozbU8njO3Tz3TNWw==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Environment": "6.0.0", + "Fake.Core.Process": "6.0.0", + "Fake.Core.SemVer": "6.0.0", + "Fake.Core.String": "6.0.0", + "Fake.Core.Tasks": "6.0.0", + "Fake.Core.Trace": "6.0.0", + "Fake.Core.Xml": "6.0.0", + "Fake.IO.FileSystem": "6.0.0", + "Fake.Net.Http": "6.0.0", + "Newtonsoft.Json": "13.0.1", + "NuGet.Protocol": "6.0.0" + } + }, + "Fake.IO.Zip": { + "type": "Transitive", + "resolved": "5.23.0-alpha002", + "contentHash": "csUFauWhdQwjZ6+JsLz5sVFxgLMhLDSHk+BjoPErAgzmIY5P7xGy0ho9HCx10xIopCJsY+89HZLEhAxQrXRZww==", + "dependencies": { + "FSharp.Core": "6.0.0", + "Fake.Core.String": "5.23.0-alpha002", + "Fake.IO.FileSystem": "5.23.0-alpha002" + } + }, + "Fake.Net.Http": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "pHYHIiS784KvKgWJ44C1eINqvlYo+nN0C6GGoRwLt+6q063ghI/GqWIApLAPPEOF3ORRykcsrJGgVPWrlyQz/Q==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Trace": "6.0.0" + } + }, + "Fake.Testing.Common": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "5szMwCRqY1uw3oOzrLyQVWHfSKTluh8NQlUO8Mk0AXgwAqbe8ZUKcZDvfZRR9p17+pl4tyQXp9y1B8q9vMTYug==", + "dependencies": { + "FSharp.Core": "6.0.3", + "Fake.Core.Trace": "6.0.0" + } + }, + "FParsec": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "Wdjf/gCNLEwd+0nUCDh9jAIIcKGwfhRramySTnTcVVgNC6i4Vp5aJklUJJfvFkEZMYNZEDGcI8pCa36/TmwmSg==", + "dependencies": { + "FSharp.Core": "4.3.4" + } + }, + "FSharp.Control.Reactive": { + "type": "Transitive", + "resolved": "5.0.2", + "contentHash": "XyPAAe1xnKVF5HRMaRBdrXPkj7lPvx3sy2j0xb1cHZCv8Nrvyzb/EtbUZU/QowiRB5Oi2DTP/rChi3REUOeJRA==", + "dependencies": { + "FSharp.Core": "4.7.2", + "System.Reactive": "5.0.0" + } + }, + "Microsoft.Build": { + "type": "Transitive", + "resolved": "16.10.0", + "contentHash": "ugn2Mk+4Cw8l5MOqNW6xmj2NR/jMWsNdTdyFoOkkGqxR2zB5tJINlRzOydCJNL0HN7E1Y6ErKwdiT+Bn3tpbDQ==", + "dependencies": { + "Microsoft.Build.Framework": "16.10.0", + "Microsoft.NET.StringTools": "1.0.0", + "Microsoft.Win32.Registry": "4.3.0", + "System.Collections.Immutable": "5.0.0", + "System.Configuration.ConfigurationManager": "4.7.0", + "System.Reflection.Metadata": "1.6.0", + "System.Security.Principal.Windows": "4.7.0", + "System.Text.Encoding.CodePages": "4.0.1", + "System.Text.Json": "4.7.0", + "System.Threading.Tasks.Dataflow": "4.9.0" + } + }, + "Microsoft.Build.Framework": { + "type": "Transitive", + "resolved": "16.10.0", + "contentHash": "uD2GUw3AYlFSpU42c/80DouuJL6w1Kb06q4FEjQhW/9wjhBwukgx13T5MPIpSvQ8ssahKINanHfMUL89EVQHgQ==", + "dependencies": { + "System.Security.Permissions": "4.7.0" + } + }, + "Microsoft.Build.Tasks.Core": { + "type": "Transitive", + "resolved": "16.10.0", + "contentHash": "kd/QrucJV10+lPOg/AwXmPo2My/XdLnTS7pE0Sw7YI0SZpmKkYpynWbt2QUbgna9lh2t3McXBP1Z/ricAV3gBw==", + "dependencies": { + "Microsoft.Build.Framework": "16.10.0", + "Microsoft.Build.Utilities.Core": "16.10.0", + "Microsoft.NET.StringTools": "1.0.0", + "Microsoft.Win32.Registry": "4.3.0", + "System.CodeDom": "4.4.0", + "System.Collections.Immutable": "5.0.0", + "System.Reflection.Metadata": "1.6.0", + "System.Resources.Extensions": "4.6.0", + "System.Security.Cryptography.Pkcs": "4.7.0", + "System.Security.Cryptography.Xml": "4.7.0", + "System.Security.Permissions": "4.7.0", + "System.Threading.Tasks.Dataflow": "4.9.0" + } + }, + "Microsoft.Build.Utilities.Core": { + "type": "Transitive", + "resolved": "16.10.0", + "contentHash": "R8eATgdaGCfdepd67LMe1qhJz6iQOTuI9gVoOqXrHwhc77sBDqG0XD9zKvrgOqfS6NJ03KKTAhbbXnLgD5fKCA==", + "dependencies": { + "Microsoft.Build.Framework": "16.10.0", + "Microsoft.NET.StringTools": "1.0.0", + "Microsoft.Win32.Registry": "4.3.0", + "System.Collections.Immutable": "5.0.0", + "System.Configuration.ConfigurationManager": "4.7.0", + "System.Security.Permissions": "4.7.0", + "System.Text.Encoding.CodePages": "4.0.1" + } + }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZYVcoDM0LnSyT5nWoRGfShYdOecCw2sOXWwP6j1Z0u48Xq3+BVvZ+EiPCX9/8Gz439giW+O1H1kWF9Eb/w6rVg==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "3.1.0", + "contentHash": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==" + }, + "Microsoft.NETCore.Targets": { + "type": "Transitive", + "resolved": "1.0.1", + "contentHash": "rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==" + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==", + "dependencies": { + "System.Security.AccessControl": "4.7.0", + "System.Security.Principal.Windows": "4.7.0" + } + }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "mtVirZr++rq+XCDITMUdnETD59XoeMxSpLRIII7JRI6Yj0LEDiO1pPn0ktlnIj12Ix8bfvQqQDMMIF9wC98oCA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "3.1.0" + } + }, + "Mono.Posix.NETStandard": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "vSN/L1uaVwKsiLa95bYu2SGkF0iY3xMblTfxc8alSziPuVfJpj3geVqHGAA75J7cZkMuKpFVikz82Lo6y6LLdA==" + }, + "MSBuild.StructuredLogger": { + "type": "Transitive", + "resolved": "2.1.545", + "contentHash": "SnGzK4V0IZbaVzZCNgZZWqMo/QVcmyeFg5oD/Lf2Rf2Blu6XzmEphJ94agSUgYq2dHj33rYwtbOqkjwcQCNzlA==", + "dependencies": { + "Microsoft.Build": "16.10.0", + "Microsoft.Build.Framework": "16.10.0", + "Microsoft.Build.Tasks.Core": "16.10.0", + "Microsoft.Build.Utilities.Core": "16.10.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "NuGet.Common": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "NYK9JJd60jpv+VAGuCRnnDftF9osOCCgpkyG48cDK3eTGF0P19ttROJMVULQvJw+lUp31lk9X3rDEMqADj5n3w==", + "dependencies": { + "NuGet.Frameworks": "6.0.0" + } + }, + "NuGet.Configuration": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "STSvdRMIC6bE5TudnxbLaiPa4zwEWSFtUBpNi23vvhhz/QE6OxvcILvRcZHblOpQj0AU8d5FKAReXFXva6cckw==", + "dependencies": { + "NuGet.Common": "6.0.0", + "System.Security.Cryptography.ProtectedData": "4.4.0" + } + }, + "NuGet.Frameworks": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "pEWTGa8sGEbSBE7VtKBlWZafG5tWNCGPzyNL91zneWoxZubNEWK1MN5QPN3fk+cV5CaySePT5reYjCAqELn5DA==" + }, + "NuGet.Packaging": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "id8iDW58ngtqPZL3y6X6PtAmTHDZ9ydAoeHwJ+A/PblrZ2HHR3mFT41MQU79Hsd8AQMfutEH08z6VpoubeOb4w==", + "dependencies": { + "Newtonsoft.Json": "13.0.1", + "NuGet.Configuration": "6.0.0", + "NuGet.Versioning": "6.0.0", + "System.Security.Cryptography.Cng": "5.0.0", + "System.Security.Cryptography.Pkcs": "5.0.0" + } + }, + "NuGet.Protocol": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "W8SShKZ3bMvO2OzwPQj9BfdXnwgQTivs8lKtRIBcrgqKhY/ylNG0JLmGz6BTYDqe89+USnAot6H0/s1ZGC0eTw==", + "dependencies": { + "NuGet.Packaging": "6.0.0" + } + }, + "NuGet.Versioning": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "XA59hPSbKdExu28TbONlD/BwOkKzjo4u2mkEJIP4wnDz9P65FdM34cVA+2/jztKrKyFmX8jpQW++xOp99mufjw==" + }, + "Octokit": { + "type": "Transitive", + "resolved": "0.50.0", + "contentHash": "J5vqespSvjxIAAtjG1Tc6ghBqyfRgDJtKnk/ifi4N0hD/f3JbPwyEDRT+Eelu/bS4C4M6mu5gt1WJqar+fByzg==" + }, + "System.CodeDom": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==" + }, + "System.Collections": { + "type": "Transitive", + "resolved": "4.0.11", + "contentHash": "YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "/anOTeSZCNNI2zDilogWrZ8pNqCmYbzGNexUnNhjW8k0sHqEZ2nHJBp147jBV3hGYswu5lINpNg1vxR7bnqvVA==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "4.7.0", + "System.Security.Permissions": "4.7.0" + } + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "v+XbyYHaZjDfn0ENmJEV1VYLgGgCTx1gnfOBcppowbpOAriglYgGCvFCPr2EEZyBvXlpxbEsTwkOlInl107ahA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "3.1.0", + "Microsoft.Win32.SystemEvents": "4.7.0" + } + }, + "System.Formats.Asn1": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "MTvUIktmemNB+El0Fgw9egyqT9AYSIk6DTJeoDSpc3GIHxHCMo8COqkWT1mptX5tZ1SlQ6HJZ0OsSvMth1c12w==" + }, + "System.Globalization": { + "type": "Transitive", + "resolved": "4.0.11", + "contentHash": "B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==" + }, + "System.Reflection": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Reflection.Primitives": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.Extensions": { + "type": "Transitive", + "resolved": "4.6.0", + "contentHash": "6aVCk8oTFZNT3Tx1jjiPi6+aipiJ3qMZYttAREKTRJidP50YvNeOn4PXrqzfA5qC23fLReq2JYp+nJwzj62HGw==" + }, + "System.Resources.ResourceManager": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Runtime.Extensions": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Handles": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "nCJvEKguXEvk2ymk1gqj625vVnlK3/xdGzx0vOKicQkoquaTBJTP13AIYkocSUwHCLNBwUbXTqTWGDxBTWpt7g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.InteropServices": { + "type": "Transitive", + "resolved": "4.1.0", + "contentHash": "16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "3.1.0", + "System.Security.Principal.Windows": "4.7.0" + } + }, + "System.Security.Cryptography.Cng": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==", + "dependencies": { + "System.Formats.Asn1": "5.0.0" + } + }, + "System.Security.Cryptography.Pkcs": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "9TPLGjBCGKmNvG8pjwPeuYy0SMVmGZRwlTZvyPHDbYv/DRkoeumJdfumaaDNQzVGMEmbWtg07zUpSW9q70IlDQ==", + "dependencies": { + "System.Formats.Asn1": "5.0.0", + "System.Security.Cryptography.Cng": "5.0.0" + } + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "ehYW0m9ptxpGWvE4zgqongBVWpSDU/JCFD4K7krxkQwSz/sFQjEXCUqpvencjy6DYDbn7Ig09R8GFffu8TtneQ==" + }, + "System.Security.Cryptography.Xml": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "B6pAyxMvXGbZemb+ER877KSr6OKis+qAdxhhKKK36I6sgj2js8mbcEVviZEHYV8XRTWjbKsAq8Z/zoaegA30dA==", + "dependencies": { + "System.Security.Cryptography.Pkcs": "4.7.0", + "System.Security.Permissions": "4.7.0" + } + }, + "System.Security.Permissions": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "dkOV6YYVBnYRa15/yv004eCGRBVADXw8qRbbNiCn/XpdJSUXkkUeIvdvFHkvnko4CdKMqG8yRHC4ox83LSlMsQ==", + "dependencies": { + "System.Security.AccessControl": "4.7.0", + "System.Windows.Extensions": "4.7.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==" + }, + "System.Text.Encoding": { + "type": "Transitive", + "resolved": "4.0.11", + "contentHash": "U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "4.0.1", + "contentHash": "h4z6rrA/hxWf4655D18IIZ0eaLRa3tQC/j+e26W+VinIHY0l07iEXaAvO0YSYq3MvCjMYy8Zs5AdC1sxNQOB7Q==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Handles": "4.0.1", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading": "4.0.11" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "IPq/x/d5nAcnD3vIyM3AbPOaTgcqrh0AqPSx7U53UFu3M6k1TH1u/eXc9/h4jm/3mpP1WRUpevlPY4PACd7AWw==" + }, + "System.Threading": { + "type": "Transitive", + "resolved": "4.0.11", + "contentHash": "N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks": { + "type": "Transitive", + "resolved": "4.0.11", + "contentHash": "k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.1", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Threading.Tasks.Dataflow": { + "type": "Transitive", + "resolved": "4.9.0", + "contentHash": "dTS+3D/GtG2/Pvc3E5YzVvAa7aQJgLDlZDIzukMOJjYudVOQOUXEU68y6Zi3Nn/jqIeB5kOCwrGbQFAKHVzXEQ==" + }, + "System.Windows.Extensions": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "CeWTdRNfRaSh0pm2gDTJFwVaXfTq6Xwv/sA887iwPTneW7oMtMlpvDIO+U60+3GWTB7Aom6oQwv5VZVUhQRdPQ==", + "dependencies": { + "System.Drawing.Common": "4.7.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "6.0.5-beta.22305.1", + "contentHash": "kXgCvQ8Ztw4y/+kFBgLgdI6NiDDMRylib734ku0mSz+lwgCzOlYK3vue7W+pWQMzKrPZAm5sxx8muRhY74MdcA==" + } + } + } +} \ No newline at end of file diff --git a/src/ARCtrl/ARCtrl.Javascript.fsproj b/src/ARCtrl/ARCtrl.Javascript.fsproj new file mode 100644 index 00000000..922be4fc --- /dev/null +++ b/src/ARCtrl/ARCtrl.Javascript.fsproj @@ -0,0 +1,90 @@ + + + + netstandard2.0 + true + FABLE_COMPILER_JAVASCRIPT;FABLE_COMPILER;FABLE_COMPILER_TYPESCRIPT + + + nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Oliver Maus + Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems. + MIT + logo.png + ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata + https://github.com/nfdi4plants/ARCtrl + https://github.com/nfdi4plants/ARCtrl + git + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ARCtrl/ARCtrl.Python.fsproj b/src/ARCtrl/ARCtrl.Python.fsproj new file mode 100644 index 00000000..49258f69 --- /dev/null +++ b/src/ARCtrl/ARCtrl.Python.fsproj @@ -0,0 +1,85 @@ + + + + netstandard2.0 + true + FABLE_COMPILER_PYTHON;FABLE_COMPILER + + + nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Oliver Maus + Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems. + MIT + logo.png + ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata + https://github.com/nfdi4plants/ARCtrl + https://github.com/nfdi4plants/ARCtrl + git + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ARCtrl/ARCtrl.fsproj b/src/ARCtrl/ARCtrl.fsproj index f48195cb..24ea64e9 100644 --- a/src/ARCtrl/ARCtrl.fsproj +++ b/src/ARCtrl/ARCtrl.fsproj @@ -14,9 +14,46 @@ https://github.com/nfdi4plants/ARCtrl git - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25,8 +62,8 @@ - - + + @@ -36,18 +73,7 @@ - + - - - - - - - - - - - \ No newline at end of file diff --git a/src/ARCtrl/Json/ARC.fs b/src/ARCtrl/Json/ARC.fs new file mode 100644 index 00000000..a129ec8c --- /dev/null +++ b/src/ARCtrl/Json/ARC.fs @@ -0,0 +1,30 @@ +namespace ARCtrl.Json + +open Thoth.Json.Core + +open ARCtrl +open ARCtrl.Helper + +module ARC = + + /// Functions for serializing and deserializing ARC objects to RO-Crate Root Data Entity + /// + /// See https://www.researchobject.org/ro-crate/1.1/root-data-entity.html for more information + module ROCrate = + + let encoder (isa : ArcInvestigation) = + [ + Encode.tryInclude "@type" Encode.string (Some "CreativeWork") + Encode.tryInclude "@id" Encode.string (Some "ro-crate-metadata.json") + Encode.tryInclude "about" Investigation.ROCrate.encoder (Some isa) + "conformsTo", ROCrateContext.ROCrate.conformsTo_jsonvalue |> Some + "@context", ROCrateContext.ROCrate.context_jsonvalue |> Some + ] + |> Encode.choose + |> Encode.object + + let decoder : Decoder = + Decode.object (fun get -> + let isa = get.Optional.Field "about" Investigation.ROCrate.decoder + isa + ) \ No newline at end of file diff --git a/src/ARCtrl/Json/Assay.fs b/src/ARCtrl/Json/Assay.fs new file mode 100644 index 00000000..fe291ec6 --- /dev/null +++ b/src/ARCtrl/Json/Assay.fs @@ -0,0 +1,59 @@ +namespace ARCtrl.Json + +open ARCtrl +open ARCtrl.Helper + +[] +module AssayExtensions = + + open System.Collections.Generic + + type ArcAssay with + + static member fromJsonString (s:string) = + Decode.fromJsonString Assay.decoder s + + static member toJsonString(?spaces) = + fun (obj:ArcAssay) -> + Assay.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + ArcAssay.toJsonString(?spaces=spaces) this + + static member fromCompressedJsonString (s: string) = + try Decode.fromJsonString (Compression.decode Assay.decoderCompressed) s with + | e -> failwithf "Error. Unable to parse json string to ArcAssay: %s" e.Message + + static member toCompressedJsonString(?spaces) = + fun (obj:ArcAssay) -> + let spaces = defaultArg spaces 0 + Encode.toJsonString spaces (Compression.encode Assay.encoderCompressed obj) + + member this.ToCompressedJsonString(?spaces) = + ArcAssay.toCompressedJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Assay.ROCrate.decoder s + + /// exports in json-ld format + static member toROCrateJsonString(?studyName, ?spaces) = + fun (obj: ArcAssay) -> + Assay.ROCrate.encoder studyName obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?studyName, ?spaces) = + ArcAssay.toROCrateJsonString(?studyName=studyName, ?spaces=spaces) this + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (obj:ArcAssay) -> + Assay.ISAJson.encoder None idMap obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Assay.ISAJson.decoder s + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + ArcAssay.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Comment.fs b/src/ARCtrl/Json/Comment.fs new file mode 100644 index 00000000..dfd83f1d --- /dev/null +++ b/src/ARCtrl/Json/Comment.fs @@ -0,0 +1,47 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module CommentExtensions = + type Comment with + + static member fromJsonString (s:string) = + Decode.fromJsonString Comment.decoder s + + static member toJsonString(?spaces) = + fun (c:Comment) -> + Comment.encoder c + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toJsonString(?spaces) = + Comment.toJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Comment.ROCrate.decoder s + + /// exports in json-ld format + static member toROCrateJsonString(?spaces) = + fun (c:Comment) -> + Comment.ROCrate.encoder c + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toROCrateJsonString(?spaces) = + Comment.toROCrateJsonString(?spaces=spaces) this + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Comment.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (c:Comment) -> + Comment.ISAJson.encoder None c + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toISAJsonString(?spaces) = + Comment.toISAJsonString(?spaces=spaces) this + //let fromFile (path : string) = + // File.ReadAllText path + // |> fromString + + //let toFile (path : string) (c:Comment) = + // File.WriteAllText(path,toString c) \ No newline at end of file diff --git a/src/ARCtrl/Json/Data.fs b/src/ARCtrl/Json/Data.fs new file mode 100644 index 00000000..b28f0419 --- /dev/null +++ b/src/ARCtrl/Json/Data.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module DataExtensions = + + type Data with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Data.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = useIDReferencing |> Option.defaultValue false + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:Data) -> + Data.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toISAJsonString(?spaces, ?useIDReferencing) = + Data.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Data.ROCrate.decoder s + + static member toROCrateJsonString(?spaces) = + fun (f:Data) -> + Data.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toROCrateJsonString(?spaces) = + Data.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/DataFile.fs b/src/ARCtrl/Json/DataFile.fs new file mode 100644 index 00000000..aa95c087 --- /dev/null +++ b/src/ARCtrl/Json/DataFile.fs @@ -0,0 +1,30 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module DataFileExtensions = + + type DataFile with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString DataFile.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (f:DataFile) -> + DataFile.ISAJson.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces) = + DataFile.toISAJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString DataFile.ROCrate.decoder s + + static member toROCrateJsonString(?spaces) = + fun (f:DataFile) -> + DataFile.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + DataFile.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/DataMap/DataMap.fs b/src/ARCtrl/Json/DataMap/DataMap.fs new file mode 100644 index 00000000..85ce868a --- /dev/null +++ b/src/ARCtrl/Json/DataMap/DataMap.fs @@ -0,0 +1,38 @@ +namespace ARCtrl.Json + +open Thoth.Json.Core + +open ARCtrl +open ARCtrl.Process +open ARCtrl.Helper +open Conversion + +open CellTable +open OATable +open StringTable + + +module DataMap = + + let encoder (dm: DataMap) = + Encode.object [ + "dataContexts", dm.DataContexts |> Seq.map DataContext.encoder |> Encode.seq + ] + + let decoder : Decoder = + Decode.object (fun get -> + let dataContexts = get.Required.Field "dataContexts" (Decode.resizeArray DataContext.decoder) + DataMap(dataContexts) + ) + + + let encoderCompressed (stringTable : StringTableMap) (oaTable : OATableMap) (cellTable : CellTableMap) (dm: DataMap) = + encoder dm + + let decoderCompressed (stringTable : StringTableArray) (oaTable : OATableArray) (cellTable : CellTableArray) : Decoder = + decoder + //Decode.map (fun (t : ArcTable) -> DataMap(t.Headers,t.Values)) (ArcTable.decoderCompressed stringTable oaTable cellTable) + + //module ROCrate = + + // let encodeVariableM \ No newline at end of file diff --git a/src/ARCtrl/Json/Decode.fs b/src/ARCtrl/Json/Decode.fs new file mode 100644 index 00000000..14a99840 --- /dev/null +++ b/src/ARCtrl/Json/Decode.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open Thoth.Json.Core + +open ARCtrl +open Fable.Core + +module Decode = + + let helpers = + #if FABLE_COMPILER_PYTHON + Thoth.Json.Python.Decode.helpers + #endif + #if FABLE_COMPILER_JAVASCRIPT + Thoth.Json.JavaScript.Decode.helpers + #endif + #if !FABLE_COMPILER + Thoth.Json.Newtonsoft.Decode.helpers + #endif + + let inline fromJsonString (decoder : Decoder<'a>) (s : string) : 'a = + #if FABLE_COMPILER_PYTHON + match Thoth.Json.Python.Decode.fromString decoder s with + #endif + #if FABLE_COMPILER_JAVASCRIPT + match Thoth.Json.JavaScript.Decode.fromString decoder s with + #endif + #if !FABLE_COMPILER + match Thoth.Json.Newtonsoft.Decode.fromString decoder s with + #endif + | Ok a -> a + | Error e -> failwith (sprintf "Error decoding string: %O" e) \ No newline at end of file diff --git a/src/ARCtrl/Json/Encode.fs b/src/ARCtrl/Json/Encode.fs new file mode 100644 index 00000000..4a4f4f05 --- /dev/null +++ b/src/ARCtrl/Json/Encode.fs @@ -0,0 +1,26 @@ +namespace ARCtrl.Json + +open Thoth.Json.Core + +open Fable.Core + +//#if FABLE_COMPILER_PYTHON +//open Fable.Core.PyInterop +//#endif +//#if FABLE_COMPILER_JAVASCRIPT +//open Fable.Core.JsInterop +//#endif + +[] +module Encode = + + let inline toJsonString spaces (value : IEncodable) = + #if FABLE_COMPILER_PYTHON + Thoth.Json.Python.Encode.toString spaces value + #endif + #if FABLE_COMPILER_JAVASCRIPT + Thoth.Json.JavaScript.Encode.toString spaces value + #endif + #if !FABLE_COMPILER + Thoth.Json.Newtonsoft.Encode.toString spaces value + #endif diff --git a/src/ARCtrl/Json/Investigation.fs b/src/ARCtrl/Json/Investigation.fs new file mode 100644 index 00000000..47928203 --- /dev/null +++ b/src/ARCtrl/Json/Investigation.fs @@ -0,0 +1,56 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module InvestigationExtensions = + + type ArcInvestigation with + + static member fromJsonString (s:string) = + Decode.fromJsonString Investigation.decoder s + + static member toJsonString(?spaces) = + fun (obj:ArcInvestigation) -> + Investigation.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + ArcInvestigation.toJsonString(?spaces=spaces) this + + static member fromCompressedJsonString (s: string) = + try Decode.fromJsonString (Compression.decode Investigation.decoderCompressed) s with + | e -> failwithf "Error. Unable to parse json string to ArcStudy: %s" e.Message + + static member toCompressedJsonString(?spaces) = + fun (obj:ArcInvestigation) -> + let spaces = defaultArg spaces 0 + Encode.toJsonString spaces (Compression.encode Investigation.encoderCompressed obj) + + member this.ToCompressedJsonString(?spaces) = + ArcInvestigation.toCompressedJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Investigation.ROCrate.decoder s + + /// exports in json-ld format + static member toROCrateJsonString(?spaces) = + fun (obj:ArcInvestigation) -> + Investigation.ROCrate.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + ArcInvestigation.toROCrateJsonString(?spaces=spaces) this + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (obj:ArcInvestigation) -> + Investigation.ISAJson.encoder idMap obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Investigation.ISAJson.decoder s + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + ArcInvestigation.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/ARCtrl/Json/OntologyAnnotation.fs b/src/ARCtrl/Json/OntologyAnnotation.fs new file mode 100644 index 00000000..6b7667f7 --- /dev/null +++ b/src/ARCtrl/Json/OntologyAnnotation.fs @@ -0,0 +1,41 @@ +namespace ARCtrl.Json +open ARCtrl + +[] +module OntologyAnnotationExtensions = + + type OntologyAnnotation with + + static member fromJsonString (s:string) = + Decode.fromJsonString OntologyAnnotation.decoder s + + static member toJsonString(?spaces) = + fun (obj:OntologyAnnotation) -> + OntologyAnnotation.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + OntologyAnnotation.toJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString OntologyAnnotation.ROCrate.decoderDefinedTerm s + + /// exports in json-ld format + static member toROCrateJsonString(?spaces) = + fun (obj:OntologyAnnotation) -> + OntologyAnnotation.ROCrate.encoderDefinedTerm obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + OntologyAnnotation.toROCrateJsonString(?spaces=spaces) this + + static member fromISAJsonString (s:string) = + Decode.fromJsonString OntologyAnnotation.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (obj:OntologyAnnotation) -> + OntologyAnnotation.ISAJson.encoder None obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces) = + OntologyAnnotation.toISAJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/OntologySourceReference.fs b/src/ARCtrl/Json/OntologySourceReference.fs new file mode 100644 index 00000000..f5f95671 --- /dev/null +++ b/src/ARCtrl/Json/OntologySourceReference.fs @@ -0,0 +1,42 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module OntologySourceReferenceExtensions = + + type OntologySourceReference with + + static member fromJsonString (s:string) = + Decode.fromJsonString OntologySourceReference.decoder s + + static member toJsonString(?spaces) = + fun (obj:OntologySourceReference) -> + OntologySourceReference.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + OntologySourceReference.toJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString OntologySourceReference.ROCrate.decoder s + + /// exports in json-ld format + static member toROCrateJsonString(?spaces) = + fun (obj:OntologySourceReference) -> + OntologySourceReference.ROCrate.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + OntologySourceReference.toROCrateJsonString(?spaces=spaces) this + + static member fromISAJsonString (s:string) = + Decode.fromJsonString OntologySourceReference.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (obj:OntologySourceReference) -> + OntologySourceReference.ISAJson.encoder None obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces) = + OntologySourceReference.toISAJsonString(?spaces=spaces) this diff --git a/src/ARCtrl/Json/Person.fs b/src/ARCtrl/Json/Person.fs new file mode 100644 index 00000000..dc3f6b0f --- /dev/null +++ b/src/ARCtrl/Json/Person.fs @@ -0,0 +1,44 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module PersonExtensions = + + type Person with + + static member fromJsonString (s:string) = + Decode.fromJsonString Person.decoder s + + static member toJsonString(?spaces) = + fun (obj:Person) -> + Person.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toJsonString(?spaces) = + Person.toJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Person.ROCrate.decoder s + + /// exports in json-ld format + static member toROCrateJsonString(?spaces) = + fun (obj:Person) -> + Person.ROCrate.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toROCrateJsonString(?spaces) = + Person.toROCrateJsonString(?spaces=spaces) this + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Person.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (obj:Person) -> + Person.ISAJson.encoder idMap obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toISAJsonString(?spaces, ?useIDReferencing) = + Person.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/Component.fs b/src/ARCtrl/Json/Process/Component.fs new file mode 100644 index 00000000..a7ffe62f --- /dev/null +++ b/src/ARCtrl/Json/Process/Component.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module ComponentExtensions = + + type Component with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Component.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:Component) -> + Component.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toISAJsonString(?spaces) = + Component.toISAJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Component.ROCrate.decoder s + + static member toROCrateJsonString(?spaces) = + fun (f:Component) -> + Component.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toROCrateJsonString(?spaces) = + Component.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/Factor.fs b/src/ARCtrl/Json/Process/Factor.fs new file mode 100644 index 00000000..992c778c --- /dev/null +++ b/src/ARCtrl/Json/Process/Factor.fs @@ -0,0 +1,19 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module FactorExtensions = + + type Factor with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Factor.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (f:Factor) -> + Factor.ISAJson.encoder None f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces) = + Factor.toISAJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/FactorValue.fs b/src/ARCtrl/Json/Process/FactorValue.fs new file mode 100644 index 00000000..64060952 --- /dev/null +++ b/src/ARCtrl/Json/Process/FactorValue.fs @@ -0,0 +1,21 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module FactorValueExtensions = + + type FactorValue with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString FactorValue.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:FactorValue) -> + FactorValue.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + FactorValue.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/Material.fs b/src/ARCtrl/Json/Process/Material.fs new file mode 100644 index 00000000..708014e5 --- /dev/null +++ b/src/ARCtrl/Json/Process/Material.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module MaterialExtensions = + + type Material with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Material.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:Material) -> + Material.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + Material.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Material.ROCrate.decoder s + + static member toROCrateJsonString(?spaces) = + fun (f:Material) -> + Material.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + Material.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/MaterialAttribute.fs b/src/ARCtrl/Json/Process/MaterialAttribute.fs new file mode 100644 index 00000000..564f9f5e --- /dev/null +++ b/src/ARCtrl/Json/Process/MaterialAttribute.fs @@ -0,0 +1,23 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + + +[] +module MaterialAttributeExtensions = + + type MaterialAttribute with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString MaterialAttribute.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + + fun (v:MaterialAttribute) -> + MaterialAttribute.ISAJson.encoder idMap v + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces, ?useIDReferencing) = + MaterialAttribute.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing ) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/MaterialAttributeValue.fs b/src/ARCtrl/Json/Process/MaterialAttributeValue.fs new file mode 100644 index 00000000..a7e6e795 --- /dev/null +++ b/src/ARCtrl/Json/Process/MaterialAttributeValue.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module MaterialAttributeValueExtensions = + + type MaterialAttributeValue with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString MaterialAttributeValue.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:MaterialAttributeValue) -> + MaterialAttributeValue.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + MaterialAttributeValue.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString MaterialAttributeValue.ROCrate.decoder s + + static member toROCrateJsonString(?spaces) = + fun (f:MaterialAttributeValue) -> + MaterialAttributeValue.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + MaterialAttributeValue.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/MaterialType.fs b/src/ARCtrl/Json/Process/MaterialType.fs new file mode 100644 index 00000000..e0f23f0a --- /dev/null +++ b/src/ARCtrl/Json/Process/MaterialType.fs @@ -0,0 +1,20 @@ +namespace ARCtrl.Json + +open Thoth.Json.Core +open ARCtrl.Process + +[] +module MaterialTypeExtensions = + + type MaterialType with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString MaterialType.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (f:MaterialType) -> + MaterialType.ISAJson.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces) = + MaterialType.toISAJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/Process.fs b/src/ARCtrl/Json/Process/Process.fs new file mode 100644 index 00000000..f33dce03 --- /dev/null +++ b/src/ARCtrl/Json/Process/Process.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module ProcessExtensions = + + type Process with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Process.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:Process) -> + Process.ISAJson.encoder None None idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces,?useIDReferencing) = + Process.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateString (s:string) = + Decode.fromJsonString Process.ROCrate.decoder s + + static member toROCrateString(?studyName:string,?assayName:string,?spaces) = + fun (f:Process) -> + Process.ROCrate.encoder studyName assayName f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateString(?studyName:string,?assayName:string,?spaces) = + Process.toROCrateString(?studyName=studyName,?assayName=assayName,?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/ProcessInput.fs b/src/ARCtrl/Json/Process/ProcessInput.fs new file mode 100644 index 00000000..eb200797 --- /dev/null +++ b/src/ARCtrl/Json/Process/ProcessInput.fs @@ -0,0 +1,21 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module ProcessInputExtensions = + + type ProcessInput with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString ProcessInput.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:ProcessInput) -> + ProcessInput.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + ProcessInput.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/ProcessOutput.fs b/src/ARCtrl/Json/Process/ProcessOutput.fs new file mode 100644 index 00000000..b1d4c252 --- /dev/null +++ b/src/ARCtrl/Json/Process/ProcessOutput.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module ProcessOutputExtensions = + + type ProcessOutput with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString ProcessOutput.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = defaultArg useIDReferencing false + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:ProcessOutput) -> + ProcessOutput.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toISAJsonString(?spaces, ?useIDReferencing) = + ProcessOutput.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString ProcessOutput.ROCrate.decoder s + + static member toROCrateJsonString(?spaces) = + fun (f:ProcessOutput) -> + ProcessOutput.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.toROCrateJsonString(?spaces) = + ProcessOutput.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/ProcessParameterValue.fs b/src/ARCtrl/Json/Process/ProcessParameterValue.fs new file mode 100644 index 00000000..e0e69f44 --- /dev/null +++ b/src/ARCtrl/Json/Process/ProcessParameterValue.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module ProcessParameterValueExtensions = + + type ProcessParameterValue with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString ProcessParameterValue.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:ProcessParameterValue) -> + ProcessParameterValue.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + ProcessParameterValue.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString ProcessParameterValue.ROCrate.decoder s + + static member toROCrateJsonString(?spaces) = + fun (f:ProcessParameterValue) -> + ProcessParameterValue.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + ProcessParameterValue.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/ProcessSequence.fs b/src/ARCtrl/Json/Process/ProcessSequence.fs similarity index 100% rename from src/Json/Process/ProcessSequence.fs rename to src/ARCtrl/Json/Process/ProcessSequence.fs diff --git a/src/ARCtrl/Json/Process/Protocol.fs b/src/ARCtrl/Json/Process/Protocol.fs new file mode 100644 index 00000000..d2a00ead --- /dev/null +++ b/src/ARCtrl/Json/Process/Protocol.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module ProtocolExtensions = + + type Protocol with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Protocol.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:Protocol) -> + Protocol.ISAJson.encoder None None None idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces) = + Protocol.toISAJsonString(?spaces=spaces) this + + static member fromROCrateString (s:string) = + Decode.fromJsonString (Protocol.ROCrate.decoder) s + + static member toROCrateString (?studyName:string,?assayName:string,?processName:string,?spaces) = + fun (f:Protocol) -> + Protocol.ROCrate.encoder studyName assayName processName f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateString (?studyName:string,?assayName:string,?processName:string,?spaces) = + Protocol.toROCrateString (?studyName=studyName,?assayName=assayName,?processName=processName,?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/ProtocolParameter.fs b/src/ARCtrl/Json/Process/ProtocolParameter.fs new file mode 100644 index 00000000..ad1ca34d --- /dev/null +++ b/src/ARCtrl/Json/Process/ProtocolParameter.fs @@ -0,0 +1,19 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module ProtocolParameterExtensions = + + type ProtocolParameter with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString ProtocolParameter.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (v:ProtocolParameter) -> + ProtocolParameter.ISAJson.encoder None v + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces) = + ProtocolParameter.toISAJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/Sample.fs b/src/ARCtrl/Json/Process/Sample.fs new file mode 100644 index 00000000..40d6107a --- /dev/null +++ b/src/ARCtrl/Json/Process/Sample.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module SampleExtensions = + + type Sample with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Sample.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = useIDReferencing |> Option.defaultValue false + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:Sample) -> + Sample.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + Sample.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateString (s:string) = + Decode.fromJsonString Sample.ROCrate.decoder s + + static member toROCrateString(?spaces) = + fun (f:Sample) -> + Sample.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateString(?spaces) = + Sample.toROCrateString(?spaces=spaces) this diff --git a/src/ARCtrl/Json/Process/Source.fs b/src/ARCtrl/Json/Process/Source.fs new file mode 100644 index 00000000..98880922 --- /dev/null +++ b/src/ARCtrl/Json/Process/Source.fs @@ -0,0 +1,32 @@ +namespace ARCtrl.Json + +open ARCtrl.Process + +[] +module SourceExtensions = + + type Source with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Source.ISAJson.decoder s + + static member toISAJsonString(?spaces,?useIDReferencing) = + let useIDReferencing = useIDReferencing |> Option.defaultValue false + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (f:Source) -> + Source.ISAJson.encoder idMap f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + Source.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this + + static member fromROCrateString (s:string) = + Decode.fromJsonString Source.ROCrate.decoder s + + static member toROCrateString(?spaces) = + fun (f:Source) -> + Source.ROCrate.encoder f + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateString(?spaces) = + Source.toROCrateString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/StudyMaterials.fs b/src/ARCtrl/Json/Process/StudyMaterials.fs new file mode 100644 index 00000000..e06d0ebf --- /dev/null +++ b/src/ARCtrl/Json/Process/StudyMaterials.fs @@ -0,0 +1,35 @@ +namespace ARCtrl.Json + +open Thoth.Json.Core + +open ARCtrl +open ARCtrl.Process +open System.IO + +module StudyMaterials = + + module ISAJson = + let encoder idMap (ps : Process list) = + let source = ProcessSequence.getSources ps + let samples = ProcessSequence.getSamples ps + let materials = ProcessSequence.getMaterials ps + [ + Encode.tryIncludeList "sources" (Source.ISAJson.encoder idMap) source + Encode.tryIncludeList "samples" (Sample.ISAJson.encoder idMap) samples + Encode.tryIncludeList "otherMaterials" (Material.ISAJson.encoder idMap) materials + ] + |> Encode.choose + |> Encode.object + + // No decoder, as this is a write-only operation + + //let allowedFields = ["sources";"samples";"otherMaterials"] + + //let decoder (options : ConverterOptions) : Decoder = + // GDecode.object allowedFields (fun get -> + // { + // Sources = get.Optional.Field "sources" (Decode.list (Source.decoder options)) + // Samples = get.Optional.Field "samples" (Decode.list (Sample.decoder options)) + // OtherMaterials = get.Optional.Field "otherMaterials" (Decode.list (Material.decoder options)) + // } + // ) \ No newline at end of file diff --git a/src/ARCtrl/Json/Process/Value.fs b/src/ARCtrl/Json/Process/Value.fs new file mode 100644 index 00000000..4edd5556 --- /dev/null +++ b/src/ARCtrl/Json/Process/Value.fs @@ -0,0 +1,24 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module ValueExtensions = + + type Value with + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Value.ISAJson.decoder s + + static member toISAJsonString(?spaces) = + fun (v:Value) -> + Value.ISAJson.encoder None v + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + + //let fromFile (path : string) = + // File.ReadAllText path + // |> fromString + + //let toFile (path : string) (v:Value) = + // File.WriteAllText(path,toString v) \ No newline at end of file diff --git a/src/ARCtrl/Json/Publication.fs b/src/ARCtrl/Json/Publication.fs new file mode 100644 index 00000000..7a27d6b0 --- /dev/null +++ b/src/ARCtrl/Json/Publication.fs @@ -0,0 +1,44 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module PublicationExtensions = + + type Publication with + + static member fromJsonString (s:string) = + Decode.fromJsonString Publication.decoder s + + static member toJsonString(?spaces) = + fun (obj:Publication) -> + Publication.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + Publication.toJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Publication.ROCrate.decoder s + + /// exports in json-ld format + static member toROCrateJsonString(?spaces) = + fun (obj:Publication) -> + Publication.ROCrate.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?spaces) = + Publication.toROCrateJsonString(?spaces=spaces) this + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Publication.ISAJson.decoder s + + static member toISAJsonString(?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (obj:Publication) -> + Publication.ISAJson.encoder idMap obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?spaces, ?useIDReferencing) = + Publication.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/ARCtrl/Json/ROCrateHelper.fs b/src/ARCtrl/Json/ROCrateHelper.fs new file mode 100644 index 00000000..3383e3f1 --- /dev/null +++ b/src/ARCtrl/Json/ROCrateHelper.fs @@ -0,0 +1,10 @@ +module ARCtrl.Json.ROCrateHelper + +open Thoth.Json.Core + +open ARCtrl +open System.IO + +module PropertyValue = + + let encoder = 1 \ No newline at end of file diff --git a/src/ARCtrl/Json/ROCrateObject.fs b/src/ARCtrl/Json/ROCrateObject.fs new file mode 100644 index 00000000..3d128634 --- /dev/null +++ b/src/ARCtrl/Json/ROCrateObject.fs @@ -0,0 +1,123 @@ +namespace ARCtrl.Json + +open ARCtrl +open System +open ARCtrl.ROCrate +open Thoth.Json.Core +open DynamicObj + +module rec ROCrateObject = + + #if !FABLE_COMPILER + let (|SomeObj|_|) = + // create generalized option type + let ty = typedefof> + fun (a:obj) -> + // Check for nulls otherwise 'a.GetType()' would fail + if isNull a + then + None + else + let aty = a.GetType() + // Get option'.Value + let v = aty.GetProperty("Value") + if aty.IsGenericType && aty.GetGenericTypeDefinition() = ty then + // return value if existing + Some(v.GetValue(a, [| |])) + else + None + #endif + + + let genericEncoder (obj : obj) : IEncodable = + match obj with + | :? string as s -> Encode.string s + | :? int as i -> Encode.int i + | :? bool as b -> Encode.bool b + | :? float as f -> Encode.float f + | :? DateTime as d -> Encode.dateTime d + | :? ROCrateObject as o -> encoder o + #if !FABLE_COMPILER + | SomeObj o -> genericEncoder o + #endif + | null -> Encode.nil + | :? System.Collections.IEnumerable as l -> [ for x in l -> genericEncoder x] |> Encode.list + | _ -> failwith "Unknown type" + + let rec encoder(obj: ROCrateObject) = + obj.GetProperties true + |> Seq.map (fun kv -> + kv.Key, + genericEncoder obj + ) + |> Encode.object + + + let rec decoder : Decoder = + let rec decode() = + let decodeObject : Decoder = + { new Decoder with + member _.Decode(helpers, value) = + if helpers.isObject value then + let getters = Decode.Getters(helpers, value) + let properties = helpers.getProperties value + let builder = + fun (get : Decode.IGetters) -> + let o = ROCrateObject( + id = get.Required.Field "@id" Decode.string, + schemaType = get.Required.Field "@type" Decode.string + ) + for property in properties do + if property <> "@id" && property <> "@type" then + o.SetProperty(property,get.Required.Field property (decode())) + o + let result = builder getters + match getters.Errors with + | [] -> Ok result + | fst :: _ as errors -> + if errors.Length > 1 then + ("", BadOneOf errors) |> Error + else + Error fst + else + ("", BadPrimitive("an object", value)) |> Error + } + let resizeArray : Decoder> = + { new Decoder> with + member _.Decode(helpers, value) = + if helpers.isArray value then + let mutable i = -1 + let tokens = helpers.asArray value + let arr = ResizeArray() + + (Ok arr, tokens) + ||> Array.fold (fun acc value -> + i <- i + 1 + + match acc with + | Error _ -> acc + | Ok acc -> + match decode().Decode(helpers, value) with + | Error er -> + Error( + er + |> Helpers.prependPath ( + ".[" + (i.ToString()) + "]" + ) + ) + | Ok value -> + acc.Add value + Ok acc + ) + else + ("", BadPrimitive("an array", value)) |> Error + } + Decode.oneOf [ + Decode.map box (decodeObject) + Decode.map box (resizeArray) + Decode.map box (Decode.string) + Decode.map box (Decode.int) + Decode.map box (Decode.decimal) + + ] + decode() \ No newline at end of file diff --git a/src/ARCtrl/Json/Study.fs b/src/ARCtrl/Json/Study.fs new file mode 100644 index 00000000..4dc8908e --- /dev/null +++ b/src/ARCtrl/Json/Study.fs @@ -0,0 +1,58 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module StudyExtensions = + + open System.Collections.Generic + + type ArcStudy with + + static member fromJsonString (s:string) = + Decode.fromJsonString Study.decoder s + + static member toJsonString(?spaces) = + fun (obj:ArcStudy) -> + Study.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + ArcStudy.toJsonString(?spaces=spaces) this + + static member fromCompressedJsonString (s: string) = + try Decode.fromJsonString (Compression.decode Study.decoderCompressed) s with + | e -> failwithf "Error. Unable to parse json string to ArcStudy: %s" e.Message + + static member toCompressedJsonString(?spaces) = + fun (obj:ArcStudy) -> + let spaces = defaultArg spaces 0 + Encode.toJsonString spaces (Compression.encode Study.encoderCompressed obj) + + member this.ToCompressedJsonString(?spaces) = + ArcStudy.toCompressedJsonString(?spaces=spaces) this + + static member fromROCrateJsonString (s:string) = + Decode.fromJsonString Study.ROCrate.decoder s + + /// exports in json-ld format + static member toROCrateJsonString(?assays: ArcAssay list, ?spaces) = + fun (obj:ArcStudy) -> + Study.ROCrate.encoder assays obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToROCrateJsonString(?assays,?spaces) = + ArcStudy.toROCrateJsonString(?assays=assays,?spaces=spaces) this + + static member fromISAJsonString (s:string) = + Decode.fromJsonString Study.ISAJson.decoder s + + static member toISAJsonString(?assays: ArcAssay list, ?spaces, ?useIDReferencing) = + let useIDReferencing = Option.defaultValue false useIDReferencing + let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None + fun (obj:ArcStudy) -> + Study.ISAJson.encoder idMap assays obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToISAJsonString(?assays,?spaces, ?useIDReferencing) = + ArcStudy.toISAJsonString(?assays=assays,?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Table/ArcTable.fs b/src/ARCtrl/Json/Table/ArcTable.fs new file mode 100644 index 00000000..0b4bb8d2 --- /dev/null +++ b/src/ARCtrl/Json/Table/ArcTable.fs @@ -0,0 +1,49 @@ +namespace ARCtrl.Json + +open ARCtrl +open System.Collections.Generic +open Thoth.Json.Core + +[] +module ArcTableExtensions = + + type ArcTable with + static member fromJsonString (s:string) = + Decode.fromJsonString ArcTable.decoder s + + static member toJsonString(?spaces) = + fun (obj:ArcTable) -> + ArcTable.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + ArcTable.toJsonString(?spaces=spaces) this + + static member fromCompressedJsonString (jsonString: string) : ArcTable = + let decoder = + Decode.object(fun get -> + let stringTable = get.Required.Field "stringTable" (StringTable.decoder) + let oaTable = get.Required.Field "oaTable" (OATable.decoder stringTable) + let cellTable = get.Required.Field "cellTable" (CellTable.decoder stringTable oaTable) + get.Required.Field "table" (ArcTable.decoderCompressed stringTable oaTable cellTable) + ) + Decode.fromJsonString decoder jsonString + + member this.ToCompressedJsonString(?spaces) : string = + let spaces = Encode.defaultSpaces spaces + let stringTable = Dictionary() + let oaTable = Dictionary() + let cellTable = Dictionary() + let arcTable = ArcTable.encoderCompressed stringTable oaTable cellTable this + let jObject = + Encode.object [ + "cellTable", CellTable.arrayFromMap cellTable |> CellTable.encoder stringTable oaTable + "oaTable", OATable.arrayFromMap oaTable |> OATable.encoder stringTable + "stringTable", StringTable.arrayFromMap stringTable |> StringTable.encoder + "table", arcTable + ] + Encode.toJsonString spaces jObject + + static member toCompressedJsonString(?spaces) = + fun (obj:ArcTable) -> + obj.ToCompressedJsonString(?spaces=spaces) \ No newline at end of file diff --git a/src/ARCtrl/Json/Table/CompositeCell.fs b/src/ARCtrl/Json/Table/CompositeCell.fs new file mode 100644 index 00000000..d58a805d --- /dev/null +++ b/src/ARCtrl/Json/Table/CompositeCell.fs @@ -0,0 +1,19 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module CompositeCellExtensions = + + type CompositeCell with + + static member fromJsonString (s:string) = + Decode.fromJsonString CompositeCell.decoder s + + static member toJsonString(?spaces) = + fun (obj:CompositeCell) -> + CompositeCell.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + CompositeCell.toJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Table/CompositeHeader.fs b/src/ARCtrl/Json/Table/CompositeHeader.fs new file mode 100644 index 00000000..f8106ea2 --- /dev/null +++ b/src/ARCtrl/Json/Table/CompositeHeader.fs @@ -0,0 +1,19 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module CompositeHeaderExtensions = + + type CompositeHeader with + + static member fromJsonString (s:string) = + Decode.fromJsonString CompositeHeader.decoder s + + static member toJsonString(?spaces) = + fun (obj:CompositeHeader) -> + CompositeHeader.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + CompositeHeader.toJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Table/Compression.fs b/src/ARCtrl/Json/Table/Compression.fs similarity index 100% rename from src/Json/Table/Compression.fs rename to src/ARCtrl/Json/Table/Compression.fs diff --git a/src/ARCtrl/Json/Table/IOType.fs b/src/ARCtrl/Json/Table/IOType.fs new file mode 100644 index 00000000..12ab0d47 --- /dev/null +++ b/src/ARCtrl/Json/Table/IOType.fs @@ -0,0 +1,19 @@ +namespace ARCtrl.Json + +open ARCtrl + +[] +module IOTypeExtensions = + + type IOType with + + static member fromJsonString (s:string) = + Decode.fromJsonString IOType.decoder s + + static member toJsonString(?spaces) = + fun (obj:IOType) -> + IOType.encoder obj + |> Encode.toJsonString (Encode.defaultSpaces spaces) + + member this.ToJsonString(?spaces) = + IOType.toJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/ARCtrl/Json/Table/Templates.fs b/src/ARCtrl/Json/Table/Templates.fs new file mode 100644 index 00000000..bb96b684 --- /dev/null +++ b/src/ARCtrl/Json/Table/Templates.fs @@ -0,0 +1,52 @@ +namespace ARCtrl.Json + +open Thoth.Json.Core + +open ARCtrl +open ARCtrl.Process +open ARCtrl.Helper + +module Templates = + + let encoder (templates: Template []) = + templates + |> Array.map (Template.encoder) + |> Encode.array + + let decoder = + Decode.array Template.decoder + + let fromJsonString (jsonString: string) = + try Decode.fromJsonString decoder jsonString with + | exn -> failwithf "Error. Given json string cannot be parsed to Templates map: %A" exn + + let toJsonString (spaces: int) (templates: Template []) = + Encode.toJsonString spaces (encoder templates) + +[] +module TemplateExtension = + + type Template with + + static member fromJsonString (jsonString: string) = + try Decode.fromJsonString Template.decoder jsonString with + | exn -> failwithf "Error. Given json string cannot be parsed to Template: %A" exn + + static member toJsonString(?spaces: int) = + fun (template:Template) -> + Encode.toJsonString (Encode.defaultSpaces spaces) (Template.encoder template) + + member this.toJsonString(?spaces: int) = + Template.toJsonString(?spaces=spaces) this + + static member fromCompressedJsonString (s: string) = + try Decode.fromJsonString (Compression.decode Template.decoderCompressed) s with + | e -> failwithf "Error. Unable to parse json string to ArcStudy: %s" e.Message + + static member toCompressedJsonString(?spaces) = + fun (obj:Template) -> + let spaces = defaultArg spaces 0 + Encode.toJsonString spaces (Compression.encode Template.encoderCompressed obj) + + member this.toCompressedJsonString(?spaces) = + Template.toCompressedJsonString(?spaces=spaces) this diff --git a/src/ARCtrl/WebRequest/WebRequest.fs b/src/ARCtrl/WebRequest/WebRequest.fs index 26577303..34d19b5a 100644 --- a/src/ARCtrl/WebRequest/WebRequest.fs +++ b/src/ARCtrl/WebRequest/WebRequest.fs @@ -1,9 +1,13 @@ -module ARCtrl.WebRequest +module ARCtrl.WebRequest open Fable.Core + +#if !FABLE_COMPILER_PYTHON open Fable.SimpleHttp +#endif let downloadFile url = + #if !FABLE_COMPILER_PYTHON let browserAndDotnet() = async { let! (statusCode, responseText) = Http.get url @@ -13,6 +17,7 @@ let downloadFile url = | 200 -> responseText | _ -> failwithf "Status %d => %s" statusCode responseText } + #endif #if FABLE_COMPILER_JAVASCRIPT if ARCtrl.WebRequestHelpers.NodeJs.isNode() then diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json new file mode 100644 index 00000000..42f6b645 --- /dev/null +++ b/src/ARCtrl/packages.lock.json @@ -0,0 +1,165 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Thoth.Json.Python": { + "type": "Direct", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "O86Oisv/91NpbHENz11poZh9zrTRJdAjDXHVC1JqvDDsscelI7HxOmWgks8ZFvYxbBzNJCG+FKQHC10KzyMf8g==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0", + "Fable.Python": "4.3.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/src/CWL/packages.lock.json b/src/CWL/packages.lock.json new file mode 100644 index 00000000..52243095 --- /dev/null +++ b/src/CWL/packages.lock.json @@ -0,0 +1,21 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + } + } + } +} \ No newline at end of file diff --git a/src/Contract/ARCtrl.Contract.fsproj b/src/Contract/ARCtrl.Contract.fsproj index a46ed9ba..c864f67e 100644 --- a/src/Contract/ARCtrl.Contract.fsproj +++ b/src/Contract/ARCtrl.Contract.fsproj @@ -35,7 +35,4 @@ https://github.com/nfdi4plants/ARCtrl git - - - \ No newline at end of file diff --git a/src/Contract/packages.lock.json b/src/Contract/packages.lock.json new file mode 100644 index 00000000..38efc7c4 --- /dev/null +++ b/src/Contract/packages.lock.json @@ -0,0 +1,134 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/src/Core/Process/FactorValue.fs b/src/Core/Process/FactorValue.fs index 4149c0ec..74b05bd0 100644 --- a/src/Core/Process/FactorValue.fs +++ b/src/Core/Process/FactorValue.fs @@ -3,6 +3,7 @@ namespace ARCtrl.Process open ARCtrl open ARCtrl.Helper + type FactorValue = { ID : URI option diff --git a/src/Core/packages.lock.json b/src/Core/packages.lock.json new file mode 100644 index 00000000..8a323fb5 --- /dev/null +++ b/src/Core/packages.lock.json @@ -0,0 +1,36 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + } + } + } +} \ No newline at end of file diff --git a/src/FileSystem/ARCtrl.FileSystem.fsproj b/src/FileSystem/ARCtrl.FileSystem.fsproj index 25c5742b..afe500a2 100644 --- a/src/FileSystem/ARCtrl.FileSystem.fsproj +++ b/src/FileSystem/ARCtrl.FileSystem.fsproj @@ -1,4 +1,4 @@ - + netstandard2.0 @@ -17,7 +17,7 @@ - + nfdi4plants, Kevin Frey, Lukas Weil diff --git a/src/FileSystem/packages.lock.json b/src/FileSystem/packages.lock.json new file mode 100644 index 00000000..937a31a7 --- /dev/null +++ b/src/FileSystem/packages.lock.json @@ -0,0 +1,27 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "Fable.Core": { + "type": "Direct", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + } + } + } +} \ No newline at end of file diff --git a/src/Json/ARCtrl.Json.fsproj b/src/Json/ARCtrl.Json.fsproj index 0b45cc58..d8e5192e 100644 --- a/src/Json/ARCtrl.Json.fsproj +++ b/src/Json/ARCtrl.Json.fsproj @@ -5,6 +5,7 @@ true + @@ -61,7 +62,6 @@ - @@ -70,7 +70,6 @@ - @@ -81,21 +80,14 @@ - - - - - + - - - - nfdi4plants, Lukas Weil, Florian Wetzels, Kevin Frey + nfdi4plants, Lukas Weil, Kevin Frey, Florian Wetzels ARC and ISA json compliant parser for experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in isa-json format. MIT logo.png diff --git a/src/Json/ArcInvestigation.fs b/src/Json/ArcInvestigation.fs deleted file mode 100644 index 4090a48b..00000000 --- a/src/Json/ArcInvestigation.fs +++ /dev/null @@ -1,97 +0,0 @@ -namespace ARCtrl.Json - -open Thoth.Json.Core - -open ARCtrl - -open JsonHelper - -module ArcInvestigation = - let encoder (inv:ArcInvestigation) = - Encode.object [ - "Identifier", Encode.string inv.Identifier - if inv.Title.IsSome then - "Title", Encode.string inv.Title.Value - if inv.Description.IsSome then - "Description", Encode.string inv.Description.Value - if inv.SubmissionDate.IsSome then - "SubmissionDate", Encode.string inv.SubmissionDate.Value - if inv.PublicReleaseDate.IsSome then - "PublicReleaseDate", Encode.string inv.PublicReleaseDate.Value - if inv.OntologySourceReferences.Length <> 0 then - "OntologySourceReferences", EncoderOntologySourceReferences inv.OntologySourceReferences - if inv.Publications.Length <> 0 then - "Publications", EncoderPublications inv.Publications - if inv.Contacts.Length <> 0 then - "Contacts", EncoderPersons inv.Contacts - if inv.Assays.Count <> 0 then - "Assays", Encode.seq (Seq.map ArcAssay.encoder inv.Assays) - if inv.Studies.Count <> 0 then - "Studies", Encode.seq (Seq.map ArcStudy.encoder inv.Studies) - if inv.RegisteredStudyIdentifiers.Count <> 0 then - "RegisteredStudyIdentifiers", Encode.seq (Seq.map Encode.string inv.RegisteredStudyIdentifiers) - if inv.Comments.Length <> 0 then - "Comments", EncoderComments inv.Comments - // remarks are ignored for whatever reason - ] - - let decoder : Decoder = - let DecodeAssays : Decoder = Decode.list ArcAssay.decoder - let DecodeStudies : Decoder = Decode.list ArcStudy.decoder - let tryGetAssays (get:Decode.IGetters) (fieldName:string) = get.Optional.Field(fieldName) DecodeAssays |> Option.map ResizeArray |> Option.defaultValue (ResizeArray()) - let tryGetStudies (get:Decode.IGetters) (fieldName:string) = get.Optional.Field(fieldName) DecodeStudies |> Option.map ResizeArray |> Option.defaultValue (ResizeArray()) - Decode.object (fun get -> - ArcInvestigation.make - (get.Required.Field("Identifier") Decode.string) - (get.Optional.Field("Title") Decode.string) - (get.Optional.Field("Description") Decode.string) - (get.Optional.Field("SubmissionDate") Decode.string) - (get.Optional.Field("PublicReleaseDate") Decode.string) - (tryGetOntologySourceReferences get "OntologySourceReferences") - (tryGetPublications get "Publications") - (tryGetPersons get "Contacts") - (tryGetAssays get "Assays") - (tryGetStudies get "Studies") - (tryGetStringResizeArray get "RegisteredStudyIdentifiers") - (tryGetComments get "Comments") - [||] - ) - - /// exports in json-ld format - let toJsonldString (a:ArcInvestigation) = - Investigation.encoder (ConverterOptions(SetID=true,IsJsonLD=true)) (a.ToInvestigation()) - |> Encode.toJsonString 2 - - let toJsonldStringWithContext (a:ArcInvestigation) = - Investigation.encoder (ConverterOptions(SetID=true,IsJsonLD=true)) (a.ToInvestigation()) - |> Encode.toJsonString 2 - - let fromJsonString (s:string) = - GDecode.fromJsonString (Investigation.decoder (ConverterOptions())) s - |> ArcInvestigation.fromInvestigation - - let toJsonString (a:ArcInvestigation) = - Investigation.encoder (ConverterOptions()) (a.ToInvestigation()) - |> Encode.toJsonString 2 - - let toArcJsonString (a:ArcInvestigation) : string = - let spaces = 0 - Encode.toJsonString spaces (encoder a) - - let fromArcJsonString (jsonString: string) = - try GDecode.fromJsonString decoder jsonString with - | e -> failwithf "Error. Unable to parse json string to ArcInvestigation: %s" e.Message - -[] -module ArcInvestigationExtensions = - - type ArcInvestigation with - static member fromArcJsonString (jsonString: string) : ArcInvestigation = - try GDecode.fromJsonString ArcInvestigation.decoder jsonString with - | e -> failwithf "Error. Unable to parse json string to ArcInvestigation: %s" e.Message - - member this.ToArcJsonString(?spaces) : string = - let spaces = defaultArg spaces 0 - Encode.toJsonString spaces (ArcInvestigation.encoder this) - - static member toArcJsonString(a:ArcInvestigation) = a.ToArcJsonString() \ No newline at end of file diff --git a/src/Json/Assay.fs b/src/Json/Assay.fs index 65b48863..13edde25 100644 --- a/src/Json/Assay.fs +++ b/src/Json/Assay.fs @@ -176,60 +176,4 @@ module Assay = ?tables = tables, ?comments = get.Optional.Field "comments" (Decode.resizeArray Comment.ISAJson.decoder) ) - ) - - -[] -module AssayExtensions = - - open System.Collections.Generic - - type ArcAssay with - - static member fromJsonString (s:string) = - Decode.fromJsonString Assay.decoder s - - static member toJsonString(?spaces) = - fun (obj:ArcAssay) -> - Assay.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - ArcAssay.toJsonString(?spaces=spaces) this - - static member fromCompressedJsonString (s: string) = - try Decode.fromJsonString (Compression.decode Assay.decoderCompressed) s with - | e -> failwithf "Error. Unable to parse json string to ArcAssay: %s" e.Message - - static member toCompressedJsonString(?spaces) = - fun (obj:ArcAssay) -> - let spaces = defaultArg spaces 0 - Encode.toJsonString spaces (Compression.encode Assay.encoderCompressed obj) - - member this.ToCompressedJsonString(?spaces) = - ArcAssay.toCompressedJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Assay.ROCrate.decoder s - - /// exports in json-ld format - static member toROCrateJsonString(?studyName, ?spaces) = - fun (obj: ArcAssay) -> - Assay.ROCrate.encoder studyName obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?studyName, ?spaces) = - ArcAssay.toROCrateJsonString(?studyName=studyName, ?spaces=spaces) this - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (obj:ArcAssay) -> - Assay.ISAJson.encoder None idMap obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Assay.ISAJson.decoder s - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - ArcAssay.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Comment.fs b/src/Json/Comment.fs index 00384d2c..d88c1635 100644 --- a/src/Json/Comment.fs +++ b/src/Json/Comment.fs @@ -49,12 +49,23 @@ module Comment = ) ) - let encoderDisambiguatingDescription (comment : Comment) = - encoder comment |> Encode.toJsonString 0 |> Encode.string + let encoderDisambiguatingDescription (comment : Comment) = + let name = Option.defaultValue "" comment.Name + let value = Option.defaultValue "" comment.Value + $"{name}:{value}" |> Encode.string let decoderDisambiguatingDescription : Decoder = Decode.string - |> Decode.map (fun s -> s.Trim() |> Decode.fromJsonString decoder) + |> Decode.map (fun s -> + let a = s.Trim().Split(':') + let name,value = + match a.Length with + | 1 -> Some a.[0], None + | 2 -> Some a.[0], Some a.[1] + | _ -> Some a.[0], Some(Array.reduce (fun acc x -> acc + ":" + x) (Array.skip 1 a)) + Comment(?name = name, ?value = value) + + ) module ISAJson = @@ -72,48 +83,4 @@ module Comment = | None -> f comment - let decoder = decoder - -[] -module CommentExtensions = - type Comment with - - static member fromJsonString (s:string) = - Decode.fromJsonString Comment.decoder s - - static member toJsonString(?spaces) = - fun (c:Comment) -> - Comment.encoder c - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toJsonString(?spaces) = - Comment.toJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Comment.ROCrate.decoder s - - /// exports in json-ld format - static member toROCrateJsonString(?spaces) = - fun (c:Comment) -> - Comment.ROCrate.encoder c - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toROCrateJsonString(?spaces) = - Comment.toROCrateJsonString(?spaces=spaces) this - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Comment.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (c:Comment) -> - Comment.ISAJson.encoder None c - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toISAJsonString(?spaces) = - Comment.toISAJsonString(?spaces=spaces) this - //let fromFile (path : string) = - // File.ReadAllText path - // |> fromString - - //let toFile (path : string) (c:Comment) = - // File.WriteAllText(path,toString c) \ No newline at end of file + let decoder = decoder \ No newline at end of file diff --git a/src/Json/Data.fs b/src/Json/Data.fs index 1f969ceb..1fb5e0fd 100644 --- a/src/Json/Data.fs +++ b/src/Json/Data.fs @@ -128,33 +128,4 @@ module Data = ?dataType = get.Optional.Field "type" DataFile.ISAJson.decoder, ?comments = get.Optional.Field "comments" (Decode.resizeArray Comment.ISAJson.decoder) ) - ) - -[] -module DataExtensions = - - type Data with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Data.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = useIDReferencing |> Option.defaultValue false - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:Data) -> - Data.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toISAJsonString(?spaces, ?useIDReferencing) = - Data.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Data.ROCrate.decoder s - - static member toROCrateJsonString(?spaces) = - fun (f:Data) -> - Data.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toROCrateJsonString(?spaces) = - Data.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/DataFile.fs b/src/Json/DataFile.fs index 2ea5ed42..d656979d 100644 --- a/src/Json/DataFile.fs +++ b/src/Json/DataFile.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -39,29 +39,3 @@ module DataFile = let decoder = ROCrate.decoder -[] -module DataFileExtensions = - - type DataFile with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString DataFile.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (f:DataFile) -> - DataFile.ISAJson.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces) = - DataFile.toISAJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString DataFile.ROCrate.decoder s - - static member toROCrateJsonString(?spaces) = - fun (f:DataFile) -> - DataFile.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - DataFile.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Decode.fs b/src/Json/Decode.fs index 0c72d937..a52231f0 100644 --- a/src/Json/Decode.fs +++ b/src/Json/Decode.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -28,7 +28,7 @@ module PyTime = |> DateTime.fromTimeStamp #endif -module internal Helpers = +module Helpers = let prependPath (path: string) @@ -46,18 +46,6 @@ module internal Helpers = module Decode = - let helpers = - #if FABLE_COMPILER_PYTHON - Thoth.Json.Python.Decode.helpers - #endif - #if FABLE_COMPILER_JAVASCRIPT - Thoth.Json.JavaScript.Decode.helpers - #endif - #if !FABLE_COMPILER - Thoth.Json.Newtonsoft.Decode.helpers - #endif - - let isURI (s : string) = true //s.StartsWith("http://") || s.StartsWith("https://") @@ -71,20 +59,6 @@ module Decode = | Error e -> Error e } - let inline fromJsonString (decoder : Decoder<'a>) (s : string) : 'a = - #if FABLE_COMPILER_PYTHON - match Thoth.Json.Python.Decode.fromString decoder s with - #endif - #if FABLE_COMPILER_JAVASCRIPT - match Thoth.Json.JavaScript.Decode.fromString decoder s with - #endif - #if !FABLE_COMPILER - match Thoth.Json.Newtonsoft.Decode.fromString decoder s with - #endif - | Ok a -> a - | Error e -> failwith (sprintf "Error decoding string: %O" e) - - let hasUnknownFields (helpers : IDecoderHelpers<'JsonValue>) (knownFields : Set) (json : 'JsonValue) = helpers.getProperties json |> Seq.exists (fun x -> not (knownFields |> Set.contains x)) diff --git a/src/Json/Encode.fs b/src/Json/Encode.fs index 72f38233..fabebd65 100644 --- a/src/Json/Encode.fs +++ b/src/Json/Encode.fs @@ -14,17 +14,6 @@ open Fable.Core.JsInterop [] module Encode = - let inline toJsonString spaces (value : IEncodable) = - #if FABLE_COMPILER_PYTHON - Thoth.Json.Python.Encode.toString spaces value - #endif - #if FABLE_COMPILER_JAVASCRIPT - Thoth.Json.JavaScript.Encode.toString spaces value - #endif - #if !FABLE_COMPILER - Thoth.Json.Newtonsoft.Encode.toString spaces value - #endif - let inline choose (kvs : (string * IEncodable option) list) = kvs |> List.choose (fun (k,v) -> diff --git a/src/Json/Investigation.fs b/src/Json/Investigation.fs index 49a54c8c..4af4a493 100644 --- a/src/Json/Investigation.fs +++ b/src/Json/Investigation.fs @@ -210,57 +210,4 @@ module Investigation = registeredStudyIdentifiers = studyIdentifiers, ?comments = get.Optional.Field "comments" (Decode.resizeArray Comment.ISAJson.decoder) ) - ) - -[] -module InvestigationExtensions = - - type ArcInvestigation with - - static member fromJsonString (s:string) = - Decode.fromJsonString Investigation.decoder s - - static member toJsonString(?spaces) = - fun (obj:ArcInvestigation) -> - Investigation.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - ArcInvestigation.toJsonString(?spaces=spaces) this - - static member fromCompressedJsonString (s: string) = - try Decode.fromJsonString (Compression.decode Investigation.decoderCompressed) s with - | e -> failwithf "Error. Unable to parse json string to ArcStudy: %s" e.Message - - static member toCompressedJsonString(?spaces) = - fun (obj:ArcInvestigation) -> - let spaces = defaultArg spaces 0 - Encode.toJsonString spaces (Compression.encode Investigation.encoderCompressed obj) - - member this.ToCompressedJsonString(?spaces) = - ArcInvestigation.toCompressedJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Investigation.ROCrate.decoder s - - /// exports in json-ld format - static member toROCrateJsonString(?spaces) = - fun (obj:ArcInvestigation) -> - Investigation.ROCrate.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - ArcInvestigation.toROCrateJsonString(?spaces=spaces) this - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (obj:ArcInvestigation) -> - Investigation.ISAJson.encoder idMap obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Investigation.ISAJson.decoder s - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - ArcInvestigation.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/OntologyAnnotation.fs b/src/Json/OntologyAnnotation.fs index bb2a2cd0..ca47cc06 100644 --- a/src/Json/OntologyAnnotation.fs +++ b/src/Json/OntologyAnnotation.fs @@ -147,42 +147,3 @@ module OntologyAnnotation = | Some idMap -> IDTable.encode ROCrate.genID f oa idMap let decoder = decoder - -[] -module OntologyAnnotationExtensions = - - type OntologyAnnotation with - - static member fromJsonString (s:string) = - Decode.fromJsonString OntologyAnnotation.decoder s - - static member toJsonString(?spaces) = - fun (obj:OntologyAnnotation) -> - OntologyAnnotation.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - OntologyAnnotation.toJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString OntologyAnnotation.ROCrate.decoderDefinedTerm s - - /// exports in json-ld format - static member toROCrateJsonString(?spaces) = - fun (obj:OntologyAnnotation) -> - OntologyAnnotation.ROCrate.encoderDefinedTerm obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - OntologyAnnotation.toROCrateJsonString(?spaces=spaces) this - - static member fromISAJsonString (s:string) = - Decode.fromJsonString OntologyAnnotation.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (obj:OntologyAnnotation) -> - OntologyAnnotation.ISAJson.encoder None obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces) = - OntologyAnnotation.toISAJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/OntologySourceReference.fs b/src/Json/OntologySourceReference.fs index 90d34a01..56c9bc96 100644 --- a/src/Json/OntologySourceReference.fs +++ b/src/Json/OntologySourceReference.fs @@ -78,43 +78,4 @@ module OntologySourceReference = |> Encode.object - let decoder = decoder - -[] -module OntologySourceReferenceExtensions = - - type OntologySourceReference with - - static member fromJsonString (s:string) = - Decode.fromJsonString OntologySourceReference.decoder s - - static member toJsonString(?spaces) = - fun (obj:OntologySourceReference) -> - OntologySourceReference.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - OntologySourceReference.toJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString OntologySourceReference.ROCrate.decoder s - - /// exports in json-ld format - static member toROCrateJsonString(?spaces) = - fun (obj:OntologySourceReference) -> - OntologySourceReference.ROCrate.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - OntologySourceReference.toROCrateJsonString(?spaces=spaces) this - - static member fromISAJsonString (s:string) = - Decode.fromJsonString OntologySourceReference.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (obj:OntologySourceReference) -> - OntologySourceReference.ISAJson.encoder None obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces) = - OntologySourceReference.toISAJsonString(?spaces=spaces) this + let decoder = decoder \ No newline at end of file diff --git a/src/Json/Person.fs b/src/Json/Person.fs index 11838e5b..9d52e525 100644 --- a/src/Json/Person.fs +++ b/src/Json/Person.fs @@ -200,45 +200,4 @@ module Person = ?comments=get.Optional.Field "comments" (Decode.resizeArray Comment.decoder) ) |> Person.setOrcidFromComments - ) - -[] -module PersonExtensions = - - type Person with - - static member fromJsonString (s:string) = - Decode.fromJsonString Person.decoder s - - static member toJsonString(?spaces) = - fun (obj:Person) -> - Person.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toJsonString(?spaces) = - Person.toJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Person.ROCrate.decoder s - - /// exports in json-ld format - static member toROCrateJsonString(?spaces) = - fun (obj:Person) -> - Person.ROCrate.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toROCrateJsonString(?spaces) = - Person.toROCrateJsonString(?spaces=spaces) this - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Person.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (obj:Person) -> - Person.ISAJson.encoder idMap obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toISAJsonString(?spaces, ?useIDReferencing) = - Person.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Process/Component.fs b/src/Json/Process/Component.fs index 13c95a57..f4834054 100644 --- a/src/Json/Process/Component.fs +++ b/src/Json/Process/Component.fs @@ -44,32 +44,3 @@ module Component = ComponentType = get.Optional.Field "componentType" OntologyAnnotation.ISAJson.decoder } ) - -[] -module ComponentExtensions = - - type Component with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Component.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:Component) -> - Component.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toISAJsonString(?spaces) = - Component.toISAJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Component.ROCrate.decoder s - - static member toROCrateJsonString(?spaces) = - fun (f:Component) -> - Component.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toROCrateJsonString(?spaces) = - Component.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/Factor.fs b/src/Json/Process/Factor.fs index f9c8f2a7..48d5c06f 100644 --- a/src/Json/Process/Factor.fs +++ b/src/Json/Process/Factor.fs @@ -43,19 +43,3 @@ module Factor = Comments = get.Optional.Field "comments" (Decode.resizeArray (Comment.ISAJson.decoder)) } ) - -[] -module FactorExtensions = - - type Factor with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Factor.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (f:Factor) -> - Factor.ISAJson.encoder None f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces) = - Factor.toISAJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/FactorValue.fs b/src/Json/Process/FactorValue.fs index 640b9f4f..8e8defdd 100644 --- a/src/Json/Process/FactorValue.fs +++ b/src/Json/Process/FactorValue.fs @@ -47,21 +47,3 @@ module FactorValue = Unit = get.Optional.Field "unit" OntologyAnnotation.ISAJson.decoder } ) - -[] -module FactorValueExtensions = - - type FactorValue with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString FactorValue.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:FactorValue) -> - FactorValue.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - FactorValue.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/Json/Process/Material.fs b/src/Json/Process/Material.fs index 9173c25e..193b441c 100644 --- a/src/Json/Process/Material.fs +++ b/src/Json/Process/Material.fs @@ -74,32 +74,4 @@ module Material = } ) decode() - -[] -module MaterialExtensions = - - type Material with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Material.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:Material) -> - Material.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - Material.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Material.ROCrate.decoder s - - static member toROCrateJsonString(?spaces) = - fun (f:Material) -> - Material.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - Material.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file + \ No newline at end of file diff --git a/src/Json/Process/MaterialAttribute.fs b/src/Json/Process/MaterialAttribute.fs index 365da94f..c186ac24 100644 --- a/src/Json/Process/MaterialAttribute.fs +++ b/src/Json/Process/MaterialAttribute.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -35,22 +35,3 @@ module MaterialAttribute = CharacteristicType = get.Optional.Field "characteristicType" (OntologyAnnotation.ISAJson.decoder) } ) - -[] -module MaterialAttributeExtensions = - - type MaterialAttribute with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString MaterialAttribute.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - - fun (v:MaterialAttribute) -> - MaterialAttribute.ISAJson.encoder idMap v - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces, ?useIDReferencing) = - MaterialAttribute.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing ) this \ No newline at end of file diff --git a/src/Json/Process/MaterialAttributeValue.fs b/src/Json/Process/MaterialAttributeValue.fs index afd1b047..a11df3a3 100644 --- a/src/Json/Process/MaterialAttributeValue.fs +++ b/src/Json/Process/MaterialAttributeValue.fs @@ -44,32 +44,3 @@ module MaterialAttributeValue = Unit = get.Optional.Field "unit" OntologyAnnotation.ISAJson.decoder } ) - -[] -module MaterialAttributeValueExtensions = - - type MaterialAttributeValue with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString MaterialAttributeValue.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:MaterialAttributeValue) -> - MaterialAttributeValue.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - MaterialAttributeValue.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString MaterialAttributeValue.ROCrate.decoder s - - static member toROCrateJsonString(?spaces) = - fun (f:MaterialAttributeValue) -> - MaterialAttributeValue.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - MaterialAttributeValue.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/MaterialType.fs b/src/Json/Process/MaterialType.fs index 7de11b61..d3fc86e3 100644 --- a/src/Json/Process/MaterialType.fs +++ b/src/Json/Process/MaterialType.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -32,20 +32,4 @@ module MaterialType = let encoder = ROCrate.encoder - let decoder : Decoder = ROCrate.decoder - -[] -module MaterialTypeExtensions = - - type MaterialType with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString MaterialType.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (f:MaterialType) -> - MaterialType.ISAJson.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces) = - MaterialType.toISAJsonString(?spaces=spaces) this \ No newline at end of file + let decoder : Decoder = ROCrate.decoder \ No newline at end of file diff --git a/src/Json/Process/Process.fs b/src/Json/Process/Process.fs index f1a1b46e..90f81b75 100644 --- a/src/Json/Process/Process.fs +++ b/src/Json/Process/Process.fs @@ -91,32 +91,3 @@ module Process = } ) decode() - -[] -module ProcessExtensions = - - type Process with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Process.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:Process) -> - Process.ISAJson.encoder None None idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces,?useIDReferencing) = - Process.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateString (s:string) = - Decode.fromJsonString Process.ROCrate.decoder s - - static member toROCrateString(?studyName:string,?assayName:string,?spaces) = - fun (f:Process) -> - Process.ROCrate.encoder studyName assayName f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateString(?studyName:string,?assayName:string,?spaces) = - Process.toROCrateString(?studyName=studyName,?assayName=assayName,?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/ProcessInput.fs b/src/Json/Process/ProcessInput.fs index 4638750f..16a56b09 100644 --- a/src/Json/Process/ProcessInput.fs +++ b/src/Json/Process/ProcessInput.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -48,21 +48,3 @@ module ProcessInput = Decode.map ProcessInput.Data Data.ISAJson.decoder Decode.map ProcessInput.Material Material.ISAJson.decoder ] - -[] -module ProcessInputExtensions = - - type ProcessInput with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString ProcessInput.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:ProcessInput) -> - ProcessInput.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - ProcessInput.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/Json/Process/ProcessOutput.fs b/src/Json/Process/ProcessOutput.fs index 311d58e6..9a6d806e 100644 --- a/src/Json/Process/ProcessOutput.fs +++ b/src/Json/Process/ProcessOutput.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -42,33 +42,3 @@ module ProcessOutput = Decode.map ProcessOutput.Data Data.ISAJson.decoder Decode.map ProcessOutput.Material Material.ISAJson.decoder ] - - -[] -module ProcessOutputExtensions = - - type ProcessOutput with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString ProcessOutput.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = defaultArg useIDReferencing false - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:ProcessOutput) -> - ProcessOutput.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toISAJsonString(?spaces, ?useIDReferencing) = - ProcessOutput.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString ProcessOutput.ROCrate.decoder s - - static member toROCrateJsonString(?spaces) = - fun (f:ProcessOutput) -> - ProcessOutput.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.toROCrateJsonString(?spaces) = - ProcessOutput.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/ProcessParameterValue.fs b/src/Json/Process/ProcessParameterValue.fs index 1768fdec..3b995075 100644 --- a/src/Json/Process/ProcessParameterValue.fs +++ b/src/Json/Process/ProcessParameterValue.fs @@ -37,33 +37,4 @@ module ProcessParameterValue = Value = get.Optional.Field "value" Value.ISAJson.decoder Unit = get.Optional.Field "unit" OntologyAnnotation.ISAJson.decoder } - ) - -[] -module ProcessParameterValueExtensions = - - type ProcessParameterValue with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString ProcessParameterValue.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:ProcessParameterValue) -> - ProcessParameterValue.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - ProcessParameterValue.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString ProcessParameterValue.ROCrate.decoder s - - static member toROCrateJsonString(?spaces) = - fun (f:ProcessParameterValue) -> - ProcessParameterValue.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - ProcessParameterValue.toROCrateJsonString(?spaces=spaces) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Process/Protocol.fs b/src/Json/Process/Protocol.fs index 0586e1c2..c263191d 100644 --- a/src/Json/Process/Protocol.fs +++ b/src/Json/Process/Protocol.fs @@ -98,33 +98,3 @@ module Protocol = Comments = get.Optional.Field "comments" (Decode.list Comment.ISAJson.decoder) } ) - - -[] -module ProtocolExtensions = - - type Protocol with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Protocol.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:Protocol) -> - Protocol.ISAJson.encoder None None None idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces) = - Protocol.toISAJsonString(?spaces=spaces) this - - static member fromROCrateString (s:string) = - Decode.fromJsonString (Protocol.ROCrate.decoder) s - - static member toROCrateString (?studyName:string,?assayName:string,?processName:string,?spaces) = - fun (f:Protocol) -> - Protocol.ROCrate.encoder studyName assayName processName f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateString (?studyName:string,?assayName:string,?processName:string,?spaces) = - Protocol.toROCrateString (?studyName=studyName,?assayName=assayName,?processName=processName,?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/ProtocolParameter.fs b/src/Json/Process/ProtocolParameter.fs index 98051389..2d879040 100644 --- a/src/Json/Process/ProtocolParameter.fs +++ b/src/Json/Process/ProtocolParameter.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -35,19 +35,3 @@ module ProtocolParameter = ParameterName = get.Optional.Field "parameterName" (OntologyAnnotation.ISAJson.decoder) } ) - -[] -module ProtocolParameterExtensions = - - type ProtocolParameter with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString ProtocolParameter.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (v:ProtocolParameter) -> - ProtocolParameter.ISAJson.encoder None v - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces) = - ProtocolParameter.toISAJsonString(?spaces=spaces) this \ No newline at end of file diff --git a/src/Json/Process/Sample.fs b/src/Json/Process/Sample.fs index eeeed337..71faf850 100644 --- a/src/Json/Process/Sample.fs +++ b/src/Json/Process/Sample.fs @@ -102,33 +102,4 @@ module Sample = FactorValues = get.Optional.Field "factorValues" (Decode.list FactorValue.ISAJson.decoder) DerivesFrom = get.Optional.Field "derivesFrom" (Decode.list Source.ISAJson.decoder) } - ) - -[] -module SampleExtensions = - - type Sample with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Sample.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = useIDReferencing |> Option.defaultValue false - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:Sample) -> - Sample.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - Sample.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateString (s:string) = - Decode.fromJsonString Sample.ROCrate.decoder s - - static member toROCrateString(?spaces) = - fun (f:Sample) -> - Sample.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateString(?spaces) = - Sample.toROCrateString(?spaces=spaces) this + ) \ No newline at end of file diff --git a/src/Json/Process/Source.fs b/src/Json/Process/Source.fs index fdf39e50..bb200a6f 100644 --- a/src/Json/Process/Source.fs +++ b/src/Json/Process/Source.fs @@ -62,33 +62,4 @@ module Source = Name = get.Optional.Field "name" Decode.string Characteristics = get.Optional.Field "characteristics" (Decode.list MaterialAttributeValue.ISAJson.decoder) } - ) - -[] -module SourceExtensions = - - type Source with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Source.ISAJson.decoder s - - static member toISAJsonString(?spaces,?useIDReferencing) = - let useIDReferencing = useIDReferencing |> Option.defaultValue false - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (f:Source) -> - Source.ISAJson.encoder idMap f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - Source.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this - - static member fromROCrateString (s:string) = - Decode.fromJsonString Source.ROCrate.decoder s - - static member toROCrateString(?spaces) = - fun (f:Source) -> - Source.ROCrate.encoder f - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateString(?spaces) = - Source.toROCrateString(?spaces=spaces) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Process/Value.fs b/src/Json/Process/Value.fs index 713bccea..80dc4a0a 100644 --- a/src/Json/Process/Value.fs +++ b/src/Json/Process/Value.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -28,26 +28,4 @@ module Value = Decode.map Value.Float Decode.float Decode.map Value.Ontology OntologyAnnotation.ISAJson.decoder Decode.map Value.Name Decode.string - ] - - -[] -module ValueExtensions = - - type Value with - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Value.ISAJson.decoder s - - static member toISAJsonString(?spaces) = - fun (v:Value) -> - Value.ISAJson.encoder None v - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - - //let fromFile (path : string) = - // File.ReadAllText path - // |> fromString - - //let toFile (path : string) (v:Value) = - // File.WriteAllText(path,toString v) \ No newline at end of file + ] \ No newline at end of file diff --git a/src/Json/Publication.fs b/src/Json/Publication.fs index 5a12b226..cde08aba 100644 --- a/src/Json/Publication.fs +++ b/src/Json/Publication.fs @@ -90,44 +90,3 @@ module Publication = let decoder : Decoder = decoder |> Decode.noAdditionalProperties allowedFields - -[] -module PublicationExtensions = - - type Publication with - - static member fromJsonString (s:string) = - Decode.fromJsonString Publication.decoder s - - static member toJsonString(?spaces) = - fun (obj:Publication) -> - Publication.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - Publication.toJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Publication.ROCrate.decoder s - - /// exports in json-ld format - static member toROCrateJsonString(?spaces) = - fun (obj:Publication) -> - Publication.ROCrate.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?spaces) = - Publication.toROCrateJsonString(?spaces=spaces) this - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Publication.ISAJson.decoder s - - static member toISAJsonString(?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (obj:Publication) -> - Publication.ISAJson.encoder idMap obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?spaces, ?useIDReferencing) = - Publication.toISAJsonString(?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file diff --git a/src/Json/ROCrateHelper.fs b/src/Json/ROCrateHelper.fs index 9d32df1f..3383e3f1 100644 --- a/src/Json/ROCrateHelper.fs +++ b/src/Json/ROCrateHelper.fs @@ -1,4 +1,4 @@ -module ARCtrl.Json.ROCrateHelper +module ARCtrl.Json.ROCrateHelper open Thoth.Json.Core @@ -7,4 +7,4 @@ open System.IO module PropertyValue = - let encoder \ No newline at end of file + let encoder = 1 \ No newline at end of file diff --git a/src/Json/Study.fs b/src/Json/Study.fs index 0bb5489a..788e96c2 100644 --- a/src/Json/Study.fs +++ b/src/Json/Study.fs @@ -279,60 +279,4 @@ module Study = ?registeredAssayIdentifiers = assayIdentifiers, ?comments = get.Optional.Field "comments" (Decode.resizeArray Comment.ISAJson.decoder) ), assays |> Option.defaultValue [] - ) - - -[] -module StudyExtensions = - - open System.Collections.Generic - - type ArcStudy with - - static member fromJsonString (s:string) = - Decode.fromJsonString Study.decoder s - - static member toJsonString(?spaces) = - fun (obj:ArcStudy) -> - Study.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - ArcStudy.toJsonString(?spaces=spaces) this - - static member fromCompressedJsonString (s: string) = - try Decode.fromJsonString (Compression.decode Study.decoderCompressed) s with - | e -> failwithf "Error. Unable to parse json string to ArcStudy: %s" e.Message - - static member toCompressedJsonString(?spaces) = - fun (obj:ArcStudy) -> - let spaces = defaultArg spaces 0 - Encode.toJsonString spaces (Compression.encode Study.encoderCompressed obj) - - member this.ToCompressedJsonString(?spaces) = - ArcStudy.toCompressedJsonString(?spaces=spaces) this - - static member fromROCrateJsonString (s:string) = - Decode.fromJsonString Study.ROCrate.decoder s - - /// exports in json-ld format - static member toROCrateJsonString(?assays: ArcAssay list, ?spaces) = - fun (obj:ArcStudy) -> - Study.ROCrate.encoder assays obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToROCrateJsonString(?assays,?spaces) = - ArcStudy.toROCrateJsonString(?assays=assays,?spaces=spaces) this - - static member fromISAJsonString (s:string) = - Decode.fromJsonString Study.ISAJson.decoder s - - static member toISAJsonString(?assays: ArcAssay list, ?spaces, ?useIDReferencing) = - let useIDReferencing = Option.defaultValue false useIDReferencing - let idMap = if useIDReferencing then Some (System.Collections.Generic.Dictionary()) else None - fun (obj:ArcStudy) -> - Study.ISAJson.encoder idMap assays obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToISAJsonString(?assays,?spaces, ?useIDReferencing) = - ArcStudy.toISAJsonString(?assays=assays,?spaces=spaces, ?useIDReferencing = useIDReferencing) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Table/ArcTable.fs b/src/Json/Table/ArcTable.fs index df1b1b98..66c8de4e 100644 --- a/src/Json/Table/ArcTable.fs +++ b/src/Json/Table/ArcTable.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -136,48 +136,4 @@ module ArcTable = table - ) - -[] -module ArcTableExtensions = - - type ArcTable with - static member fromJsonString (s:string) = - Decode.fromJsonString ArcTable.decoder s - - static member toJsonString(?spaces) = - fun (obj:ArcTable) -> - ArcTable.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - ArcTable.toJsonString(?spaces=spaces) this - - static member fromCompressedJsonString (jsonString: string) : ArcTable = - let decoder = - Decode.object(fun get -> - let stringTable = get.Required.Field "stringTable" (StringTable.decoder) - let oaTable = get.Required.Field "oaTable" (OATable.decoder stringTable) - let cellTable = get.Required.Field "cellTable" (CellTable.decoder stringTable oaTable) - get.Required.Field "table" (ArcTable.decoderCompressed stringTable oaTable cellTable) - ) - Decode.fromJsonString decoder jsonString - - member this.ToCompressedJsonString(?spaces) : string = - let spaces = Encode.defaultSpaces spaces - let stringTable = Dictionary() - let oaTable = Dictionary() - let cellTable = Dictionary() - let arcTable = ArcTable.encoderCompressed stringTable oaTable cellTable this - let jObject = - Encode.object [ - "cellTable", CellTable.arrayFromMap cellTable |> CellTable.encoder stringTable oaTable - "oaTable", OATable.arrayFromMap oaTable |> OATable.encoder stringTable - "stringTable", StringTable.arrayFromMap stringTable |> StringTable.encoder - "table", arcTable - ] - Encode.toJsonString spaces jObject - - static member toCompressedJsonString(?spaces) = - fun (obj:ArcTable) -> - obj.ToCompressedJsonString(?spaces=spaces) \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Table/CompositeCell.fs b/src/Json/Table/CompositeCell.fs index 2f076dde..ceb8707c 100644 --- a/src/Json/Table/CompositeCell.fs +++ b/src/Json/Table/CompositeCell.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -79,20 +79,4 @@ module CompositeCell = let d = get.Required.Field (CompressedCellValues) (Decode.index 0 <| Data.compressedDecoder stringTable) CompositeCell.Data d | anyelse -> failwithf "Error reading CompositeCell from json string: %A" anyelse - ) - -[] -module CompositeCellExtensions = - - type CompositeCell with - - static member fromJsonString (s:string) = - Decode.fromJsonString CompositeCell.decoder s - - static member toJsonString(?spaces) = - fun (obj:CompositeCell) -> - CompositeCell.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - CompositeCell.toJsonString(?spaces=spaces) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Table/CompositeHeader.fs b/src/Json/Table/CompositeHeader.fs index c73d6341..4e9de6a0 100644 --- a/src/Json/Table/CompositeHeader.fs +++ b/src/Json/Table/CompositeHeader.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -55,20 +55,4 @@ module CompositeHeader = | "Date" -> CompositeHeader.Date | "Comment" -> c() |> CompositeHeader.Comment | anyelse -> CompositeHeader.FreeText anyelse - ) - -[] -module CompositeHeaderExtensions = - - type CompositeHeader with - - static member fromJsonString (s:string) = - Decode.fromJsonString CompositeHeader.decoder s - - static member toJsonString(?spaces) = - fun (obj:CompositeHeader) -> - CompositeHeader.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - CompositeHeader.toJsonString(?spaces=spaces) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Table/IOType.fs b/src/Json/Table/IOType.fs index 7846b237..87ce2ffe 100644 --- a/src/Json/Table/IOType.fs +++ b/src/Json/Table/IOType.fs @@ -1,4 +1,4 @@ -namespace ARCtrl.Json +namespace ARCtrl.Json open Thoth.Json.Core @@ -9,21 +9,4 @@ module IOType = let decoder : Decoder = Decode.string |> Decode.andThen ( fun s -> IOType.ofString s |> Decode.succeed - ) - - -[] -module IOTypeExtensions = - - type IOType with - - static member fromJsonString (s:string) = - Decode.fromJsonString IOType.decoder s - - static member toJsonString(?spaces) = - fun (obj:IOType) -> - IOType.encoder obj - |> Encode.toJsonString (Encode.defaultSpaces spaces) - - member this.ToJsonString(?spaces) = - IOType.toJsonString(?spaces=spaces) this \ No newline at end of file + ) \ No newline at end of file diff --git a/src/Json/Table/Templates.fs b/src/Json/Table/Templates.fs index fafea678..2c3f155a 100644 --- a/src/Json/Table/Templates.fs +++ b/src/Json/Table/Templates.fs @@ -92,39 +92,4 @@ module Templates = |> Encode.array let decoder = - Decode.array Template.decoder - - let fromJsonString (jsonString: string) = - try Decode.fromJsonString decoder jsonString with - | exn -> failwithf "Error. Given json string cannot be parsed to Templates map: %A" exn - - let toJsonString (spaces: int) (templates: Template []) = - Encode.toJsonString spaces (encoder templates) - -[] -module TemplateExtension = - - type Template with - - static member fromJsonString (jsonString: string) = - try Decode.fromJsonString Template.decoder jsonString with - | exn -> failwithf "Error. Given json string cannot be parsed to Template: %A" exn - - static member toJsonString(?spaces: int) = - fun (template:Template) -> - Encode.toJsonString (Encode.defaultSpaces spaces) (Template.encoder template) - - member this.toJsonString(?spaces: int) = - Template.toJsonString(?spaces=spaces) this - - static member fromCompressedJsonString (s: string) = - try Decode.fromJsonString (Compression.decode Template.decoderCompressed) s with - | e -> failwithf "Error. Unable to parse json string to ArcStudy: %s" e.Message - - static member toCompressedJsonString(?spaces) = - fun (obj:Template) -> - let spaces = defaultArg spaces 0 - Encode.toJsonString spaces (Compression.encode Template.encoderCompressed obj) - - member this.toCompressedJsonString(?spaces) = - Template.toCompressedJsonString(?spaces=spaces) this + Decode.array Template.decoder \ No newline at end of file diff --git a/src/Json/packages.lock.json b/src/Json/packages.lock.json new file mode 100644 index 00000000..0396bdce --- /dev/null +++ b/src/Json/packages.lock.json @@ -0,0 +1,83 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Thoth.Json.Core": { + "type": "Direct", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + } + } + } +} \ No newline at end of file diff --git a/src/ROCrate/ARCtrl.ROCrate.fsproj b/src/ROCrate/ARCtrl.ROCrate.fsproj index 121cfb37..348f3c43 100644 --- a/src/ROCrate/ARCtrl.ROCrate.fsproj +++ b/src/ROCrate/ARCtrl.ROCrate.fsproj @@ -21,11 +21,8 @@ - - - - - + + Kevin Schneider, nfdi4plants, DataPLANT OSS contributors diff --git a/src/ROCrate/packages.lock.json b/src/ROCrate/packages.lock.json new file mode 100644 index 00000000..30eeebb4 --- /dev/null +++ b/src/ROCrate/packages.lock.json @@ -0,0 +1,60 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "DynamicObj": { + "type": "Direct", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Thoth.Json.Core": { + "type": "Direct", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + } + } + } +} \ No newline at end of file diff --git a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj index a98bcabb..96283580 100644 --- a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj +++ b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj @@ -1,4 +1,4 @@ - + netstandard2.0 @@ -33,7 +33,7 @@ - + diff --git a/src/Spreadsheet/packages.lock.json b/src/Spreadsheet/packages.lock.json new file mode 100644 index 00000000..c87ee156 --- /dev/null +++ b/src/Spreadsheet/packages.lock.json @@ -0,0 +1,77 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "FsSpreadsheet": { + "type": "Direct", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "6.0.7", + "contentHash": "e6wGrq5smV3Yk2fBE/Y0nBG5oFyF59k5Je0a0QDydUpg6liyaafGjD3xvutciKepCP2knspZ/sWViC/F1OyyQQ==" + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + } + } + } +} \ No newline at end of file diff --git a/src/ValidationPackages/packages.lock.json b/src/ValidationPackages/packages.lock.json new file mode 100644 index 00000000..99e0dee2 --- /dev/null +++ b/src/ValidationPackages/packages.lock.json @@ -0,0 +1,43 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + } + } + } +} \ No newline at end of file diff --git a/src/Yaml/ARCtrl.Yaml.fsproj b/src/Yaml/ARCtrl.Yaml.fsproj index 757d2392..a196e88b 100644 --- a/src/Yaml/ARCtrl.Yaml.fsproj +++ b/src/Yaml/ARCtrl.Yaml.fsproj @@ -15,7 +15,7 @@ - + diff --git a/src/Yaml/packages.lock.json b/src/Yaml/packages.lock.json new file mode 100644 index 00000000..30784ea1 --- /dev/null +++ b/src/Yaml/packages.lock.json @@ -0,0 +1,65 @@ +{ + "version": 2, + "dependencies": { + ".NETStandard,Version=v2.0": { + "NETStandard.Library": { + "type": "Direct", + "requested": "[2.0.3, )", + "resolved": "2.0.3", + "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "YAMLicious": { + "type": "Direct", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.300", + "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" + } + } + } +} \ No newline at end of file diff --git a/tests/ARCtrl/packages.lock.json b/tests/ARCtrl/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/ARCtrl/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/Contract/packages.lock.json b/tests/Contract/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/Contract/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/Core/packages.lock.json b/tests/Core/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/Core/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/FileSystem/packages.lock.json b/tests/FileSystem/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/FileSystem/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/Json/packages.lock.json b/tests/Json/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/Json/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/ROCrate/packages.lock.json b/tests/ROCrate/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/ROCrate/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/Speedtest/packages.lock.json b/tests/Speedtest/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/Speedtest/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/Spreadsheet/packages.lock.json b/tests/Spreadsheet/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/Spreadsheet/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/TestingUtils/TestingUtils.fsproj b/tests/TestingUtils/TestingUtils.fsproj index 2009ed93..2db7f578 100644 --- a/tests/TestingUtils/TestingUtils.fsproj +++ b/tests/TestingUtils/TestingUtils.fsproj @@ -28,8 +28,8 @@ - - + + diff --git a/tests/TestingUtils/packages.lock.json b/tests/TestingUtils/packages.lock.json new file mode 100644 index 00000000..6f1fb6dc --- /dev/null +++ b/tests/TestingUtils/packages.lock.json @@ -0,0 +1,252 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Node": { + "type": "Direct", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Pyxpecto": { + "type": "Direct", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/ValidationPackages/packages.lock.json b/tests/ValidationPackages/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/ValidationPackages/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file diff --git a/tests/Yaml/packages.lock.json b/tests/Yaml/packages.lock.json new file mode 100644 index 00000000..c4297898 --- /dev/null +++ b/tests/Yaml/packages.lock.json @@ -0,0 +1,261 @@ +{ + "version": 2, + "dependencies": { + "net8.0": { + "Fable.Browser.Blob": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Python": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "[4.1.0, 5.0.0)" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, + "arctrl": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Newtonsoft": "[0.2.0, )" + } + }, + "arctrl.contract": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" + } + }, + "arctrl.core": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" + } + }, + "arctrl.cwl": { + "type": "Project" + }, + "arctrl.filesystem": { + "type": "Project", + "dependencies": { + "Fable.Core": "[4.3.0, )" + } + }, + "arctrl.json": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.rocrate": { + "type": "Project", + "dependencies": { + "DynamicObj": "[4.0.0, )", + "Thoth.Json.Core": "[0.4.0, )" + } + }, + "arctrl.spreadsheet": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "FsSpreadsheet": "[6.3.0-alpha.4, )" + } + }, + "arctrl.validationpackages": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )" + } + }, + "arctrl.yaml": { + "type": "Project", + "dependencies": { + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", + "YAMLicious": "[0.0.1, )" + } + }, + "testingutils": { + "type": "Project", + "dependencies": { + "ARCtrl": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Node": "[1.2.0, )", + "Fable.Pyxpecto": "[1.2.0, )" + } + }, + "DynamicObj": { + "type": "CentralTransitive", + "requested": "[4.0.0, )", + "resolved": "4.0.0", + "contentHash": "BoJawULfNYty61v2F5ZRY/DSUTA9TEZrUBR823ggHGZgV1AXbGlZIeFgTJ3rF8+R96bIyXqNOTiQNbcvzEhNfQ==", + "dependencies": { + "FSharp.Core": "8.0.400", + "Fable.Core": "4.3.0" + } + }, + "Fable.Core": { + "type": "CentralTransitive", + "requested": "[4.3.0, )", + "resolved": "4.3.0", + "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" + }, + "Fable.Node": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "FVUFFcryE6pldYopULB+mpRtE6cmlG1evvVE9wDB0O8JKWLGrStHmNF4fqn7cyN1j2ufsvlPcw88PqoCt2OGuQ==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "3.1.2" + } + }, + "Fable.Package.SDK": { + "type": "CentralTransitive", + "requested": "[1.0.0, )", + "resolved": "1.0.0", + "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + }, + "Fable.Pyxpecto": { + "type": "CentralTransitive", + "requested": "[1.2.0, )", + "resolved": "1.2.0", + "contentHash": "I6jt1fCXXOipJ9tocdBstBK/LFOXa74e6v1GzeiqyWS+v0Lk4xH4NuD2f9g1todETt7A20ib7hvQigMNKqN0Aw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Python": "4.3.0" + } + }, + "Fable.SimpleHttp": { + "type": "CentralTransitive", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "FSharp.Core": { + "type": "CentralTransitive", + "requested": "[8.0.1, )", + "resolved": "8.0.400", + "contentHash": "kHMdDDmlZl98tujgHCmL8/HNH9VKbxsRMC9s7wbwr4noR40SSa5D4d00yF8cMK52s8jabVuiLLcrUw9r+PkKDQ==" + }, + "FsSpreadsheet": { + "type": "CentralTransitive", + "requested": "[6.3.0-alpha.4, )", + "resolved": "6.3.0-alpha.4", + "contentHash": "XBjvsfQ3aC3q7W2BcoMJ9Wo6DkH1FLmuAmsGa4CSWmIcDSXPu/Gsg3cl7kDQfdOKonAe1uEnb5KPqEHdjGkNQg==", + "dependencies": { + "FSharp.Core": "6.0.7", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, + "Thoth.Json.Core": { + "type": "CentralTransitive", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "+9ECg/XDpLHsa5pPW8x9ZsZL4bWZqhgTScHHuhxqgjxYRwwoi41oushdfEHZ8WoQwmNdCPCljSkX1nTZ91muVw==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0" + } + }, + "Thoth.Json.Newtonsoft": { + "type": "CentralTransitive", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" + } + }, + "YAMLicious": { + "type": "CentralTransitive", + "requested": "[0.0.1, )", + "resolved": "0.0.1", + "contentHash": "3QQH1VxkTdtU/RZgrzZwNNLAt8zg2Di65wh1dgS2OB1IT3NqFGyjhU+A60siB1+8rxXUe4Ou5nOVGvgDtydYug==", + "dependencies": { + "FSharp.Core": "8.0.300", + "Fable.Core": "4.3.0" + } + } + } + } +} \ No newline at end of file From c4296864a7443a990257f7eb47fed92458fa0a7b Mon Sep 17 00:00:00 2001 From: HLWeil Date: Tue, 1 Oct 2024 17:08:04 +0200 Subject: [PATCH 06/15] remove javascript and pyton packages from main solution --- ARCtrl.sln | 18 +- Directory.Packages.props | 1 + build/BasicTasks.fs | 1 + src/ARCtrl/ARCtrl.fsproj | 1 + src/ARCtrl/packages.lock.json | 83 ++++- src/Core/Comment.fs | 8 + src/Json/Comment.fs | 13 +- tests/ARCtrl/ARCtrl.Tests.fsproj | 1 - tests/ARCtrl/packages.lock.json | 2 +- tests/Contract/ARCtrl.Contract.Tests.fsproj | 1 - tests/Contract/packages.lock.json | 2 +- tests/Core/ARCtrl.Core.Tests.fsproj | 1 - tests/Core/packages.lock.json | 2 +- .../FileSystem/ARCtrl.FileSystem.Tests.fsproj | 1 - tests/FileSystem/packages.lock.json | 2 +- tests/Json/ARCtrl.Json.Tests.fsproj | 2 +- tests/Json/Comment.Tests.fs | 8 +- tests/Json/packages.lock.json | 322 +++++++++++++++++- tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj | 1 - tests/ROCrate/packages.lock.json | 2 +- tests/Speedtest/packages.lock.json | 2 +- .../ARCtrl.Spreadsheet.Tests.fsproj | 1 - tests/Spreadsheet/packages.lock.json | 2 +- tests/TestingUtils/TestingUtils.fsproj | 3 +- tests/TestingUtils/packages.lock.json | 1 + .../ARCtrl.ValidationPackages.Tests.fsproj | 1 - tests/ValidationPackages/packages.lock.json | 2 +- tests/Yaml/ARCtrl.Yaml.Tests.fsproj | 1 - tests/Yaml/packages.lock.json | 2 +- 29 files changed, 427 insertions(+), 60 deletions(-) diff --git a/ARCtrl.sln b/ARCtrl.sln index 987ec0d9..ff55c1fb 100644 --- a/ARCtrl.sln +++ b/ARCtrl.sln @@ -26,6 +26,10 @@ EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.FileSystem", "src\FileSystem\ARCtrl.FileSystem.fsproj", "{F47E23C3-8415-4725-9E85-57271694DEB3}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6DA2330B-D407-4FB1-AF05-B0184034EC44}" + ProjectSection(SolutionItems) = preProject + src\ARCtrl\ARCtrl.Javascript.fsproj = src\ARCtrl\ARCtrl.Javascript.fsproj + src\ARCtrl\ARCtrl.Python.fsproj = src\ARCtrl\ARCtrl.Python.fsproj + EndProjectSection EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Build", "build\Build.fsproj", "{5EAFB0CD-1168-4FCA-AA61-E96AD6C85819}" EndProject @@ -88,10 +92,6 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.ROCrate", "src\ROCra EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.ROCrate.Tests", "tests\ROCrate\ARCtrl.ROCrate.Tests.fsproj", "{212A1C64-02FC-465A-B0FA-F69735F37ACC}" EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.Javascript", "src\ARCtrl\ARCtrl.Javascript.fsproj", "{53641ACF-DCE9-4A2C-93A2-8680A9AC6108}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "ARCtrl.Python", "src\ARCtrl\ARCtrl.Python.fsproj", "{F8330698-3C79-4C14-8D46-AAF8910C2D2F}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -186,14 +186,6 @@ Global {212A1C64-02FC-465A-B0FA-F69735F37ACC}.Debug|Any CPU.Build.0 = Debug|Any CPU {212A1C64-02FC-465A-B0FA-F69735F37ACC}.Release|Any CPU.ActiveCfg = Release|Any CPU {212A1C64-02FC-465A-B0FA-F69735F37ACC}.Release|Any CPU.Build.0 = Release|Any CPU - {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53641ACF-DCE9-4A2C-93A2-8680A9AC6108}.Release|Any CPU.Build.0 = Release|Any CPU - {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8330698-3C79-4C14-8D46-AAF8910C2D2F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -222,8 +214,6 @@ Global {D10D12C7-B877-423B-867D-161D99E673C9} = {64B34A6E-318D-4E6E-9262-CE52C9B85A38} {658BF141-B4B5-4B90-891D-AC36A3FD7574} = {6DA2330B-D407-4FB1-AF05-B0184034EC44} {212A1C64-02FC-465A-B0FA-F69735F37ACC} = {64B34A6E-318D-4E6E-9262-CE52C9B85A38} - {53641ACF-DCE9-4A2C-93A2-8680A9AC6108} = {6DA2330B-D407-4FB1-AF05-B0184034EC44} - {F8330698-3C79-4C14-8D46-AAF8910C2D2F} = {6DA2330B-D407-4FB1-AF05-B0184034EC44} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1E354DE6-99BA-421E-9EF8-E808B855A85F} diff --git a/Directory.Packages.props b/Directory.Packages.props index 1bd823aa..2288bec7 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -17,5 +17,6 @@ + \ No newline at end of file diff --git a/build/BasicTasks.fs b/build/BasicTasks.fs index aa5ee777..fa1a72e3 100644 --- a/build/BasicTasks.fs +++ b/build/BasicTasks.fs @@ -163,6 +163,7 @@ let build = BuildTask.create "Build" [clean] { let msBuildParams = {p.MSBuildParams with DisableInternalBinLog = true + NodeReuse = false } { p with diff --git a/src/ARCtrl/ARCtrl.fsproj b/src/ARCtrl/ARCtrl.fsproj index 24ea64e9..a2639207 100644 --- a/src/ARCtrl/ARCtrl.fsproj +++ b/src/ARCtrl/ARCtrl.fsproj @@ -68,6 +68,7 @@ + diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json index 42f6b645..471bc2f3 100644 --- a/src/ARCtrl/packages.lock.json +++ b/src/ARCtrl/packages.lock.json @@ -2,6 +2,18 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.SimpleHttp": { + "type": "Direct", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -11,26 +23,68 @@ "Microsoft.NETCore.Platforms": "1.1.0" } }, - "Thoth.Json.Python": { + "Thoth.Json.Newtonsoft": { "type": "Direct", - "requested": "[0.4.0, )", - "resolved": "0.4.0", - "contentHash": "O86Oisv/91NpbHENz11poZh9zrTRJdAjDXHVC1JqvDDsscelI7HxOmWgks8ZFvYxbBzNJCG+FKQHC10KzyMf8g==", + "requested": "[0.2.0, )", + "resolved": "0.2.0", + "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", "dependencies": { "FSharp.Core": "5.0.0", "Fable.Core": "4.1.0", - "Fable.Package.SDK": "1.0.0", - "Fable.Python": "4.3.0", - "Thoth.Json.Core": "0.4.0" + "Fable.Package.SDK": "0.1.0", + "Newtonsoft.Json": "13.0.1", + "Thoth.Json.Core": "0.3.0" } }, - "Fable.Python": { + "Fable.Browser.Blob": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "[4.1.0, 5.0.0)" + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" } }, "Microsoft.NETCore.Platforms": { @@ -38,6 +92,11 @@ "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.1", + "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" + }, "arctrl.contract": { "type": "Project", "dependencies": { diff --git a/src/Core/Comment.fs b/src/Core/Comment.fs index 6091e57f..ea1cd402 100644 --- a/src/Core/Comment.fs +++ b/src/Core/Comment.fs @@ -58,6 +58,14 @@ type Comment(?name, ?value) = sb.Append("}") |> ignore sb.ToString() + // Reverse function to ToString() override + static member fromString(s) = + let nameRegex = System.Text.RegularExpressions.Regex("(?<=Name = \")[^\"]*(?=\",|})").Match(s) + let valueRegex = System.Text.RegularExpressions.Regex("(?<=Value = \")[^\"]*(?=\",|\"})").Match(s) + let name = if nameRegex.Success then Some nameRegex.Value else None + let value = if valueRegex.Success then Some valueRegex.Value else None + Comment(?name=name, ?value=value) + [] type Remark = diff --git a/src/Json/Comment.fs b/src/Json/Comment.fs index d88c1635..5897f95f 100644 --- a/src/Json/Comment.fs +++ b/src/Json/Comment.fs @@ -50,21 +50,12 @@ module Comment = ) let encoderDisambiguatingDescription (comment : Comment) = - let name = Option.defaultValue "" comment.Name - let value = Option.defaultValue "" comment.Value - $"{name}:{value}" |> Encode.string + comment.ToString() |> Encode.string let decoderDisambiguatingDescription : Decoder = Decode.string |> Decode.map (fun s -> - let a = s.Trim().Split(':') - let name,value = - match a.Length with - | 1 -> Some a.[0], None - | 2 -> Some a.[0], Some a.[1] - | _ -> Some a.[0], Some(Array.reduce (fun acc x -> acc + ":" + x) (Array.skip 1 a)) - Comment(?name = name, ?value = value) - + Comment.fromString s ) module ISAJson = diff --git a/tests/ARCtrl/ARCtrl.Tests.fsproj b/tests/ARCtrl/ARCtrl.Tests.fsproj index 2e6d9347..d9cf9eab 100644 --- a/tests/ARCtrl/ARCtrl.Tests.fsproj +++ b/tests/ARCtrl/ARCtrl.Tests.fsproj @@ -15,7 +15,6 @@ - diff --git a/tests/ARCtrl/packages.lock.json b/tests/ARCtrl/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/ARCtrl/packages.lock.json +++ b/tests/ARCtrl/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/Contract/ARCtrl.Contract.Tests.fsproj b/tests/Contract/ARCtrl.Contract.Tests.fsproj index d00e7558..496405a4 100644 --- a/tests/Contract/ARCtrl.Contract.Tests.fsproj +++ b/tests/Contract/ARCtrl.Contract.Tests.fsproj @@ -10,7 +10,6 @@ - diff --git a/tests/Contract/packages.lock.json b/tests/Contract/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/Contract/packages.lock.json +++ b/tests/Contract/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/Core/ARCtrl.Core.Tests.fsproj b/tests/Core/ARCtrl.Core.Tests.fsproj index e123c4d0..6fed7e04 100644 --- a/tests/Core/ARCtrl.Core.Tests.fsproj +++ b/tests/Core/ARCtrl.Core.Tests.fsproj @@ -27,7 +27,6 @@ - diff --git a/tests/Core/packages.lock.json b/tests/Core/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/Core/packages.lock.json +++ b/tests/Core/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj b/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj index 47c0e64b..3079e4fc 100644 --- a/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj +++ b/tests/FileSystem/ARCtrl.FileSystem.Tests.fsproj @@ -10,7 +10,6 @@ - diff --git a/tests/FileSystem/packages.lock.json b/tests/FileSystem/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/FileSystem/packages.lock.json +++ b/tests/FileSystem/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/Json/ARCtrl.Json.Tests.fsproj b/tests/Json/ARCtrl.Json.Tests.fsproj index f5f0619c..4a4db2d8 100644 --- a/tests/Json/ARCtrl.Json.Tests.fsproj +++ b/tests/Json/ARCtrl.Json.Tests.fsproj @@ -46,6 +46,6 @@ - + \ No newline at end of file diff --git a/tests/Json/Comment.Tests.fs b/tests/Json/Comment.Tests.fs index e9b8b8e0..977bec34 100644 --- a/tests/Json/Comment.Tests.fs +++ b/tests/Json/Comment.Tests.fs @@ -1,8 +1,9 @@ -module Tests.Comment +module Tests.Comment open ARCtrl open ARCtrl.Json +open Thoth.Json.Core open ARCtrl.Process open TestingUtils @@ -20,14 +21,15 @@ let private tests_DisambiguatingDescription = testList "DisambiguatingDescriptio testCase "Write" <| fun _ -> let c = Comment.create(name="My, cool comment wiht = lots; of special <> chars", value="STARTING VALUE") let actual = Comment.ROCrate.encoderDisambiguatingDescription c |> Encode.toJsonString 0 - let expected = """ "{\"@id\":\"#Comment_My,_cool__comment_wiht_=_lots;_of_special_<>_chars_STARTING_VALUE\",\"@type\":\"Comment\",\"name\":\"My, cool comment wiht = lots; of special <> chars\",\"value\":\"STARTING VALUE\",\"@context\":{\"sdo\":\"http://schema.org/\",\"Comment\":\"sdo:Comment\",\"name\":\"sdo:name\",\"value\":\"sdo:text\"}}" """ + //let expected = """ "{\"@id\":\"#Comment_My,_cool__comment_wiht_=_lots;_of_special_<>_chars_STARTING_VALUE\",\"@type\":\"Comment\",\"name\":\"My, cool comment wiht = lots; of special <> chars\",\"value\":\"STARTING VALUE\",\"@context\":{\"sdo\":\"http://schema.org/\",\"Comment\":\"sdo:Comment\",\"name\":\"sdo:name\",\"value\":\"sdo:text\"}}" """ + let expected = c.ToString() |> Encode.string |> Encode.toJsonString 0 Expect.stringEqual actual expected "" ] let private tests_ROCrate = testList "ROCrate" [ testCase "Write" <| fun _ -> let c = Comment.create(name="My, cool comment wiht = lots; of special <> chars", value="STARTING VALUE") - let actual = Comment.toROCrateJsonString () c + let actual = Comment.toROCrateJsonString () c let expected = TestObjects.Json.ROCrate.comment Expect.stringEqual actual expected "" ] diff --git a/tests/Json/packages.lock.json b/tests/Json/packages.lock.json index c4297898..94a0fc95 100644 --- a/tests/Json/packages.lock.json +++ b/tests/Json/packages.lock.json @@ -2,6 +2,16 @@ "version": 2, "dependencies": { "net8.0": { + "NJsonSchema": { + "type": "Direct", + "requested": "[10.8.0, )", + "resolved": "10.8.0", + "contentHash": "lChjsLWaxyvElh4WJjVhdIiCtx7rimYGFTxtSi2pAkZf0ZnKaXYIX484HCVyzbDDHejDZPgOrcfAJ3kqNSTONw==", + "dependencies": { + "Namotion.Reflection": "2.1.0", + "Newtonsoft.Json": "9.0.1" + } + }, "Fable.Browser.Blob": { "type": "Transitive", "resolved": "1.1.0", @@ -62,11 +72,321 @@ "Fable.Core": "[4.1.0, 5.0.0)" } }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "P+MBhIM0YX+JqROuf7i306ZLJEjQYA9uUyRDE+OqwUI5sh41e2ZbPQV3LfAPh+29cmceE1pUffXsGfR4eMY3KA==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" + }, + "Microsoft.NETCore.Targets": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" + }, + "Namotion.Reflection": { + "type": "Transitive", + "resolved": "2.1.0", + "contentHash": "9t63RauDp+CWzMCcCRAGXLRqEVIw0djYisGaDWhgHuXSaz/Djjpp9gpumCWVLpuDHLNf4HUmYWJeBt4AUyJSWA==", + "dependencies": { + "Microsoft.CSharp": "4.3.0" + } + }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.1", "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, + "System.Collections": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Debug": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Globalization": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.IO": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Linq": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.ObjectModel": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.ILGeneration": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Extensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Resources.ResourceManager": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "System.Runtime.Extensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Text.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Threading": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, "arctrl": { "type": "Project", "dependencies": { @@ -74,6 +394,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +466,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj b/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj index dc71d818..bc69e92f 100644 --- a/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj +++ b/tests/ROCrate/ARCtrl.ROCrate.Tests.fsproj @@ -22,7 +22,6 @@ - diff --git a/tests/ROCrate/packages.lock.json b/tests/ROCrate/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/ROCrate/packages.lock.json +++ b/tests/ROCrate/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/Speedtest/packages.lock.json b/tests/Speedtest/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/Speedtest/packages.lock.json +++ b/tests/Speedtest/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj b/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj index 47f89b0a..8a901f5a 100644 --- a/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj +++ b/tests/Spreadsheet/ARCtrl.Spreadsheet.Tests.fsproj @@ -22,7 +22,6 @@ - diff --git a/tests/Spreadsheet/packages.lock.json b/tests/Spreadsheet/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/Spreadsheet/packages.lock.json +++ b/tests/Spreadsheet/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/TestingUtils/TestingUtils.fsproj b/tests/TestingUtils/TestingUtils.fsproj index 2db7f578..b15926b9 100644 --- a/tests/TestingUtils/TestingUtils.fsproj +++ b/tests/TestingUtils/TestingUtils.fsproj @@ -33,7 +33,8 @@ - + + diff --git a/tests/TestingUtils/packages.lock.json b/tests/TestingUtils/packages.lock.json index 6f1fb6dc..1ce670e4 100644 --- a/tests/TestingUtils/packages.lock.json +++ b/tests/TestingUtils/packages.lock.json @@ -95,6 +95,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" diff --git a/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj b/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj index 10d2d7d9..60ea51e2 100644 --- a/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj +++ b/tests/ValidationPackages/ARCtrl.ValidationPackages.Tests.fsproj @@ -11,7 +11,6 @@ - diff --git a/tests/ValidationPackages/packages.lock.json b/tests/ValidationPackages/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/ValidationPackages/packages.lock.json +++ b/tests/ValidationPackages/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } diff --git a/tests/Yaml/ARCtrl.Yaml.Tests.fsproj b/tests/Yaml/ARCtrl.Yaml.Tests.fsproj index cc404497..9af2405a 100644 --- a/tests/Yaml/ARCtrl.Yaml.Tests.fsproj +++ b/tests/Yaml/ARCtrl.Yaml.Tests.fsproj @@ -11,7 +11,6 @@ - diff --git a/tests/Yaml/packages.lock.json b/tests/Yaml/packages.lock.json index c4297898..12c48c7d 100644 --- a/tests/Yaml/packages.lock.json +++ b/tests/Yaml/packages.lock.json @@ -74,6 +74,7 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" @@ -145,7 +146,6 @@ "type": "Project", "dependencies": { "ARCtrl": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", "Fable.Node": "[1.2.0, )", "Fable.Pyxpecto": "[1.2.0, )" } From 43d65db3fb121a4832e771541880c1fe79cfe89c Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Wed, 2 Oct 2024 14:23:05 +0200 Subject: [PATCH 07/15] various test fixes for Fable logic transition --- .config/dotnet-tools.json | 2 +- build/TestTasks.fs | 4 +- src/ARCtrl/packages.lock.json | 62 ++++++++++++----- src/Core/Comment.fs | 43 ++++++++++-- tests/Core/ARCtrl.Core.Tests.fsproj | 1 + tests/Core/Comment.Tests.fs | 39 +++++++++++ tests/Core/Main.fs | 3 +- tests/JavaScript/CompositeCell.js | 2 +- tests/JavaScript/CompositeHeader.js | 2 +- .../TestingUtils/TestObjects.Json/ROCrate.fs | 10 +-- tests/TestingUtils/TestingUtils.fsproj | 4 +- tests/TestingUtils/packages.lock.json | 69 +++++++++++++++++-- 12 files changed, 199 insertions(+), 42 deletions(-) create mode 100644 tests/Core/Comment.Tests.fs diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 62e5661c..c630af3e 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "fable": { - "version": "4.16.0", + "version": "4.22.0", "commands": [ "fable" ] diff --git a/build/TestTasks.fs b/build/TestTasks.fs index dfcbfd2a..d1594259 100644 --- a/build/TestTasks.fs +++ b/build/TestTasks.fs @@ -22,7 +22,7 @@ module RunTests = Trace.traceImportant "Start native JavaScript tests" for path in ProjectInfo.jsTestProjects do // transpile library for native access - run dotnet $"fable src/ARCtrl -o {path}/ARCtrl" "" + run dotnet $"fable src/ARCtrl/ARCtrl.Javascript.fsproj -o {path}/ARCtrl" "" GenerateIndexJs.ARCtrl_generate($"{path}/ARCtrl") run npx $"mocha {path} --timeout 20000" "" } @@ -40,7 +40,7 @@ module RunTests = Trace.traceImportant "Start native Python tests" for path in ProjectInfo.pyTestProjects do // transpile library for native access - run dotnet $"fable src/ARCtrl -o {path}/ARCtrl --lang python" "" + run dotnet $"fable src/ARCtrl/ARCtrl.Python.fsproj -o {path}/ARCtrl --lang python" "" GenerateIndexPy.ARCtrl_generate($"{path}/ARCtrl") run python $"-m pytest {path}" "" } diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json index 471bc2f3..346acd34 100644 --- a/src/ARCtrl/packages.lock.json +++ b/src/ARCtrl/packages.lock.json @@ -2,6 +2,19 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Fetch": { + "type": "Direct", + "requested": "[2.6.0, )", + "resolved": "2.6.0", + "contentHash": "zhCl95EYeuKcc7bk2jGHLSuLhkPqvRcrlwC91GqgX51BlQ7WJF2IQ7mUxW2n1mg74M1D2VOwEKqQpTAZDCVa8Q==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Browser.Blob": "1.2.0", + "Fable.Browser.Event": "1.5.0", + "Fable.Core": "3.7.1", + "Fable.Promise": "2.2.2" + } + }, "Fable.SimpleHttp": { "type": "Direct", "requested": "[3.5.0, )", @@ -23,25 +36,24 @@ "Microsoft.NETCore.Platforms": "1.1.0" } }, - "Thoth.Json.Newtonsoft": { + "Thoth.Json.JavaScript": { "type": "Direct", - "requested": "[0.2.0, )", - "resolved": "0.2.0", - "contentHash": "dMQOT6TJftO97c8gHWFegfSw/0/E+VdhGaSkf3e1Ba+DjrAESLA9HMlYyE30x7nhn7w5SfH1WO9YyzSRTV4Ysg==", + "requested": "[0.3.0, )", + "resolved": "0.3.0", + "contentHash": "A4Cwv+RigC52/OdcrU2woEvjd6rsiDlQGDNTqwXYe3Yh6cdzcLWTfmmwTuCOXgV8SMbcSkviqiS2AG5BS42ayg==", "dependencies": { "FSharp.Core": "5.0.0", "Fable.Core": "4.1.0", - "Fable.Package.SDK": "0.1.0", - "Newtonsoft.Json": "13.0.1", - "Thoth.Json.Core": "0.3.0" + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" } }, "Fable.Browser.Blob": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "resolved": "1.2.0", + "contentHash": "bM4zbtIeycTFFCH7o4WuN28W70dTxNTMZiMvR70XUTYrBnbz7GpS5XxzUy5caDB4l7s2l7wiuVDhh52t7NXxDg==", "dependencies": { - "FSharp.Core": "4.6.2", + "FSharp.Core": "4.7.2", "Fable.Core": "3.0.0" } }, @@ -59,10 +71,20 @@ }, "Fable.Browser.Event": { "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "resolved": "1.5.0", + "contentHash": "Bx2AOOASIG1Eq1Pe8869H8baMePte6STmKGccGuOYMT2p6nWVS8G6ZBZb5encQ0tAL2/0vhA4KJOl4bYwUaQqg==", "dependencies": { - "FSharp.Core": "4.5.2", + "FSharp.Core": "4.7.2", + "Fable.Browser.Gamepad": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Gamepad": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "8m/Ae/mrH2Hb2ue435rTPEeVb2FhfWsRJJLpCxMvk+5EUOO2+IIjIkLq4thUfRL98uQVt9V5cQd14h2aBf2XJA==", + "dependencies": { + "FSharp.Core": "4.7.2", "Fable.Core": "3.0.0" } }, @@ -87,16 +109,20 @@ "Fable.Core": "3.0.0" } }, + "Fable.Promise": { + "type": "Transitive", + "resolved": "2.2.2", + "contentHash": "yHFSo7GCY0l/Wjskh/HESuFoGzXIoRM22UlrARA5ewnX736Y1wM27kcqCWeGcIzaEsgJnZcDkp093M0gQyMcWA==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "3.1.5" + } + }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.1", - "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" - }, "arctrl.contract": { "type": "Project", "dependencies": { diff --git a/src/Core/Comment.fs b/src/Core/Comment.fs index ea1cd402..b7f7b2a9 100644 --- a/src/Core/Comment.fs +++ b/src/Core/Comment.fs @@ -4,6 +4,7 @@ type EMail = string open Fable.Core open ARCtrl.Helper +open System.Text.RegularExpressions [] type Comment(?name, ?value) = @@ -51,7 +52,7 @@ type Comment(?name, ?value) = "Value", this.Value ] |> List.choose (fun (s,opt) -> opt |> Option.map (fun o -> s,o)) - |> List.map (fun (s,v) -> sprintf "%s = %A" s v) + |> List.map (fun (s,v) -> sprintf "%s = \"%s\"" s v) |> String.concat ", " |> sb.Append |> ignore @@ -60,10 +61,42 @@ type Comment(?name, ?value) = // Reverse function to ToString() override static member fromString(s) = - let nameRegex = System.Text.RegularExpressions.Regex("(?<=Name = \")[^\"]*(?=\",|})").Match(s) - let valueRegex = System.Text.RegularExpressions.Regex("(?<=Value = \")[^\"]*(?=\",|\"})").Match(s) - let name = if nameRegex.Success then Some nameRegex.Value else None - let value = if valueRegex.Success then Some valueRegex.Value else None + + + // Buggy because of fable + + //let namePattern = Regex.Pattern.handleGroupPatterns """(?<=Name = ")[^"]*(?=")""" + ////let nameResult = Regex(namePattern).Match(s) + //let nameResult = Regex.Match(s, namePattern) + + //let valuePattern = Regex.Pattern.handleGroupPatterns """(?<=Value = ")[^"]*(?=")""" + ////let valueResult = Regex(valuePattern).Match(s) + //let valueResult = Regex.Match(s, valuePattern) + + //let name = if nameResult.Success then Some nameResult.Value else None + //let value = if valueResult.Success then Some valueResult.Value else None + + + + let namePattern = Regex.Pattern.handleGroupPatterns "Name = \"[^\"]*\"" + //let nameResult = Regex(namePattern).Match(s) + let nameResult = Regex.Match(s, namePattern) + + let valuePattern = Regex.Pattern.handleGroupPatterns "Value = \"[^\"]*\"" + //let valueResult = Regex(valuePattern).Match(s) + let valueResult = Regex.Match(s, valuePattern) + + let name = if nameResult.Success then Some (nameResult.Value.Replace("Name = ","").Replace("\"","")) else None + let value = if valueResult.Success then Some (valueResult.Value.Replace("Value = ","").Replace("\"","")) else None + + + + + + + + + Comment(?name=name, ?value=value) diff --git a/tests/Core/ARCtrl.Core.Tests.fsproj b/tests/Core/ARCtrl.Core.Tests.fsproj index 6fed7e04..19b4f441 100644 --- a/tests/Core/ARCtrl.Core.Tests.fsproj +++ b/tests/Core/ARCtrl.Core.Tests.fsproj @@ -8,6 +8,7 @@ + diff --git a/tests/Core/Comment.Tests.fs b/tests/Core/Comment.Tests.fs new file mode 100644 index 00000000..5f5ac840 --- /dev/null +++ b/tests/Core/Comment.Tests.fs @@ -0,0 +1,39 @@ +module Comment.Tests + +open TestingUtils +open ARCtrl + +let private tests_toAndFromString = testList "ToAndFromString" [ + testCase "Empty" (fun () -> + let c = Comment() + let s = c.ToString() + printfn "%s" s + let c2 = Comment.fromString s + Expect.equal c c2 "Should be equal" + ) + testCase "Only Name" (fun () -> + let c = Comment("MyName") + let s = c.ToString() + printfn "%s" s + let c2 = Comment.fromString s + Expect.equal c c2 "Should be equal" + ) + testCase "Only Value" (fun () -> + let c = Comment(value = "MyValue") + let s = c.ToString() + printfn "%s" s + let c2 = Comment.fromString s + Expect.equal c c2 "Should be equal" + ) + testCase "Name and Value" (fun () -> + let c = Comment("MyName","MyValue") + let s = c.ToString() + printfn "%s" s + let c2 = Comment.fromString s + Expect.equal c c2 "Should be equal" + ) +] + +let main = testList "Comment" [ + tests_toAndFromString +] \ No newline at end of file diff --git a/tests/Core/Main.fs b/tests/Core/Main.fs index 864f4d07..d510bdc5 100644 --- a/tests/Core/Main.fs +++ b/tests/Core/Main.fs @@ -1,10 +1,11 @@ -module ARCtrl.ISADotnet.Tests +module ARCtrl.ISADotnet.Tests open Fable.Pyxpecto let all = testSequenced <| testList "Core" [ UriHelper.Tests.main DataModel.Tests.main + Comment.Tests.main OntologyAnnotation.Tests.main Regex.Tests.main Person.Tests.main diff --git a/tests/JavaScript/CompositeCell.js b/tests/JavaScript/CompositeCell.js index 876b98b3..9dfad312 100644 --- a/tests/JavaScript/CompositeCell.js +++ b/tests/JavaScript/CompositeCell.js @@ -1,7 +1,7 @@ import { equal, deepEqual, notEqual } from 'assert'; import { CompositeCell } from "./ARCtrl/index.js" import { OntologyAnnotation } from './ARCtrl/index.js'; -import { assertEqual } from './ARCtrl/fable_modules/fable-library-js.4.16.0/Util.js'; +import { assertEqual } from './ARCtrl/fable_modules/fable-library-js.4.22.0/Util.js'; describe('CompositeCell', function () { it('Primary Constructor', function() { diff --git a/tests/JavaScript/CompositeHeader.js b/tests/JavaScript/CompositeHeader.js index 63865c7a..a939881c 100644 --- a/tests/JavaScript/CompositeHeader.js +++ b/tests/JavaScript/CompositeHeader.js @@ -1,7 +1,7 @@ import { equal, deepEqual, notEqual } from 'assert'; import { CompositeHeader, IOType } from "./ARCtrl/index.js" import { OntologyAnnotation } from './ARCtrl/index.js'; -import { assertEqual } from './ARCtrl/fable_modules/fable-library-js.4.16.0/Util.js'; +import { assertEqual } from './ARCtrl/fable_modules/fable-library-js.4.22.0/Util.js'; function tests_IOType() { describe('IOType', function () { diff --git a/tests/TestingUtils/TestObjects.Json/ROCrate.fs b/tests/TestingUtils/TestObjects.Json/ROCrate.fs index 0e9ae53c..e58744b2 100644 --- a/tests/TestingUtils/TestObjects.Json/ROCrate.fs +++ b/tests/TestingUtils/TestObjects.Json/ROCrate.fs @@ -8,7 +8,7 @@ let definedTerm = """{ "termSource": "MS", "termAccession": "http://purl.obolibrary.org/obo/NCIT_C16965", "comments": [ - "{\"@id\":\"#Comment_comment_This_is_a_comment\",\"@type\":\"Comment\",\"name\":\"comment\",\"value\":\"This is a comment\",\"@context\":{\"sdo\":\"http://schema.org/\",\"Comment\":\"sdo:Comment\",\"name\":\"sdo:name\",\"value\":\"sdo:text\"}}" + "Comment {Name = \"comment\", Value= \"This is a comment\"}" ], "@context": { "sdo": "http://schema.org/", @@ -26,7 +26,7 @@ let propertyValue = """{ "category": "Peptidase", "categoryCode": "http://purl.obolibrary.org/obo/NCIT_C16965", "comments": [ - "{\"@id\":\"#Comment_comment_This_is_a_comment\",\"@type\":\"Comment\",\"name\":\"comment\",\"value\":\"This is a comment\",\"@context\":{\"sdo\":\"http://schema.org/\",\"Comment\":\"sdo:Comment\",\"name\":\"sdo:name\",\"value\":\"sdo:text\"}}" + "Comment {Name = \"comment\", Value= \"This is a comment\"}" ], "@context": { "sdo": "http://schema.org/", @@ -107,7 +107,7 @@ let person = """{ } ], "comments": [ - "{\"@id\":\"#Comment_Wow_Very_Wow\",\"@type\":\"Comment\",\"name\":\"Wow\",\"value\":\"Very Wow\",\"@context\":{\"sdo\":\"http://schema.org/\",\"Comment\":\"sdo:Comment\",\"name\":\"sdo:name\",\"value\":\"sdo:text\"}}" + "Comment {Name = \"Wow\", Value= \"VeryWow\"}" ], "@context": { "sdo": "http://schema.org/", @@ -186,8 +186,8 @@ let publication = """{ } }, "comments": [ - "{\"@id\":\"#Comment_ByeBye_World\",\"@type\":\"Comment\",\"name\":\"ByeBye\",\"value\":\"World\",\"@context\":{\"sdo\":\"http://schema.org/\",\"Comment\":\"sdo:Comment\",\"name\":\"sdo:name\",\"value\":\"sdo:text\"}}", - "{\"@id\":\"#Comment_Hello_Space\",\"@type\":\"Comment\",\"name\":\"Hello\",\"value\":\"Space\",\"@context\":{\"sdo\":\"http://schema.org/\",\"Comment\":\"sdo:Comment\",\"name\":\"sdo:name\",\"value\":\"sdo:text\"}}" + "Comment {Name = \"ByeBye\", Value= \"World\"}", + "Comment {Name = \"Hello\", Value= \"Space\"}" ], "@context": { "sdo": "http://schema.org/", diff --git a/tests/TestingUtils/TestingUtils.fsproj b/tests/TestingUtils/TestingUtils.fsproj index b15926b9..5b0cacab 100644 --- a/tests/TestingUtils/TestingUtils.fsproj +++ b/tests/TestingUtils/TestingUtils.fsproj @@ -33,8 +33,8 @@ - - + + diff --git a/tests/TestingUtils/packages.lock.json b/tests/TestingUtils/packages.lock.json index 1ce670e4..ea98cb8a 100644 --- a/tests/TestingUtils/packages.lock.json +++ b/tests/TestingUtils/packages.lock.json @@ -25,10 +25,10 @@ }, "Fable.Browser.Blob": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "resolved": "1.2.0", + "contentHash": "bM4zbtIeycTFFCH7o4WuN28W70dTxNTMZiMvR70XUTYrBnbz7GpS5XxzUy5caDB4l7s2l7wiuVDhh52t7NXxDg==", "dependencies": { - "FSharp.Core": "4.6.2", + "FSharp.Core": "4.7.2", "Fable.Core": "3.0.0" } }, @@ -46,10 +46,20 @@ }, "Fable.Browser.Event": { "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "resolved": "1.5.0", + "contentHash": "Bx2AOOASIG1Eq1Pe8869H8baMePte6STmKGccGuOYMT2p6nWVS8G6ZBZb5encQ0tAL2/0vhA4KJOl4bYwUaQqg==", "dependencies": { - "FSharp.Core": "4.5.2", + "FSharp.Core": "4.7.2", + "Fable.Browser.Gamepad": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Gamepad": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "8m/Ae/mrH2Hb2ue435rTPEeVb2FhfWsRJJLpCxMvk+5EUOO2+IIjIkLq4thUfRL98uQVt9V5cQd14h2aBf2XJA==", + "dependencies": { + "FSharp.Core": "4.7.2", "Fable.Core": "3.0.0" } }, @@ -74,6 +84,15 @@ "Fable.Core": "3.0.0" } }, + "Fable.Promise": { + "type": "Transitive", + "resolved": "2.2.2", + "contentHash": "yHFSo7GCY0l/Wjskh/HESuFoGzXIoRM22UlrARA5ewnX736Y1wM27kcqCWeGcIzaEsgJnZcDkp093M0gQyMcWA==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "3.1.5" + } + }, "Fable.Python": { "type": "Transitive", "resolved": "4.3.0", @@ -126,6 +145,19 @@ "Fable.Core": "[4.3.0, )" } }, + "arctrl.javascript": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Fetch": "[2.6.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Javascript": "[0.3.0, )" + } + }, "arctrl.json": { "type": "Project", "dependencies": { @@ -179,6 +211,19 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, + "Fable.Fetch": { + "type": "CentralTransitive", + "requested": "[2.6.0, )", + "resolved": "2.6.0", + "contentHash": "zhCl95EYeuKcc7bk2jGHLSuLhkPqvRcrlwC91GqgX51BlQ7WJF2IQ7mUxW2n1mg74M1D2VOwEKqQpTAZDCVa8Q==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Browser.Blob": "1.2.0", + "Fable.Browser.Event": "1.5.0", + "Fable.Core": "3.7.1", + "Fable.Promise": "2.2.2" + } + }, "Fable.Package.SDK": { "type": "CentralTransitive", "requested": "[1.0.0, )", @@ -225,6 +270,18 @@ "Fable.Package.SDK": "1.0.0" } }, + "Thoth.Json.JavaScript": { + "type": "CentralTransitive", + "requested": "[0.3.0, )", + "resolved": "0.3.0", + "contentHash": "A4Cwv+RigC52/OdcrU2woEvjd6rsiDlQGDNTqwXYe3Yh6cdzcLWTfmmwTuCOXgV8SMbcSkviqiS2AG5BS42ayg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, "Thoth.Json.Newtonsoft": { "type": "CentralTransitive", "requested": "[0.2.0, )", From 3586dee6a736d3ad2ed9e79778e3ea136c638eac Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Wed, 2 Oct 2024 14:58:33 +0200 Subject: [PATCH 08/15] remove restorelockedmode flag --- Directory.Build.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 1c1ceb55..bc970e86 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,14 +4,14 @@ true true - + 3 From 755879dbf3d30d1305ae8645fdf84338ce89c26a Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Wed, 2 Oct 2024 16:20:28 +0200 Subject: [PATCH 09/15] move duplicate project references into props files --- Directory.Build.props | 12 ++++ src/ARCtrl/ARCtrl.Common.props | 58 ++++++++++++++++ src/ARCtrl/ARCtrl.Javascript.fsproj | 64 +----------------- src/ARCtrl/ARCtrl.Python.fsproj | 61 +---------------- src/ARCtrl/ARCtrl.fsproj | 67 ++----------------- src/CWL/ARCtrl.CWL.fsproj | 5 -- src/Contract/ARCtrl.Contract.fsproj | 5 -- src/Core/ARCtrl.Core.fsproj | 5 -- src/FileSystem/ARCtrl.FileSystem.fsproj | 5 -- src/Json/ARCtrl.Json.fsproj | 5 -- src/ROCrate/ARCtrl.ROCrate.fsproj | 9 +-- src/Spreadsheet/ARCtrl.Spreadsheet.fsproj | 5 -- .../ARCtrl.ValidationPackages.fsproj | 5 -- src/Yaml/ARCtrl.Yaml.fsproj | 7 +- 14 files changed, 83 insertions(+), 230 deletions(-) create mode 100644 src/ARCtrl/ARCtrl.Common.props diff --git a/Directory.Build.props b/Directory.Build.props index bc970e86..092316d4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,4 +1,15 @@ + + + nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Florian Wetzels + MIT + logo.png + ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata + https://github.com/nfdi4plants/ARCtrl + https://github.com/nfdi4plants/ARCtrl + git + + true @@ -16,4 +27,5 @@ 3 + diff --git a/src/ARCtrl/ARCtrl.Common.props b/src/ARCtrl/ARCtrl.Common.props new file mode 100644 index 00000000..320c0901 --- /dev/null +++ b/src/ARCtrl/ARCtrl.Common.props @@ -0,0 +1,58 @@ + + + Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime agnostic contract systems. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ARCtrl/ARCtrl.Javascript.fsproj b/src/ARCtrl/ARCtrl.Javascript.fsproj index 922be4fc..8d1d4d72 100644 --- a/src/ARCtrl/ARCtrl.Javascript.fsproj +++ b/src/ARCtrl/ARCtrl.Javascript.fsproj @@ -5,86 +5,28 @@ true FABLE_COMPILER_JAVASCRIPT;FABLE_COMPILER;FABLE_COMPILER_TYPESCRIPT - - nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Oliver Maus - Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems. - MIT - logo.png - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl - https://github.com/nfdi4plants/ARCtrl - git - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + \ No newline at end of file diff --git a/src/ARCtrl/ARCtrl.Python.fsproj b/src/ARCtrl/ARCtrl.Python.fsproj index 49258f69..06c37307 100644 --- a/src/ARCtrl/ARCtrl.Python.fsproj +++ b/src/ARCtrl/ARCtrl.Python.fsproj @@ -5,74 +5,17 @@ true FABLE_COMPILER_PYTHON;FABLE_COMPILER - - nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Oliver Maus - Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems. - MIT - logo.png - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl - https://github.com/nfdi4plants/ARCtrl - git - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - diff --git a/src/ARCtrl/ARCtrl.fsproj b/src/ARCtrl/ARCtrl.fsproj index a2639207..965f8efe 100644 --- a/src/ARCtrl/ARCtrl.fsproj +++ b/src/ARCtrl/ARCtrl.fsproj @@ -4,77 +4,20 @@ netstandard2.0 true - - nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Oliver Maus - Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems. - MIT - logo.png - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl - https://github.com/nfdi4plants/ARCtrl - git - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/src/CWL/ARCtrl.CWL.fsproj b/src/CWL/ARCtrl.CWL.fsproj index 4638150e..cd1743ba 100644 --- a/src/CWL/ARCtrl.CWL.fsproj +++ b/src/CWL/ARCtrl.CWL.fsproj @@ -12,13 +12,8 @@ - nfdi4plants ARC helper functions for Common workflow language. - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - https://github.com/nfdi4plants/ARCtrl - git diff --git a/src/Contract/ARCtrl.Contract.fsproj b/src/Contract/ARCtrl.Contract.fsproj index c864f67e..5be0743d 100644 --- a/src/Contract/ARCtrl.Contract.fsproj +++ b/src/Contract/ARCtrl.Contract.fsproj @@ -26,13 +26,8 @@ - nfdi4plants, Kevin Frey, Lukas Weil, Kevin Schneider, Oliver Maus ARC helper functions for contracts management. - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata https://github.com/nfdi4plants/ARCtrl/tree/main/src/Contract - https://github.com/nfdi4plants/ARCtrl - git \ No newline at end of file diff --git a/src/Core/ARCtrl.Core.fsproj b/src/Core/ARCtrl.Core.fsproj index e872ab33..f4af0107 100644 --- a/src/Core/ARCtrl.Core.fsproj +++ b/src/Core/ARCtrl.Core.fsproj @@ -63,13 +63,8 @@ - nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Oliver Maus ARC and ISA compliant experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in the dotnet environment. - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata investigation study assay ISA Json https://github.com/nfdi4plants/ARCtrl/tree/main/src/ISA - https://github.com/nfdi4plants/ARCtrl - git \ No newline at end of file diff --git a/src/FileSystem/ARCtrl.FileSystem.fsproj b/src/FileSystem/ARCtrl.FileSystem.fsproj index afe500a2..6f78a32e 100644 --- a/src/FileSystem/ARCtrl.FileSystem.fsproj +++ b/src/FileSystem/ARCtrl.FileSystem.fsproj @@ -20,13 +20,8 @@ - nfdi4plants, Kevin Frey, Lukas Weil ARC helper functions for filesystem management. - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata https://github.com/nfdi4plants/ARCtrl/tree/main/src/FileSystem - https://github.com/nfdi4plants/ARCtrl - git \ No newline at end of file diff --git a/src/Json/ARCtrl.Json.fsproj b/src/Json/ARCtrl.Json.fsproj index d8e5192e..a2b024fd 100644 --- a/src/Json/ARCtrl.Json.fsproj +++ b/src/Json/ARCtrl.Json.fsproj @@ -87,13 +87,8 @@ - nfdi4plants, Lukas Weil, Kevin Frey, Florian Wetzels ARC and ISA json compliant parser for experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in isa-json format. - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata investigation study assay ISA Json https://github.com/nfdi4plants/ARCtrl/tree/main/src/ISA - https://github.com/nfdi4plants/ARCtrl - git \ No newline at end of file diff --git a/src/ROCrate/ARCtrl.ROCrate.fsproj b/src/ROCrate/ARCtrl.ROCrate.fsproj index 348f3c43..cd1d02a2 100644 --- a/src/ROCrate/ARCtrl.ROCrate.fsproj +++ b/src/ROCrate/ARCtrl.ROCrate.fsproj @@ -21,17 +21,12 @@ - - + + - Kevin Schneider, nfdi4plants, DataPLANT OSS contributors A data model of the ARC concept via it's RO Crate profile - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - https://github.com/nfdi4plants/ARCtrl - git diff --git a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj index 96283580..aaec7d9a 100644 --- a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj +++ b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj @@ -44,13 +44,8 @@ - nfdi4plants, Lukas Weil ARC and ISA xlsx compliant parser for experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in isa-xlsx format. - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata investigation study assay ISA Spreadsheet xlsx excel https://github.com/nfdi4plants/ARCtrl/tree/main/src/ISA - https://github.com/nfdi4plants/ARCtrl - git \ No newline at end of file diff --git a/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj b/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj index 0790caae..d9fb32a7 100644 --- a/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj +++ b/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj @@ -17,13 +17,8 @@ - nfdi4plants ARC helper functions for Common workflow language. - MIT - logo.png ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - https://github.com/nfdi4plants/ARCtrl - git \ No newline at end of file diff --git a/src/Yaml/ARCtrl.Yaml.fsproj b/src/Yaml/ARCtrl.Yaml.fsproj index a196e88b..bf08f52d 100644 --- a/src/Yaml/ARCtrl.Yaml.fsproj +++ b/src/Yaml/ARCtrl.Yaml.fsproj @@ -22,13 +22,8 @@ - nfdi4plants - ARC helper functions for Common workflow language. - MIT - logo.png + ARC helper functions for Parsing YAML files. ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - https://github.com/nfdi4plants/ARCtrl - git \ No newline at end of file From 93030e915329c23b4b4f8cddc5b622312de6cedb Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Wed, 2 Oct 2024 17:50:31 +0200 Subject: [PATCH 10/15] Make use of Fable.Package.SDK --- ARCtrl.sln | 1 + Directory.Build.props | 11 -- Directory.Packages.props | 2 +- src/ARCtrl/ARCtrl.Javascript.fsproj | 8 +- src/ARCtrl/ARCtrl.Python.fsproj | 9 +- src/ARCtrl/ARCtrl.fsproj | 6 +- src/ARCtrl/packages.lock.json | 152 +++++------------- src/CWL/ARCtrl.CWL.fsproj | 8 +- src/CWL/packages.lock.json | 6 + src/Contract/ARCtrl.Contract.fsproj | 9 +- src/Contract/packages.lock.json | 30 ++-- src/Core/ARCtrl.Core.fsproj | 9 +- src/Core/packages.lock.json | 14 +- src/FileSystem/ARCtrl.FileSystem.fsproj | 8 +- src/FileSystem/packages.lock.json | 6 + src/Json/ARCtrl.Json.fsproj | 8 +- src/Json/packages.lock.json | 24 +-- src/Package.Metadata.props | 23 +++ src/ROCrate/ARCtrl.ROCrate.fsproj | 7 +- src/ROCrate/packages.lock.json | 12 +- src/Spreadsheet/ARCtrl.Spreadsheet.fsproj | 9 +- src/Spreadsheet/packages.lock.json | 23 +-- .../ARCtrl.ValidationPackages.fsproj | 10 +- src/ValidationPackages/packages.lock.json | 17 +- src/Yaml/ARCtrl.Yaml.fsproj | 10 +- src/Yaml/packages.lock.json | 20 ++- tests/ARCtrl/packages.lock.json | 28 +++- tests/Contract/packages.lock.json | 28 +++- tests/Core/packages.lock.json | 28 +++- tests/FileSystem/packages.lock.json | 28 +++- tests/Json/packages.lock.json | 28 +++- tests/ROCrate/packages.lock.json | 28 +++- tests/Speedtest/packages.lock.json | 28 +++- tests/Spreadsheet/packages.lock.json | 28 +++- tests/TestingUtils/packages.lock.json | 30 +++- tests/ValidationPackages/packages.lock.json | 28 +++- tests/Yaml/packages.lock.json | 28 +++- 37 files changed, 431 insertions(+), 321 deletions(-) create mode 100644 src/Package.Metadata.props diff --git a/ARCtrl.sln b/ARCtrl.sln index ff55c1fb..dc915876 100644 --- a/ARCtrl.sln +++ b/ARCtrl.sln @@ -29,6 +29,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{6DA2330B-D40 ProjectSection(SolutionItems) = preProject src\ARCtrl\ARCtrl.Javascript.fsproj = src\ARCtrl\ARCtrl.Javascript.fsproj src\ARCtrl\ARCtrl.Python.fsproj = src\ARCtrl\ARCtrl.Python.fsproj + src\Package.Metadata.props = src\Package.Metadata.props EndProjectSection EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Build", "build\Build.fsproj", "{5EAFB0CD-1168-4FCA-AA61-E96AD6C85819}" diff --git a/Directory.Build.props b/Directory.Build.props index 092316d4..59119618 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,15 +1,4 @@ - - - nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Florian Wetzels - MIT - logo.png - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl - https://github.com/nfdi4plants/ARCtrl - git - - true diff --git a/Directory.Packages.props b/Directory.Packages.props index 2288bec7..a2c404b0 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,7 +4,7 @@ - + diff --git a/src/ARCtrl/ARCtrl.Javascript.fsproj b/src/ARCtrl/ARCtrl.Javascript.fsproj index 8d1d4d72..20c2fabc 100644 --- a/src/ARCtrl/ARCtrl.Javascript.fsproj +++ b/src/ARCtrl/ARCtrl.Javascript.fsproj @@ -1,10 +1,11 @@ - netstandard2.0 - true + fable-javascript FABLE_COMPILER_JAVASCRIPT;FABLE_COMPILER;FABLE_COMPILER_TYPESCRIPT + + @@ -20,9 +21,6 @@ - - - diff --git a/src/ARCtrl/ARCtrl.Python.fsproj b/src/ARCtrl/ARCtrl.Python.fsproj index 06c37307..2f5a1ccd 100644 --- a/src/ARCtrl/ARCtrl.Python.fsproj +++ b/src/ARCtrl/ARCtrl.Python.fsproj @@ -1,10 +1,11 @@ - netstandard2.0 - true + fable-python FABLE_COMPILER_PYTHON;FABLE_COMPILER + + @@ -14,9 +15,7 @@ - - - + diff --git a/src/ARCtrl/ARCtrl.fsproj b/src/ARCtrl/ARCtrl.fsproj index 965f8efe..7e055d9b 100644 --- a/src/ARCtrl/ARCtrl.fsproj +++ b/src/ARCtrl/ARCtrl.fsproj @@ -1,10 +1,10 @@ - netstandard2.0 - true + fable-dotnet - + + diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json index 346acd34..466b1b64 100644 --- a/src/ARCtrl/packages.lock.json +++ b/src/ARCtrl/packages.lock.json @@ -2,30 +2,11 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { - "Fable.Fetch": { - "type": "Direct", - "requested": "[2.6.0, )", - "resolved": "2.6.0", - "contentHash": "zhCl95EYeuKcc7bk2jGHLSuLhkPqvRcrlwC91GqgX51BlQ7WJF2IQ7mUxW2n1mg74M1D2VOwEKqQpTAZDCVa8Q==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Browser.Blob": "1.2.0", - "Fable.Browser.Event": "1.5.0", - "Fable.Core": "3.7.1", - "Fable.Promise": "2.2.2" - } - }, - "Fable.SimpleHttp": { + "Fable.Package.SDK": { "type": "Direct", - "requested": "[3.5.0, )", - "resolved": "3.5.0", - "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", - "dependencies": { - "FSharp.Core": "4.6.2", - "Fable.Browser.Dom": "1.0.0", - "Fable.Browser.XMLHttpRequest": "1.1.0", - "Fable.Core": "3.0.0" - } + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "NETStandard.Library": { "type": "Direct", @@ -36,86 +17,26 @@ "Microsoft.NETCore.Platforms": "1.1.0" } }, - "Thoth.Json.JavaScript": { + "Thoth.Json.Python": { "type": "Direct", - "requested": "[0.3.0, )", - "resolved": "0.3.0", - "contentHash": "A4Cwv+RigC52/OdcrU2woEvjd6rsiDlQGDNTqwXYe3Yh6cdzcLWTfmmwTuCOXgV8SMbcSkviqiS2AG5BS42ayg==", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "O86Oisv/91NpbHENz11poZh9zrTRJdAjDXHVC1JqvDDsscelI7HxOmWgks8ZFvYxbBzNJCG+FKQHC10KzyMf8g==", "dependencies": { "FSharp.Core": "5.0.0", "Fable.Core": "4.1.0", "Fable.Package.SDK": "1.0.0", + "Fable.Python": "4.3.0", "Thoth.Json.Core": "0.4.0" } }, - "Fable.Browser.Blob": { - "type": "Transitive", - "resolved": "1.2.0", - "contentHash": "bM4zbtIeycTFFCH7o4WuN28W70dTxNTMZiMvR70XUTYrBnbz7GpS5XxzUy5caDB4l7s2l7wiuVDhh52t7NXxDg==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Dom": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", - "dependencies": { - "FSharp.Core": "4.5.2", - "Fable.Browser.Blob": "1.0.0", - "Fable.Browser.Event": "1.0.0", - "Fable.Browser.WebStorage": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Event": { + "Fable.Python": { "type": "Transitive", - "resolved": "1.5.0", - "contentHash": "Bx2AOOASIG1Eq1Pe8869H8baMePte6STmKGccGuOYMT2p6nWVS8G6ZBZb5encQ0tAL2/0vhA4KJOl4bYwUaQqg==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Browser.Gamepad": "1.1.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Gamepad": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "8m/Ae/mrH2Hb2ue435rTPEeVb2FhfWsRJJLpCxMvk+5EUOO2+IIjIkLq4thUfRL98uQVt9V5cQd14h2aBf2XJA==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.WebStorage": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", - "dependencies": { - "FSharp.Core": "4.5.2", - "Fable.Browser.Event": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.XMLHttpRequest": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", - "dependencies": { - "FSharp.Core": "4.6.2", - "Fable.Browser.Blob": "1.1.0", - "Fable.Browser.Event": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Promise": { - "type": "Transitive", - "resolved": "2.2.2", - "contentHash": "yHFSo7GCY0l/Wjskh/HESuFoGzXIoRM22UlrARA5ewnX736Y1wM27kcqCWeGcIzaEsgJnZcDkp093M0gQyMcWA==", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", "dependencies": { "FSharp.Core": "4.7.2", - "Fable.Core": "3.1.5" + "Fable.Core": "[4.1.0, 5.0.0)" } }, "Microsoft.NETCore.Platforms": { @@ -126,33 +47,40 @@ "arctrl.contract": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.Json": "[1.0.0, )", - "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Core": "[2.0.1, )", + "ARCtrl.Json": "[2.0.1, )", + "ARCtrl.Spreadsheet": "[2.0.1, )", + "ARCtrl.Yaml": "[2.0.1, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { - "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.CWL": "[2.0.1, )", + "ARCtrl.FileSystem": "[2.0.1, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", + "ARCtrl.Core": "[2.0.1, )", + "ARCtrl.ROCrate": "[2.0.1, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -160,28 +88,32 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, "arctrl.spreadsheet": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Core": "[2.0.1, )", + "ARCtrl.FileSystem": "[2.0.1, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[2.0.1, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.ValidationPackages": "[1.0.0, )", + "ARCtrl.Core": "[2.0.1, )", + "ARCtrl.ValidationPackages": "[2.0.1, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -201,12 +133,6 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" - }, "FSharp.Core": { "type": "CentralTransitive", "requested": "[8.0.1, )", diff --git a/src/CWL/ARCtrl.CWL.fsproj b/src/CWL/ARCtrl.CWL.fsproj index cd1743ba..c57dadfe 100644 --- a/src/CWL/ARCtrl.CWL.fsproj +++ b/src/CWL/ARCtrl.CWL.fsproj @@ -1,16 +1,12 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet + - - - - ARC helper functions for Common workflow language. ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata diff --git a/src/CWL/packages.lock.json b/src/CWL/packages.lock.json index 52243095..15403c2f 100644 --- a/src/CWL/packages.lock.json +++ b/src/CWL/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", diff --git a/src/Contract/ARCtrl.Contract.fsproj b/src/Contract/ARCtrl.Contract.fsproj index 5be0743d..87d15c10 100644 --- a/src/Contract/ARCtrl.Contract.fsproj +++ b/src/Contract/ARCtrl.Contract.fsproj @@ -1,9 +1,10 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet + + @@ -21,10 +22,6 @@ - - - - ARC helper functions for contracts management. ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata diff --git a/src/Contract/packages.lock.json b/src/Contract/packages.lock.json index 38efc7c4..13c86c0f 100644 --- a/src/Contract/packages.lock.json +++ b/src/Contract/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -20,16 +26,21 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -37,6 +48,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -44,6 +56,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -52,13 +65,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -66,6 +81,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -85,12 +101,6 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" - }, "FSharp.Core": { "type": "CentralTransitive", "requested": "[8.0.1, )", diff --git a/src/Core/ARCtrl.Core.fsproj b/src/Core/ARCtrl.Core.fsproj index f4af0107..483d25b8 100644 --- a/src/Core/ARCtrl.Core.fsproj +++ b/src/Core/ARCtrl.Core.fsproj @@ -1,13 +1,10 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet - - - - + + diff --git a/src/Core/packages.lock.json b/src/Core/packages.lock.json index 8a323fb5..de49f70b 100644 --- a/src/Core/packages.lock.json +++ b/src/Core/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -17,12 +23,16 @@ "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "Fable.Core": { diff --git a/src/FileSystem/ARCtrl.FileSystem.fsproj b/src/FileSystem/ARCtrl.FileSystem.fsproj index 6f78a32e..a22b7a80 100644 --- a/src/FileSystem/ARCtrl.FileSystem.fsproj +++ b/src/FileSystem/ARCtrl.FileSystem.fsproj @@ -1,9 +1,9 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet + @@ -12,10 +12,6 @@ - - - - diff --git a/src/FileSystem/packages.lock.json b/src/FileSystem/packages.lock.json index 937a31a7..9f31e01f 100644 --- a/src/FileSystem/packages.lock.json +++ b/src/FileSystem/packages.lock.json @@ -8,6 +8,12 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", diff --git a/src/Json/ARCtrl.Json.fsproj b/src/Json/ARCtrl.Json.fsproj index a2b024fd..890c5fba 100644 --- a/src/Json/ARCtrl.Json.fsproj +++ b/src/Json/ARCtrl.Json.fsproj @@ -1,13 +1,9 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet - - - - + diff --git a/src/Json/packages.lock.json b/src/Json/packages.lock.json index 0396bdce..9b3d55f8 100644 --- a/src/Json/packages.lock.json +++ b/src/Json/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -31,22 +37,28 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.rocrate": { "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -66,12 +78,6 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" - }, "FSharp.Core": { "type": "CentralTransitive", "requested": "[8.0.1, )", diff --git a/src/Package.Metadata.props b/src/Package.Metadata.props new file mode 100644 index 00000000..8a382b64 --- /dev/null +++ b/src/Package.Metadata.props @@ -0,0 +1,23 @@ + + + + netstandard2.0 + true + library + + + + nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Florian Wetzels + MIT + logo.png + ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata + https://github.com/nfdi4plants/ARCtrl + https://github.com/nfdi4plants/ARCtrl + git + + + + + + + \ No newline at end of file diff --git a/src/ROCrate/ARCtrl.ROCrate.fsproj b/src/ROCrate/ARCtrl.ROCrate.fsproj index cd1d02a2..6d129d33 100644 --- a/src/ROCrate/ARCtrl.ROCrate.fsproj +++ b/src/ROCrate/ARCtrl.ROCrate.fsproj @@ -1,9 +1,9 @@ - - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet + + @@ -18,7 +18,6 @@ - diff --git a/src/ROCrate/packages.lock.json b/src/ROCrate/packages.lock.json index 30eeebb4..e074dd87 100644 --- a/src/ROCrate/packages.lock.json +++ b/src/ROCrate/packages.lock.json @@ -12,6 +12,12 @@ "Fable.Core": "4.3.0" } }, + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -43,12 +49,6 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" - }, "FSharp.Core": { "type": "CentralTransitive", "requested": "[8.0.1, )", diff --git a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj index aaec7d9a..bc854cf5 100644 --- a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj +++ b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj @@ -1,9 +1,10 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet + + @@ -35,10 +36,6 @@ - - - - diff --git a/src/Spreadsheet/packages.lock.json b/src/Spreadsheet/packages.lock.json index c87ee156..affdcd91 100644 --- a/src/Spreadsheet/packages.lock.json +++ b/src/Spreadsheet/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "FsSpreadsheet": { "type": "Direct", "requested": "[6.3.0-alpha.4, )", @@ -31,16 +37,21 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "Fable.Core": { @@ -49,12 +60,6 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" - }, "FSharp.Core": { "type": "CentralTransitive", "requested": "[8.0.1, )", diff --git a/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj b/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj index d9fb32a7..767d5afb 100644 --- a/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj +++ b/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj @@ -1,18 +1,16 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet + + - - - - + diff --git a/src/ValidationPackages/packages.lock.json b/src/ValidationPackages/packages.lock.json index 99e0dee2..6371f9aa 100644 --- a/src/ValidationPackages/packages.lock.json +++ b/src/ValidationPackages/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -20,16 +26,21 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "Fable.Core": { diff --git a/src/Yaml/ARCtrl.Yaml.fsproj b/src/Yaml/ARCtrl.Yaml.fsproj index bf08f52d..0c217f2a 100644 --- a/src/Yaml/ARCtrl.Yaml.fsproj +++ b/src/Yaml/ARCtrl.Yaml.fsproj @@ -1,19 +1,17 @@ - netstandard2.0 - true + fable-javascript;fable-python;fable-dotnet + + - - - - + diff --git a/src/Yaml/packages.lock.json b/src/Yaml/packages.lock.json index 30784ea1..8fb839d5 100644 --- a/src/Yaml/packages.lock.json +++ b/src/Yaml/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Package.SDK": { + "type": "Direct", + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -30,22 +36,28 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "Fable.Core": { diff --git a/tests/ARCtrl/packages.lock.json b/tests/ARCtrl/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/ARCtrl/packages.lock.json +++ b/tests/ARCtrl/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/Contract/packages.lock.json b/tests/Contract/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/Contract/packages.lock.json +++ b/tests/Contract/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/Core/packages.lock.json b/tests/Core/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/Core/packages.lock.json +++ b/tests/Core/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/FileSystem/packages.lock.json b/tests/FileSystem/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/FileSystem/packages.lock.json +++ b/tests/FileSystem/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/Json/packages.lock.json b/tests/Json/packages.lock.json index 94a0fc95..51e0a8d7 100644 --- a/tests/Json/packages.lock.json +++ b/tests/Json/packages.lock.json @@ -396,6 +396,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -406,23 +407,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -430,6 +437,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -437,6 +445,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -445,13 +454,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -459,6 +470,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -498,9 +510,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/ROCrate/packages.lock.json b/tests/ROCrate/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/ROCrate/packages.lock.json +++ b/tests/ROCrate/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/Speedtest/packages.lock.json b/tests/Speedtest/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/Speedtest/packages.lock.json +++ b/tests/Speedtest/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/Spreadsheet/packages.lock.json b/tests/Spreadsheet/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/Spreadsheet/packages.lock.json +++ b/tests/Spreadsheet/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/TestingUtils/packages.lock.json b/tests/TestingUtils/packages.lock.json index ea98cb8a..65ddd26a 100644 --- a/tests/TestingUtils/packages.lock.json +++ b/tests/TestingUtils/packages.lock.json @@ -116,6 +116,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -126,23 +127,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.javascript": { @@ -152,8 +159,10 @@ "ARCtrl.Contract": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", "Fable.Fetch": "[2.6.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Javascript": "[0.3.0, )" } @@ -163,6 +172,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -170,6 +180,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -178,13 +189,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -192,6 +205,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -226,9 +240,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.SimpleHttp": { "type": "CentralTransitive", diff --git a/tests/ValidationPackages/packages.lock.json b/tests/ValidationPackages/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/ValidationPackages/packages.lock.json +++ b/tests/ValidationPackages/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", diff --git a/tests/Yaml/packages.lock.json b/tests/Yaml/packages.lock.json index 12c48c7d..0436031c 100644 --- a/tests/Yaml/packages.lock.json +++ b/tests/Yaml/packages.lock.json @@ -76,6 +76,7 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -86,23 +87,29 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Yaml": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.cwl": { - "type": "Project" + "type": "Project", + "dependencies": { + "Fable.Package.SDK": "[1.1.0, )" + } }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )" + "Fable.Core": "[4.3.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.json": { @@ -110,6 +117,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -117,6 +125,7 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,13 +134,15 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )" } }, "arctrl.yaml": { @@ -139,6 +150,7 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", + "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -178,9 +190,9 @@ }, "Fable.Package.SDK": { "type": "CentralTransitive", - "requested": "[1.0.0, )", - "resolved": "1.0.0", - "contentHash": "TIXktcGpeqE3QOr2coV+w5erpLtfijpfBilhb0MNV2OSao/Y5Zg3r7StF+wZ4jSm4Pkid4HpjshZB/V9fUc/Ew==" + "requested": "[1.1.0, )", + "resolved": "1.1.0", + "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, "Fable.Pyxpecto": { "type": "CentralTransitive", From 8552f9ea7b2183c4cb382049c71793918d4128b3 Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Wed, 2 Oct 2024 23:22:20 +0200 Subject: [PATCH 11/15] fix fable ready packaging and/by update package tags --- package.json | 44 ++++----- src/ARCtrl/ARCtrl.Common.props | 81 ++++++++------- src/ARCtrl/ARCtrl.Javascript.fsproj | 2 +- src/ARCtrl/ARCtrl.Python.fsproj | 2 +- src/ARCtrl/ARCtrl.fsproj | 2 +- src/ARCtrl/packages.lock.json | 41 +++----- src/CWL/ARCtrl.CWL.fsproj | 10 +- src/Contract/ARCtrl.Contract.fsproj | 9 +- src/Contract/packages.lock.json | 18 +--- src/Core/ARCtrl.Core.fsproj | 9 +- src/Core/packages.lock.json | 8 +- src/FileSystem/ARCtrl.FileSystem.fsproj | 11 +-- src/Json/ARCtrl.Json.fsproj | 10 +- src/Json/packages.lock.json | 12 +-- src/Package.Metadata.props | 6 +- src/ROCrate/ARCtrl.ROCrate.fsproj | 9 +- src/Spreadsheet/ARCtrl.Spreadsheet.fsproj | 9 +- src/Spreadsheet/packages.lock.json | 11 +-- .../ARCtrl.ValidationPackages.fsproj | 9 +- src/ValidationPackages/packages.lock.json | 11 +-- src/Yaml/ARCtrl.Yaml.fsproj | 11 +-- src/Yaml/packages.lock.json | 14 +-- tests/ARCtrl/packages.lock.json | 28 +----- tests/Contract/packages.lock.json | 28 +----- tests/Core/packages.lock.json | 28 +----- tests/FileSystem/packages.lock.json | 28 +----- tests/Json/packages.lock.json | 28 +----- tests/ROCrate/packages.lock.json | 28 +----- tests/Speedtest/packages.lock.json | 28 +----- tests/Spreadsheet/packages.lock.json | 28 +----- tests/TestingUtils/packages.lock.json | 99 +++---------------- tests/ValidationPackages/packages.lock.json | 28 +----- tests/Yaml/packages.lock.json | 28 +----- 33 files changed, 193 insertions(+), 525 deletions(-) diff --git a/package.json b/package.json index 4a53a76a..97bf3ea3 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,25 @@ { "type": "module", - "scripts": { - "mocha": "mocha", - "prebundlejs": "mkdirp .\\dist/js && dotnet fable clean -o ./dist/js --yes", - "bundlejs": "dotnet fable ./src/ARCtrl -o ./dist/js", - "prebundlets": "mkdirp .\\dist/ts && dotnet fable clean -o ./dist/ts --yes --extension .ts", - "bundlets": "dotnet fable ./src/ARCtrl -o ./dist/ts --lang ts", - "pretestJson": "dotnet fable tests/Json -o tests/Json/js", - "testJson": "mocha tests/Json/js --timeout 20000", - "pretestXlsx": "dotnet fable tests/Spreadsheet -o tests/Spreadsheet/js", - "testXlsx": "mocha tests/Spreadsheet/js --timeout 20000", - "pretestIsa": "dotnet fable tests/Core -o tests/Core/js", - "testIsa": "mocha tests/Core/js", - "pretestFiles": "dotnet fable tests/FileSystem -o tests/FileSystem/js", - "testFiles": "mocha tests/FileSystem/js", - "pretestArctrl": "dotnet fable tests/ARCtrl -o tests/ARCtrl/js", - "testArctrl": "mocha tests/ARCtrl/js", - "pretestjs": "dotnet fable src/ARCtrl -o tests/JavaScript/ARCtrl ", - "testjs": "mocha tests/JavaScript", - "pretestpy": "dotnet fable src/ARCtrl -o tests/Python/ARCtrl --lang py ", - "pretestui": "dotnet fable src/ARCtrl -o tests/UI/ARCtrl ", - "testui": "cd tests/UI & npx cypress run --component ", - "testpy": "", - "devui": "cd tests/UI & npx vite" - }, + "scripts": { + "mocha": "mocha", + "prebundlejs": "mkdirp .\\dist/js && dotnet fable clean -o ./dist/js --yes", + "bundlejs": "dotnet fable ./src/ARCtrl/ARCtrl.Javascript.fsproj -o ./dist/js", + "prebundlets": "mkdirp .\\dist/ts && dotnet fable clean -o ./dist/ts --yes --extension .ts", + "bundlets": "dotnet fable ./src/ARCtrl/ARCtrl.Javascript.fsproj -o ./dist/ts --lang ts", + "pretestJson": "dotnet fable tests/Json -o tests/Json/js", + "testJson": "mocha tests/Json/js --timeout 20000", + "pretestXlsx": "dotnet fable tests/Spreadsheet -o tests/Spreadsheet/js", + "testXlsx": "mocha tests/Spreadsheet/js --timeout 20000", + "pretestIsa": "dotnet fable tests/Core -o tests/Core/js", + "testIsa": "mocha tests/Core/js", + "pretestFiles": "dotnet fable tests/FileSystem -o tests/FileSystem/js", + "testFiles": "mocha tests/FileSystem/js", + "pretestArctrl": "dotnet fable tests/ARCtrl -o tests/ARCtrl/js", + "testArctrl": "mocha tests/ARCtrl/js", + "pretestjs": "dotnet fable src/ARCtrl/ARCtrl.Javascript.fsproj -o tests/JavaScript/ARCtrl ", + "testjs": "mocha tests/JavaScript", + "devui": "cd tests/UI & npx vite" + }, "author": "Heinrich Lukas Weil (https://github.com/HLWeil)", "contributors": [ "Kevin Frey (https://github.com/Freymaurer)" diff --git a/src/ARCtrl/ARCtrl.Common.props b/src/ARCtrl/ARCtrl.Common.props index 320c0901..27b320e9 100644 --- a/src/ARCtrl/ARCtrl.Common.props +++ b/src/ARCtrl/ARCtrl.Common.props @@ -3,45 +3,45 @@ Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtime agnostic contract systems. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -52,7 +52,4 @@ - - - \ No newline at end of file diff --git a/src/ARCtrl/ARCtrl.Javascript.fsproj b/src/ARCtrl/ARCtrl.Javascript.fsproj index 20c2fabc..e8f618bc 100644 --- a/src/ARCtrl/ARCtrl.Javascript.fsproj +++ b/src/ARCtrl/ARCtrl.Javascript.fsproj @@ -1,7 +1,7 @@ - fable-javascript + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-javascript FABLE_COMPILER_JAVASCRIPT;FABLE_COMPILER;FABLE_COMPILER_TYPESCRIPT diff --git a/src/ARCtrl/ARCtrl.Python.fsproj b/src/ARCtrl/ARCtrl.Python.fsproj index 2f5a1ccd..fe34c21c 100644 --- a/src/ARCtrl/ARCtrl.Python.fsproj +++ b/src/ARCtrl/ARCtrl.Python.fsproj @@ -1,7 +1,7 @@ - fable-python + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-python FABLE_COMPILER_PYTHON;FABLE_COMPILER diff --git a/src/ARCtrl/ARCtrl.fsproj b/src/ARCtrl/ARCtrl.fsproj index 7e055d9b..f3b05bdf 100644 --- a/src/ARCtrl/ARCtrl.fsproj +++ b/src/ARCtrl/ARCtrl.fsproj @@ -1,7 +1,7 @@ - fable-dotnet + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-dotnet diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json index 466b1b64..c37795a3 100644 --- a/src/ARCtrl/packages.lock.json +++ b/src/ARCtrl/packages.lock.json @@ -47,40 +47,33 @@ "arctrl.contract": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[2.0.1, )", - "ARCtrl.Json": "[2.0.1, )", - "ARCtrl.Spreadsheet": "[2.0.1, )", - "ARCtrl.Yaml": "[2.0.1, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { - "ARCtrl.CWL": "[2.0.1, )", - "ARCtrl.FileSystem": "[2.0.1, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[2.0.1, )", - "ARCtrl.ROCrate": "[2.0.1, )", - "Fable.Package.SDK": "[1.1.0, )", + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -88,32 +81,28 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, "arctrl.spreadsheet": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[2.0.1, )", - "ARCtrl.FileSystem": "[2.0.1, )", - "Fable.Package.SDK": "[1.1.0, )", + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[2.0.1, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[2.0.1, )", - "ARCtrl.ValidationPackages": "[2.0.1, )", - "Fable.Package.SDK": "[1.1.0, )", + "ARCtrl.Core": "[1.0.0, )", + "ARCtrl.ValidationPackages": "[1.0.0, )", "YAMLicious": "[0.0.1, )" } }, diff --git a/src/CWL/ARCtrl.CWL.fsproj b/src/CWL/ARCtrl.CWL.fsproj index c57dadfe..b709cf8c 100644 --- a/src/CWL/ARCtrl.CWL.fsproj +++ b/src/CWL/ARCtrl.CWL.fsproj @@ -1,15 +1,13 @@ - fable-javascript;fable-python;fable-dotnet + ARC helper functions for Common workflow language. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-javascript;fable-python;fable-dotnet + - - ARC helper functions for Common workflow language. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - diff --git a/src/Contract/ARCtrl.Contract.fsproj b/src/Contract/ARCtrl.Contract.fsproj index 87d15c10..4df5fa96 100644 --- a/src/Contract/ARCtrl.Contract.fsproj +++ b/src/Contract/ARCtrl.Contract.fsproj @@ -1,7 +1,9 @@ - fable-javascript;fable-python;fable-dotnet + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-javascript;fable-python;fable-dotnet + ARC helper functions for contracts management. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/Contract @@ -22,9 +24,4 @@ - - ARC helper functions for contracts management. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl/tree/main/src/Contract - \ No newline at end of file diff --git a/src/Contract/packages.lock.json b/src/Contract/packages.lock.json index 13c86c0f..bcac3e60 100644 --- a/src/Contract/packages.lock.json +++ b/src/Contract/packages.lock.json @@ -26,21 +26,16 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -48,7 +43,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -56,7 +50,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -65,15 +58,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -81,7 +72,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, diff --git a/src/Core/ARCtrl.Core.fsproj b/src/Core/ARCtrl.Core.fsproj index 483d25b8..942a2114 100644 --- a/src/Core/ARCtrl.Core.fsproj +++ b/src/Core/ARCtrl.Core.fsproj @@ -1,7 +1,9 @@ - fable-javascript;fable-python;fable-dotnet + ARC and ISA compliant experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in the dotnet environment. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/ISA + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;investigation;study;assay;ISA-Json;fable-javascript;fable-python;fable-dotnet @@ -59,9 +61,4 @@ - - ARC and ISA compliant experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in the dotnet environment. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata investigation study assay ISA Json - https://github.com/nfdi4plants/ARCtrl/tree/main/src/ISA - \ No newline at end of file diff --git a/src/Core/packages.lock.json b/src/Core/packages.lock.json index de49f70b..6d8c3010 100644 --- a/src/Core/packages.lock.json +++ b/src/Core/packages.lock.json @@ -23,16 +23,12 @@ "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "Fable.Core": { diff --git a/src/FileSystem/ARCtrl.FileSystem.fsproj b/src/FileSystem/ARCtrl.FileSystem.fsproj index a22b7a80..6b109fc9 100644 --- a/src/FileSystem/ARCtrl.FileSystem.fsproj +++ b/src/FileSystem/ARCtrl.FileSystem.fsproj @@ -1,9 +1,12 @@ - fable-javascript;fable-python;fable-dotnet + ARC helper functions for filesystem management. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/FileSystem + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-javascript;fable-python;fable-dotnet + @@ -15,9 +18,5 @@ - - ARC helper functions for filesystem management. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl/tree/main/src/FileSystem - + \ No newline at end of file diff --git a/src/Json/ARCtrl.Json.fsproj b/src/Json/ARCtrl.Json.fsproj index 890c5fba..a519085b 100644 --- a/src/Json/ARCtrl.Json.fsproj +++ b/src/Json/ARCtrl.Json.fsproj @@ -1,9 +1,12 @@ - fable-javascript;fable-python;fable-dotnet + ARC and ISA json compliant parser for experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in isa-json format. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/Json + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;investigation;study;assay;ISA-Json;fable-javascript;fable-python;fable-dotnet + @@ -82,9 +85,4 @@ - - ARC and ISA json compliant parser for experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in isa-json format. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata investigation study assay ISA Json - https://github.com/nfdi4plants/ARCtrl/tree/main/src/ISA - \ No newline at end of file diff --git a/src/Json/packages.lock.json b/src/Json/packages.lock.json index 9b3d55f8..07e90ed1 100644 --- a/src/Json/packages.lock.json +++ b/src/Json/packages.lock.json @@ -37,28 +37,22 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.rocrate": { "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, diff --git a/src/Package.Metadata.props b/src/Package.Metadata.props index 8a382b64..8b7e3091 100644 --- a/src/Package.Metadata.props +++ b/src/Package.Metadata.props @@ -10,14 +10,16 @@ nfdi4plants, Lukas Weil, Kevin Frey, Kevin Schneider, Florian Wetzels MIT logo.png - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata https://github.com/nfdi4plants/ARCtrl https://github.com/nfdi4plants/ARCtrl git - + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + \ No newline at end of file diff --git a/src/ROCrate/ARCtrl.ROCrate.fsproj b/src/ROCrate/ARCtrl.ROCrate.fsproj index 6d129d33..45acca92 100644 --- a/src/ROCrate/ARCtrl.ROCrate.fsproj +++ b/src/ROCrate/ARCtrl.ROCrate.fsproj @@ -1,6 +1,8 @@ - fable-javascript;fable-python;fable-dotnet + A data model of the ARC concept via it's RO Crate profile + https://github.com/nfdi4plants/ARCtrl/tree/main/src/ROCrate + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-javascript;fable-python;fable-dotnet @@ -23,9 +25,4 @@ - - A data model of the ARC concept via it's RO Crate profile - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - diff --git a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj index bc854cf5..d73095e1 100644 --- a/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj +++ b/src/Spreadsheet/ARCtrl.Spreadsheet.fsproj @@ -1,7 +1,9 @@ - fable-javascript;fable-python;fable-dotnet + ARC and ISA xlsx compliant parser for experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in isa-xlsx format. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/Spreadsheet + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;investigation;study;assay;ISA;Spreadsheet;xlsx;excel;fable-javascript;fable-python;fable-dotnet @@ -40,9 +42,4 @@ - - ARC and ISA xlsx compliant parser for experimental metadata toolkit in F#. This project is meant as an easy means to open, manipulate and save ISA (Investigation,Study,Assay) metadata files in isa-xlsx format. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata investigation study assay ISA Spreadsheet xlsx excel - https://github.com/nfdi4plants/ARCtrl/tree/main/src/ISA - \ No newline at end of file diff --git a/src/Spreadsheet/packages.lock.json b/src/Spreadsheet/packages.lock.json index affdcd91..14a73b11 100644 --- a/src/Spreadsheet/packages.lock.json +++ b/src/Spreadsheet/packages.lock.json @@ -37,21 +37,16 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "Fable.Core": { diff --git a/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj b/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj index 767d5afb..d617bf8b 100644 --- a/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj +++ b/src/ValidationPackages/ARCtrl.ValidationPackages.fsproj @@ -1,7 +1,9 @@ - fable-javascript;fable-python;fable-dotnet + ARC helper functions for Common workflow language. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/ValidationPackages + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;fable-javascript;fable-python;fable-dotnet @@ -14,9 +16,4 @@ - - ARC helper functions for Common workflow language. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - \ No newline at end of file diff --git a/src/ValidationPackages/packages.lock.json b/src/ValidationPackages/packages.lock.json index 6371f9aa..4db96136 100644 --- a/src/ValidationPackages/packages.lock.json +++ b/src/ValidationPackages/packages.lock.json @@ -26,21 +26,16 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "Fable.Core": { diff --git a/src/Yaml/ARCtrl.Yaml.fsproj b/src/Yaml/ARCtrl.Yaml.fsproj index 0c217f2a..e38496b7 100644 --- a/src/Yaml/ARCtrl.Yaml.fsproj +++ b/src/Yaml/ARCtrl.Yaml.fsproj @@ -1,10 +1,12 @@ - fable-javascript;fable-python;fable-dotnet + ARC helper functions for Parsing YAML files. + https://github.com/nfdi4plants/ARCtrl/tree/main/src/YAML + ARC;F#;FSharp;dotnet;.Net;bioinformatics;biology;fable-library;datascience;dataplant;nfdi;metadata;YAML;fable-javascript;fable-python;fable-dotnet - + @@ -19,9 +21,4 @@ - - ARC helper functions for Parsing YAML files. - ARC F# FSharp dotnet .Net bioinformatics biology fable-library datascience dataplant nfdi metadata - https://github.com/nfdi4plants/ARCtrl/tree/main/src/CWL - \ No newline at end of file diff --git a/src/Yaml/packages.lock.json b/src/Yaml/packages.lock.json index 8fb839d5..2e8682d6 100644 --- a/src/Yaml/packages.lock.json +++ b/src/Yaml/packages.lock.json @@ -36,28 +36,22 @@ "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "Fable.Core": { diff --git a/tests/ARCtrl/packages.lock.json b/tests/ARCtrl/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/ARCtrl/packages.lock.json +++ b/tests/ARCtrl/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/Contract/packages.lock.json b/tests/Contract/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/Contract/packages.lock.json +++ b/tests/Contract/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/Core/packages.lock.json b/tests/Core/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/Core/packages.lock.json +++ b/tests/Core/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/FileSystem/packages.lock.json b/tests/FileSystem/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/FileSystem/packages.lock.json +++ b/tests/FileSystem/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/Json/packages.lock.json b/tests/Json/packages.lock.json index 51e0a8d7..9008a83f 100644 --- a/tests/Json/packages.lock.json +++ b/tests/Json/packages.lock.json @@ -396,7 +396,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -407,29 +406,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -437,7 +430,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -445,7 +437,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -454,15 +445,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -470,7 +459,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -508,12 +496,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/ROCrate/packages.lock.json b/tests/ROCrate/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/ROCrate/packages.lock.json +++ b/tests/ROCrate/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/Speedtest/packages.lock.json b/tests/Speedtest/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/Speedtest/packages.lock.json +++ b/tests/Speedtest/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/Spreadsheet/packages.lock.json b/tests/Spreadsheet/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/Spreadsheet/packages.lock.json +++ b/tests/Spreadsheet/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/TestingUtils/packages.lock.json b/tests/TestingUtils/packages.lock.json index 65ddd26a..968b059f 100644 --- a/tests/TestingUtils/packages.lock.json +++ b/tests/TestingUtils/packages.lock.json @@ -25,10 +25,10 @@ }, "Fable.Browser.Blob": { "type": "Transitive", - "resolved": "1.2.0", - "contentHash": "bM4zbtIeycTFFCH7o4WuN28W70dTxNTMZiMvR70XUTYrBnbz7GpS5XxzUy5caDB4l7s2l7wiuVDhh52t7NXxDg==", + "resolved": "1.1.0", + "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", "dependencies": { - "FSharp.Core": "4.7.2", + "FSharp.Core": "4.6.2", "Fable.Core": "3.0.0" } }, @@ -46,20 +46,10 @@ }, "Fable.Browser.Event": { "type": "Transitive", - "resolved": "1.5.0", - "contentHash": "Bx2AOOASIG1Eq1Pe8869H8baMePte6STmKGccGuOYMT2p6nWVS8G6ZBZb5encQ0tAL2/0vhA4KJOl4bYwUaQqg==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Browser.Gamepad": "1.1.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Gamepad": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "8m/Ae/mrH2Hb2ue435rTPEeVb2FhfWsRJJLpCxMvk+5EUOO2+IIjIkLq4thUfRL98uQVt9V5cQd14h2aBf2XJA==", + "resolved": "1.0.0", + "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", "dependencies": { - "FSharp.Core": "4.7.2", + "FSharp.Core": "4.5.2", "Fable.Core": "3.0.0" } }, @@ -84,15 +74,6 @@ "Fable.Core": "3.0.0" } }, - "Fable.Promise": { - "type": "Transitive", - "resolved": "2.2.2", - "contentHash": "yHFSo7GCY0l/Wjskh/HESuFoGzXIoRM22UlrARA5ewnX736Y1wM27kcqCWeGcIzaEsgJnZcDkp093M0gQyMcWA==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "3.1.5" - } - }, "Fable.Python": { "type": "Transitive", "resolved": "4.3.0", @@ -116,7 +97,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -127,44 +107,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" - } - }, - "arctrl.javascript": { - "type": "Project", - "dependencies": { - "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.Contract": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "ARCtrl.Json": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", - "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Fetch": "[2.6.0, )", - "Fable.Package.SDK": "[1.1.0, )", - "Fable.SimpleHttp": "[3.5.0, )", - "Thoth.Json.Javascript": "[0.3.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -172,7 +131,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -180,7 +138,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -189,15 +146,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -205,7 +160,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -225,25 +179,6 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, - "Fable.Fetch": { - "type": "CentralTransitive", - "requested": "[2.6.0, )", - "resolved": "2.6.0", - "contentHash": "zhCl95EYeuKcc7bk2jGHLSuLhkPqvRcrlwC91GqgX51BlQ7WJF2IQ7mUxW2n1mg74M1D2VOwEKqQpTAZDCVa8Q==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Browser.Blob": "1.2.0", - "Fable.Browser.Event": "1.5.0", - "Fable.Core": "3.7.1", - "Fable.Promise": "2.2.2" - } - }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.SimpleHttp": { "type": "CentralTransitive", "requested": "[3.5.0, )", @@ -284,18 +219,6 @@ "Fable.Package.SDK": "1.0.0" } }, - "Thoth.Json.JavaScript": { - "type": "CentralTransitive", - "requested": "[0.3.0, )", - "resolved": "0.3.0", - "contentHash": "A4Cwv+RigC52/OdcrU2woEvjd6rsiDlQGDNTqwXYe3Yh6cdzcLWTfmmwTuCOXgV8SMbcSkviqiS2AG5BS42ayg==", - "dependencies": { - "FSharp.Core": "5.0.0", - "Fable.Core": "4.1.0", - "Fable.Package.SDK": "1.0.0", - "Thoth.Json.Core": "0.4.0" - } - }, "Thoth.Json.Newtonsoft": { "type": "CentralTransitive", "requested": "[0.2.0, )", diff --git a/tests/ValidationPackages/packages.lock.json b/tests/ValidationPackages/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/ValidationPackages/packages.lock.json +++ b/tests/ValidationPackages/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", diff --git a/tests/Yaml/packages.lock.json b/tests/Yaml/packages.lock.json index 0436031c..c9cf6a9a 100644 --- a/tests/Yaml/packages.lock.json +++ b/tests/Yaml/packages.lock.json @@ -76,7 +76,6 @@ "ARCtrl.Json": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Fable.SimpleHttp": "[3.5.0, )", "Thoth.Json.Newtonsoft": "[0.2.0, )" } @@ -87,29 +86,23 @@ "ARCtrl.Core": "[1.0.0, )", "ARCtrl.Json": "[1.0.0, )", "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Yaml": "[1.0.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.FileSystem": "[1.0.0, )" } }, "arctrl.cwl": { - "type": "Project", - "dependencies": { - "Fable.Package.SDK": "[1.1.0, )" - } + "type": "Project" }, "arctrl.filesystem": { "type": "Project", "dependencies": { - "Fable.Core": "[4.3.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "Fable.Core": "[4.3.0, )" } }, "arctrl.json": { @@ -117,7 +110,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ROCrate": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -125,7 +117,6 @@ "type": "Project", "dependencies": { "DynamicObj": "[4.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -134,15 +125,13 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.FileSystem": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )" + "ARCtrl.Core": "[1.0.0, )" } }, "arctrl.yaml": { @@ -150,7 +139,6 @@ "dependencies": { "ARCtrl.Core": "[1.0.0, )", "ARCtrl.ValidationPackages": "[1.0.0, )", - "Fable.Package.SDK": "[1.1.0, )", "YAMLicious": "[0.0.1, )" } }, @@ -188,12 +176,6 @@ "Fable.Core": "3.1.2" } }, - "Fable.Package.SDK": { - "type": "CentralTransitive", - "requested": "[1.1.0, )", - "resolved": "1.1.0", - "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" - }, "Fable.Pyxpecto": { "type": "CentralTransitive", "requested": "[1.2.0, )", From 99b2659d1dd5c3815693f4df85691f9bead3e26d Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Wed, 2 Oct 2024 23:26:26 +0200 Subject: [PATCH 12/15] rename json IO implementations folder to reduce ambiguity in py and javascript packages --- build/PackageTasks.fs | 44 +++++++++++-------- src/ARCtrl/{Json => JsonIO}/ARC.fs | 0 src/ARCtrl/{Json => JsonIO}/Assay.fs | 0 src/ARCtrl/{Json => JsonIO}/Comment.fs | 0 src/ARCtrl/{Json => JsonIO}/Data.fs | 0 src/ARCtrl/{Json => JsonIO}/DataFile.fs | 0 .../{Json => JsonIO}/DataMap/DataMap.fs | 0 src/ARCtrl/{Json => JsonIO}/Decode.fs | 0 src/ARCtrl/{Json => JsonIO}/Encode.fs | 0 src/ARCtrl/{Json => JsonIO}/Investigation.fs | 0 .../{Json => JsonIO}/OntologyAnnotation.fs | 0 .../OntologySourceReference.fs | 0 src/ARCtrl/{Json => JsonIO}/Person.fs | 0 .../{Json => JsonIO}/Process/Component.fs | 0 src/ARCtrl/{Json => JsonIO}/Process/Factor.fs | 0 .../{Json => JsonIO}/Process/FactorValue.fs | 0 .../{Json => JsonIO}/Process/Material.fs | 0 .../Process/MaterialAttribute.fs | 0 .../Process/MaterialAttributeValue.fs | 0 .../{Json => JsonIO}/Process/MaterialType.fs | 0 .../{Json => JsonIO}/Process/Process.fs | 0 .../{Json => JsonIO}/Process/ProcessInput.fs | 0 .../{Json => JsonIO}/Process/ProcessOutput.fs | 0 .../Process/ProcessParameterValue.fs | 0 .../Process/ProcessSequence.fs | 0 .../{Json => JsonIO}/Process/Protocol.fs | 0 .../Process/ProtocolParameter.fs | 0 src/ARCtrl/{Json => JsonIO}/Process/Sample.fs | 0 src/ARCtrl/{Json => JsonIO}/Process/Source.fs | 0 .../Process/StudyMaterials.fs | 0 src/ARCtrl/{Json => JsonIO}/Process/Value.fs | 0 src/ARCtrl/{Json => JsonIO}/Publication.fs | 0 src/ARCtrl/{Json => JsonIO}/ROCrateHelper.fs | 0 src/ARCtrl/{Json => JsonIO}/ROCrateObject.fs | 0 src/ARCtrl/{Json => JsonIO}/Study.fs | 0 src/ARCtrl/{Json => JsonIO}/Table/ArcTable.fs | 0 .../{Json => JsonIO}/Table/CompositeCell.fs | 0 .../{Json => JsonIO}/Table/CompositeHeader.fs | 0 .../{Json => JsonIO}/Table/Compression.fs | 0 src/ARCtrl/{Json => JsonIO}/Table/IOType.fs | 0 .../{Json => JsonIO}/Table/Templates.fs | 0 41 files changed, 26 insertions(+), 18 deletions(-) rename src/ARCtrl/{Json => JsonIO}/ARC.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Assay.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Comment.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Data.fs (100%) rename src/ARCtrl/{Json => JsonIO}/DataFile.fs (100%) rename src/ARCtrl/{Json => JsonIO}/DataMap/DataMap.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Decode.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Encode.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Investigation.fs (100%) rename src/ARCtrl/{Json => JsonIO}/OntologyAnnotation.fs (100%) rename src/ARCtrl/{Json => JsonIO}/OntologySourceReference.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Person.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Component.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Factor.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/FactorValue.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Material.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/MaterialAttribute.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/MaterialAttributeValue.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/MaterialType.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Process.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/ProcessInput.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/ProcessOutput.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/ProcessParameterValue.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/ProcessSequence.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Protocol.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/ProtocolParameter.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Sample.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Source.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/StudyMaterials.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Process/Value.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Publication.fs (100%) rename src/ARCtrl/{Json => JsonIO}/ROCrateHelper.fs (100%) rename src/ARCtrl/{Json => JsonIO}/ROCrateObject.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Study.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Table/ArcTable.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Table/CompositeCell.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Table/CompositeHeader.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Table/Compression.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Table/IOType.fs (100%) rename src/ARCtrl/{Json => JsonIO}/Table/Templates.fs (100%) diff --git a/build/PackageTasks.fs b/build/PackageTasks.fs index f5635992..656d0d11 100644 --- a/build/PackageTasks.fs +++ b/build/PackageTasks.fs @@ -22,22 +22,30 @@ module BundleDotNet = System.IO.Directory.CreateDirectory(ProjectInfo.netPkgDir) |> ignore !! "src/**/*.*proj" -- "src/bin/*" - |> Seq.iter (Fake.DotNet.DotNet.pack (fun p -> - let msBuildParams = - {p.MSBuildParams with - Properties = ([ - "Version",versionTag - "PackageReleaseNotes", (ProjectInfo.release.Notes |> List.map replaceCommitLink |> String.toLines ) - ] @ p.MSBuildParams.Properties) - DisableInternalBinLog = true - } - { - p with - VersionSuffix = versionSuffix - MSBuildParams = msBuildParams - OutputPath = Some ProjectInfo.netPkgDir - } - )) + |> Seq.iter (fun g -> + try + g + |> Fake.DotNet.DotNet.pack (fun p -> + + let msBuildParams = + {p.MSBuildParams with + Properties = ([ + "Version",versionTag + "PackageReleaseNotes", (ProjectInfo.release.Notes |> List.map replaceCommitLink |> String.toLines ) + ] @ p.MSBuildParams.Properties) + DisableInternalBinLog = true + } + { + p with + VersionSuffix = versionSuffix + MSBuildParams = msBuildParams + OutputPath = Some ProjectInfo.netPkgDir + } + + ) + with + | err -> () + ) let packDotNet = BuildTask.create "PackDotNet" [clean; build; runTests] { BundleDotNet.bundle ProjectInfo.stableVersionTag None @@ -86,7 +94,7 @@ let packJSPrerelease = BuildTask.create "PackJSPrerelease" [setPrereleaseTag; cl module BundlePy = let bundle (versionTag: string) = - run dotnet $"fable src/ARCtrl -o {ProjectInfo.pyPkgDir}/arctrl --lang python" "" + run dotnet $"fable src/ARCtrl/ARCtrl.Python.fsproj -o {ProjectInfo.pyPkgDir}/arctrl --lang python" "" run python "-m poetry install --no-root" ProjectInfo.pyPkgDir GenerateIndexPy.ARCtrl_generate (ProjectInfo.pyPkgDir + "/arctrl") @@ -104,7 +112,7 @@ module BundlePy = run python "-m poetry build" ProjectInfo.pyPkgDir //Remove "-o ." because not compatible with publish -let packPy = BuildTask.create "PackPy" [clean; build; runTests] { +let packPy = BuildTask.create "PackPy" [clean; build; (*runTests*)] { BundlePy.bundle ProjectInfo.stableVersionTag } diff --git a/src/ARCtrl/Json/ARC.fs b/src/ARCtrl/JsonIO/ARC.fs similarity index 100% rename from src/ARCtrl/Json/ARC.fs rename to src/ARCtrl/JsonIO/ARC.fs diff --git a/src/ARCtrl/Json/Assay.fs b/src/ARCtrl/JsonIO/Assay.fs similarity index 100% rename from src/ARCtrl/Json/Assay.fs rename to src/ARCtrl/JsonIO/Assay.fs diff --git a/src/ARCtrl/Json/Comment.fs b/src/ARCtrl/JsonIO/Comment.fs similarity index 100% rename from src/ARCtrl/Json/Comment.fs rename to src/ARCtrl/JsonIO/Comment.fs diff --git a/src/ARCtrl/Json/Data.fs b/src/ARCtrl/JsonIO/Data.fs similarity index 100% rename from src/ARCtrl/Json/Data.fs rename to src/ARCtrl/JsonIO/Data.fs diff --git a/src/ARCtrl/Json/DataFile.fs b/src/ARCtrl/JsonIO/DataFile.fs similarity index 100% rename from src/ARCtrl/Json/DataFile.fs rename to src/ARCtrl/JsonIO/DataFile.fs diff --git a/src/ARCtrl/Json/DataMap/DataMap.fs b/src/ARCtrl/JsonIO/DataMap/DataMap.fs similarity index 100% rename from src/ARCtrl/Json/DataMap/DataMap.fs rename to src/ARCtrl/JsonIO/DataMap/DataMap.fs diff --git a/src/ARCtrl/Json/Decode.fs b/src/ARCtrl/JsonIO/Decode.fs similarity index 100% rename from src/ARCtrl/Json/Decode.fs rename to src/ARCtrl/JsonIO/Decode.fs diff --git a/src/ARCtrl/Json/Encode.fs b/src/ARCtrl/JsonIO/Encode.fs similarity index 100% rename from src/ARCtrl/Json/Encode.fs rename to src/ARCtrl/JsonIO/Encode.fs diff --git a/src/ARCtrl/Json/Investigation.fs b/src/ARCtrl/JsonIO/Investigation.fs similarity index 100% rename from src/ARCtrl/Json/Investigation.fs rename to src/ARCtrl/JsonIO/Investigation.fs diff --git a/src/ARCtrl/Json/OntologyAnnotation.fs b/src/ARCtrl/JsonIO/OntologyAnnotation.fs similarity index 100% rename from src/ARCtrl/Json/OntologyAnnotation.fs rename to src/ARCtrl/JsonIO/OntologyAnnotation.fs diff --git a/src/ARCtrl/Json/OntologySourceReference.fs b/src/ARCtrl/JsonIO/OntologySourceReference.fs similarity index 100% rename from src/ARCtrl/Json/OntologySourceReference.fs rename to src/ARCtrl/JsonIO/OntologySourceReference.fs diff --git a/src/ARCtrl/Json/Person.fs b/src/ARCtrl/JsonIO/Person.fs similarity index 100% rename from src/ARCtrl/Json/Person.fs rename to src/ARCtrl/JsonIO/Person.fs diff --git a/src/ARCtrl/Json/Process/Component.fs b/src/ARCtrl/JsonIO/Process/Component.fs similarity index 100% rename from src/ARCtrl/Json/Process/Component.fs rename to src/ARCtrl/JsonIO/Process/Component.fs diff --git a/src/ARCtrl/Json/Process/Factor.fs b/src/ARCtrl/JsonIO/Process/Factor.fs similarity index 100% rename from src/ARCtrl/Json/Process/Factor.fs rename to src/ARCtrl/JsonIO/Process/Factor.fs diff --git a/src/ARCtrl/Json/Process/FactorValue.fs b/src/ARCtrl/JsonIO/Process/FactorValue.fs similarity index 100% rename from src/ARCtrl/Json/Process/FactorValue.fs rename to src/ARCtrl/JsonIO/Process/FactorValue.fs diff --git a/src/ARCtrl/Json/Process/Material.fs b/src/ARCtrl/JsonIO/Process/Material.fs similarity index 100% rename from src/ARCtrl/Json/Process/Material.fs rename to src/ARCtrl/JsonIO/Process/Material.fs diff --git a/src/ARCtrl/Json/Process/MaterialAttribute.fs b/src/ARCtrl/JsonIO/Process/MaterialAttribute.fs similarity index 100% rename from src/ARCtrl/Json/Process/MaterialAttribute.fs rename to src/ARCtrl/JsonIO/Process/MaterialAttribute.fs diff --git a/src/ARCtrl/Json/Process/MaterialAttributeValue.fs b/src/ARCtrl/JsonIO/Process/MaterialAttributeValue.fs similarity index 100% rename from src/ARCtrl/Json/Process/MaterialAttributeValue.fs rename to src/ARCtrl/JsonIO/Process/MaterialAttributeValue.fs diff --git a/src/ARCtrl/Json/Process/MaterialType.fs b/src/ARCtrl/JsonIO/Process/MaterialType.fs similarity index 100% rename from src/ARCtrl/Json/Process/MaterialType.fs rename to src/ARCtrl/JsonIO/Process/MaterialType.fs diff --git a/src/ARCtrl/Json/Process/Process.fs b/src/ARCtrl/JsonIO/Process/Process.fs similarity index 100% rename from src/ARCtrl/Json/Process/Process.fs rename to src/ARCtrl/JsonIO/Process/Process.fs diff --git a/src/ARCtrl/Json/Process/ProcessInput.fs b/src/ARCtrl/JsonIO/Process/ProcessInput.fs similarity index 100% rename from src/ARCtrl/Json/Process/ProcessInput.fs rename to src/ARCtrl/JsonIO/Process/ProcessInput.fs diff --git a/src/ARCtrl/Json/Process/ProcessOutput.fs b/src/ARCtrl/JsonIO/Process/ProcessOutput.fs similarity index 100% rename from src/ARCtrl/Json/Process/ProcessOutput.fs rename to src/ARCtrl/JsonIO/Process/ProcessOutput.fs diff --git a/src/ARCtrl/Json/Process/ProcessParameterValue.fs b/src/ARCtrl/JsonIO/Process/ProcessParameterValue.fs similarity index 100% rename from src/ARCtrl/Json/Process/ProcessParameterValue.fs rename to src/ARCtrl/JsonIO/Process/ProcessParameterValue.fs diff --git a/src/ARCtrl/Json/Process/ProcessSequence.fs b/src/ARCtrl/JsonIO/Process/ProcessSequence.fs similarity index 100% rename from src/ARCtrl/Json/Process/ProcessSequence.fs rename to src/ARCtrl/JsonIO/Process/ProcessSequence.fs diff --git a/src/ARCtrl/Json/Process/Protocol.fs b/src/ARCtrl/JsonIO/Process/Protocol.fs similarity index 100% rename from src/ARCtrl/Json/Process/Protocol.fs rename to src/ARCtrl/JsonIO/Process/Protocol.fs diff --git a/src/ARCtrl/Json/Process/ProtocolParameter.fs b/src/ARCtrl/JsonIO/Process/ProtocolParameter.fs similarity index 100% rename from src/ARCtrl/Json/Process/ProtocolParameter.fs rename to src/ARCtrl/JsonIO/Process/ProtocolParameter.fs diff --git a/src/ARCtrl/Json/Process/Sample.fs b/src/ARCtrl/JsonIO/Process/Sample.fs similarity index 100% rename from src/ARCtrl/Json/Process/Sample.fs rename to src/ARCtrl/JsonIO/Process/Sample.fs diff --git a/src/ARCtrl/Json/Process/Source.fs b/src/ARCtrl/JsonIO/Process/Source.fs similarity index 100% rename from src/ARCtrl/Json/Process/Source.fs rename to src/ARCtrl/JsonIO/Process/Source.fs diff --git a/src/ARCtrl/Json/Process/StudyMaterials.fs b/src/ARCtrl/JsonIO/Process/StudyMaterials.fs similarity index 100% rename from src/ARCtrl/Json/Process/StudyMaterials.fs rename to src/ARCtrl/JsonIO/Process/StudyMaterials.fs diff --git a/src/ARCtrl/Json/Process/Value.fs b/src/ARCtrl/JsonIO/Process/Value.fs similarity index 100% rename from src/ARCtrl/Json/Process/Value.fs rename to src/ARCtrl/JsonIO/Process/Value.fs diff --git a/src/ARCtrl/Json/Publication.fs b/src/ARCtrl/JsonIO/Publication.fs similarity index 100% rename from src/ARCtrl/Json/Publication.fs rename to src/ARCtrl/JsonIO/Publication.fs diff --git a/src/ARCtrl/Json/ROCrateHelper.fs b/src/ARCtrl/JsonIO/ROCrateHelper.fs similarity index 100% rename from src/ARCtrl/Json/ROCrateHelper.fs rename to src/ARCtrl/JsonIO/ROCrateHelper.fs diff --git a/src/ARCtrl/Json/ROCrateObject.fs b/src/ARCtrl/JsonIO/ROCrateObject.fs similarity index 100% rename from src/ARCtrl/Json/ROCrateObject.fs rename to src/ARCtrl/JsonIO/ROCrateObject.fs diff --git a/src/ARCtrl/Json/Study.fs b/src/ARCtrl/JsonIO/Study.fs similarity index 100% rename from src/ARCtrl/Json/Study.fs rename to src/ARCtrl/JsonIO/Study.fs diff --git a/src/ARCtrl/Json/Table/ArcTable.fs b/src/ARCtrl/JsonIO/Table/ArcTable.fs similarity index 100% rename from src/ARCtrl/Json/Table/ArcTable.fs rename to src/ARCtrl/JsonIO/Table/ArcTable.fs diff --git a/src/ARCtrl/Json/Table/CompositeCell.fs b/src/ARCtrl/JsonIO/Table/CompositeCell.fs similarity index 100% rename from src/ARCtrl/Json/Table/CompositeCell.fs rename to src/ARCtrl/JsonIO/Table/CompositeCell.fs diff --git a/src/ARCtrl/Json/Table/CompositeHeader.fs b/src/ARCtrl/JsonIO/Table/CompositeHeader.fs similarity index 100% rename from src/ARCtrl/Json/Table/CompositeHeader.fs rename to src/ARCtrl/JsonIO/Table/CompositeHeader.fs diff --git a/src/ARCtrl/Json/Table/Compression.fs b/src/ARCtrl/JsonIO/Table/Compression.fs similarity index 100% rename from src/ARCtrl/Json/Table/Compression.fs rename to src/ARCtrl/JsonIO/Table/Compression.fs diff --git a/src/ARCtrl/Json/Table/IOType.fs b/src/ARCtrl/JsonIO/Table/IOType.fs similarity index 100% rename from src/ARCtrl/Json/Table/IOType.fs rename to src/ARCtrl/JsonIO/Table/IOType.fs diff --git a/src/ARCtrl/Json/Table/Templates.fs b/src/ARCtrl/JsonIO/Table/Templates.fs similarity index 100% rename from src/ARCtrl/Json/Table/Templates.fs rename to src/ARCtrl/JsonIO/Table/Templates.fs From 7d873b4d42cb07472e96e8a8dc639bf5765c53a2 Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Thu, 3 Oct 2024 00:01:22 +0200 Subject: [PATCH 13/15] bump to 2.1.0-alpha1 --- RELEASE_NOTES.md | 33 +++++++++ build/release_package.json | 2 +- pyproject.toml | 2 +- src/ARCtrl/packages.lock.json | 103 +++++++++++++++++++++++--- tests/TestingUtils/packages.lock.json | 70 +++++++++++++++-- 5 files changed, 193 insertions(+), 17 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 3222827a..445be890 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,36 @@ +### 2.1.0+99b2659 (Released 2024-10-2) +* Additions: + * [[#28cfd13](https://github.com/nfdi4plants/ARCtrl/commit/28cfd133152fa3cdc6606b4ccb7cda3c340e8f62)] add rocrate project + * [[#f71faea](https://github.com/nfdi4plants/ARCtrl/commit/f71faea334538425d5f92e81c650b1cdd46446ef)] rocrate datamodel wip based on inheritance and single interface + * [[#ef15f35](https://github.com/nfdi4plants/ARCtrl/commit/ef15f35779606a1bfcaecdadfc7532886466ec46)] implement first POC of ISA ROCrate profile + * [[#168ead8](https://github.com/nfdi4plants/ARCtrl/commit/168ead84ca93dc0fae911e760673ef6e33180447)] add test project + * [[#2cea57c](https://github.com/nfdi4plants/ARCtrl/commit/2cea57cc1415310e36f5931ef376ea183b85fb71)] update solution + * [[#ccd1805](https://github.com/nfdi4plants/ARCtrl/commit/ccd18053a83c80f4ca4b7a2ac7008a4a0cf3d348)] Unify Inheritance to ROCrateObject + * [[#95cab6f](https://github.com/nfdi4plants/ARCtrl/commit/95cab6f0f85f71a7adea887a25bd47c714e5af35)] wip ro-crate tests + * [[#9ef48d7](https://github.com/nfdi4plants/ARCtrl/commit/9ef48d75f5439d3a71ca943941b70c5af3ff9261)] only use primary constructor + * [[#9deffb7](https://github.com/nfdi4plants/ARCtrl/commit/9deffb7ea81f76c067de5618f2b3388303402191)] Add basic tests for I/S/A ROCrateObjects + * [[#4b4a2fc](https://github.com/nfdi4plants/ARCtrl/commit/4b4a2fcc3bd32b31ec5aa3b4f1127883f7af83fc)] temp workaround in tests for https://github.com/CSBiology/DynamicObj/issues/25 + * [[#f67e78b](https://github.com/nfdi4plants/ARCtrl/commit/f67e78b068350a8e1aecf80fa8b9dd4646fb9ddd)] Use unblocking version of DynamicObj, introduce runTestProject target + * [[#4e91e9d](https://github.com/nfdi4plants/ARCtrl/commit/4e91e9dcc5b34747a2e4a16f33aee1a227eb08ef)] finish basic property tests for isa profile types + * [[#8b4368a](https://github.com/nfdi4plants/ARCtrl/commit/8b4368aed9a9705a78f95ec752143b1620fb0408)] Merge pull request #426 from nfdi4plants/ro-crate-data-model + * [[#fdc4773](https://github.com/nfdi4plants/ARCtrl/commit/fdc4773125fb37bf7140476460a117e575e420ae)] add tryGetColumnByHeaderBy member and static + tests + * [[#1a5c4d6](https://github.com/nfdi4plants/ARCtrl/commit/1a5c4d64cdd3c591a2c7af73c4bdb7a9261c5ffb)] Update ArcTable.Tests.fs + * [[#29d1bb2](https://github.com/nfdi4plants/ARCtrl/commit/29d1bb250a2fc6ee4253e8a94f820f03bf87a09d)] update to thoth.json.core 0.4.0 and use temporary FsSpreadsheet implementations for js and py + * [[#2e47979](https://github.com/nfdi4plants/ARCtrl/commit/2e479798a7812233b109da566db68246fc9df7a2)] start working on ro-crate-json parsing + * [[#f6afa53](https://github.com/nfdi4plants/ARCtrl/commit/f6afa53b83b8003f16c7881a8bd7ea958466c5fb)] first buildable version after fable restructure + * [[#755879d](https://github.com/nfdi4plants/ARCtrl/commit/755879dbf3d30d1305ae8645fdf84338ce89c26a)] move duplicate project references into props files + * [[#93030e9](https://github.com/nfdi4plants/ARCtrl/commit/93030e915329c23b4b4f8cddc5b622312de6cedb)] Make use of Fable.Package.SDK + * [[#99b2659](https://github.com/nfdi4plants/ARCtrl/commit/99b2659d1dd5c3815693f4df85691f9bead3e26d)] rename json IO implementations folder to reduce ambiguity in py and javascript packages +* Deletions: + * [[#c71b8a3](https://github.com/nfdi4plants/ARCtrl/commit/c71b8a301fbdf95531a9ba0d33f8e6d0d238adc9)] correct interface implementation on ROCrateObject, remove interface implementation from Dataset + * [[#c429686](https://github.com/nfdi4plants/ARCtrl/commit/c4296864a7443a990257f7eb47fed92458fa0a7b)] remove javascript and pyton packages from main solution + * [[#3586dee](https://github.com/nfdi4plants/ARCtrl/commit/3586dee6a736d3ad2ed9e79778e3ea136c638eac)] remove restorelockedmode flag +* Bugfixes: + * [[#9d526b8](https://github.com/nfdi4plants/ARCtrl/commit/9d526b82df1d7ac04283cbe23c9832f1d5818771)] add LabProcess tests, fix schematype of ROCrateObject base constructor + * [[#192812d](https://github.com/nfdi4plants/ARCtrl/commit/192812d43569270845883ca116de9931dea6ba62)] fix error messages of ROCrate testing utils + * [[#43d65db](https://github.com/nfdi4plants/ARCtrl/commit/43d65db3fb121a4832e771541880c1fe79cfe89c)] various test fixes for Fable logic transition + * [[#8552f9e](https://github.com/nfdi4plants/ARCtrl/commit/8552f9ea7b2183c4cb382049c71793918d4128b3)] fix fable ready packaging and/by update package tags + ### 2.0.1+5e6cc32 (Released 2024-8-29) * Bugfixes: * [[#bfaaaf6](https://github.com/nfdi4plants/ARCtrl/commit/bfaaaf614a1a2dc788a1b7de17761b5867aa9fee)] fix single dot in paths being interpreted as folder diff --git a/build/release_package.json b/build/release_package.json index a002ca47..f513485d 100644 --- a/build/release_package.json +++ b/build/release_package.json @@ -1,6 +1,6 @@ { "name": "@nfdi4plants/arctrl", - "version": "2.0.1", + "version": "2.1.0", "description": "Top level ARC DataModel and API function descriptions.", "type": "module", "main": "index.js", diff --git a/pyproject.toml b/pyproject.toml index ecd401d5..a416193a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ARCtrl" -version = "2.0.1" +version = "2.1.0" description = "Library for management of Annotated Research Contexts (ARCs) using an in-memory representation and runtimer agnostic contract systems." authors = ["Heinrich Lukas Weil ", "Kevin Frey "] maintainers = ["Florian Wetzels"] diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json index c37795a3..6b96a1d5 100644 --- a/src/ARCtrl/packages.lock.json +++ b/src/ARCtrl/packages.lock.json @@ -2,12 +2,37 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { + "Fable.Fetch": { + "type": "Direct", + "requested": "[2.6.0, )", + "resolved": "2.6.0", + "contentHash": "zhCl95EYeuKcc7bk2jGHLSuLhkPqvRcrlwC91GqgX51BlQ7WJF2IQ7mUxW2n1mg74M1D2VOwEKqQpTAZDCVa8Q==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Browser.Blob": "1.2.0", + "Fable.Browser.Event": "1.5.0", + "Fable.Core": "3.7.1", + "Fable.Promise": "2.2.2" + } + }, "Fable.Package.SDK": { "type": "Direct", "requested": "[1.1.0, )", "resolved": "1.1.0", "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, + "Fable.SimpleHttp": { + "type": "Direct", + "requested": "[3.5.0, )", + "resolved": "3.5.0", + "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Dom": "1.0.0", + "Fable.Browser.XMLHttpRequest": "1.1.0", + "Fable.Core": "3.0.0" + } + }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -17,26 +42,86 @@ "Microsoft.NETCore.Platforms": "1.1.0" } }, - "Thoth.Json.Python": { + "Thoth.Json.JavaScript": { "type": "Direct", - "requested": "[0.4.0, )", - "resolved": "0.4.0", - "contentHash": "O86Oisv/91NpbHENz11poZh9zrTRJdAjDXHVC1JqvDDsscelI7HxOmWgks8ZFvYxbBzNJCG+FKQHC10KzyMf8g==", + "requested": "[0.3.0, )", + "resolved": "0.3.0", + "contentHash": "A4Cwv+RigC52/OdcrU2woEvjd6rsiDlQGDNTqwXYe3Yh6cdzcLWTfmmwTuCOXgV8SMbcSkviqiS2AG5BS42ayg==", "dependencies": { "FSharp.Core": "5.0.0", "Fable.Core": "4.1.0", "Fable.Package.SDK": "1.0.0", - "Fable.Python": "4.3.0", "Thoth.Json.Core": "0.4.0" } }, - "Fable.Python": { + "Fable.Browser.Blob": { "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", + "resolved": "1.2.0", + "contentHash": "bM4zbtIeycTFFCH7o4WuN28W70dTxNTMZiMvR70XUTYrBnbz7GpS5XxzUy5caDB4l7s2l7wiuVDhh52t7NXxDg==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Dom": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Blob": "1.0.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Browser.WebStorage": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Event": { + "type": "Transitive", + "resolved": "1.5.0", + "contentHash": "Bx2AOOASIG1Eq1Pe8869H8baMePte6STmKGccGuOYMT2p6nWVS8G6ZBZb5encQ0tAL2/0vhA4KJOl4bYwUaQqg==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Browser.Gamepad": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Gamepad": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "8m/Ae/mrH2Hb2ue435rTPEeVb2FhfWsRJJLpCxMvk+5EUOO2+IIjIkLq4thUfRL98uQVt9V5cQd14h2aBf2XJA==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.WebStorage": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", + "dependencies": { + "FSharp.Core": "4.5.2", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.XMLHttpRequest": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", + "dependencies": { + "FSharp.Core": "4.6.2", + "Fable.Browser.Blob": "1.1.0", + "Fable.Browser.Event": "1.0.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Promise": { + "type": "Transitive", + "resolved": "2.2.2", + "contentHash": "yHFSo7GCY0l/Wjskh/HESuFoGzXIoRM22UlrARA5ewnX736Y1wM27kcqCWeGcIzaEsgJnZcDkp093M0gQyMcWA==", "dependencies": { "FSharp.Core": "4.7.2", - "Fable.Core": "[4.1.0, 5.0.0)" + "Fable.Core": "3.1.5" } }, "Microsoft.NETCore.Platforms": { diff --git a/tests/TestingUtils/packages.lock.json b/tests/TestingUtils/packages.lock.json index 968b059f..85b7e769 100644 --- a/tests/TestingUtils/packages.lock.json +++ b/tests/TestingUtils/packages.lock.json @@ -25,10 +25,10 @@ }, "Fable.Browser.Blob": { "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "xMX7hPFwBUGuj75xLlH6VsVThZjRlGW4zOqXb1X+byRPLSBE91vtn9EueNUB+YpGhE9LfrtakIPNGy+dkoMkjg==", + "resolved": "1.2.0", + "contentHash": "bM4zbtIeycTFFCH7o4WuN28W70dTxNTMZiMvR70XUTYrBnbz7GpS5XxzUy5caDB4l7s2l7wiuVDhh52t7NXxDg==", "dependencies": { - "FSharp.Core": "4.6.2", + "FSharp.Core": "4.7.2", "Fable.Core": "3.0.0" } }, @@ -46,10 +46,20 @@ }, "Fable.Browser.Event": { "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "T1bGrlRJ4A2fxOfAVPzJpxanR6lkzPgJroPdSN1IU5CLdKtvRakWmYq6QKqu4dz6ZV9Z3fIPTWLZkoGKEOEo3w==", + "resolved": "1.5.0", + "contentHash": "Bx2AOOASIG1Eq1Pe8869H8baMePte6STmKGccGuOYMT2p6nWVS8G6ZBZb5encQ0tAL2/0vhA4KJOl4bYwUaQqg==", "dependencies": { - "FSharp.Core": "4.5.2", + "FSharp.Core": "4.7.2", + "Fable.Browser.Gamepad": "1.1.0", + "Fable.Core": "3.0.0" + } + }, + "Fable.Browser.Gamepad": { + "type": "Transitive", + "resolved": "1.1.0", + "contentHash": "8m/Ae/mrH2Hb2ue435rTPEeVb2FhfWsRJJLpCxMvk+5EUOO2+IIjIkLq4thUfRL98uQVt9V5cQd14h2aBf2XJA==", + "dependencies": { + "FSharp.Core": "4.7.2", "Fable.Core": "3.0.0" } }, @@ -74,6 +84,15 @@ "Fable.Core": "3.0.0" } }, + "Fable.Promise": { + "type": "Transitive", + "resolved": "2.2.2", + "contentHash": "yHFSo7GCY0l/Wjskh/HESuFoGzXIoRM22UlrARA5ewnX736Y1wM27kcqCWeGcIzaEsgJnZcDkp093M0gQyMcWA==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Core": "3.1.5" + } + }, "Fable.Python": { "type": "Transitive", "resolved": "4.3.0", @@ -126,6 +145,20 @@ "Fable.Core": "[4.3.0, )" } }, + "arctrl.javascript": { + "type": "Project", + "dependencies": { + "ARCtrl.CWL": "[1.0.0, )", + "ARCtrl.Contract": "[1.0.0, )", + "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Json": "[1.0.0, )", + "ARCtrl.ROCrate": "[1.0.0, )", + "ARCtrl.Spreadsheet": "[1.0.0, )", + "Fable.Fetch": "[2.6.0, )", + "Fable.SimpleHttp": "[3.5.0, )", + "Thoth.Json.Javascript": "[0.3.0, )" + } + }, "arctrl.json": { "type": "Project", "dependencies": { @@ -179,6 +212,19 @@ "resolved": "4.3.0", "contentHash": "sbK+hYs7H7I3b3sbgttI4GlvQfNPcIqSz1qPSagF3QbVA46KJ/pWSXC/Dwv0s9M6AeRGmoqcIeD7GUaLn41zkA==" }, + "Fable.Fetch": { + "type": "CentralTransitive", + "requested": "[2.6.0, )", + "resolved": "2.6.0", + "contentHash": "zhCl95EYeuKcc7bk2jGHLSuLhkPqvRcrlwC91GqgX51BlQ7WJF2IQ7mUxW2n1mg74M1D2VOwEKqQpTAZDCVa8Q==", + "dependencies": { + "FSharp.Core": "4.7.2", + "Fable.Browser.Blob": "1.2.0", + "Fable.Browser.Event": "1.5.0", + "Fable.Core": "3.7.1", + "Fable.Promise": "2.2.2" + } + }, "Fable.SimpleHttp": { "type": "CentralTransitive", "requested": "[3.5.0, )", @@ -219,6 +265,18 @@ "Fable.Package.SDK": "1.0.0" } }, + "Thoth.Json.JavaScript": { + "type": "CentralTransitive", + "requested": "[0.3.0, )", + "resolved": "0.3.0", + "contentHash": "A4Cwv+RigC52/OdcrU2woEvjd6rsiDlQGDNTqwXYe3Yh6cdzcLWTfmmwTuCOXgV8SMbcSkviqiS2AG5BS42ayg==", + "dependencies": { + "FSharp.Core": "5.0.0", + "Fable.Core": "4.1.0", + "Fable.Package.SDK": "1.0.0", + "Thoth.Json.Core": "0.4.0" + } + }, "Thoth.Json.Newtonsoft": { "type": "CentralTransitive", "requested": "[0.2.0, )", From 12eb2b92018b8ef664853796374d6acf1fa85d3a Mon Sep 17 00:00:00 2001 From: Heinrich Lukas Weil Date: Thu, 3 Oct 2024 18:04:27 +0200 Subject: [PATCH 14/15] remove leftover catching of erros in dotnet packaging --- build/PackageTasks.fs | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/build/PackageTasks.fs b/build/PackageTasks.fs index 656d0d11..606972f8 100644 --- a/build/PackageTasks.fs +++ b/build/PackageTasks.fs @@ -22,30 +22,22 @@ module BundleDotNet = System.IO.Directory.CreateDirectory(ProjectInfo.netPkgDir) |> ignore !! "src/**/*.*proj" -- "src/bin/*" - |> Seq.iter (fun g -> - try - g - |> Fake.DotNet.DotNet.pack (fun p -> - - let msBuildParams = - {p.MSBuildParams with - Properties = ([ - "Version",versionTag - "PackageReleaseNotes", (ProjectInfo.release.Notes |> List.map replaceCommitLink |> String.toLines ) - ] @ p.MSBuildParams.Properties) - DisableInternalBinLog = true - } - { - p with - VersionSuffix = versionSuffix - MSBuildParams = msBuildParams - OutputPath = Some ProjectInfo.netPkgDir - } - - ) - with - | err -> () - ) + |> Seq.iter (Fake.DotNet.DotNet.pack (fun p -> + let msBuildParams = + {p.MSBuildParams with + Properties = ([ + "Version",versionTag + "PackageReleaseNotes", (ProjectInfo.release.Notes |> List.map replaceCommitLink |> String.toLines ) + ] @ p.MSBuildParams.Properties) + DisableInternalBinLog = true + } + { + p with + VersionSuffix = versionSuffix + MSBuildParams = msBuildParams + OutputPath = Some ProjectInfo.netPkgDir + } + )) let packDotNet = BuildTask.create "PackDotNet" [clean; build; runTests] { BundleDotNet.bundle ProjectInfo.stableVersionTag None From b8640a7519b1c50a2b48d6720a35949039ba3fa9 Mon Sep 17 00:00:00 2001 From: HLWeil Date: Mon, 7 Oct 2024 14:46:52 +0200 Subject: [PATCH 15/15] small changes to build-chain according to PR review --- build/BasicTasks.fs | 1 - build/PackageTasks.fs | 6 +- package.json | 20 ------ src/ARCtrl/packages.lock.json | 129 ++++++---------------------------- 4 files changed, 26 insertions(+), 130 deletions(-) diff --git a/build/BasicTasks.fs b/build/BasicTasks.fs index fa1a72e3..aa5ee777 100644 --- a/build/BasicTasks.fs +++ b/build/BasicTasks.fs @@ -163,7 +163,6 @@ let build = BuildTask.create "Build" [clean] { let msBuildParams = {p.MSBuildParams with DisableInternalBinLog = true - NodeReuse = false } { p with diff --git a/build/PackageTasks.fs b/build/PackageTasks.fs index 606972f8..3a5cd4c4 100644 --- a/build/PackageTasks.fs +++ b/build/PackageTasks.fs @@ -56,8 +56,10 @@ let packDotNetSwate = BuildTask.create "packDotNetSwate" [clean; build; RunTests module BundleJs = let bundle (versionTag: string) = - Fake.JavaScript.Npm.run "bundlejs" (fun o -> o) + run dotnet $"fable src/ARCtrl/ARCtrl.Javascript.fsproj -o {ProjectInfo.npmPkgDir}" "" + GenerateIndexJs.ARCtrl_generate ProjectInfo.npmPkgDir + Fake.IO.File.readAsString "build/release_package.json" |> fun t -> let t = t.Replace(ProjectInfo.stableVersionTag, versionTag) @@ -104,7 +106,7 @@ module BundlePy = run python "-m poetry build" ProjectInfo.pyPkgDir //Remove "-o ." because not compatible with publish -let packPy = BuildTask.create "PackPy" [clean; build; (*runTests*)] { +let packPy = BuildTask.create "PackPy" [clean; build; runTests] { BundlePy.bundle ProjectInfo.stableVersionTag } diff --git a/package.json b/package.json index 97bf3ea3..21d11725 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,5 @@ { "type": "module", - "scripts": { - "mocha": "mocha", - "prebundlejs": "mkdirp .\\dist/js && dotnet fable clean -o ./dist/js --yes", - "bundlejs": "dotnet fable ./src/ARCtrl/ARCtrl.Javascript.fsproj -o ./dist/js", - "prebundlets": "mkdirp .\\dist/ts && dotnet fable clean -o ./dist/ts --yes --extension .ts", - "bundlets": "dotnet fable ./src/ARCtrl/ARCtrl.Javascript.fsproj -o ./dist/ts --lang ts", - "pretestJson": "dotnet fable tests/Json -o tests/Json/js", - "testJson": "mocha tests/Json/js --timeout 20000", - "pretestXlsx": "dotnet fable tests/Spreadsheet -o tests/Spreadsheet/js", - "testXlsx": "mocha tests/Spreadsheet/js --timeout 20000", - "pretestIsa": "dotnet fable tests/Core -o tests/Core/js", - "testIsa": "mocha tests/Core/js", - "pretestFiles": "dotnet fable tests/FileSystem -o tests/FileSystem/js", - "testFiles": "mocha tests/FileSystem/js", - "pretestArctrl": "dotnet fable tests/ARCtrl -o tests/ARCtrl/js", - "testArctrl": "mocha tests/ARCtrl/js", - "pretestjs": "dotnet fable src/ARCtrl/ARCtrl.Javascript.fsproj -o tests/JavaScript/ARCtrl ", - "testjs": "mocha tests/JavaScript", - "devui": "cd tests/UI & npx vite" - }, "author": "Heinrich Lukas Weil (https://github.com/HLWeil)", "contributors": [ "Kevin Frey (https://github.com/Freymaurer)" diff --git a/src/ARCtrl/packages.lock.json b/src/ARCtrl/packages.lock.json index 6b96a1d5..74c257d7 100644 --- a/src/ARCtrl/packages.lock.json +++ b/src/ARCtrl/packages.lock.json @@ -2,37 +2,12 @@ "version": 2, "dependencies": { ".NETStandard,Version=v2.0": { - "Fable.Fetch": { - "type": "Direct", - "requested": "[2.6.0, )", - "resolved": "2.6.0", - "contentHash": "zhCl95EYeuKcc7bk2jGHLSuLhkPqvRcrlwC91GqgX51BlQ7WJF2IQ7mUxW2n1mg74M1D2VOwEKqQpTAZDCVa8Q==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Browser.Blob": "1.2.0", - "Fable.Browser.Event": "1.5.0", - "Fable.Core": "3.7.1", - "Fable.Promise": "2.2.2" - } - }, "Fable.Package.SDK": { "type": "Direct", "requested": "[1.1.0, )", "resolved": "1.1.0", "contentHash": "YEMSyiB/HCpBgDSZUr0LHaTa9vYH+xj8Fvd/AvzUAVbLQ3Bc2l9xHOI9g4+Bh1wGsLFrhMwFW+U39D7m5a6oOw==" }, - "Fable.SimpleHttp": { - "type": "Direct", - "requested": "[3.5.0, )", - "resolved": "3.5.0", - "contentHash": "SWYshvAI90JcdGLsUmTWBG9eaazY6ihdIk/uehrEz/VqMx9qX+e7+PzYaw31DMwGYSva9/mpq9s69T/z8Ubl5Q==", - "dependencies": { - "FSharp.Core": "4.6.2", - "Fable.Browser.Dom": "1.0.0", - "Fable.Browser.XMLHttpRequest": "1.1.0", - "Fable.Core": "3.0.0" - } - }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", @@ -42,86 +17,26 @@ "Microsoft.NETCore.Platforms": "1.1.0" } }, - "Thoth.Json.JavaScript": { + "Thoth.Json.Python": { "type": "Direct", - "requested": "[0.3.0, )", - "resolved": "0.3.0", - "contentHash": "A4Cwv+RigC52/OdcrU2woEvjd6rsiDlQGDNTqwXYe3Yh6cdzcLWTfmmwTuCOXgV8SMbcSkviqiS2AG5BS42ayg==", + "requested": "[0.4.0, )", + "resolved": "0.4.0", + "contentHash": "O86Oisv/91NpbHENz11poZh9zrTRJdAjDXHVC1JqvDDsscelI7HxOmWgks8ZFvYxbBzNJCG+FKQHC10KzyMf8g==", "dependencies": { "FSharp.Core": "5.0.0", "Fable.Core": "4.1.0", "Fable.Package.SDK": "1.0.0", + "Fable.Python": "4.3.0", "Thoth.Json.Core": "0.4.0" } }, - "Fable.Browser.Blob": { + "Fable.Python": { "type": "Transitive", - "resolved": "1.2.0", - "contentHash": "bM4zbtIeycTFFCH7o4WuN28W70dTxNTMZiMvR70XUTYrBnbz7GpS5XxzUy5caDB4l7s2l7wiuVDhh52t7NXxDg==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Dom": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "ZodpIKYuKnUnqN71Fi103mh0joFYrRPGwpYOrpbZ149PkVAW7DNKXgxad5lsi9df7vAe5+sBhhO71TPREZaWlw==", - "dependencies": { - "FSharp.Core": "4.5.2", - "Fable.Browser.Blob": "1.0.0", - "Fable.Browser.Event": "1.0.0", - "Fable.Browser.WebStorage": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Event": { - "type": "Transitive", - "resolved": "1.5.0", - "contentHash": "Bx2AOOASIG1Eq1Pe8869H8baMePte6STmKGccGuOYMT2p6nWVS8G6ZBZb5encQ0tAL2/0vhA4KJOl4bYwUaQqg==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Browser.Gamepad": "1.1.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.Gamepad": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "8m/Ae/mrH2Hb2ue435rTPEeVb2FhfWsRJJLpCxMvk+5EUOO2+IIjIkLq4thUfRL98uQVt9V5cQd14h2aBf2XJA==", - "dependencies": { - "FSharp.Core": "4.7.2", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.WebStorage": { - "type": "Transitive", - "resolved": "1.0.0", - "contentHash": "ZqnZKYkhPO+wmJPxQqtiwSc3zCC/mB37SPlVi4ZLiHoPFnra7SQ3qaRn4/ENYTeaVtVq92eVaYbTyAOnFn+GPA==", - "dependencies": { - "FSharp.Core": "4.5.2", - "Fable.Browser.Event": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Browser.XMLHttpRequest": { - "type": "Transitive", - "resolved": "1.1.0", - "contentHash": "27p/F8781NrnV9vQ23RhX10ww9MDkX+Yi3yTiV9s8U8Bufi/VCCjS4swX0LXvgKQANN3k87CwaNeiO75r2U7gw==", - "dependencies": { - "FSharp.Core": "4.6.2", - "Fable.Browser.Blob": "1.1.0", - "Fable.Browser.Event": "1.0.0", - "Fable.Core": "3.0.0" - } - }, - "Fable.Promise": { - "type": "Transitive", - "resolved": "2.2.2", - "contentHash": "yHFSo7GCY0l/Wjskh/HESuFoGzXIoRM22UlrARA5ewnX736Y1wM27kcqCWeGcIzaEsgJnZcDkp093M0gQyMcWA==", + "resolved": "4.3.0", + "contentHash": "KT5PI4NyMtVLDcmDkf5SeqwtFjVO17u27xr45qXfYWG12UePHxGjQJoI16OafIzlEQ6cHfAuRljhZGKIlvOJNQ==", "dependencies": { "FSharp.Core": "4.7.2", - "Fable.Core": "3.1.5" + "Fable.Core": "[4.1.0, 5.0.0)" } }, "Microsoft.NETCore.Platforms": { @@ -132,17 +47,17 @@ "arctrl.contract": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.Json": "[1.0.0, )", - "ARCtrl.Spreadsheet": "[1.0.0, )", - "ARCtrl.Yaml": "[1.0.0, )" + "ARCtrl.Core": "[2.1.0, )", + "ARCtrl.Json": "[2.1.0, )", + "ARCtrl.Spreadsheet": "[2.1.0, )", + "ARCtrl.Yaml": "[2.1.0, )" } }, "arctrl.core": { "type": "Project", "dependencies": { - "ARCtrl.CWL": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )" + "ARCtrl.CWL": "[2.1.0, )", + "ARCtrl.FileSystem": "[2.1.0, )" } }, "arctrl.cwl": { @@ -157,8 +72,8 @@ "arctrl.json": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.ROCrate": "[1.0.0, )", + "ARCtrl.Core": "[2.1.0, )", + "ARCtrl.ROCrate": "[2.1.0, )", "Thoth.Json.Core": "[0.4.0, )" } }, @@ -172,22 +87,22 @@ "arctrl.spreadsheet": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.FileSystem": "[1.0.0, )", + "ARCtrl.Core": "[2.1.0, )", + "ARCtrl.FileSystem": "[2.1.0, )", "FsSpreadsheet": "[6.3.0-alpha.4, )" } }, "arctrl.validationpackages": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )" + "ARCtrl.Core": "[2.1.0, )" } }, "arctrl.yaml": { "type": "Project", "dependencies": { - "ARCtrl.Core": "[1.0.0, )", - "ARCtrl.ValidationPackages": "[1.0.0, )", + "ARCtrl.Core": "[2.1.0, )", + "ARCtrl.ValidationPackages": "[2.1.0, )", "YAMLicious": "[0.0.1, )" } },