- Fix types related to QuickViewForms and form.ui.QuickViewForms (@mkholt)
- Fix Xrm.Navigation.openFile has inncorect type for openFileOptions (@matejskubic)
- Do not append 1 to field name in select type (@mkholt)
- Add getContentWindow method in ExternalControl( Webresource and IFrame) (@VlassisBakas)
- XrmQuery clean usage of substr and == (@skovlund)
- Fix typings for includeFormattedValuesAndLookupProperties (@skovlund)
- Enforce source-map v. ^0.7.4 allowing usage of NodeJS > v18 (@skovlund)
- Typings for custom controls no longer default to BaseControl (@skovlund)
- Add CustomPage typing to navigateTo method (@CHolmstoel)
- Use overridden API version in OData paths.
- Switch to eslint
- Add support for webapi requests (@mathiasbl)
- Fixed typings for Post Save Event and added preventDefaultOnError to Save Event (@skovlund)
- Add support for AppSidePane - https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-app-appsidepane (@mathiasbl)
- Typings for currentView on the view Selector (@skovlund, @mkholt)
- Ignore the special form types InteractionCentricDashboard and TaskFlowForm when generating form contexts. These form types contain attributes and controls that are improperly mapped, and as neither has any apparent applications as you can't apply web ressource handlers to them, they have been removed.
- Resolve System.ValueTuple reference issue.
- Update Xrm typings as per Microsoft documentation (@laws, @mlRosenquist)
- Always include additional headers in linked requests in dg.xrmquery.web.ts (@loeka1234)
- Fix relative execution directory for Run.ps1 (@mlRosenquist)
- Dependency updates for ini (1.3.5 -> 1.3.8), path-parse (1.0.5 -> 1.0.7), glob-parent (5.1.1 -> 5.1.2), yargs-parser (5.0.0 -> 5.0.1), y18n (3.2.1 -> 3.2.2), hosted-git-info (2.8.5 -> 2.8.9)
- Added typing getAttribute and getControl overrides taking a delegate as argument
- Fixed attribute and control types for custom controls
- Updated Default API version to v9.2
- Added support for custom retrievemultiple (@daryllabar)
- Added headersection and related methods (@ericregnier)
- Added support for installing XrmDefinitelyTyped as a PackageReference (@joshcambell191)
- Extended PageEntity with addOnPostSave
- Added title to Xrm.navigateTo.navigationOptions (@ArsenAghajanyan)
- Added typings for Knowledgebase Search control
- Added setVisible to form items (@urossavelj)
- Added typings for OnLookupTagClick (@mathiasbl)
- Added fallback to window.parent.window.Xrm before calling Xrm.Page in getClientUrl in XrmQuery
- Move
SetIsValid
to be available from CRM version 9.1 instead of 9.0 (@KnethM) - Update
XRM.Navigation.navigateTo
typings (@KnethM)
- Added Connection String Authentication method
- Fix issue with duplicate methods in
ProcessModule
within xrm.d.ts for CRM version 9.0 and up
- Fix issue where call to XDT with non-special argument would require CrmVersion argument
- New special flag "gendts" allowing XDT to only generating dts files: xrm.d.ts, metadata.d.ts, and sdk.d.ts
- Update Global Context with missing methods (@mkholt)
- Update
formContext.data.process
with missing methods and properties (@OliverFlint) - Fix incorrect arguments for
Xrm.Utility.openQuickCreate
for version 8.2 and up - Fix incorrect type of properties in
AddNotificationObject
used in.addNotification
(@sergeytunnik) - Fix missing return type on
setIsValied
(@sergeytunnik)
- Add a new field
securityRoles
inXrm.Utility.getGlobalContext().userSettings
that replacesroles
for CRM version 9.1 and up - Add new events to
formContext.data.process.
- Fixed error with naming in typings for Xrm.Utility.getGlobalContext().userSettings.roles
- Improved way that XDT handles attributes with the same name as entity name
- Fixed error with naming of controls in business process flows
- Fixed an error when XrmQuery was parsing attributes containing underscores
- Improved typings for Filter.In and Filter.NotIn
- Fixed error where attributes were not correctly appended with 1 when the attribute name was the same as the entity name in XrmQuery.
- Fix conflicting enums ClientType in xrm.d.ts
- Fix assembly reference issue when calling from Daxif
- Fixed casing error in PageInput - webResourceName
- Added support for client secret authentication
- Added getAttribute().setIsValid
- Fixed JSDoc for getAttribute().isValid
- Reworked typings of ExecutionContext to accommodate different getEventArgs and getEventSource (@sergeytunnik)
- Added typings for Xrm.Navigation.navigateTo (@mathiasbl)
- Added grid control methods and user settings properties (@mathiasbl)
- Fix issue with ts compiler issue due to form context containing invalid type "NoAttribute" due to bad metadata
- WebApi execute method now returns Fetch API Response object(@sergeytunnik)
- AlertStrings typing now supports title
- Added return void types to implicit any (@mathiasbl)
- Added support for property accesses data on Subgrids (@mkholt)
- Fixed a bug with the typings for Xrm.Navigation.openForm (@sergeytunnik)
- Added support for MFA (@StevenRasmussen)
- Added missing short-hands for BPF typings
- Fix bug where some formatted values replaced the base value instead of including the formatted value
- Added typings for getCurrentAppUrl() on the global context
- Added typings for getEntityTypes() on LookupControl (@CoreySutton)
- Fixed errors related to 4.3.6 with expand for the REST and Web API
- Fixed errors related to 4.3.6 with the REST API and expand for the Web API
- Fixed error with organization owned entities
- Added support for function
setEntityTypes
on lookup control (@san-86)
- It is now possible to set ownerId using XrmQuery. Using either .update or .associateSingle
- XrmQuery now checks for _guid at the end of the attribute name instead of guid in the name (@mdocter)
- Handled composite controls (address1_composite, address2_composite, fullname) not being available in UCI by marking them as possibly null
- Added support for emojis through labelMappings
- Fixed bug with stripGUID (@altmank)
- Fixed bug when using expand
- Added support for synchronous execution of XrmQuery. Should be used sparingly. (@majakubowski)
- Fixed error where .ts file was included for XrmQuery
- Fixed error where .d.ts file was missing for XrmQuery
- Fixed error in typings when generating for versions below 9.
- Add the following query functions to XrmQuery;
In
,NotIn
,Above
,Under
,UnderOrEqual
,NotUnder
,EqualUserId
,NotEqualUserId
,EqualBusinessId
,NotEqualBusinessId
. - Changed several Xrm functions to return promises instead of Then for version 9 and above.
- Added a more strict typing to Business Process Flow controls. This is a breaking change.
- Fixed a bug where typings were missing for fields from business process flows.
- Fixed errors with Xrm.WebAPI typings
- Fixed error where Xrm.Device.pickFile returned a single value instead of an array
- Added Xrm.ProcessModule.addOnProcessStatusChange (@majakubowski)
- Added Xrm.ProcessModule.removeOnProcessStatusChange (@majakubowski)
- Added Xrm.Process.getStatus (@majakubowski)
- Xrm.Utility.lookupObjects now returns an array of lookups (@mathiasbl)
- Added missing methods under Xrm.Encoding (@mathiasbl)
- Added option to include lookup properties (@pederwagner)
- Fixed LCID enums (problem with spaces and special characters)
- Bug fix
- Reduced the amount of proxies connected to an environment
- Bug fixes
- Only generates typings for active forms by default, added option sif to allow generation of inactive forms. Credit to PR #70
- Multiselect Optionsets are now supported.
- Added associate and disassociate support to XrmQuery
- FormIntersects are now once again generated properly.
- ViewIntersects added, functions just like form intersects, but for views. #55
- Typings are now generated for the logicalnames in entityreferences, as suggested in #38
- Increased dependencies to recent versions (including using D365 v9 assemblies)
- Removed dependency to Microsoft.IdentityModel
- Fixed casing with openInNewWindow in EntityFormOptions
- Made #44 optional
- Fixed issue 44: Be Able To Define Custom Interface Definition Creation, #44
- Fixed an issue where in the case of the NavigationPropteryName attributes being null in the relationship metadata, the generated definition file was not valid typescript code.
- Updated .NET framwork to 4.6.2 in order to fix issue with connecting to Dynamics 9.0
- REST API interfaces are now sorted
- Reverted the name change after a more elegant fix was proposed, in which the user uses the namespace feature of XDT.
- The WebEntities interface has been split up, as to comply with standards made in Typescript 2.4
- As a fix for clashing names with the standard Typescript library in 2.4-2.6, all entity interfaces have been postfixed with "XDT" - this is a breaking change.
- Reverted the name change after a more elegant fix was proposed, in which the user uses the namespace feature of XDT.
- The WebEntities interface has been split up, as to comply with standards made in Typescript 2.4
- As a fix for clashing names with the standard Typescript library in 2.4-2.6, all entity interfaces have been postfixed with "XDT" - this is a breaking change.
- XrmQuery now handles additional cases where Guid parentheses can occur.
- Views, LCIDs and webresource images are now properly generated based on generation settings instead of rawstate.
- Increased support for CRM 9.0.
- Header and footer controls will no longer be generated when using CRM 2011.
- Two Options formatted as Lists now get the proper type boolean instead of number.
- Made XrmQuery automatically remove Guid parenthesis, if they are there.
- Forms with duplicate names are named starting from 1
- Forms with duplicate names are ordered by their guid, to ensure a deterministic order
- Duplicate names in forms are now allowed
- Fixed issue with updating a datetime or date only field using XrmQuery
- All functionality in this release is only for CRM version 8.2 and above
- A new argument, "views", has been added. When set, all Views in the loaded solutions will be generated and put into the supplied namespace.
- The available languages installed in CRM are now retrieved and useable as an enum called LCID.
- The image web resources for the loaded solutions are now retrieved and useable as a union type called WebResourceImage.
- A helper function is now available for custom view icons and tooltips introduced in CRM 8.2.
- A new argument, "useDeprecated", has been added that toggles whether to include or exclude deprecated functionality.
- The following functions have been moved into deprecation extensions due to the impending 9.0 release:
- Xrm.Page.context: getQueryStringParameters, getTimeZoneOffsetMinutes, getUserId, getUserLcid, getUserName, getUserRoles, getIsAutoSaveEnabled, getOrgLcid, getOrgUniqueName
- addOnKeyPress removeOnKeyPress, showAutoComplete, hideAutoComplete
- Xrm.Utility: alertDialog, confirmDialog, isActivityType, openEntityForm, openQuickCreate, openWebResource
- isOutlookClient() and isOutlookOnline() now correctly appears when using CRM 2011
- Xrm.Page.ui.process and OptionSetControl.getOptions() which where introduced in CRM 2015, no longer appears in previous versions
- Xrm.Page.data.process which where introduced in CRM 2016, no longer appears in previous versions
- Additonal form programming methods introduced in CRM 2013 as well as some introduced in CRM 2015, no longer appear when using CRM 2011
- Fixed a bug when generating typings for 2011
- Form programming methods introduced in CRM 2013 no longer appear when using CRM 2011
- Updated XrmQuery to be compatible with TypeScript 2.4.1
- Added new methods to grid control which are found in newer versions (i.e.
getAttributes()
) - Moved
setDisabled
andgetDisabled
from theBaseControl
interface to theControl
interface - Made an
AnyControl
type which collections of controls use instead of theBaseControl
type
- Fix: Promise polyfill was not being included properly in the new gulp compilation setup
- Bind variables are now generated based on N:1 relationships, instead of Lookup attributes
- Fixed filtering and ordering by entity references in XrmQuery for the Web API
- Added some of the new Dynamics 365 form functionality
SDK.REST.retrieveRecord
now allowsnull
values in the select and expand parametersdouble
attributes are now typed asnumber
s instead ofstring
s for both endpointsdecimal
attributes are now typed asnumber
s in the WebAPI, and asstring
s in the old REST endpoint- Fixed generated output when targeting all entities
- Fixed bug when trying to access elements in the
Xrm
-namespace, while usingdeclare var Xrm: Xrm<...>
- Replaced all returns of the
Empty...
interfaces with theundefined
type
- Fixed creation of typings directories
- Removed NuGet dependencies and added necessary assemblies directly as files -- making it easy to use the tool straight from NuGet
- New argument
oneFile
makes XrmDefinitelyTyped concatenate all the dynamic parts of the typings into one filecontext.d.ts
- Automatic generation of config file, if one does not exist and no arguments are passed to executable
- Fixed automatic CRM version check
- General clean-up of code and structure
Result
andFormattedResult
interfaces were incorrectly initialized for retrieve queries- Removed string type as a valid parameter in certain function definitions of
xrm.d.ts
- Made
boolean
a valid filter type in the Web API
- Fix:
Filter.substringof
changed to beFilter.contains
in the Web API - Added matching generic return type on
promise()
of Query - Helper function
promiseRequest
method now also correctly returns the promise
- Promises now works properly in all cases
- Generation of lib and declaration files is now properly skipped if they are not specified in the configuration
- Fix: Intersection entity interfaces were not generated properly for the Web API (no entity set name)
- More robust usage of
GetGlobalContext()
, since CRM will bug out in certain cases when it is executed
- The Web API is now supported
- Generation of REST and Web API entity interfaces is now opt-in, and they can be namespaced
- Generation of
Form
interfaces can now be skipped - The
XrmQuery
functionality for the REST endpoint has been moved intoXrmQuery.Rest
- The filter functionality for the REST endpoint has been moved into
Filter.Rest
base.d.ts
has been renamed toxrm.d.ts
- Interfaces from the
IPage
namespace have been moved to theXrm
namespace IPage
entity interfaces have been deprecated in favor of intersection forms- It can now generate the context from a local metadata file via the new
save
- andload
-arguments - JavaScript library files (XrmQuery) can now be automatically updated when generating the context with the
jsLib
-argument
- Better handling of tabs and sections when intersecting forms
- Added union types throughout the generated declaration files to make it usable with TypeScript's
strictNullChecks
. - XrmQuery update (new javascript code):
- Added
getAll
function to RetrieveMultipleRecords which concatenates all page results and serves it to the success callback. - Changed
execute
function of RetrieveMultipleRecords to have obligatoryerrorCallback
andonComplete
handlers to promote proper usage of paged results.
- Added
- Added the possibility of generating special declaration files, which are intersections of multiple forms.
- Fix: Removed the newly version-controlled function
addTabStateChange
from the base declaration file
- Split
base.d.ts
into more parts - XrmDefinitelyTyped now retrieves the version from the targeted CRM and modifies the resulting
base.d.ts
to fit that version- Made AddTabStateChange function for specific CRM versions (Pre-CRM2016:
add_tabStateChange
, Post-CRM2016:addTabStateChange
) - Made CRM 2015 Update 1 form functionality only available, when CRM is that version or higher
- Made AddTabStateChange function for specific CRM versions (Pre-CRM2016:
- Added more specific types when getting controls on an attribute via
<Attribute>.controls
- Changed
IPage
module to be a namespace instead - Made
IPage.ExecutionContext
generic, such that it contains the type of the event source
- Removed current implementation for supporting previous TypeScript versions
- Made use of string literal types for certain functions in base.d.ts
- Better error messages when encountering AggregateExceptions
- XrmQuery update (new javascript code):
- Added
getFirst
function to RetrieveMultipleRecords
- Added
- Added support for entities and option sets sharing the same name
- XrmQuery updates (new javascript code):
- Fixed attribute select in expanded entities
- Added new filter functions to make it easier to make chained conjunctions:
Filter.ors
,Filter.ands
- Added new functions to RetrieveMultiple that make it possible to extend the current filter:
.orFilter
or.andFilter
- Fixed variable name:
Xrm.Page.ui.FormSelector
->Xrm.Page.ui.formSelector
- Fixed bug in XrmQuery when using IE in which it would fail to execute in certain cases
- Changed
getInitialValue()
of option-sets to also return the corresponding enum value
- Changed the
Option
interface to be generic based on the type of the parent attribute/control - Updated base.d.ts with more types to allow the use of
noImplicitAny
in the TypeScript compiler - Added a few missing functions to base.d.ts
- Added CRM version check for BPF fields in order to support CRM2011
- Added "/useconfig" argument, see usage for more information
- Renamed "/config" argument to "/genconfig"
- Changed exit-code for the executable to be 1 instead of 0, when it encounters an exception
- Added support for the new CRM 2016 form types
- Added version print when using the executable
- Added "/config" argument which generates a dummy configuration file to use
- Improved retrieval of CRM metadata
- Added CRM Online 2015 Update 1 functionality to subgrid controls
- Added filtering of which entities should be included in the context, see usage for more information.
- Fixed a missing generic type declaration on certain controls of type
OptionSetControl
- Reduced version requirements to support backward-compatibility:
- Reduced requirement of the dependency
Microsoft.CrmSdk.CoreAssemblies
to 5.0.18 or greater - Reduced used .NET Framework to version 4.5.2
- Reduced requirement of the dependency
- Added possibility of using
.exe.config
file to pass arguments - Changed
IPage.Control
to be generic, depending on the attribute it contains - Added
IPage.BaseControl
as a superclass toIPage.Control
that is non-generic and has nogetAttribute()
function. - Added
IPage.StringControl
andIPage.NumberControl
as shorthand names for their corresponding attribute controls - Updated entity IPage interfaces with new control types
- Added the attributes and controls that come along when
addressX_composite
is on a form - Added interface
IPage.LookupAttribute
as a shorthand name forIPage.Attribute<IPage.EntityReference[]>
- Code refactoring in preparation for open-sourcing the project
- Added numbering to controls when there are multiple of the same field on a form
- Added
getAttribute
to form controls
- Changed to use more robust Date object check in XrmQuery (updated javascript files)
- Updated to use Microsoft.CrmSdk.CoreAssemblies 7.1.1
- Made XrmQuery and the SDK entities use enums instead of just numbers
- Altered the type when selecting XrmQuery
expand
attributes
- Added support for using
Date
objects when filtering in XrmQuery (updated javascript files) - Added execution context object to the handler passed to
addOnChange
- Now generates declaration files for the newest TypeScript version
- New argument
tsversion
to specify which TypeScript version it should generate files for (newest version is default) - All word characters are now allowed in declaration names
- Added check for empty string declarations, outputting
_Unknown
instead - Eliminated duplicates of global enums and removed the obsolete file
optionsets.d.ts
- Fixed escape of string literals that contained single/double quotes
- Fixed an incorrectly named function.
- Added interfaces for the
Xrm.Page.data.process
andXrm.Page.ui.process
objects. - Changed an interface for the XrmQuery
expand
function.
- Fixed an incorrectly assigned interface
- New entity interfaces specifically for XrmQuery to ensure input correctness
- Updated
dg.xrmquery.js
anddg.xrmquery.min.js
- Added XrmQuery
- Changed to use .NET Framework 4.6
- Added Business Process Flow fields to forms
- Added more functionality to
addOnSave
on forms - Added missing functionality to
Xrm.Page.ui
- Updated to use Microsoft.CrmSdk.CoreAssemblies 7.1.0
- Added more functionality to lookup controls
GetContext
now throws an exception when called programatically and an error occurs
- Separated declarations for
SDK.Metadata.js
into a new filemetadata.d.ts
. - Added more specific declarations for the types gotten via Metadata calls
- Added install script for the NuGet package, which automatically copies the required DLLs into the same folder upon installation
- Fixed type of Money attributes sent and received through the REST API.
- Made the OptionSet attributes use the type of the actual corresponding
TypeScript enum instead of just the type
number
- Fixed type of OptionSet attributes for
SDK.REST
calls. - Fixed type of some TwoOption attributes for Form declaration files.
- Fixed bug when duplicates of the same field existed on a form.
- Introduced a new declaration file for each specific form.
Read more here.
- The previous IPage declaration files are still being generated in case they are necessary.
- Changes to
base.d.ts
to comply with the new Form declaration files
- Added docs to most of the base functionality.
- Updated some attribute types to be more specific
- Added generic Xrm interface for different pages
- Added executable usage description
- Better executable error messages
- Added more specific types to some attributes
- Added support for
deleteRecord
,associateRecords
anddisassociateRecords
- Removed attributes from entities which were not available via OData
- Changed NuGet package structure and added batch script to copy necessary assemblies
- Initial public release