-
Notifications
You must be signed in to change notification settings - Fork 481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Expression] Add merge prebuilt function for merging JSON object #4075
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please refactor the method that is 1878 lines long.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🕐
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cleemullins I saw Shuai created two other tickets tracking your requested changes, i think this one is good to go, what do you think? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blocked on #4208
Grandfathered this in, pending the code refactor to Expressions. |
* Double cancellation test: improve test * Add OnPreBubble smartness to consult with QnA to decide whehter to allow interruptions. If QnAMaker is interrupted end the dialog. * Adaptive: Minor tweaks to CycleDetectionObserver. Clone from cache on non-loops, don't clone on loops - just stitch things together. * nuget.client is a package which is no longer being updated, they replaced it with nuget.packaing which is many versions past the one we were using. Worse, nuget.client had a bad prerelase package pushed in 2017 that breaks install adaptive into linqpad. also fixed .dialog files which were not compliant to schema (missing actions node) * Do NOT call TeamsInfo.getMember for the bot (#3923) (#3924) * Do NOT call TeamsInfo.getMember for the bot * Add TestConversationUpdateBotTeamsMemberAdded * Add interdependencies graph to readme (#3921) * Add dependency graph * Update README.md * Update README.md * Remove DependencyGraph folder * Update graph title * Update graph title 2 * Title tweak 3 * Fix path to graph * Fix unit test for formatting numbers On my machine, this unit test fails. The issue is that the expected value is incorrect. The `CurrencyGroupSeparator` for `fr-FR` is `\x202F` not `00a0` * Fix some typos in the same test * Slack sets timestamp as unix time in seconds If the server validates that the timestamp is recent to prevent replay attacks, then this would fail. * convert datetime object from memory to iso timestamp * revert * supoort datetime object input * Update to link to the new 4.9.1 dependency graph (#3929) * Remove functional-test-setup-steps.yml call from botbuilder-dotnet-sign.yml. (#3948) * add test cases * change error message * modify isDateTime function * Add badges for Win functional tests and Linux functional tests (#3950) * Maintain the high priority and independence of multiline (#3944) * Support long/int64 in number constant (#3912) * add long support * just use long to parse integer * revert int parse * add unit tests * [LG] Make template name format consistent with function name format (#3946) * Restrict the format of templateName * typo * modify the message * Remove path excludes from triggers (#3951) * Eliminate path-based excludes for CI build checks required by github * Add comment * Fixes BadRequest message in Teams (#3966) (#3967) * Added check to ensure we don't send EoC when a skill is done and we are at the root bot. Updated tests to handle this case and removed duplicated test after refactoring. Fixed some typos and trace message names. * Hardened prompts (#3949) * hardened prompts * rename message to utterance * Update to support object defaultOperations. * support expression in debug evaluate * Improve handling of PROPERTYName. * Add property to EntityInfo. * Fix assignment swallowing. * Fix issue where loop stops early. * Udpate generator unit tests to include operations and arrays. * Move strings to constants. * Normalize line endings in assert. * [Cherry pick from 4.9] Auth: Tighten JWT validation of channel-issued tokens with certificate signature (#3983) * Auth: Tighten JWT validation of channel issued tokens with certificate signature * Fix comment in test * Auth improvements: add test category and adjust linux build settings * Auth tests: cleanup self-signed certs after tests * Update README.md (#3999) * [Expression] Add DateTimeDiff prebuilt function (#3934) * add DateTimeDiff prebuilt function * remove unnecessary import * fix the error message * modify input types * Add sentenceCase && titleCase builtin function (#3994) * add sentanceCase builtin function * add titleCase function * refine * refine sentenceCase * add EOL builtin function (#3992) * Make data and locale optional in multilingual LG (#3932) * fix datetime timezone (#4002) * Change Platform to TestCategory (#3991) * Change error messages in pre-built functions to make the descriptions more accurate (#3987) * modify error messages * fix typos * fix spelling of time zone * fix comments * remove redundent words * fix grammer issue * Add ticksToDays, ticksToHours, ticksToMinutes pre-built functions (#3988) * add TicksToDays, TicksToHours, TicksToMinutes prebuilt functions * add TicksToDays, TicksToHours, TicksToMinutes prebuilt functions * resolve test fails * modify return type * make ticksperday, etc as constant * Don't throw exception on unhandled VersionChangeDetected event (#4000) (#4015) * disable throwing exception if dialog change not handled * remove trace from versionChanged Co-authored-by: Tom Laird-McConnell <tomlm@microsoft.com> * Adjust grammar to improve LG parsing performance (#4021) * fix LG perf issue * init * Calling an event driven dialog did not work because passed in options would override the initial setup of dialog memory. * Refine template loop detection to enable recursive functions (#4012) * refine loop detection * make GetId depends on Version of IMemory * refine ID * add self loop test * cover nullable situation * enable recursive functions in Expander * Reduce the recursion stack depth to pass MacOS test * init error refine * support null in isObject and isString (#4024) * add expression parse cache (#4026) * add source info into error msg * remove magic string * ignore line numner of diagnostic for inline text * rename,FakeTemplateId -> InlineTemplateId * add dialogContext memory scope * fix corner case of expander * move activity triggers into folder * First cut of Teams adaptive library * fix child scope and moar unit tests * [LG] Move "EXPRESSION" in LG from lexer to parser (#3898) * init * maintain the orginal runtime error * init * add test * add tests * updatee tests.schema * update schema * Make Activity valid for there is only channelData * Add floor, ceiling, round pre-built functions (#4017) * add floor, ceiling, round * fix comments * modify numberTransform method * fix comments * fix strict mode issue in expander * adjust test cases * add expandText LG function * change Regex replace with EvaluateText * Update doc XML (#4031) - Fixes warnings in ref doc build, primarily. - Also fixes a small amount of wording and grammar. * Sets warnings as errors and adds FxCop analyzer to Schema project. (#4061) * Configured TreatWarningsAsErrors on all projects in the libraries folder except for Microsoft.Bot.Builder.Dialogs.Adaptive.Testing (that needs to be addressed separatelly). Created Directory.Build.props for FunctionalTests and Tests to manage excludes for the projects in those folders. Added NoWarn properties for documentation on each project (these will be addressed by another issue). Fixed long hanging fruit warnings. Added Roslyn FxCop analyzer to Microsoft.Bot.Schema and fixed violation or excluded them using #pragma. * Fixed binary compat issues * Fixed more binary compat issues * Add ContinueConversation event activity support to BotFrameworkAdapter Add PostActivityAsync method to BotFrameworkHttpClient to make it easy to post EventActivity to your bot Add ContinueConversationLater action to BotBuilder.Azure Add unit tests, etc. * fix project dependencies * update tests.schema * add 'new' attribute to kind * reverted changes to BotFrameworkAdapter, realized they weren't required. * fix unit test logic. * update declearitve tests * disable merge test on linux/mac * only build schema file on windows * add http body expression evaluate * add body is null condition * apply list in concat * add tests * rename to align with teamshandler names * renamed $kind namespace to "Teams" * change kind namespace for ContinueConversationLater to AzureQueues * Add community docs (#4067) * Added PR template, Code of Conduct doc and Contributing guidance doc as per community guidelines. * Amends for code of conduct * Readded deleted files * Fix httprequest for string content, add mocked httprequest unit tests for HttpRequest * add header binding to unit test * fix linux breaks * Refactor of Slack adapter to address dependency on 3rd party library (#4046) * Further WIP * - Removed unused files - Updated tests - Removed remaining dependencies on client model classes * Remove redundant error supression * Added missing classes as per PR #3760 * Fix up namespaces for model classes * Fix up tests * Fixed warnings on build * Removed redundant XML comment * Fix HtpRequest tests on linux/mac (\r\n vs \n ) * change order of using * changes based on PR feedback, copyright and disposing of response * Fix functional test builds to not fail on code analysis errors (#4074) * Add --no-build parameter to dotnet publish * Change dotnet publish argument to "-p RunCodeAnalysis=False" * Fix arg to "-p:RunCodeAnalysis=False" * Add arg "/p:StyleCopEnabled=false" * Fix case of false in -p:RunCodeAnalysis=false /p:StyleCopEnabled=false * Set 4 command line properties * Set --verbosity diag * Remove $(SolutionDir) references, as they don't work in "dotnet publish". * Clean up args * Set -p:CodeAnalysisRuleSet='' * Revert .csproj to use $(SolutionDir). * Add SolutionDir var * Fix quotes * Clean up * Add comment * Update the other pipelines * Add aadGroupId to TeamInfo (#4078) * Add aadGroupId to TeamInfo * Remove additional constructor from TeamInfo * address Gabo's feedback * add HttpRequestMock and test * Update OAuthInput.cs * Enables FxCop Analyzer for the Connector library (#4110) * Enables FxCop Analyzer for the Connector library and addressed violations. Marked OAuthClientOld as obsolete. Makred a lot of private methods in AdalAuthenticator as statics (that's the big diff here) * Address Carlos feedback. * Added intial cut at daily build spec * Migrates Tests tests to Xunit (#4082) * migrating teams tests * adding skills * Updates to Daily Build Proposal * Porting Adapters folder to Xunit (#4115) * migrating testadapters to xunit * fixes #4107 migrating adapters folder to xunit Please enter the commit message for your changes. Lines starting * disable codeSignValidationInjection task in main CI (#4056) * Merge 4.9 back to master (#4032) * Do NOT call TeamsInfo.getMember for the bot (#3923) * Do NOT call TeamsInfo.getMember for the bot * Add TestConversationUpdateBotTeamsMemberAdded * Declarative: disable cycle detection to reduce release risk * Update Nuget.Client to resolve circular reference exceptions (#3964) * Fixes BadRequest message in Teams (#3966) * Added check to ensure we don't send EoC when a skill is done and we are at the root bot. Updated tests to handle this case and removed duplicated test after refactoring. Fixed some typos and trace message names. * Auth: Tighten JWT validation of channel-issued tokens with certificate signature (#3978) * Auth: Tighten JWT validation of channel issued tokens with certificate signature * Fix comment in test * Auth improvements: add test category and adjust linux build settings * Auth tests: cleanup self-signed certs after tests * Change filter to "TestCategory". (#3986) * Don't throw exception on unhandled VersionChangeDetected event (#4000) * disable throwing exception if dialog change not handled * remove trace from versionChanged Co-authored-by: Eric Dahlvang <v-eridah@microsoft.com> Co-authored-by: Carlos Castro <ccastro@microsoft.com> Co-authored-by: Monica Rivera <44449640+mrivera-ms@users.noreply.github.com> Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com> Co-authored-by: Carlos Castro <carlosscastro@users.noreply.github.com> Co-authored-by: BruceHaley <v-bruhal@microsoft.com> * Update LuisExtensions.cs (#4011) * Fixes issue #3960 [QnAMaker] [DotNet] Implementing QnAMaker's precise answering capability as an additional feature for BotFramework users (#3935) * AnswerSpanRequest property in Request. * Answer span changes for request and response data sstructures * Request and Result object conversion * datatype definition change from boolean to bool for enable AnswerSpan * Text * spaces * MRCEnable instead of AnswerSpanRequest * Answerspan text set to answer for MRC * Mock changes * Review comments changes * Tests for both and precise * Update GetQnAPromptsCard invocation in tests * GetQnAPromptsContentCard method * Review comments * Request changes * refactoring * Refactoring Tests * Tests refactoring for comments * Added Copyright headers * Modified comment text for review comment. * Update QnAMakerDialog.cs * document text modified. * Copy right header formatting * Remove unused import * Revert "Added Copyright headers" This reverts commit b13d2eb. * Copyright header * Comment modified for grammar and clarity * Review comments * For fixing assembly difference issue * Revert "For fixing assembly difference issue" This reverts commit fdfcbe0. * For assemblies issue * Added purpose of property in summary. * Comments improved * For Review comments * For review comments * Spellings Syntax * Content corrections * Content comments changes * content request * content changes * Content changes for comments * Content review updates * Content changes * content chagnes * Revert enablePreciseAnswer to bool * removing json property for enable preccise * Reverting Recognizer changes * schema change and BoolExpression * Review comments * initialization of EnablePreciseAnswer * schema changes for Display Precise AnswerOnly * BoolExpression for DisplayPreciseAnswerOnly * bool property for displayPreciseAnswer * Updated comments * Null checks and CardEqualityComparer comments * Undo contenttype change. * format * Final Commit * Spaces formating. * Indentation for schema files. * update schema * Make content type check more robust (#4125) * If there is no utterance we should return no intents. * update regexrecognizer to return no intents if there is no utterance just like LuisRecognizer. * update oracle tests * added custom isDialogActive function to adaptive assembly. * add unit tests for EditActions AppendActions and EditAction InsertActions * Migrating Schema to Xunit (#4130) * migrating tests to Xunit * fixes #4105 removing MSTest packages * fix expandText return type error (#4132) * fix expandText return type error * fix * Add hasPendingActions() function which returns true if there is an executing plan for the current active adaptive dialog. * add declarative function test for isDialogActive * Updates to Facebook Adapter (#4123) * - Updated Facebook Adapter to accept Facebook Adapter Options, with an optional param to override the client. - Update code docs and removed error supression for code doc warnings * Updates following review * add isActionActive() alias for isDialogActive() add unit test for multiple editactions * Josh/botbuilder tests (#4128) * migrating teams tests * adding skills * fixing rebase * resolving individual xunit functions * fixing missed params * removing TestContext from util * removing MSTest packages * deleting test folder before tests run * adding file resets to other test files * cleaning up assert logic * change to xunit * Add ToAttachment method for OAuthCard (#4126) * Add OAuthCards ToAttachment method * Add unit tests for ToAttachment methods * Refactor tests: - Replace MSTest with Xunit - Remove Bot.builder project dependency * Add empty recognizer support for composer scenario * Porting adaptiveexpressions tests to xunit (#4138) * porting tests to xunit * Removing packages * * Fix switch to not treat expression errors as exceptions but instead as false condition * Fix switch to treat ambiguity in string case definition more robustly. * Add DialogException, catch and throw * Add constants for dialogcontext paths * make dialogException calculate full contextual stack frame * only keep dialog ids in exception, state is duplicate of data in the state bag * removed dialogException and use Exception.Data to annotate exceptions with dialog context metadata. * Updates to readme for accuracy, consistency across languages and consolidating wiki content. (#4159) * Fix Slack functional test build (#4160) * add az group create * Switch to template-with-preexisting-rg.json * Fix template args for az deployment sub create * Fix arg appServicePlanLocation * Try "call az deployment group create" * Fix call az deployment group create #4 * Minor updates to proposal for review. * Markdown fixes for formatting * Fix 3 functional test builds (#4163) * add az group create * Switch to template-with-preexisting-rg.json * Fix template args for az deployment sub create * Fix arg appServicePlanLocation * Try "call az deployment group create" * Fix call az deployment group create #4 * Fix facebook pipeline * Fix facebook call az deployment group create * Fix template reference * Fix webex pipeline * Drop --location "westus" * Fix windows func test build * Fix botgroup * Remove slack refs from windows template * Add message to "Set up directline keys" * Change endpoint to mybot from messages (#4167) * Added FxCop to Microsoft.BotBuilder and addressed errors. (#4141) * Added FxCop to Microsoft.BotBuilder and addressed errors. Enabled the SX1309 (FieldNamesShouldBeginWithUnderscores) stylecop rule and addressed the violations on BotBuilder but excluded it from the other projects for now to avoid collisions. Enabled CA1309 (Use ordinal StringComparison) to the main ruleset and addressed violations. Added ($NoWarn) to root dir props to make sure tests take this value. * Enabled AsyncUsage analyzer and fixed violations wherever ir was possible. * Refactore Task.Run usages to await/async equivalents. * Updated Adapters folder to use FxCop 3.0 * Refactored ShowTypingMiddleware to avoid using Task.Run so we don't create unnecessary threads. * Updated constructor to use _httpClient field instead of the expression. * Revert "Fixes issue #3960 [QnAMaker] [DotNet] Implementing QnAMaker's precise answering capability as an additional feature for BotFramework users (#3935)" (#4170) This reverts commit 4846119. * Enabled FxCop on the Dialogs project and Integration folder (#4168) * Enabled FxCop on the Dialogs project and fixed errors. * Enabled FxCop and Async usage analyzers on the integration folder projects usinga BuildProps file and fixed errors. * Fixed some FxCop issues for WebApi projects that only show when targetting Windows in the build. Added reference to editorconfig to the sln file to make it easier to maintain. * Port LanguageGeneration to Xunit (#4181) * adding xunit packages * porting language generation tests to xunit * removing MS Test * Add Obsolete attribute to Microsoft.Bot.Configuration.LuisService (#4136) * Update * Further improve LG's performance (#4083) * add templateBodyCache * update * re-do updateTemplate * improve perf for addTemplate and DeleteTemplate * add more tests and remove cache * adjust test * adjust * fix environment newline issue * try fix ci error * add tests * extract methods * refine * fix * revert * renaming and add more tests * add more comments * extract range offset * properly escape slashes in constant strings * Add LinkToMessage in MessageActionsPayload class (#4150) * Add LinkToMessage property * Add unit tests for MessageActionsPayload class * Apply feedback in unit test and constructor * Add assertion of LinkToMessage property in test. Co-authored-by: Cecilia Avila <cecilia.avila@southworks.com> * update tests for tab roundtrip too * Add missing code docs for Configuration lib (#4190) * Add missing code docs for the webex adapter (#4127) * Extend 'getProperty' builtin function to support accessing top memory. (#4176) * enhance getProperty * add more tests * adjust the error message * Add logging to BotFrameworkHttpClient.PostActivityAsync() (#4134) * Add logging to BotFrameworkHttpClient.PostActivityAsync() * Adding message logged message lost after refactor. * add Microsoft.Test.SettingsPropertiesMock with test * refactor Convert.ToInt32 * refactor Convert.ToInt32 * update & add schema * Remove references to MissingMemberException (#4196) * Porting Transcript tests to Xunit (#4135) * fixing rebase * removing MSTest packages * rebasing * readding visualstuio package * Refactoring AI Luis V3 to Xunit (#4151) * refactoring to xunit * removing MS TEst * Remove Slack from the list of channels that support Suggested Actions (#4177) * Update missing code docs for the Azure library (#4189) * Move TelemetryClient property to DialogContainer (#4178) * Add ImageAltText to CardAction (#4195) * [Adaptive] Add Binary Data Parsing For Http Request (#3813) * add binary data support to http request * fix comment * fix space * update schema * binary type return bytes directly * fix compile error * add ut for response types. * Add Teams Channel Restored event (#4202) * Add Teams' ChannelRestored event * Add test for OnTeamsChannelRestoredAsync method * Add missing documentation for TeamsActivityHandler Co-authored-by: Cecilia Avila <cecilia.avila@southworks.com> * Porting Adaptive Templates to Xunit (#4183) * porting tests to xunit * removing unused file * removing MS Test * registering components once per test suite * Add missing code docs for the AI libraries (LUIS / QnA) (#4147) * Add missing code docs for the AI libraries (LUIS / QnA) * Manually fixed some merge conflicts to match master * Fixed other naming errors for new variables that came with the merge Co-authored-by: Gabo Gilabert <ggilaber@microsoft.com> * doc cleanup (#4162) Co-authored-by: Vishwac Sena Kannan <vishwacsenakannan@MININT-KG5GAD9.fareast.corp.microsoft.com> * [Engineering] Update codeowners (#4171) * updated codeowners - @microsoft/bb-dotnet - @microsoft/bf-admin - @microsoft/bf-adaptive * add comments and more GH Teams to CODEOWNERS * change normalizeDateTime and add tests * change normalizeDateTime and add tests * add test case for formatNumber * add test case for formatNumber * Add missing code docs to integration libraries (#4137) * Added code docs to AppInsights Core lib * Add missing code docs to integration libraries Co-authored-by: Chris Mullins <cleemullins@users.noreply.github.com> * Update Facebook, Slack, Webex adapters (#4214) * Update Facebook, Slack, Webex adapters to follow pattern from Twilio adapter * Tweak exception messages * add Microsoft.Test.UserTokenMock & tests (#4145) * add Microsoft.Test.UserTokenMock & tests * give it more time * use pretty approach instead of MockData * [Expression] Add merge prebuilt function for merging JSON object (#4075) * add merge function * remove support of JArray in merge * fix some format and error msgs * fix two error msgs * fix typos * add using * Remove preview tag from adapters (#4215) * Remove preview tag from adapters * Updated to include package version property * use invariant culture * fix merge and allow either 00A0 or 202F in fr-fr numbers * use WrapDialogForPropertyMocks for all kinds of properties add more tests * add comment * Add null check for locale into MultiLanguageRecognizer * fix (#4229) Co-authored-by: Vishwac Sena Kannan <vishwacsenakannan@MININT-G8HVI76.redmond.corp.microsoft.com> * add directlinespeech support to prompts (#4224) * fix (#4231) Co-authored-by: Vishwac Sena Kannan <vishwacsenakannan@MININT-G8HVI76.redmond.corp.microsoft.com> * Add EndOfConversationCodes to EndOfConversation activity from Skill (#4235) * Fixes issue with InvokeResponse<T> hidding the underlying value for Body. (#4232) Makes methods ins SkillHttpClient virtual so they can be mocked in tests. Updated BotFrameworkClient to use a deepclone of the activity rather than try/catch/finally to simply code and make sure we don't risk altering the original activity while the async request is being executed. Improved test coverage for BotFrameworkClient and SkillHttpClient. * Updated FN Test projects to match samples (#4236) * Fixes issue with InvokeResponse<T> hidding the underlying value for Body. Makes methods ins SkillHttpClient virtual so they can be mocked in tests. Updated BotFrameworkClient to use a deepclone of the activity rather than try/catch/finally to simply code and make sure we don't risk altering the original activity while the async request is being executed. Improved test coverage for BotFrameworkClient and SkillHttpClient. * Updated Skill test projects to match samples. * Deleted composer testing project * Update botbuilder-dotnet-sign.yml for Azure Pipelines Make Nightly build have 4-digit year * Update CODEOWNERS (#4237) * Streamline codeowners * Add Connector.Authentication code owners * Assign bf-dialogs to Microsoft.Bot.Builder.Dialogs * additional updates to codeowners * Refine ActivityFactory (#4210) * refine activityFactory * small property fixc * Refactor AdaptiveExpressions method GetStandardFunctions() (#4222) * init * init * update * add copyright * remove builtin alias * fix error * fix error * remove unused using * remove unused code * add comments * fix comments * fix small access modifier * add missing document * fix typo * Clm/fix nuget versions in adapaters (#4242) * Fixes #4241 * Update ReleasePackageVersion to pickup version numbers * Updated checma files to point to the new friendly https://schemas.botframework.com/schemas/component/v1.0/component.schema URL (#4243) * Add code owners for /**/*.schema (#4249) * rework after refactor builtin functions * rework after refactor builtin functions Co-authored-by: Carlos Castro <ccastro@microsoft.com> Co-authored-by: Tom Laird-McConnell <tomlm@microsoft.com> Co-authored-by: Carlos Castro <carlosscastro@users.noreply.github.com> Co-authored-by: Eric Dahlvang <v-eridah@microsoft.com> Co-authored-by: BruceHaley <v-bruhal@microsoft.com> Co-authored-by: Phil Haack <haacked@gmail.com> Co-authored-by: Lu Han <32191031+luhan2017@users.noreply.github.com> Co-authored-by: Hongyang Du (hond) <hond@microsoft.com> Co-authored-by: Gabo Gilabert <gabog@users.noreply.github.com> Co-authored-by: Michael Richardson <40401643+mdrichardson@users.noreply.github.com> Co-authored-by: Chris McConnell <chrimc@microsoft.com> Co-authored-by: xieofxie <xieofxie@126.com> Co-authored-by: Monica Rivera <44449640+mrivera-ms@users.noreply.github.com> Co-authored-by: Hongyang Du <1990512dhy@163.com> Co-authored-by: Fei Chen <feich@microsoft.com> Co-authored-by: Fei Chen <43032123+feich-ms@users.noreply.github.com> Co-authored-by: Jonathan Fingold <jonathan.m.fingold@gmail.com> Co-authored-by: Qi Kang <qika@microsoft.com> Co-authored-by: Gary Pretty <gary@garypretty.co.uk> Co-authored-by: Chris Mullins <cmullins@gmail.com> Co-authored-by: Josh <50158775+Virtual-Josh@users.noreply.github.com> Co-authored-by: Steven Gum <14935595+stevengum@users.noreply.github.com> Co-authored-by: vipeketi <58211229+vipeketi@users.noreply.github.com> Co-authored-by: Cecilia Avila <44245136+ceciliaavila@users.noreply.github.com> Co-authored-by: Chris Mullins <cleemullins@users.noreply.github.com> Co-authored-by: Denise Scollo <dens.scollo@gmail.com> Co-authored-by: Cecilia Avila <cecilia.avila@southworks.com> Co-authored-by: Kyle Delaney <kyled@aditiconsulting.com> Co-authored-by: Eric Dahlvang <ericdahlvang@outlook.com> Co-authored-by: Qi Kang <kangqidev@gmail.com> Co-authored-by: Gabo Gilabert <ggilaber@microsoft.com> Co-authored-by: Vishwac Sena Kannan <vishwack@hotmail.com> Co-authored-by: Vishwac Sena Kannan <vishwacsenakannan@MININT-KG5GAD9.fareast.corp.microsoft.com> Co-authored-by: johnataylor <johtaylo@microsoft.com> Co-authored-by: Vishwac Sena Kannan <vishwacsenakannan@MININT-G8HVI76.redmond.corp.microsoft.com> Co-authored-by: Eric Dahlvang <EricDahlvang@gmail.com>
issue link: #4014
merge function can take JSON object as input.
merge(jobject1, jobject2, ...)
for example:
string(merge(json(json1), json(json2)))
will return