Skip to content

Latest commit

 

History

History
826 lines (523 loc) · 43.1 KB

CHANGELOG.md

File metadata and controls

826 lines (523 loc) · 43.1 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

6.0.0 (2024-11-20)

Features

6.0.0-preview001 (2024-08-29)

Features

5.1.0 (2024-11-20)

Features

  • Centrialize package versions (b21215f)
  • Update dependencies (4fdd319)

5.0.0 (2024-6-26)

✨ Highlights

  • Simpler project structure
    • You now only need to reference the Nikcio.UHeadless package to get started as all packages are now merged into one.
  • New defaults for Queries and Models
    • The new defaults are now simpler and limited to the most common useable queries and models.
  • Authorization by default
    • New defaults will include authorization by default which will help ensure you're not exposing too much data.
  • Easier to use Typed properties
    • This release brings typed or previously 'Named properties' to the forefront and makes them easier to use.
    • Typed properties are now available everywhere it makes sense. (See the feature section for more details)
  • Cleaner setup with new bootstrapping.
    • The new bootstrapping is simpler and more intuitive.

🐎 Get started

Getting started with version 5.0.0

🚀 Features

  • Typed properties are now available everywhere it makes sense.
    • Use the TypedPropertes class for Content items/Media items and Member items
    • Use the TypedNestedContentProperties class for Nested Content items
    • Use the TypedBlockListContentProperties class for Block List items (Content)
    • Use the TypedBlockListSettingsProperties class for Block List items (Settings)
    • Use the TypedBlockGridContentProperties class for Block Grid items (Content)
    • Use the TypedBlockGridSettingsProperties class for Block Grid items (Settings)
  • New defaults for Queries and Models
    • Queries
      • Use ContentAtRootQuery to get content at the root of your Umbraco site.
      • Use ContentByContentTypeQuery to get content by content type.
      • Use ContentByGuidQuery to get content by guid.
      • Use ContentByIdQuery to get content by id.
      • Use ContentByRouteQuery to get content by route.
        • Includes built-in support for the Umbraco automatic redirects.
      • Use ContentByTagQuery to get content by tag.
      • Use MediaAtRootQuery to get media at the root of your Umbraco site.
      • Use MediaByContentTypeQuery to get media by content type.
      • Use MediaByGuidQuery to get media by guid.
      • Use MediaByIdQuery to get media by id.
      • Use FindMembersByDisplayNameQuery to get members by thier display name.
      • Use FindMembersByEmailQuery to get members by email.
      • Use FindMembersByRoleQuery to get members by role.
      • Use FindMembersByUsernameQuery to get members by username.
      • Use MemberByEmailQuery to get a member by email.
      • Use MemberByGuidQuery to get a member by guid.
      • Use MemberByIdQuery to get a member by id.
      • Use MemberByUsernameQuery to get a member by username.
    • Models
      • ContentItem is used for Content queries. This has built-in support for redirect information provided by ContentByRouteQuery.
      • MediaItem is used for Media queries.
      • MemberItem is used for Member queries.
      • BlockGrid to support the block grid editor.
      • BlockList to support the block list editor.
      • ContentPicker to support the content picker editor and the multi node picker.
      • DateTimePicker to support the date time picker editor.
      • DefaultProperty to support editors that doesn't require special modeling. (Used as the fallback)
      • Label to support the label editor.
      • MediaPicker to support the media picker editor.
      • MemberPicker to support the member picker editor. (Now requires Authorization by default to avoid leaking member information. This can be disabled by setting options.DisableAuthorization)
      • MultiUrlPicker to support the multi url picker editor.
      • NestedContent to support the nested content editor.
      • RichText to support the rich text editor and the markdown editor.
      • UnsupportedProperty to mark properties that are not supported.
  • Authorization by default
    • Authorization is now enabled by default for all queries to have secure by default queries.
    • Authorization is now enabled by default for the MemberPicker model to avoid leaking member information.
    • This can be disabled by setting options.DisableAuthorization in the UmbracoHeadlessOptions.
  • New bootstrapping
    • Bootstrapping is now simpler and more intuitive. (See the getting started guide at the bottom of this release note)
  • The new ContentPicker model now supports querying the properties of the picked content.
  • The IResolverContext from HotChocolate has now been added to the default commands so it can be used to resolve services and access query arguments like Culture, IncludePreivew, Fallback and Segment.
  • ContentByContentTypeQuery now supports includePreview to fetch preview content. #229
  • Context data like Culture, IncludePreivew, Fallback and Segment are now provided with the inContext parameter object on content queries.
  • Instead of the UsePaging attribute from HotChocolate a new Paginationresult model has been added to avoid problems with the way Umbraco handles content data on queries. This means that the UsePaging attribute is no longer needed and shouldn't be used in custom queries either.

