diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 58396cd3..2be6cf7a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -72,7 +72,3 @@ jobs: if: runner.os != 'Windows' run: dotnet test --no-build --project src/PAModelTests/PAModelTests.csproj --framework net10.0 continue-on-error: true - - name: Test - YamlValidator.Tests (net8.0) - if: runner.os != 'Windows' - run: dotnet test --no-build --project src/YamlValidator.Tests/YamlValidator.Tests.csproj --framework net8.0 - continue-on-error: true diff --git a/docs/KnownIssues.md b/docs/KnownIssues.md index f7fa2241..0073b271 100644 --- a/docs/KnownIssues.md +++ b/docs/KnownIssues.md @@ -2,18 +2,6 @@ This page lists all the ongoing known issues in PowerApps-Language-Tooling for which we have workarounds. These aren't necessarily bugs introduced in the pack/unpack utility but rather issues arising out of continuously evolving enhancements in the `.msapp` format that has been leading to issues when attempting to unpack apps built using older versions of Power Apps Studio. These are suggested workarounds that will help bring these apps to the latest format specification. This document will be continuously updated as issues and workarounds are discovered. -## Warning PA2001: Checksum mismatch. AppTests\2.json checksum does not match on extract - -This is a known issue with apps developed with a previous version of Studio, and has now been resolved. This error is known to occur due to a stray empty test step that gets added when unpacking the msapp. This can be resolved by adding an action to the empty test step and then deleting the test entirely by the following steps - - -1. Open the msapp back into the Power Apps Studio -2. Navigate to Tests -3. Edit the empty test step to add any non-empty action, such as `ClearCollect(‘foo’, [])` -4. Now delete the entire test, which should happen successfully -5. Save the app to local workspace and then unpack - -The app should now unpack successfully without any errors or warnings associated with Tests. - ## Error PA3013: Property Value Changed: TopParent.AllowAccessToGlobals (or similar) This can occur if the AllowAccessToGlobals field (associated with the Access app scope property for a custom component) within the msapp's Components json is not in sync with the same field in the ComponentsMetadata.json file. This can be resolved by the following steps - diff --git a/docs/YAMLFileFormat.md b/docs/YAMLFileFormat.md index c108f719..45ff1cfb 100644 --- a/docs/YAMLFileFormat.md +++ b/docs/YAMLFileFormat.md @@ -1,13 +1,13 @@ -# Legacy Power Apps YAML Source File Format +# Experimental Power Apps YAML Source File Format > [!WARNING] -> **This format is generated by PASopa and will likely change** +> **This document describes the 'Experimental' format generated by PASopa, which is deprecated.** The Power Apps formula language has a well established grammar for expressions based on Excel. However, it lacks the syntax for binding an expression to a property, this has always been handled behind the scenes. We have selected the industry standard [YAML](https://yaml.org/spec/1.2/spec.html) as our language for this binding. There are already a large number of editors, tools, and libraries for manipulating YAML. This document describes how we represent formulas in YAML. -At this time, we support only a restricted subset of YAML. Only the constructs described in this document are supported. +At this time, we support only a restricted subset of YAML. Only the constructs described in this document are supported. This is very much a work in progress and may change. Not everything that defines a Canvas app is represented here, additional information flows through the other files that the tool produces and consumes. @@ -34,7 +34,7 @@ Single-line formulas are written in the form: *Name* `:` `SPACE` `=` *Expression* -The space between the colon and the equals sign is required to be YAML compliant. The equals sign disrupts YAML's normal interpretation of the expression, allowing the rest of the line to be interrupted as the formula language. +The space between the colon and the equals sign is required to be YAML compliant. The equals sign disrupts YAML's normal interpretation of the expression, allowing the rest of the line to be interrupted as the formula language. For example: @@ -54,7 +54,7 @@ See the canvas app [operators and identifiers](https://docs.microsoft.com/en-us/ ## Multi-line formulas -Formulas can span multiple lines using YAML's block scalar indicators: +Formulas can span multiple lines using YAML's block scalar indicators: *Name* `:` `SPACE` ( `|` or `|+` or `|-` )  `=` *Expression-Line* @@ -97,14 +97,14 @@ Gallery1 As Gallery.horizontalGallery: =If( Lower( Left( Self.Text, 6 ) ) = "error:", Color.Red, Color.Black - ) + ) ``` *Component-Type* can be any canvas component or control. Base types, such as *Number* are not supported. *Component-Template* is an optional specifier for components that have different templates such as the Gallery. Not all components will have templates. -If *Name* contains special characters and is wrapped with single quotes, then the entire phrase to the left of the colon will need to be escaped. This can be done in two ways: +If *Name* contains special characters and is wrapped with single quotes, then the entire phrase to the left of the colon will need to be escaped. This can be done in two ways: - Use single quotes to wrap the entire left hand side, requiring the existing single quotes to be doubled: ``` '''A name with a space'' As Gallery': @@ -127,15 +127,15 @@ Components use properties to communicate with the app in which they are hosted. *Name* `:` ( *Single-Line-Expression* or *Multi-Line-Expression* ) -The type of the formula is implied by the type of the expression. +The type of the formula is implied by the type of the expression. For input properties, the expression provides the default to be inserted into the app when the component is instanced. The app maker can modify this expression as they see fit, but cannot change the type. -For output properties, the expression provides the calculation to be performed. The app maker cannot modify this expression, it is encapsulated in the component. +For output properties, the expression provides the calculation to be performed. The app maker cannot modify this expression, it is encapsulated in the component. At this time, all properties are data flow only and cannot contain side effects. -At this time, additional metadata about the property is not defined here but is instead in the other files of the .msapp file, for example the property's description. +At this time, additional metadata about the property is not defined here but is instead in the other files of the .msapp file, for example the property's description. For example: @@ -143,23 +143,23 @@ For example: DateRangePicker As CanvasComponent: DefaultStart: |- =// input property, customizable default for the component instance - Now() + Now() DefaultEnd: |- =// input property, customizable default for the component instance - DateAdd( Now(), 1, Days ) + DateAdd( Now(), 1, Days ) SelectedStart: =DatePicker1.SelectedDate // output property SelectedEnd: =DatePicker2.SelectedDate // output property ``` -## YAML compatibility +## YAML compatibility ### YAML comments -YAML's `#` line comments are not preserved anywhere in the source format. Instead, within a formula, use the formula language's line comments that start with `//` or block comments that are delimited with `/*` and `*/`. +YAML's `#` line comments are not preserved anywhere in the source format. Instead, within a formula, use the formula language's line comments that start with `//` or block comments that are delimited with `/*` and `*/`. ### Errors for common pitfalls -There are a few places where the formula language and YAML grammars are incompatible or could be confusing for a user. In these cases, we will throw an error. +There are a few places where the formula language and YAML grammars are incompatible or could be confusing for a user. In these cases, we will throw an error. For example in: ``` diff --git a/docs/images/stock-ai/image1.jpg b/docs/images/stock-ai/image1.jpg deleted file mode 100644 index cc850d59..00000000 Binary files a/docs/images/stock-ai/image1.jpg and /dev/null differ diff --git a/docs/images/stock-ai/image2.jpg b/docs/images/stock-ai/image2.jpg deleted file mode 100644 index 1510a7d1..00000000 Binary files a/docs/images/stock-ai/image2.jpg and /dev/null differ diff --git a/docs/images/stock-ai/image3.jpg b/docs/images/stock-ai/image3.jpg deleted file mode 100644 index 68952fdd..00000000 Binary files a/docs/images/stock-ai/image3.jpg and /dev/null differ diff --git a/docs/images/stock-ai/image4.jpg b/docs/images/stock-ai/image4.jpg deleted file mode 100644 index 08c821f0..00000000 Binary files a/docs/images/stock-ai/image4.jpg and /dev/null differ diff --git a/docs/images/stock-ai/image5.jpg b/docs/images/stock-ai/image5.jpg deleted file mode 100644 index 7925fdfe..00000000 Binary files a/docs/images/stock-ai/image5.jpg and /dev/null differ diff --git a/docs/pa.yaml-schema.json b/docs/pa.yaml-schema.json deleted file mode 100644 index 23bb5437..00000000 --- a/docs/pa.yaml-schema.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "pa.yaml-schema.json", - "title": "Microsoft Power Apps", - "description": "Canvas YAML", - "oneOf": [ - { - "description": "A single control", - "$ref": "#/$defs/ControlDef" - }, - { - "description": "An array of controls", - "type": "array", - "items": { "$ref": "#/$defs/ControlDef" } - } - ], - "$defs": { - "ControlDef": { - "type": "object", - "patternProperties": { - "^[^\\\\]*$": { - "description": "The control name", - "type": "object", - "properties": { - "Control": { - "$ref": "subschemas/control-type-schema.json" - }, - "Variant": { - "description": "The variant of the control", - "type": "string" - }, - "Layout": { "type": "string" }, - "Description": { "type": "string" }, - "Type": { "type": "string" }, - "Screens": { - "type": "array", - "items": { "$ref": "#/$defs/ControlDef" } - }, - "AccessAppScope": { "type": "string" }, - "Settings": { "type": "object" }, - "Style": { "type": "string" }, - "Properties": { - "$ref": "subschemas/control-property-schema.json" - }, - "CustomProperties": { - "type": "array" - }, - "ComponentName": { - "type": "string", - "pattern": "^[0-9A-Za-z_/]*$" - }, - "ComponentLibraryUniqueName": { - "type": "string", - "pattern": "^[0-9A-Za-z_/]*$" - }, - "Children": { - "description": "The children of the control", - "type": "array", - "items": { "$ref": "#/$defs/ControlDef" } - } - }, - "required": [ "Control" ], - "additionalProperties": false - } - }, - "additionalProperties": false - } - } -} diff --git a/docs/subschemas/control-property-schema.json b/docs/subschemas/control-property-schema.json deleted file mode 100644 index 748af747..00000000 --- a/docs/subschemas/control-property-schema.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "control-property-schema.json", - "title": "Microsoft Power Apps Properties", - "description": "The properties of the control", - "type": "object", - "properties": { - "X": { - "type": "string", - "description": "The distance between the left edge of a control and the left edge of its parent container (screen if no parent container)" - }, - "Y": { - "type": "string", - "description": "The distance between the top edge of a control and the top edge of the parent container (screen if no parent container)" - }, - "Height": { - "type": "string", - "description": "The distance between a control's top and bottom edges." - }, - "AutoHeight": { - "type": "string", - "description": "Whether a control automatically changes its height to fit the size of its contents, given a fixed width." - }, - "Width": { - "type": "string", - "description": "The distance between a control's left and right edges." - }, - "WidthFit ": { - "type": "string", - "description": "Whether a control automatically grows horizontally to fill any empty space of a container control such as an Edit form control." - }, - "Padding": { - "type": "string", - "description": "The distance between the text on an import or export button and the edges of that button." - }, - "PaddingBottom": { - "type": "string", - "description": "The distance between text in a control and the bottom edge of that control." - }, - "PaddingLeft": { - "type": "string", - "description": "The distance between text in a control and the left edge of that control." - }, - "PaddingRight": { - "type": "string", - "description": "The distance between text in a control and the right edge of that control." - }, - "PaddingTop": { - "type": "string", - "description": "The distance between text in a control and the top edge of that control." - }, - "RadiusBottomLeft": { - "type": "string", - "description": "The degree to which the bottom-left corner of a control is rounded." - }, - "RadiusBottomRight": { - "type": "string", - "description": "The degree to which the bottom-right corner of a control is rounded." - }, - "RadiusTopLeft": { - "type": "string", - "description": "The degree to which the top-left corner of a control is rounded." - }, - "RadiusTopRight": { - "type": "string", - "description": "The degree to which the top-right corner of a control is rounded." - }, - "Font": { - "type": "string", - "description": "The name of the family of fonts in which text appears." - }, - "FontWeight": { - "type": "string", - "description": "The weight of the text in a control: Bold, Semibold, Normal, or Lighter." - }, - "Italic": { - "type": "string", - "description": "Whether the text in a control is italic." - }, - "Size": { - "type": "string", - "description": "The font size of the text that appears on a control." - }, - "Strikethrough": { - "type": "string", - "description": "Whether a line appears through the text that appears on a control." - }, - "Underline": { - "type": "string", - "description": "Whether a line appears under the text that appears on a control." - }, - "Align": { - "type": "string", - "description": "The location of text in relation to the horizontal center of its control." - }, - "LineHeight": { - "type": "string", - "description": "The distance between, for example, lines of text or items in a list." - }, - "VerticalAlign": { - "type": "string", - "description": "The location of text on a control in relation to the vertical center of that control." - }, - "BackgroundImage": { - "type": "string", - "description": "The name of an image file that appears in the background of a screen." - }, - "Image": { - "type": "string", - "description": "The name of the image that appears in an image, audio, or microphone control." - }, - "ImagePosition": { - "type": "string", - "description": "The position (Fill, Fit, Stretch, Tile, or Center) of an image in a screen or a control if it isn't the same size as the image." - }, - "Default": { - "type": "string", - "description": "The initial value of a control before it is changed by the user." - }, - "DelayOutput": { - "type": "string", - "description": "Set to true to delay action during text input." - }, - "DisplayMode": { - "type": "string", - "description": "Values can be Edit, View, or Disabled. Configures whether the control allows user input (Edit), only displays data (View) or is disabled (Disabled)." - }, - "Items": { - "type": "string", - "description": "The source of data that appears in a control such as a gallery, a list, or a chart." - }, - "OnChange": { - "type": "string", - "description": "Actions to perform when the user changes the value of a control (for example, by adjusting a slider)." - }, - "OnSelect": { - "type": "string", - "description": "Actions to perform when the user taps or clicks a control." - }, - "Reset": { - "type": "string", - "description": "Whether a control reverts to its default value. Also see the Reset function." - }, - "Text": { - "type": "string", - "description": "Text that appears on a control or that the user types into a control." - }, - "Tooltip": { - "type": "string", - "description": "Explanatory text that appears when the user hovers over a control." - }, - "Value": { - "type": "string", - "description": "The value of an input control." - }, - "Visible": { - "type": "string", - "description": "Whether a control appears or is hidden." - }, - "BorderColor": { - "type": "string", - "description": "The color of a control's border." - }, - "BorderStyle": { - "type": "string", - "description": "Whether a control's border is Solid, Dashed, Dotted, or None." - }, - "BorderThickness": { - "type": "string", - "description": "The thickness of a control's border." - }, - "Color": { - "type": "string", - "description": "The color of text in a control." - }, - "DropShadow": { - "type": "string", - "description": "Adds shadow effects around the control." - }, - "Fill": { - "type": "string", - "description": "The background color of a control." - }, - "FocusedBorderColor": { - "type": "string", - "description": "The color of a control's border when it has focus." - }, - "FocusedBorderThickness": { - "type": "string", - "description": "The thickness of a control's border when it has focus." - }, - "DisabledBorderColor": { - "type": "string", - "description": "The color of a control's border if the control's DisplayMode property is set to Disabled." - }, - "DisabledColor": { - "type": "string", - "description": "The color of text in a control if its DisplayMode property is set to Disabled." - }, - "DisabledFill": { - "type": "string", - "description": "The background color of a control if its DisplayMode property is set to Disabled." - }, - "HoverBorderColor": { - "type": "string", - "description": "The color of a control's border when the user keeps the mouse pointer on that control." - }, - "HoverColor": { - "type": "string", - "description": "The color of the text in a control when the user keeps the mouse pointer on it." - }, - "HoverFill": { - "type": "string", - "description": "The background color of a control when the user keeps the mouse pointer on it." - }, - "PressedBorderColor": { - "type": "string", - "description": "The color of a control's border when the user taps or clicks that control." - }, - "PressedColor": { - "type": "string", - "description": "The color of text in a control when the user taps or clicks that control." - }, - "PressedFill": { - "type": "string", - "description": "The background color of a control when the user taps or clicks that control." - }, - "SelectionColor": { - "type": "string", - "description": "The text color of a selected item or items in a list or the color of the selection tool in a pen control." - }, - "SelectionFill": { - "type": "string", - "description": "The background color of a selected item or items in a list or a selected area of a pen control." - } - } -} diff --git a/docs/subschemas/control-type-schema.json b/docs/subschemas/control-type-schema.json deleted file mode 100644 index 2aac5d7d..00000000 --- a/docs/subschemas/control-type-schema.json +++ /dev/null @@ -1,126 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "control-type-schema.json", - "title": "Microsoft Power Apps Control Type", - "description": "The type of the control", - "type": "string", - "pattern": "^[0-9A-Za-z_/:#\\.]*$", - "examples": [ - "AddMedia", - "Arrow", - "Attachments", - "Audio", - "BarChart", - "Barcode", - "BarcodeScanner", - "Classic/Button", - "Camera", - "Classic/CheckBox", - "Circle", - "Classic/ComboBox", - "DataCard", - "DataGrid", - "DataTable", - "DataTableColumn", - "Classic/DatePicker", - "Classic/DropDown", - "Export", - "FluidGrid", - "Form", - "FormsPro", - "FormViewer", - "Gallery", - "GalleryTemplate", - "Group", - "GroupContainer", - "Hexagon", - "HtmlViewer", - "Classic/Icon", - "Image", - "Import", - "PenInput", - "Label", - "Legend", - "LineChart", - "ListBox", - "Lookup", - "Microphone", - "Octagon", - "PartialCircle", - "PDFViewer", - "Pentagon", - "PieChart", - "PowerBI", - "Classic/Radio", - "Rating", - "Rectangle", - "RichTextEditor", - "Classic/Slider", - "Star", - "Classic/StreamVideo", - "Classic/TextInput", - "Timer", - "Classic/Toggle", - "Triangle", - "TypedDataCard", - "Video", - "FluentV8/Button", - "FluentV8/CheckBox", - "FluentV8/ComboBox", - "FluentV8/DatePicker", - "FluentV8/Label", - "FluentV8/Radio", - "FluentV8/Rating", - "FluentV8/Slider", - "FluentV8/TextBox", - "FluentV8/Toggle", - "Badge", - "Button", - "CheckBox", - "ComboBox", - "DatePicker", - "DropDown", - "Header", - "InfoButton", - "Link", - "NumberInput", - "Progress", - "Radio", - "Slider", - "Spinner", - "StreamVideo", - "TabList", - "Text", - "TextInput", - "Toggle", - "Table", - "Icon", - "Avatar", - "Breadcrumb", - "SpinButton", - "Switch", - "PowerVirtualAgentsChat", - "IoTDeviceManager", - "AnnotateInMR", - "CopilotAnswer", - "Copilot", - "Chatbot", - "BusinessCardReader", - "BarcodeReader", - "AddressInput", - "ViewIn3D", - "ViewShapeInMR", - "ViewInMR", - "TextRecognizer", - "ReceiptProcessor", - "ObjectDetector", - "Map", - "FormProcessor", - "MeasureInMR", - "EntityForm", - "PcfDataField", - "SalesNavigatorAccount", - "SalesNavigatorLead", - "SpeechControl" - ] -} diff --git a/src/PASopa.sln b/src/PASopa.sln index 35c2a2f9..ea6ac81b 100644 --- a/src/PASopa.sln +++ b/src/PASopa.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.9.34407.89 +# Visual Studio Version 18 +VisualStudioVersion = 18.6.11806.211 stable MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PASopa", "PASopa\PASopa.csproj", "{C707D2F5-55B6-4EEC-9C7C-35DD5F0E3FEA}" EndProject @@ -28,10 +28,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7361DB16-D53 Directory.Packages.props = Directory.Packages.props EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.PowerPlatform.PowerApps.YamlValidator", "YamlValidator\Microsoft.PowerPlatform.PowerApps.YamlValidator.csproj", "{296D952B-C284-4AAB-9A79-59538CA7BF38}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YamlValidator.Tests", "YamlValidator.Tests\YamlValidator.Tests.csproj", "{E6180C81-59C1-4B25-90E0-E4390D455518}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -62,14 +58,6 @@ Global {8AB1C901-FE5E-44BF-AA21-B8F20A9D7CDD}.Debug|Any CPU.Build.0 = Debug|Any CPU {8AB1C901-FE5E-44BF-AA21-B8F20A9D7CDD}.Release|Any CPU.ActiveCfg = Release|Any CPU {8AB1C901-FE5E-44BF-AA21-B8F20A9D7CDD}.Release|Any CPU.Build.0 = Release|Any CPU - {296D952B-C284-4AAB-9A79-59538CA7BF38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {296D952B-C284-4AAB-9A79-59538CA7BF38}.Debug|Any CPU.Build.0 = Debug|Any CPU - {296D952B-C284-4AAB-9A79-59538CA7BF38}.Release|Any CPU.ActiveCfg = Release|Any CPU - {296D952B-C284-4AAB-9A79-59538CA7BF38}.Release|Any CPU.Build.0 = Release|Any CPU - {E6180C81-59C1-4B25-90E0-E4390D455518}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E6180C81-59C1-4B25-90E0-E4390D455518}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6180C81-59C1-4B25-90E0-E4390D455518}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E6180C81-59C1-4B25-90E0-E4390D455518}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -78,7 +66,6 @@ Global {8AD94CC0-7330-4880-A8E0-177B37CDB27B} = {4993E606-484B-46D9-892E-7AE9CE8D4423} {8AB1C901-FE5E-44BF-AA21-B8F20A9D7CDD} = {4993E606-484B-46D9-892E-7AE9CE8D4423} {7361DB16-D534-4E0E-8597-BE22317DEF47} = {794D8C68-BF6F-49C8-BCA5-AA52D8F45EF4} - {E6180C81-59C1-4B25-90E0-E4390D455518} = {4993E606-484B-46D9-892E-7AE9CE8D4423} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C936F8B1-DE7A-4401-95D5-5E199210F960} diff --git a/src/YamlValidator.Tests/AssemblyInfo.cs b/src/_deprecated/YamlValidator.Tests/AssemblyInfo.cs similarity index 100% rename from src/YamlValidator.Tests/AssemblyInfo.cs rename to src/_deprecated/YamlValidator.Tests/AssemblyInfo.cs diff --git a/src/YamlValidator.Tests/TestBase.cs b/src/_deprecated/YamlValidator.Tests/TestBase.cs similarity index 100% rename from src/YamlValidator.Tests/TestBase.cs rename to src/_deprecated/YamlValidator.Tests/TestBase.cs diff --git a/src/YamlValidator.Tests/VSTestBase.cs b/src/_deprecated/YamlValidator.Tests/VSTestBase.cs similarity index 100% rename from src/YamlValidator.Tests/VSTestBase.cs rename to src/_deprecated/YamlValidator.Tests/VSTestBase.cs diff --git a/src/YamlValidator.Tests/ValidatorFactoryTest.cs b/src/_deprecated/YamlValidator.Tests/ValidatorFactoryTest.cs similarity index 100% rename from src/YamlValidator.Tests/ValidatorFactoryTest.cs rename to src/_deprecated/YamlValidator.Tests/ValidatorFactoryTest.cs diff --git a/src/YamlValidator.Tests/ValidatorTest.cs b/src/_deprecated/YamlValidator.Tests/ValidatorTest.cs similarity index 100% rename from src/YamlValidator.Tests/ValidatorTest.cs rename to src/_deprecated/YamlValidator.Tests/ValidatorTest.cs diff --git a/src/YamlValidator.Tests/YamlValidator.Tests.csproj b/src/_deprecated/YamlValidator.Tests/YamlValidator.Tests.csproj similarity index 100% rename from src/YamlValidator.Tests/YamlValidator.Tests.csproj rename to src/_deprecated/YamlValidator.Tests/YamlValidator.Tests.csproj diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/ControlWithInvalidProperty.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ControlWithInvalidProperty.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/ControlWithInvalidProperty.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ControlWithInvalidProperty.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/Empty.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/Empty.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/Empty.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/Empty.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/EmptyArray.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/EmptyArray.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/EmptyArray.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/EmptyArray.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/NamelessObjectNoControl.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/NamelessObjectNoControl.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/NamelessObjectNoControl.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/NamelessObjectNoControl.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/NotYaml.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/NotYaml.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/NotYaml.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/NotYaml.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoColon.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoColon.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoColon.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoColon.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoValue.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoValue.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoValue.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithNameNoValue.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithoutControlProperty.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithoutControlProperty.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithoutControlProperty.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/ScreenWithoutControlProperty.yaml diff --git a/src/YamlValidator.Tests/_TestData/InvalidYaml/WrongControlDefinition.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/WrongControlDefinition.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/InvalidYaml/WrongControlDefinition.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/InvalidYaml/WrongControlDefinition.yaml diff --git a/src/YamlValidator.Tests/_TestData/ValidYaml/NamelessObjectWithControl.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/ValidYaml/NamelessObjectWithControl.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/ValidYaml/NamelessObjectWithControl.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/ValidYaml/NamelessObjectWithControl.yaml diff --git a/src/YamlValidator.Tests/_TestData/ValidYaml/SimpleNoRecursiveDefinition.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/ValidYaml/SimpleNoRecursiveDefinition.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/ValidYaml/SimpleNoRecursiveDefinition.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/ValidYaml/SimpleNoRecursiveDefinition.yaml diff --git a/src/YamlValidator.Tests/_TestData/ValidYaml/ValidScreen1.yaml b/src/_deprecated/YamlValidator.Tests/_TestData/ValidYaml/ValidScreen1.yaml similarity index 100% rename from src/YamlValidator.Tests/_TestData/ValidYaml/ValidScreen1.yaml rename to src/_deprecated/YamlValidator.Tests/_TestData/ValidYaml/ValidScreen1.yaml diff --git a/src/YamlValidator/Constants.cs b/src/_deprecated/YamlValidator/Constants.cs similarity index 100% rename from src/YamlValidator/Constants.cs rename to src/_deprecated/YamlValidator/Constants.cs diff --git a/src/YamlValidator/Extensions/ServiceCollectionExtensions.cs b/src/_deprecated/YamlValidator/Extensions/ServiceCollectionExtensions.cs similarity index 100% rename from src/YamlValidator/Extensions/ServiceCollectionExtensions.cs rename to src/_deprecated/YamlValidator/Extensions/ServiceCollectionExtensions.cs diff --git a/src/YamlValidator/IValidator.cs b/src/_deprecated/YamlValidator/IValidator.cs similarity index 100% rename from src/YamlValidator/IValidator.cs rename to src/_deprecated/YamlValidator/IValidator.cs diff --git a/src/YamlValidator/IValidatorFactory.cs b/src/_deprecated/YamlValidator/IValidatorFactory.cs similarity index 100% rename from src/YamlValidator/IValidatorFactory.cs rename to src/_deprecated/YamlValidator/IValidatorFactory.cs diff --git a/src/YamlValidator/InternalsVisibleTo.cs b/src/_deprecated/YamlValidator/InternalsVisibleTo.cs similarity index 100% rename from src/YamlValidator/InternalsVisibleTo.cs rename to src/_deprecated/YamlValidator/InternalsVisibleTo.cs diff --git a/src/YamlValidator/Microsoft.PowerPlatform.PowerApps.YamlValidator.csproj b/src/_deprecated/YamlValidator/Microsoft.PowerPlatform.PowerApps.YamlValidator.csproj similarity index 84% rename from src/YamlValidator/Microsoft.PowerPlatform.PowerApps.YamlValidator.csproj rename to src/_deprecated/YamlValidator/Microsoft.PowerPlatform.PowerApps.YamlValidator.csproj index e47c681c..f1fbf7b9 100644 --- a/src/YamlValidator/Microsoft.PowerPlatform.PowerApps.YamlValidator.csproj +++ b/src/_deprecated/YamlValidator/Microsoft.PowerPlatform.PowerApps.YamlValidator.csproj @@ -21,11 +21,12 @@ - + diff --git a/src/YamlValidator/SchemaLoader.cs b/src/_deprecated/YamlValidator/SchemaLoader.cs similarity index 100% rename from src/YamlValidator/SchemaLoader.cs rename to src/_deprecated/YamlValidator/SchemaLoader.cs diff --git a/src/YamlValidator/Utility.cs b/src/_deprecated/YamlValidator/Utility.cs similarity index 100% rename from src/YamlValidator/Utility.cs rename to src/_deprecated/YamlValidator/Utility.cs diff --git a/src/YamlValidator/Validator.cs b/src/_deprecated/YamlValidator/Validator.cs similarity index 100% rename from src/YamlValidator/Validator.cs rename to src/_deprecated/YamlValidator/Validator.cs diff --git a/src/YamlValidator/ValidatorError.cs b/src/_deprecated/YamlValidator/ValidatorError.cs similarity index 100% rename from src/YamlValidator/ValidatorError.cs rename to src/_deprecated/YamlValidator/ValidatorError.cs diff --git a/src/YamlValidator/ValidatorFactory.cs b/src/_deprecated/YamlValidator/ValidatorFactory.cs similarity index 100% rename from src/YamlValidator/ValidatorFactory.cs rename to src/_deprecated/YamlValidator/ValidatorFactory.cs diff --git a/src/YamlValidator/ValidatorResults.cs b/src/_deprecated/YamlValidator/ValidatorResults.cs similarity index 100% rename from src/YamlValidator/ValidatorResults.cs rename to src/_deprecated/YamlValidator/ValidatorResults.cs diff --git a/src/YamlValidator/YamlValidatorLibraryException.cs b/src/_deprecated/YamlValidator/YamlValidatorLibraryException.cs similarity index 100% rename from src/YamlValidator/YamlValidatorLibraryException.cs rename to src/_deprecated/YamlValidator/YamlValidatorLibraryException.cs diff --git a/src/schemas/pa-yaml/v2.1-alpha/canvas-schema.json b/src/schemas/pa-yaml/v2.1-alpha/canvas-schema.json deleted file mode 100644 index 38c12469..00000000 --- a/src/schemas/pa-yaml/v2.1-alpha/canvas-schema.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://github.com/microsoft/PowerApps-Language-Tooling/blob/master/docs/canvas-schema.json", - "title": "Microsoft Power Apps canvas screen schema", - "description": "A schema for describing the structure of a Microsoft Power Apps canvas app screen.", - "type": "object", - "properties": { - "Screen" : { - "type": "null" - }, - "Properties": { - "type": "object" - }, - "Controls": { - "type": "array", - "items": { - "$ref": "#/$defs/Control" - } - } - }, - "required": [ - "Screen" - ], - "$defs": { - "Control": { - "type": "object", - "required": [ "Name" ], - "properties": { - "Name": { - "type": "string" - }, - "Controls": { - "type": "array", - "items": { - "$ref": "#/$defs/Control" - } - }, - "Properties": { - "type": "object" - } - } - } - } -}