@mohsinonxrm/pptb-fetchxml-studio 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A powerful, modern FetchXML query builder and data explorer for [Power Platform ToolBox](https://github.com/PowerPlatformToolBox/desktop-app). Inspired by the XrmToolBox FetchXML Builder, reimagined with React 18, Fluent UI v9, and seamless Dataverse integration.
4
4
 
5
- ![Version](https://img.shields.io/badge/version-1.2.1-blue)
5
+ ![Version](https://img.shields.io/badge/version-1.3.0-blue)
6
6
  ![React](https://img.shields.io/badge/React-18-61DAFB?logo=react)
7
7
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript)
8
8
  ![Fluent UI](https://img.shields.io/badge/Fluent%20UI-v9-0078D4?logo=microsoft)
@@ -53,6 +53,16 @@ A powerful, modern FetchXML query builder and data explorer for [Power Platform
53
53
  - **Smart updates** — Adds new selections and removes deselected attributes while preserving existing order and properties
54
54
  - **Search & filter** — Real-time filtering across logical name, display name, and data type columns
55
55
 
56
+ ### 🔀 Code Generation
57
+ - **Code tab** — New tab in the right pane that generates ready-to-use code from the current query in seven formats
58
+ - **C# QueryExpression** — Full SDK object graph (`QueryExpression`, `ColumnSet`, `FilterExpression`, `ConditionExpression`, `LinkEntity`, `OrderExpression`) via the Dataverse `FetchXmlToQueryExpression` API; supports aggregate queries with `XrmAggregateType` and `XrmDateTimeGrouping`
59
+ - **C# FetchExpression** — Simple `new FetchExpression(@"...")` wrapper using a verbatim string literal
60
+ - **JavaScript** — `Xrm.WebApi.retrieveMultipleRecords` call for model-driven apps and PCF components
61
+ - **pac CLI** — `pac org fetch --xml "..."` command for the Power Platform CLI
62
+ - **Power Automate** — Field-by-field form mirroring the Dataverse "List rows" connector UI; table name resolved from `EntityDefinitions` metadata (not a heuristic), each field individually copyable
63
+ - **Web API** — Full OData URL with request headers, cURL snippet, and PowerShell `Invoke-RestMethod` example; entity set name resolved from metadata
64
+ - **SQL** — Dataverse-generated T-SQL via `FetchXMLToSQL` (undocumented API, labelled Preview)
65
+
56
66
  ### 🎨 User Experience
57
67
  - **Dark/Light themes** — Follows Power Platform ToolBox theme with Fluent UI tokens
58
68
  - **Lazy metadata loading** — Loads only what's needed, when it's needed
@@ -77,7 +87,7 @@ A powerful, modern FetchXML query builder and data explorer for [Power Platform
77
87
  ┌─────────────────────────────────────────────────────────────────────────┐
78
88
  │ [Entity Selector ▼] [Load View ▼] [Save View] [⚙ Settings]│
79
89
  ├──────────────────────┬──────────────────────────────────────────────────┤
80
- │ │ [FetchXML] [LayoutXML] [Results] [▶ Execute]│
90
+ │ │ [FetchXML] [LayoutXML] [Results] [Code] [▶ Execute]│
81
91
  │ Query Tree ├──────────────────────────────────────────────────┤
82
92
  │ │ │
83
93
  │ 📁 fetch │ Results Grid / Monaco Editor │
@@ -192,6 +202,10 @@ src/
192
202
  │ │ ├── operators.ts # Operator definitions by attribute type
193
203
  │ │ ├── displaySettings.ts # Display settings types and defaults
194
204
  │ │ └── treeUtils.ts # Tree traversal utilities
205
+ │ ├── engine/
206
+ │ │ ├── queryExpressionTypes.ts # QE JSON schema interfaces (number | string enums)
207
+ │ │ ├── queryExpressionCodegen.ts # C# SDK code emitter (resolveEnum, unwrapODataValue)
208
+ │ │ └── fetchxmlCodeGenerators.ts # Sync generators: FetchExpr, JS, pac, PA, WebAPI
195
209
  │ ├── state/
196
210
  │ │ ├── builderStore.tsx # React context + reducer state management
197
211
  │ │ └── cache.ts # Per-session in-memory metadata cache
@@ -199,7 +213,8 @@ src/
199
213
  │ ├── LeftPane/ # Tree view + context-aware properties panel
200
214
  │ │ └── PropertiesPanel/
201
215
  │ │ └── editors/ # Node-specific property editors
202
- │ ├── RightPane/ # Monaco editor, LayoutXML viewer, results grid
216
+ │ ├── RightPane/ # Monaco editor, LayoutXML viewer, results grid,
217
+ │ │ # code generation panel, Power Automate pane
203
218
  │ ├── Toolbar/ # Entity selector, load view picker, save button
204
219
  │ ├── Dialogs/ # Save view, select attributes, delete, bulk
205
220
  │ │ # delete, workflow picker, solution picker