📖 Documentation Updates

  • This release brings an overhaul of the documentation bringing you the most helpful information about the package.

🧪 Test improvements

  • Content query tests have been rewritten and are now more stable.
  • Media query tests have been rewritten and are now more stable.
  • Member query tests have been rewritten and are now more stable.
  • Code coverage is now over 80%.

🏛️Project stability

  • All projects are now merged into one which makes maintenance easier as this also removes a lot of code as the package could be simplified.
  • A new Nikcio.UHeadless.LegacyModels project has been added to help with migration from the old schema to the new schema. (This won't be available as a package but will be available for use for people migrating).
    • Use this project to get a similar content model to the one found in v4.

📦 Dependencies

  • HotChocolate.Data has been removed as it's no longer needed.

💥 Breaking changes.

  • This release is a complete overhaul of the project and therefore a lot of things have changed.
    • Take a good look in the documentation which has been updated and if not your question can be answered there open a question on GitHub.

4.2.1 (2024-04-09)

Features

  • Add analyzers and correct warnings (9503de8)
  • Align ArgumentNullException (0cf4fc2)
  • Minor clean up (cc80dfb)

Bug Fixes

  • Empty string being returned as array (d8cc412)

4.2.0 (2024-04-06)

Features

Bug Fixes

  • Correctly escape backslash (f3f6a23)
  • Fixed path for snapshots (8ee1239)

4.2.0-preview001 (2024-03-06)

Features

4.1.1 (2023-08-02)

Bug Fixes

4.1.0 (2023-07-02)

Features

  • Added the abillity to query properties based on content types in Umbraco (f93a030)
  • Added type modules to media & members (c5f8711)

Bug Fixes

  • Fixed DependencyReflectorFactory using too many of the required params (006d721)
  • Only add used types to PropertyMap if mapping was added (6f7d43c)

4.0.0 (2023-06-12)

⚠ BREAKING CHANGES

  • Removes the redundant TProperty argument from classes where it's not needed which simplifies the classes quite a bit.

Features

  • Added mapping key methods to property map (36bd25e)

4.0.0-preview002 (2023-06-07)

⚠ BREAKING CHANGES

  • Removes the UseSecurity option. The naming is confusing on what it does and the developer should control the authentication and authorization themself to have greater control over their application.

Features

  • Allow BasicMember with generic properties (abf399d)

  • Removes the UseSecurity option (530870a)

4.0.0-preview001 (2023-06-06)

⚠ BREAKING CHANGES

  • Renamed AllMembers query to MembersAll to have similar naming as the rest of the queries.
  • Some namespaces wasn't synced properly to the location of the files. So to avoid confusion over source files the namespaces has been synced. New namespaces:

BasicBlockListItem - Nikcio.UHeadless.Base.Basics.EditorsValues.BlockList.Models BasicBlockListModel - Nikcio.UHeadless.Base.Basics.EditorsValues.BlockList.Models BasicContentPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.ContentPicker.Models BasicContentPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.ContentPicker.Models BasicDateTimePicker - Nikcio.UHeadless.Base.Basics.EditorsValues.DateTimePicker.Models BasicPropertyValue - Nikcio.UHeadless.Base.Basics.EditorsValues.Fallback.Models BasicMediaPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.MediaPicker.Models BasicMediaPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.MediaPicker.Models BasicMemberPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.MemberPicker.Models BasicMemberPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.MemberPicker.Models BasicMultiUrlPicker - Nikcio.UHeadless.Base.Basics.EditorsValues.MultiUrlPicker.Models BasicMultiUrlPickerItem - Nikcio.UHeadless.Base.Basics.EditorsValues.MultiUrlPicker.Models BasicNestedContent - Nikcio.UHeadless.Base.Basics.EditorsValues.NestedContent.Models BasicNestedContentElement - Nikcio.UHeadless.Base.Basics.EditorsValues.NestedContent.Models BasicRichText - Nikcio.UHeadless.Base.Basics.EditorsValues.RichTextEditor.Models PropertyMapExtensions - Nikcio.UHeadless.Base.Basics.Maps.Extensions BasicProperty - Nikcio.UHeadless.Base.Basics.Models

  • Member queries have been split to separate models which removes BasicMemberQuery.
  • Media queries have been split to separate models which removes BasicMediaQuery.
  • This removes the property queries as they had a weird place in the package and no real use. (You can do the exact same thing with the content queries).
  • Media & Members have had culture removed from the query options. It's not possible to create media and members on different cultures and it's therefore not necessary to be able to query for it.

Content & Property queries have had segment & Fallback added to the query options to better support culture querying.

All GetValue for property values have been changed to Value which better support culture variants.

  • Introduces IVariationContextAccessor to the contructor on BasicContent
  • What was BasicContentOfBasicPropertyAndBasicContentTypeAndBasicContentRedirect in v3 schema will now be BasicContent. This simplifies the naming of types used in the schema a lot.

Also the integration test schema was updated using dotnet graphql download https://localhost:44321/graphql

  • The content queries has been given a separate class for each query to help developers only expose the data they need.
  • Replace Alias with model on propertyValue
  • deps: Added min requirement to be Umbraco 11 & .Net 7
  • deps: Updated to Hotchocolate 13

Features

  • Added Auth queries (f93f598)
  • Added better support for multi-culture sites (fb0be99)
  • Added Block grid support (c92e40c)
  • Replace Alias with model on propertyValue (406c102)
  • Split media queries to separate models (368072f)
  • Split member queries to separate models (469e7df)

Bug Fixes

  • Fixes culture properties on content (aee9e0b), closes #145

  • Changed BasicContent to have simpler names in schema (c8c8eea)

  • Conform namespaces after folder structure (611184c)

  • deps: Added min requirement to be Umbraco 11 & .Net 7 (7683ebb)

  • deps: Updated to Hotchocolate 13 (91bb540)

  • Remove property queries (a9565e0)

  • Rename AllMembers to MembersAll to conform to other query names (f441c87)

  • Split content queries into separate files (09e1e66)

3.3.0 (2023-01-18)

Features

  • Support query for HTML output from MarkdownEditor (PR 110) - Thanks @thetanz-geoff

Bug Fixes

  • Fixed possible null ref (7e8efd4)

Dependencies

  • Updated dependencies
    • Hotchocolate updated to 12.16.0

3.2.0 (2022-11-22)

Features

  • Add option to set GraphQLServerOptions (bf31138)

3.1.0 (2022-11-16)

Features

  • New content queries (8a28fc7)

    • ContentAll (Gets all the content items available)
    • ContentDescendantsByGuid (Gets descendants on a content item selected by guid)
    • ContentDescendantsById (Gets descendants on a content item selected by id)
    • ContentDescendantsByContentType (Gets all descendants of content items with a specific content type)
    • ContentDescendantsByAbsoluteRoute (Gets content item descendants by an absolute route)
    • ContentByTag (Gets content items by tag)

3.0.6 (2022-11-03)

Bug Fixes

  • Fixed redirect encountering "Ambitious reference" (5bf1ea4)

Dependencies

  • Updated dependencies
    • Hotchocolate updated to 12.15.1

3.0.5 (2022-10-18)

Bug Fixes

  • Create unsupported message for grid (a3f4798)

Dependencies

  • Updated dependencies
    • Hotchocolate updated to 12.15.0

3.0.4 (2022-10-05)

Bug Fixes

  • Fixed default mapping overruling custom property mappings (fd89095)

3.0.3 (2022-10-05)

Bug Fixes

  • Add culture to basic block list getValue (04db15f), closes #91

Dependencies

  • Updated dependencies

3.0.2 (2022-09-19)

Bug fixes

  • Fixed minimum umbraco cms requirement. (Minimum requirement is now set to v10.0.0)

Dependencies

  • Updated dependencies

3.0.1 (2022-09-03)

Dependencies

  • Updated dependencies

3.0.0 (2022-08-03)

3.0.0-preview003 (2022-08-03)

⚠ BREAKING CHANGES

  • Namespaces of Basics have changed like so: Nikcio.UHeadless.Basics.Properties --> Nikcio.UHeadless.Properties.Basics

Features

  • Added manifest to composer (7ebfd9d)

  • Added member queries & BasicLabel model (#68) (4772257)

  • Added more member queries (305fc80)

  • Merged basic projects with the base projects (4e90383)

3.0.0-preview002 (2022-07-16)

Bug Fixes

  • Fixed basics project references (ac5c961)

3.0.0-preview001 (2022-07-16)

BREAKING CHANGES

  • Dropped support for Umbraco v9

  • Namespace changes

    • Many namespaces have been changed to make it easier to make extending packages. This also means that some classes have been moved to completely different namespaces.
    • If you need to find a class's new location, look in the docs or use the search feature on GitHub.
    • Example:
      • using Nikcio.UHeadless.UmbracoContent --> using Nikcio.UHeadless.Content
  • Querying properties have been changed. See How to query properties.

  • The PropertyValue which is a basis for all property values now always includes an Alias. This is to support the new Property querying with fragments. See How to query properties.

  • AddPropertyMapDefaults has been removed from IPropertyMap this now

  • GetProperties has been changed to GetContentItemsProperties on the IPropertyRespository

  • The Value property on BasicProperty has been changed from object to PropertyValue to support the new querying. See How to query properties.

  • ContentQuery now takes a new generic parameter TContentRedirect of type IContentRedirect for redirect information.

  • GetContentByRoute has been removed. Use GetContentByAbsoluteRoute instead.

Features

  • Added boilerplate for members (1dd04b7)
  • Added ContentRedirect variation to BasicContent (c9d7912)
  • Added ContentRouter (52cc95a)
  • Added GetMediaByContentType (c725dbf)
  • Added ICommand (388bd05)
  • Added non generic BasicBlockListItem (8aa14b9)
  • Added non generic BasicBlockListModel (6cb3b06)
  • Added non generic BasicMemberPicker (a8086e0)
  • Added non generic BasicMemberPickerItem (989650b)
  • Added TMedia to BasicMedia (07481e2)
  • Added type support for properties (19cedce)
  • Adds non generic BasicNestedContent (da2f6db)
  • Adds non generic BasicNestedContentElement (8a1d37e)
  • Refactored Content and Media repository (e0d1723)

Bug Fixes

  • Added missing logger argument (7db3158)

3.0.0-preview000 (2022-07-16)

This release is to test the release workflow.

BREAKING CHANGES

This is work in progress and a summary of the breaking changes will come.

Features

  • Added boilerplate for members (1dd04b7)
  • Added ContentRedirect variation to BasicContent (c9d7912)
  • Added ContentRouter (52cc95a)
  • Added GetMediaByContentType (c725dbf)
  • Added ICommand (388bd05)
  • Added non generic BasicBlockListItem (8aa14b9)
  • Added non generic BasicBlockListModel (6cb3b06)
  • Added non generic BasicMemberPicker (a8086e0)
  • Added non generic BasicMemberPickerItem (989650b)
  • Added TMedia to BasicMedia (07481e2)
  • Added type support for properties (19cedce)
  • Adds non generic BasicNestedContent (da2f6db)
  • Adds non generic BasicNestedContentElement (8a1d37e)
  • Refactored Content and Media repository (e0d1723)

Bug Fixes

  • Added missing logger argument (7db3158)

2.3.0 (2022-07-06)

Features

  • Added package telemetry data (5c6a4b0)

Dependencies

  • Updated dependencies

2.2.1 (2022-06-19)

Dependencies

  • Updated dependencies

Bug fixes

  • Allow ParameterType to be IsAssignableFrom() (#57) (221b13a)

2.2.0 (2022-06-06)

Features

  • Added DateTime picker model (bdfa211)
  • deps: Updated dependencies (5020a3e)

2.1.1 (2022-05-22)

Dependencies

  • Updated dependencies

2.1.0 (2022-05-10)

Features

  • Added GetContentByAbsoluteRoute (208f2dd)

2.0.2 (2022-05-09)

Bug Fixes

  • Fixed BasicMultiUrlPicker not getting value for single link (#48) (391d1ee)

2.0.1 (2022-05-04)

Dependencies

  • Updated dependencies

2.0.0 (2022-05-01)

Features

2.0.0-preview.3 (2022-04-26)

Bug Fixes

  • Added correct alias to block list (fa026bf)

2.0.0-preview.2 (2022-04-26)

⚠ BREAKING CHANGES

  • BasicMediaItem --> BasicMediaPickerItem MediaItem -- MeidaPickerItem BasicMemberItem --> BasicMemberPickerItem MemberItem --> MemberPickerItem BasicLinkItem --> BasicMultiUrlPickerItem LinkItem --> MultiUrlPickerItem
  • BasicMember --> BasicMemberItem CreteMember --> CreateMemberPickerItem Member --> MemberItem CreateLink --> CreateLinkPickerItem BasicLink ..> BasicLinkItem Link --> LinkItem

Features

  • Added editor alias to BasicBlockListModel (da7c885)
  • Added generic media picker (811295a)
  • Added generic member picker (c6597a3)
  • Added generic models for multi url picker (befc3ab)
  • Added generic models to content picker (4e1fa3b)

Bug Fixes

  • Fixed creation of link item (55b3052)

  • Made methods virtual (d558c18)

  • Changed naming of picker models to have similar naming (3dbbc43)

  • Changed picker model naming (a9727d9)

2.0.0-preview.1 (2022-04-24)

Features

  • Add query by content type and filters to children (#36) (9467bc5) Thanks @Rizzet

Dependencies

  • Updated dependencies

2.0.0-preview.0 (2022-04-14)

⚠ BREAKING CHANGES

  • New naming scheme rules: All presets are prefixed with Basic. Removed the GraphType part of classes as it made little sense. Bases are now named in simple form. For example PropertyValueBaseGraphType --> PropertyValue

New naming of classes:

Maps: BaseMap --> DictionaryMap

Content: ContentGraphType --> BasicContent IContentGraphTypeBase --> IContent

Content queries: ContentQuery --> BasicContentQuery ContentQueryBase --> ContentQuery

Content types: ContentTypeGraphType --> ContentType

Elements: ElementGraphType --> BasicElement IElementGraphTypeBase --> IElement

Properties: PropertyValueBaseGraphType --> PropertyValue BlockListItemGraphType --> BasicBlockListItem BlockListItemBaseGraphType --> BlockListItem BlockListModelGraphType --> BasicBlockListModel ContentPickerGraphType --> BasicContentPicker ContentPickerItemGraphType --> BasicContentPickerItem PropertyValueBasicGraphType --> BasicPropertyValue MediaItem --> BasicMediaItem MediaPickerGraphType --> BasicMediaPicker MemberGraphType --> BasicMember MemberPickerGraphType --> BasicMemberPicker LinkGraphType --> BasicLink MultiUrlPickerGraphType --> BasicMultiUrlPicker ElementBaseGraphType --> NestedContentElement NestedContentElementGraphType --> BasicNestedContentElement NestedContentGraphType --> BasicNestedContent RichTextEditorGraphType --> BasicRichText IPropertyGraphTypeBase --> IProperty PropertyGraphType --> BasicProperty

Property queries: PropertyQuery --> BasicPropertyQuery PropertyQueryBase --> PropertyQuery

Property types: IPropertyTypeGraphType --> IPropertyType

Media: IMediaGraphTypeBase --> IMedia MediaGraphType --> BasicMedia

Media queries: MediaQuery --> BasicMediaQuery MediaQueryBase --> MediaQuery

  • Changed parameters for most extensions to use option classes for the available options.
  • Automapper was removed
  • .Net 5 is no longer supported

Features

  • Created more developer friendly options to UHeadless extensions (25b9dc6)
  • Removed Automapper (349d148)
  • Steamline flow and models (#35) (f2efc27)
  • Updated names to be more clear and easier to remember (2e6ff82)
  • Updated to .Net 6 (6aafada)

Bug Fixes

  • deps: Removed unnecessary dependencies (f82feaf)

1.3.0 (2022-03-05)

Features

1.2.0 (2022-03-01)

Features

  • Added virtual to all public methods (03d400a)

1.1.0 (2022-02-26)

Features

  • Added customizable queries & return types (707843e)

1.0.0 (2022-02-06)

⚠ BREAKING CHANGES

  • This changed almost all namespaces.
  • Updated the naming of the queries to include what is being queried.

Example: To get content at root you previously used atRoot this is now contentAtRoot

List: atRoot --> contentAtRoot byId --> contentById byGuid --> contentByGuid atRoute --> contentAtRoute

New: propertiesAtRoute propertiesById propertiesByGuid

The new queries uses the same values for fetching properties but gives an eaiser way to do filtering, paging and sorting.

Features

  • Added HotChocolate.Data (6eb7c67)
  • Added InitializeOnStartup to improve startup performance (c4fa00f)
  • Added option to throw on schema error (519b89d)
  • Added Paging, Filtering & Sorting (8fe4483)
  • Added support for Media Picker (e0ea5b8)
  • Added Tracing option (b083bc3)
  • Updated HotChocolate.AspNetCore to 12.6.0 (667af04)

Bug Fixes

  • Added PropertyRepository to DI (fa4382f)

  • Changes to improve code quality (03db2cb)

  • Fixed filtering on ContentType, Key and Properties (76edfe5)

  • Fixed tracing option (7bda7b1)

  • !refactor: Moved into feature code structure (9645a32)

  • !feat: Added seperate property queries (26e41b9)

0.1.7 (2022-02-05)

Features

  • Added Cors options to the startup extension (0c087d7)

Bug Fixes

  • Made Cors option optional (5cdebbc)

0.1.6 (2022-02-05)

Bug Fixes

0.1.5 (2022-02-04)

Features

  • Added Content Picker model (432b71f)
  • Added Member graph model (c52a73b)
  • Added MultiNodeTreePicker support (82f0602)
  • Added MultiUrlPicker model (f698814)
  • Made properties read-only on content (a6443a3)

Bug Fixes

  • Fixed MultiUrlPicker initial value (03bdc89)
  • Fixed property map implementation (564a6a8)
  • Fixed PropertyMap defaults and custom mappings (f0b98f4)

0.1.4 (2022-01-27)

Features

  • Added support for Rich text editor (67db76d)

Bug Fixes

  • Fixed automapper error when fetching content (bb51076)
  • Fixed children fetching (8f79eb7)

0.1.3 (2022-01-27)

Features

  • Added automapper extension method (bef3476)
  • Added depencency reflector factory (db8236b)
  • Block list & Nested content can now use any type (a4585d0)

Bug Fixes

  • Added required constructor to PropertyValueBaseGraphType (9d7e12a)
  • Added support for Umbraco v9 (977b237)
  • Made culture and content available on CreateProperty (eb10b59)

0.1.2 (2022-01-25)

Features

  • Added DI to property value generation (c8f6705)
  • Added nested content support & Added properties to block list (ef655e9)
  • Added property value mapping options (1ff1112)
  • Added standard-version (48be288)
  • Added the abillity to fetch properties (d5d83d8)
  • Content fetching 1.0 (eb8177f)
  • Created extensions for startup (76290a0)
  • Renamed project (bd62b60)