tyfann/vdo_format_classify
022
1code,label
2"diff --git a/token-metadata/0xc3761EB917CD790B30dAD99f6Cc5b4Ff93C4F9eA/metadata.json b/token-metadata/0xc3761EB917CD790B30dAD99f6Cc5b4Ff93C4F9eA/metadata.json ""symbol"": ""ERC20"",3""address"": ""0xc3761EB917CD790B30dAD99f6Cc5b4Ff93C4F9eA"",4""decimals"": 18,5- ""dharmaVerificationStatus"": {6""dharmaVerificationStatus"": ""VERIFIED""7}8\ No newline at end of file9-}10\ No newline at end of file11",3
12"diff --git a/packages/app/src/components/Navbar/GrowiContextualSubNavigation.tsx b/packages/app/src/components/Navbar/GrowiContextualSubNavigation.tsx @@ -167,7 +167,7 @@ const GrowiContextualSubNavigation = (props) => {13const { data: isAbleToShowPageAuthors } = useIsAbleToShowPageAuthors();14const { mutate: mutateSWRTagsInfo, data: tagsInfoData } = useSWRxTagsInfo(pageId);15- const { data: tagsOnEditMode, sync: syncPageTagsForEditors } = usePageTagsForEditors();16+ const { data: tagsForEditors, sync: syncPageTagsForEditors } = usePageTagsForEditors();17const { open: openDuplicateModal } = usePageDuplicateModal();18const { open: openRenameModal } = usePageRenameModal();19@@ -330,7 +330,7 @@ const GrowiContextualSubNavigation = (props) => {20isGuestUser={isGuestUser}21isDrawerMode={isDrawerMode}22isCompactMode={isCompactMode}23- tags={isViewMode ? tagsInfoData?.tags : tagsOnEditMode}24+ tags={isViewMode ? tagsInfoData?.tags : tagsForEditors}25tagsUpdatedHandler={isViewMode ? tagsUpdatedHandlerForViewMode : tagsUpdatedHandlerForEditMode}26controls={ControlComponents}27additionalClasses={['container-fluid']}28",10
29"diff --git a/src/client/js/util/reveal/plugins/growi-renderer.js b/src/client/js/util/reveal/plugins/growi-renderer.js let sections = document.querySelectorAll( '[data-markdown]'), section;30for (let i = 0, len = sections.length; i < len; i++ ) {31section = sections[i];32- section.innerHTML = '<h1>hoge</h1>';33+ // remove all existing children.34+ while (section.firstChild) section.removeChild(section.firstChild);35+ // add h1 DOM 'Hoge'.36+ let h1 = document.createElement('h1');37+ h1.appendChild(document.createTextNode('Hoge'));38+ section.appendChild(h1);39}40const GrowiRenderer = require('../../GrowiRenderer');41let growiRenderer = new GrowiRenderer(root.crowi, root.crowiRenderer, {mode: 'editor'});42",14
43"diff --git a/src/module/dice.js b/src/module/dice.js @@ -310,14 +310,6 @@ export class DiceSFRPG {44}45}46- // Flag critical thresholds47- for (let d of roll.dice) {48- if (d.faces === 20) {49- d.options.critical = critical;50- d.options.fumble = fumble;51- }52- }53-54if (game.settings.get(""sfrpg"", ""useCustomChatCards"")) {55//Push the roll to the ChatBox56const customData = {57",2
58"diff --git a/helm/zenko/charts/s3-data/templates/deployment.yaml b/helm/zenko/charts/s3-data/templates/deployment.yaml @@ -15,6 +15,14 @@ spec:59app: {{ template ""s3-data.name"" . }}60release: {{ .Release.Name }}61spec:62+ initContainers:63+ - name: {{ .Chart.Name }}-init64+ image: busybox65+ command: ['sh', '-x', '-c', 'if ! test -d /data/3511; then for i in `seq 1 3511`; do mkdir -p /data/$i; done; fi']66+ volumeMounts:67+ - name: persistent-storage68+ mountPath: /data69+70containers:71- name: {{ .Chart.Name }}72image: ""{{ .Values.image.repository }}:{{ .Values.image.tag }}""73",4
74"diff --git a/src/components/virtual/virtual.js b/src/components/virtual/virtual.js @@ -111,7 +111,7 @@ const Virtual = {75const $slideEl = params.renderSlide76? $(params.renderSlide.call(swiper, slide, index))77: $(`<div class=""${swiper.params.slideClass}"" data-swiper-slide-index=""${index}"">${slide}</div>`);78-79+ if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);80if (params.cache) swiper.virtual.cache[index] = $slideEl;81return $slideEl;82},83",0
84"diff --git a/CHANGELOG b/CHANGELOG @@ -16,6 +16,8 @@ entered85- Updated third-party libs to get rid of deprecation warnings for React v1686- Fixed small bug in placing rules87- Display error when failing to retrieve tilesetInfo88+* Added support for cross-section tracks89+90=======91v0.10.20 (2018-02-92",3
93"diff --git a/source/swap/contracts/Swap.sol b/source/swap/contracts/Swap.sol @@ -100,9 +100,6 @@ contract Swap is ISwap, Ownable, EIP712 {94* @param order Order to settle95*/96function swap(address recipient, Order calldata order) external {97- // Ensure the order is not expired.98- if (order.expiry <= block.timestamp) revert OrderExpired();99-100// Validate the sender side of the trade.101address finalSenderWallet;102@@ -417,6 +414,9 @@ contract Swap is ISwap, Ownable, EIP712 {103function _checkValidOrder(Order calldata order, bytes32 domainSeparator)104internal105{106+ // Ensure the order is not expired.107+ if (order.expiry <= block.timestamp) revert OrderExpired();108+109bytes32 hashed = _hashOrder(order, domainSeparator);110// Recover the signatory from the hash and signature111",5
112"diff --git a/src/views/Splash.vue b/src/views/Splash.vue </template>113</div>114<div class=""footer-container"">115- <router-link to=""/onboarding/import""><p class=""text-center"" id=""import_with_seed_phrase_option"">Import with seed phrase</p></router-link>116+ <router-link :to=""termsAcceptedAt ? '/onboarding/import' : '/onboarding/home'""><p class=""text-center"" id=""import_with_seed_phrase_option"">Import with seed phrase</p></router-link>117<p v-if=""keyUpdatedAt""><router-link to=""/open""><button class=""btn btn-light btn-lg btn-block btn-icon"" id=""open_wallet_option"">Open wallet</button></router-link></p>118<p v-if=""!keyUpdatedAt""><router-link :to=""termsAcceptedAt ? '/onboarding/setup' : '/onboarding/home'""><button class=""btn btn-primary btn-lg btn-block btn-icon"" id=""create_new_wallet_option"">Create a new wallet</button></router-link></p>119</div>120",3
121"diff --git a/.env.production b/.env.production #defaults for build based on dev env122#for dev env tell webpack.config.dev.js to install service worker123+NODE_ENV=production124REACT_APP_SERVICE_WORKER=true125-REACT_APP_ENV=development126-REACT_APP_LOG_LEVEL=debug127-REACT_APP_SERVER_URL=https://good-server.herokuapp.com128-REACT_APP_GUN_PUBLIC_URL=https://goodgun-dev.herokuapp.com/gun129-REACT_APP_NETWORK=fuse130-REACT_APP_SKIP_EMAIL_VERIFICATION=true131-REACT_APP_WEB3_SITE_URL=https://w3.gooddollar.org132-REACT_APP_WEB3_SITE_URL_ECONOMY_ENDPOINT=/learn/economy133-REACT_APP_MNEMONIC_TO_SEED=true134-REACT_APP_ENABLE_INVITES=true135-REACT_APP_INVITES_URL=136-REACT_APP_SHOW_INVITE=true137-REACT_APP_ENABLE_SELF_CUSTODY=true138-REACT_APP_CLAIM_QUEUE_ENABLED=true139-GENERATE_SOURCEMAP=true140-REACT_APP_AUTH0_DOMAIN=https://gooddollar.eu.auth0.com141-REACT_APP_DASHBOARD_URL=https://gooddashboard-qa.herokuapp.com142+REACT_APP_ENV=production143+REACT_APP_LOG_LEVEL=off144+REACT_APP_SERVER_URL=https://goodserver.gooddollar.org/145+REACT_APP_GUN_PUBLIC_URL=https://goodgun-nvme.gooddollar.org/gun146+REACT_APP_NETWORK=production147+REACT_APP_SKIP_EMAIL_VERIFICATION=false148+REACT_APP_SKIP_MOBILE_VERIFICATION=true149+REACT_APP_MARKET_URL=https://gooddollarmarketplace.sharetribe.com/en150+REACT_APP_ETORO=false151+REACT_APP_AUTH0_DOMAIN=https://auth0.gooddollar.org152+REACT_APP_DASHBOARD_URL=https://dashboard.gooddollar.org/153REACT_APP_ENV_PHASE_ZERO=false154REACT_APP_ENV_PHASE_ONE=true155REACT_APP_FACE_VERIFICATION_PRIVACY_URL=https://medium.com/gooddollar/gooddollar-identity-pillar-balancing-identity-and-privacy-part-i-face-matching-d6864bcebf54156+REACT_APP_WEB3_SITE_URL=https://w3next.gooddollar.org157REACT_APP_USE_TORUS=true158+REACT_APP_TORUS_NETWORK=mainnet159+REACT_APP_TORUS_PROXY_CONTRACT=0x638646503746d5456209e33a2ff5e3226d698bea160+REACT_APP_TORUS_GOOGLE=gooddollar-google161+REACT_APP_TORUS_FACEBOOK=gooddollar-facebook162+REACT_APP_TORUS_GOOGLEAUTH0=gooddollar-google-auth0163+REACT_APP_ZOOM_PRODUCTION_MODE=true164+REACT_APP_ENABLE_SELF_CUSTODY=false165REACT_APP_AB_TEST_PERCENTAGE=0.5166+REACT_APP_REALM_APP_ID=wallet_prod-obclo167REACT_APP_PUBLIC_URL=https://wallet.gooddollar.org168-REACT_APP_IPFS_GATEWAYS=""https://gateway.pinata.cloud/ipfs/{cid},https://{cid}.cf-ipfs.com,https://ipfs.io/ipfs/{cid},https://{cid}.ipfs.dweb.link""169-REACT_APP_IPFS_LAZY_UPLOAD=true170-REACT_APP_SMS_RATE_LIMIT=60000171-REACT_APP_REALM_APP_ID = ""wallet_dev-dhiht""172#needs to end with newline173",0
174"diff --git a/articles/architecture-scenarios/_includes/_authorization/_api-integration.md b/articles/architecture-scenarios/_includes/_authorization/_api-integration.md -In this scenario your Auth0 tenant can provide an OAuth2 [Access Token](/tokens/overview-access-tokens), typically expressed as a [JWT](/jwt), which [can be used by your API to provide fine-grained access security](/api-auth). In addition, Auth0 provides support for what is notionally described as both first-party and third-party applications.175+In this scenario your Auth0 tenant can provide an OAuth2 [Access Token](/tokens/overview-access-tokens), typically expressed as a [JWT](/jwt), which [can be used by your API to restrict access to certain parties](/api-auth). In addition, Auth0 provides support for what is notionally described as both first-party and third-party applications.176Acting as the authorization server, and with the consent of the user (the resource owner), your Auth0 tenant can be used to provide an Access Token - typically expressed as a [JWT](/jwt) - to an application (client) so that it can access a protected resources hosted by a resource server on behalf of the resource owner. The issued Access Token is typically passed as the Bearer token in the HTTP Authorization header sent to an [API](/api-auth/why-use-access-tokens-to-secure-apis).177",2
178"diff --git a/source/views/controls/AbstractInputView.js b/source/views/controls/AbstractInputView.js @@ -196,69 +196,6 @@ const AbstractInputView = Class({179this._domControl.value = this.get('value');180},181- // --- Focus ---182-183- /**184- Method: O.AbstractInputView#focus185-186- Focusses the control.187-188- Returns:189- {O.AbstractInputView} Returns self.190- */191- focus() {192- if (this.get('isInDocument')) {193- this._domControl.focus({194- preventScroll: true,195- });196- // Fire event synchronously.197- if (!this.get('isFocused')) {198- this.fire('focus', {199- target: this._domControl,200- targetView: this,201- });202- }203- }204- return this;205- },206-207- /**208- Method: O.AbstractInputView#blur209-210- Removes focus from the control.211-212- Returns:213- {O.AbstractInputView} Returns self.214- */215- blur() {216- if (this.get('isInDocument')) {217- this._domControl.blur();218- // Fire event synchronously.219- if (this.get('isFocused')) {220- this.fire('blur', {221- target: this._domControl,222- targetView: this,223- });224- }225- }226- return this;227- },228-229- /**230- Method (private): O.AbstractInputView#_updateIsFocused231-232- Updates the <#isFocused> property.233-234- Parameters:235- event - {Event} The focus event.236- */237- _updateIsFocused: function (event) {238- this.set(239- 'isFocused',240- event.type === 'focus' && event.target === this._domControl,241- );242- }.on('focus', 'blur'),243-244// --- Input ---245userDidInput(value) {246",2
247"diff --git a/website/contributing/how-to-contribute-code.md b/website/contributing/how-to-contribute-code.md @@ -76,7 +76,7 @@ Code-level contributions to React Native generally come in the form of [a pull r248If all goes well, your pull request will be merged. If it is not merged, maintainers will do their best to explain their reasoning.249-If this is your first time sending a pull request, we have created a [step-by-step guide to help you get started](contributing/how-to-open-a-pull-request). For more detailed information on how pull requests are handled, see the [Managing Pull Requests page](Managing-Pull-Requests).250+If this is your first time sending a pull request, we have created a [step-by-step guide to help you get started](/contributing/how-to-open-a-pull-request). For more detailed information on how pull requests are handled, see the [Managing Pull Requests page](Managing-Pull-Requests).251### Contributor License Agreement252",1
253"diff --git a/src/lib/gundb/UserStorageClass.js b/src/lib/gundb/UserStorageClass.js @@ -1066,6 +1066,7 @@ export class UserStorage {254logger.debug('init feed byid', { items, ids: items && Object.entries(items) })255if (!items) {256+ await this.feed.putAck({ byid: {} })257return258}259if (items && items._) {260@@ -2428,23 +2429,26 @@ export class UserStorage {261.catch(r => ({262profile: 'failed',263})),264- this.gunuser265- .get('feed')266- .putAck(null)267- .then(r => ({268- feed: 'ok',269- }))270- .catch(r => ({271- feed: 'failed',272- })),273- this.properties274- .putAck(null)275- .then(r => ({276- properties: 'ok',277- }))278- .catch(r => ({279- properties: 'failed',280- })),281+282+ //dont delete anything, everything is encrypted. nullified nodes in gun283+ //can break stuff if user recreates account with same credentials284+ // this.gunuser285+ // .get('feed')286+ // .putAck(null)287+ // .then(r => ({288+ // feed: 'ok',289+ // }))290+ // .catch(r => ({291+ // feed: 'failed',292+ // })),293+ // this.properties294+ // .putAck(null)295+ // .then(r => ({296+ // properties: 'ok',297+ // }))298+ // .catch(r => ({299+ // properties: 'failed',300+ // })),301this.gunuser302.get('registered')303.putAck(false)304",0
305"diff --git a/src/tests/controllers/messageLength.test.ts b/src/tests/controllers/messageLength.test.ts @@ -37,7 +37,7 @@ export async function messageLengthTest(t, node1, node2) {306t.true(messageSent.success, 'node1 should send text message to node2')307const newMessages = await getCheckMsgs(t, node2)308- console.log(newMessages)309+ console.log(newMessages + '')310t.true(311newMessages.new_messages_length == 1,312'node2 should only have 1 new message'313",0
314"diff --git a/backend/utils/events.js b/backend/utils/events.js @@ -51,7 +51,12 @@ async function upsertEvent({ web3, event, shopId, networkId }) {315// Fetch the block to get its timestamp.316const block = await web3.eth.getBlock(eventObj.blockNumber)317+ if (block) {318eventObj.timestamp = block.timestamp319+ } else {320+ // Best effort. This is likely only to happen with newer blocks321+ eventObj.timestamp = Math.floor(+new Date() / 1000)322+ }323// Save the event in the DB.324const record = await Event.create(eventObj)325",4
326"diff --git a/tests/codeceptjs/editors/object_test.js b/tests/codeceptjs/editors/object_test.js @@ -68,14 +68,14 @@ Scenario('opt in optional properties', async (I) => {327I.seeDisabledAttribute('[data-schemapath=""root.object.boolean""] .json-editor-opt-in');328// tests merged from master 17.9.2019329- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.string""] .json-editor-opt-in', 'checked'), false);330- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.string""] .json-editor-opt-in', 'disabled'), false);331- assert.equal(await I.grabAttributeFrom('[name=""root[string]""]', 'disabled'), 'true');332- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.number""] .json-editor-opt-in', 'checked'), false);333- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.number""] .json-editor-opt-in', 'disabled'), 'true');334- assert.equal(await I.grabAttributeFrom('[name=""root[object][number]""]', 'disabled'), 'true');335- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.boolean""] .json-editor-opt-in', 'checked'), false);336- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.boolean""] .json-editor-opt-in', 'disabled'), 'true');337+ I.dontSeeCheckedAttribute('[data-schemapath=""root.string""] .json-editor-opt-in')338+ I.dontSeeDisabledAttribute('[data-schemapath=""root.string""] .json-editor-opt-in')339+ I.seeDisabledAttribute('[name=""root[string]""]')340+ I.dontSeeCheckedAttribute('[data-schemapath=""root.object.number""] .json-editor-opt-in')341+ I.seeDisabledAttribute('[data-schemapath=""root.object.number""] .json-editor-opt-in')342+ I.seeDisabledAttribute('[name=""root[object][number]""]')343+ I.dontSeeCheckedAttribute('[data-schemapath=""root.object.boolean""] .json-editor-opt-in')344+ I.seeDisabledAttribute('[data-schemapath=""root.object.boolean""] .json-editor-opt-in')345I.click('.get-value');346assert.equal(await I.grabValueFrom('.value'), '{""number"":0,""boolean"":false}');347@@ -84,15 +84,17 @@ Scenario('opt in optional properties', async (I) => {348I.click('[data-schemapath=""root""] .json-editor-btn-edit');349I.click('[data-schemapath=""root""] .json-editor-btn-edit');350- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.string""] .json-editor-opt-in', 'checked'), false);351- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.string""] .json-editor-opt-in', 'disabled'), false);352- assert.equal(await I.grabAttributeFrom('[name=""root[string]""]', 'disabled'), 'true');353- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.number""] .json-editor-opt-in', 'checked'), false);354- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.number""] .json-editor-opt-in', 'disabled'), 'true');355- assert.equal(await I.grabAttributeFrom('[name=""root[object][number]""]', 'disabled'), 'true');356- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.boolean""] .json-editor-opt-in', 'checked'), false);357- assert.equal(await I.grabAttributeFrom('[data-schemapath=""root.object.boolean""] .json-editor-opt-in', 'disabled'), 'true');358- assert.equal(await I.grabAttributeFrom('[name=""root[object][boolean]""]', 'disabled'), 'true');359+360+ I.dontSeeCheckedAttribute('[data-schemapath=""root.string""] .json-editor-opt-in')361+ I.dontSeeDisabledAttribute('[data-schemapath=""root.string""] .json-editor-opt-in')362+ I.seeDisabledAttribute('[name=""root[string]""]')363+ I.dontSeeCheckedAttribute('[data-schemapath=""root.object.number""] .json-editor-opt-in')364+ I.seeDisabledAttribute('[data-schemapath=""root.object.number""] .json-editor-opt-in')365+ I.seeDisabledAttribute('[name=""root[object][number]""]')366+ I.dontSeeCheckedAttribute('[data-schemapath=""root.object.boolean""] .json-editor-opt-in')367+ I.seeDisabledAttribute('[data-schemapath=""root.object.boolean""] .json-editor-opt-in')368+ I.seeDisabledAttribute('[name=""root[object][boolean]""]')369+370I.click('.get-value');371assert.equal(await I.grabValueFrom('.value'), '{""number"":0,""boolean"":false}');372",1
373"diff --git a/packages/webpack-plugin/lib/json-compiler/index.js b/packages/webpack-plugin/lib/json-compiler/index.js @@ -136,7 +136,7 @@ module.exports = function (raw) {374if (this.resourcePath.endsWith('.json.js')) {375json = JSON.parse(mpxJSON.compileMPXJSONText({ source: raw, mode, defs, filePath: this.resourcePath }))376} else {377- json = JSON.parse(raw)378+ json = JSON.parse(raw || '{}')379}380} catch (err) {381return callback(err)382",9
383"diff --git a/tests/e2e/specs/modules/pagespeed-insights/activation.test.js b/tests/e2e/specs/modules/pagespeed-insights/activation.test.js @@ -50,14 +50,5 @@ describe( 'PageSpeed Insights Activation', () => {384await expect( page ).toClick( 'button.mdc-button', { text: 'Proceed' } );385await page.waitForSelector( 'h3.googlesitekit-heading-3' );386-387- // Check that the correct key is saved on the settings page.388- await visitAdminPage( 'admin.php', 'page=googlesitekit-settings' );389-390- await expect( page ).toClick( 'button.mdc-tab', { text: 'Admin Settings' } );391-392- // Check the API Key text, verifying the submitted value has been stored.393- await expect( page ).toMatchElement( '.googlesitekit-settings-module__meta-item-type', { text: 'API Key' } );394- await expect( page ).toMatchElement( 'h5.googlesitekit-settings-module__meta-item-data', { text: 'PSIKEYTOSUBMITANDTEST' } );395} );396} );397",2
398"diff --git a/assets/js/modules/analytics-4/components/dashboard/ActivationBanner/SetupBanner.js b/assets/js/modules/analytics-4/components/dashboard/ActivationBanner/SetupBanner.js @@ -315,7 +315,7 @@ export default function SetupBanner( { onSubmitSuccess } ) {399{ ctaLabel }400</SpinnerButton>401}402- footer={ <p>{ footer }</p> }403+ footer={ footer }404dismiss={ __( 'Cancel', 'google-site-kit' ) }405dismissExpires={ getBannerDismissalExpiryTime(406referenceDateString407",2
408"diff --git a/components/post.js b/components/post.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types'409import Link from 'next/link'410import Image from 'next/image'411import {ArrowLeftCircle} from 'react-feather'412+import colors from '@/styles/colors'413import Section from '@/components/section'414@@ -142,6 +143,19 @@ function Post({title, published_at, feature_image, html, backLink}) {415left: 0;416border-radius: 0 2px 2px 0;417}418+419+ .kg-button-card a {420+ color: white;421+ background-color: ${colors.blue};422+ border-radius: 5px;423+ font-weight: 1em;424+ padding: .5em 1.2em;425+ height: 2.4em;426+ line-height: 1em;427+ margin: auto;428+ text-decoration: none;429+ transition: all .2s ease;430+ }431`}</style>432</Section>433)434",0
435"diff --git a/packages/mjml-core/src/helpers/traverseMJML.js b/packages/mjml-core/src/helpers/traverseMJML.js @@ -3,13 +3,9 @@ import head from 'lodash/head'436import map from 'lodash/map'437import noop from 'lodash/noop'438-export default function traverseMJML(mjml, predicate = noop, ignoreTagContent = null) {439+export default function traverseMJML(mjml, predicate = noop) {440const traverse = mjml =>441map(mjml.children, child => {442- if (ignoreTagContent && child.tagName === ignoreTagContent) {443- return []444- }445-446if (predicate(child)) {447return child448}449",13
450"diff --git a/src/plots/plots.js b/src/plots/plots.js @@ -257,7 +257,7 @@ plots.previousPromises = function(gd) {451* Add source links to your graph inside the 'showSources' config argument.452*/453plots.addLinks = function(gd) {454- if(gd._context.showLink === false) return;455+ if(!gd._context.showLink || !gd._context.showSources) return;456var fullLayout = gd._fullLayout;457",9
458"diff --git a/react/src/components/card/SprkCard.js b/react/src/components/card/SprkCard.js @@ -67,10 +67,10 @@ SprkCard.propTypes = {459* Card Content.460*/461additionalContentClasses: PropTypes.string,462- /** Takes content for a base card */463+ /** Content to render inside of SprkCard. */464children: PropTypes.node,465/**466- * The value supplied will be assigned467+ * Value assigned468* to the `data-id` attribute on the469* component. This is intended to be470* used as a selector for automated471@@ -79,63 +79,125 @@ SprkCard.propTypes = {472*/473idString: PropTypes.string,474/**475- * If `true`, the Standout Card styles476- * will be applied.477+ * Determines if card style has a deeper shadow.478*/479isStandout: PropTypes.bool,480- /** The type of Card variant to render. */481+ // TODO: Turn this prop into a oneOf type and include the possible possibilities. It could also need a default/base variant style. Issue #2496482+ /**483+ * Determines the type of card.484+ * If none provided, it defaults to485+ * the base card style.486+ *487+ * Expects either `highlightedHeader`488+ * or `teaser`.489+ */490variant: PropTypes.string,491- /** Configures highlighted header */492+ /**493+ * Configurations that494+ * populate the content of SprkCard495+ * with a highlighted Header.496+ */497highlightedHeaderConfig: PropTypes.shape({498- /** Text inside of highlighted card */499+ /**500+ * The Highlighted Header Card's main body text.501+ */502bodyText: PropTypes.string,503- /** Sub-headline of card */504+ /**505+ * The Highlighted Header Card's description.506+ */507description: PropTypes.string,508- /** Headline of card */509+ /**510+ * The Card's title.511+ */512title: PropTypes.string,513}),514- /** Configures teaser */515+ /**516+ * Configuration that populate the content of SprkCard teaser.517+ */518teaserConfig: PropTypes.shape({519- /** Text in the main body */520+ /**521+ * Teaser Card's body text.522+ */523bodyText: PropTypes.string,524+ /**525+ * Configures the call-to-action of a teaser card.526+ */527cta: PropTypes.shape({528- /** Extra classes on the Call to Action of Teaser */529+ /** Extra classes on the call-to-action of Teaser Card. */530additionalCtaIconClasses: PropTypes.string,531- /** CTA Analytics */532+ /**533+ * Value assigned to the534+ * `data-analytics` attribute on the Call to Action.535+ * Intended for an outside536+ * library to capture data.537+ */538ctaAnalytics: PropTypes.string,539- /** Icon next to CTA */540+ /**541+ * Determines what icon `SprkIcon` renders next to the Call to Action.542+ */543ctaIcon: PropTypes.string,544- /** Anchor tag, or router link at user discretion */545- mediaLinkElement: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),546- /** Link or Button */547+ /**548+ * Determinds if the CTA is a link or a button.549+ * Will default to `link` if none provided.550+ */551ctaVariant: PropTypes.oneOf(['link', 'button']),552- /** Where the cta navigates to */553+ /**554+ * Determines the href of the media.555+ */556href: PropTypes.string,557- /** Text of the CTA */558+ /** Text of the CTA. */559text: PropTypes.string,560}),561- /** Configs for the main media of the teaser card */562+ /**563+ * Configures the main media of the Teaser Card.564+ */565media: PropTypes.shape({566- /** Additional classes if it's an icon */567+ /**568+ * Expects a space separated string569+ * of classes to be added to the570+ * media icon.571+ */572additionalMediaIconClasses: PropTypes.string,573- /** Where media navigates to */574+ /**575+ * Determines the href of the media.576+ */577href: PropTypes.string,578- /** Anchor tag, or router link at user discretion */579+ /**580+ * Determines if link renders as an Anchor tag, or router link.581+ * If an href is provided and an element is not,582+ * an anchor tag will be rendered.583+ */584mediaLinkElement: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),585- /** Reference name of SprkIcon */586+ /**587+ * Determines what icon `SprkIcon` renders588+ * as the main media of the Teaser Card.589+ */590iconName: PropTypes.string,591- /** Alternative text for image */592+ /** Alternative text for the media. */593imgAlt: PropTypes.string,594- /** src for image */595+ /** The source link for the media. */596imgSrc: PropTypes.string,597- /** Analytics id tag for image */598+ /**599+ * The value supplied will be assigned to the600+ * `data-analytics` attribute on the media of the card.601+ * Intended for an outside602+ * library to capture data.603+ */604mediaAnalyticsString: PropTypes.string,605- /** Chooses if main media is img or SprkIcon */606+ /**607+ * Determines which type of media renders. Defaults to `img` if none provided.608+ */609mediaVariant: PropTypes.oneOf(['img', 'icon']),610}),611- /** title of teaser card */612+ /**613+ * Text that will show as as614+ * the main headline of the Teaser Card.615+ */616title: PropTypes.string,617- /** Decides if title goes first */618+ /**619+ * Determines if the Teaser Card's620+ * title is at the top or below the main media.621+ */622titleFirst: PropTypes.bool,623}),624};625",7
626"diff --git a/lib/modules/swarm/process.js b/lib/modules/swarm/process.js @@ -24,7 +24,7 @@ class SwarmProcess extends ProcessWrapper {627`--password=${fs.dappPath(this.storageConfig.account.password)}`,628`--corsdomain=${self.cors.join(',')}`629];630- console.error('Starting swarm process with arguments: ' + args.join(' '));631+ console.trace('Starting swarm process with arguments: ' + args.join(' '));632this.child = child_process.spawn(this.command, args);633this.child.on('error', (err) => {634",13
635"diff --git a/core/rendered_connection.js b/core/rendered_connection.js @@ -475,19 +475,12 @@ Blockly.RenderedConnection.prototype.renderTypeVarHighlights = function() {636delete this.typeVarPaths_[i];637}638}639- var typeExpr = this.typeExpr;640- if (opt_isOutput === true) {641- var block = this.sourceBlock_;642- if (goog.isFunction(block.outputTypeExprToRender)) {643- typeExpr = block.outputTypeExprToRender();644- }645- }646this.typeVarPaths_ = [];647var xy = this.sourceBlock_.getRelativeToSurfaceXY();648var pos = new goog.math.Coordinate(this.x_ - xy.x, this.y_ - xy.y);649this.typeVarPaths_ = Blockly.RenderedTypeExpr.createHighlightedSvg(650- typeExpr, pos, 1, this.sourceBlock_.getSvgRoot());651+ this.typeExpr, pos, 1, this.sourceBlock_.getSvgRoot());652};653/**654",2
655"diff --git a/README.md b/README.md @@ -26,12 +26,9 @@ Community chat. [Join us!][discord-url]656##### New releases657-> `whs` is currently at v2 major version. We don't have clear plans for v3 yet. So v2 will probably remain the main stable version until at least 2018.658-659-> We try to publish **patch releases every 20 days** or even more often.660-661-> We try to publish **minor update releases every 60 days** or even more often depending on the amount of features that sometimes get added in a very small period of time. We want the community to profit from new modules, components and feature enhancements as soon as they are implemented.662+> `whs` is currently at v2 major version. We had plans for v3 yet but development isn't active. So v2 will probably remain the main stable version until further notice.663+> We try to publish **minor update releases** for bug fixes, we will review PRs.664#### NPM665",3
666"diff --git a/javascript/components/UserLocation.js b/javascript/components/UserLocation.js @@ -130,6 +130,7 @@ class UserLocation extends React.Component {667async componentDidMount() {668this._isMounted = true;669+670locationManager.addListener(this._onLocationUpdate);671await this.setLocationManager({672running: this.needsLocationManagerRunning(),673@@ -212,7 +213,13 @@ class UserLocation extends React.Component {674render() {675const {heading, coordinates} = this.state;676- const {children, visible, showsUserHeadingIndicator} = this.props;677+ const {678+ children,679+ visible,680+ showsUserHeadingIndicator,681+ onPress,682+ animated,683+ } = this.props;684if (!visible || !coordinates) {685return null;686@@ -220,10 +227,10 @@ class UserLocation extends React.Component {687return (688<Annotation689- animated={this.props.animated}690+ animated={animated}691id=""mapboxUserLocation""692- onPress={this.props.onPress}693- coordinates={this.state.coordinates}694+ onPress={onPress}695+ coordinates={coordinates}696style={{697iconRotate: heading,698}}699",2
700"diff --git a/token-metadata/0x922aC473A3cC241fD3a0049Ed14536452D58D73c/metadata.json b/token-metadata/0x922aC473A3cC241fD3a0049Ed14536452D58D73c/metadata.json ""symbol"": ""VLD"",701""address"": ""0x922aC473A3cC241fD3a0049Ed14536452D58D73c"",702""decimals"": 18,703- ""dharmaVerificationStatus"": {704""dharmaVerificationStatus"": ""VERIFIED""705}706\ No newline at end of file707-}708\ No newline at end of file709",3
710"diff --git a/src/pages/ReimbursementAccount/AddressForm.js b/src/pages/ReimbursementAccount/AddressForm.js @@ -46,7 +46,12 @@ const propTypes = {711}),712/** Any errors that can arise from form validation */713- errors: PropTypes.objectOf(PropTypes.bool),714+ errors: PropTypes.shape({715+ street: PropTypes.bool,716+ city: PropTypes.bool,717+ state: PropTypes.bool,718+ zipCode: PropTypes.bool,719+ }),720/** The map for inputID of the inputs */721inputKeys: PropTypes.shape({722",4
723"diff --git a/changelog/60_UNRELEASED_2020-xx-xx.md b/changelog/60_UNRELEASED_2020-xx-xx.md - Products can now be hidden instead of deleted to prevent problems / missing information on existing references (new checkbox on the product edit page) (thanks @kriddles)724- Improved/fixed that changing the products ""Factor purchase to stock quantity unit"" not longer messes up historical prices (which results for example in wrong recipe costs) (thanks @kriddles)725- On the stock journal page, it's now visible if a consume-booking was spoiled726-- Added a ""Clear filter""-button on the stock overview page to quickly reset applied filters727- It's now tracked who made a stock change (currently logged in user, visible on the stock journal page) (thanks @fipwmaqzufheoxq92ebc)728- Product edit page improvements (""Save & continue"" button, deleting and adding a product picuture is now possible in one go) (thanks @Ma27)729- For products with tare weight handling enabled, it's now optionally possible to consume a fixed/exact amount (just like for ""normal"" products) in case you don't want to weigh the whole container this time (new checkbox on the consume page) (thanks @fipwmaqzufheoxq92ebc)730- Improved mobile views (thanks @4lloyd for the idea and initial work on this)731- The buttons on the top of each page and the filter row is now collapsed (use the ellipsis/filter button to show them)732- Tables are horizontally scrollable (instead of collapsing columns which don't fit)733+- Added a ""Clear filter""-button on all pages (with filters) to quickly reset applied filters734- The data path (previously fixed to the `data` folder) is now configurable, making it possible to run multiple grocy instances from the same directory (with different `config.php` files / different database, etc.) (thanks @fgrsnau)735- Via an environment variable `GROCY_DATAPATH` (higher priority)736- Via an FastCGI parameter `GROCY_DATAPATH` (lower priority)737",3
738"diff --git a/docs/typescript.md b/docs/typescript.md @@ -17,21 +17,21 @@ To get started with Mongoose in TypeScript, you need to:739import { Schema, model, connect } from 'mongoose';740// 1. Create an interface representing a document in MongoDB.741-interface IUser {742+interface User {743name: string;744email: string;745avatar?: string;746}747// 2. Create a Schema corresponding to the document interface.748-const userSchema = new Schema<IUser>({749+const userSchema = new Schema<User>({750name: { type: String, required: true },751email: { type: String, required: true },752avatar: String753});754// 3. Create a Model.755-const User = model<IUser>('User', userSchema);756+const UserModel = model<User>('User', userSchema);757run().catch(err => console.log(err));758@@ -39,7 +39,7 @@ async function run() {759// 4. Connect to MongoDB760await connect('mongodb://localhost:27017/test');761- const user = new User({762+ const user = UserModel.create({763name: 'Bill',764email: 'bill@initech.com',765avatar: 'https://i.imgur.com/dM7Thhn.png'766@@ -53,14 +53,14 @@ async function run() {767You as the developer are responsible for ensuring that your document interface lines up with your Mongoose schema.768For example, Mongoose won't report an error if `email` is `required` in your Mongoose schema but optional in your document interface.769-The `User()` constructor returns an instance of `HydratedDocument<IUser>`.770-`IUser` is a _document interface_, it represents the raw object structure that `IUser` objects look like in MongoDB.771-`HydratedDocument<IUser>` represents a hydrated Mongoose document, with methods, virtuals, and other Mongoose-specific features.772+The `UserModel.create()` constructor returns an instance of `HydratedDocument<User>`.773+`User` is a _document interface_, it represents the raw object structure that `User` objects look like in MongoDB.774+`HydratedDocument<User>` represents a hydrated Mongoose document, with methods, virtuals, and other Mongoose-specific features.775```ts776import { HydratedDocument } from 'mongoose';777-const user: HydratedDocument<IUser> = new User({778+const user: HydratedDocument<User> = UserModel.create({779name: 'Bill',780email: 'bill@initech.com',781avatar: 'https://i.imgur.com/dM7Thhn.png'782@@ -75,7 +75,7 @@ To define a property of type `ObjectId`, you should use `Types.ObjectId` in the783import { Schema, Types } from 'mongoose';784// 1. Create an interface representing a document in MongoDB.785-interface IUser {786+interface User {787name: string;788email: string;789// Use `Types.ObjectId` in document interface...790@@ -83,7 +83,7 @@ interface IUser {791}792// 2. Create a Schema corresponding to the document interface.793-const userSchema = new Schema<IUser>({794+const userSchema = new Schema<User>({795name: { type: String, required: true },796email: { type: String, required: true },797// And `Schema.Types.ObjectId` in the schema definition.798@@ -103,7 +103,7 @@ Many Mongoose TypeScript codebases use the below approach.799```typescript800import { Document, Schema, model, connect } from 'mongoose';801-interface IUser extends Document {802+interface User extends Document {803name: string;804email: string;805avatar?: string;806",10
807"diff --git a/new-client/public/appConfig.json b/new-client/public/appConfig.json {808""appName"": ""Hajk"",809- ""version"": ""3.0.0"",810+ ""version"": ""3.2.0"",811""mapserviceBase"": ""http://localhost:55630"",812""proxy"": """",813""searchProxy"": """",814- ""defaultMap"": ""map_1""815+ ""defaultMap"": ""map_1"",816+ ""experimentalIntroductionEnabled"": true,817+ ""experimentalIntroductionSteps"": []818}819",6
820"diff --git a/assets/js/components/notifications/ZeroDataStateNotifications.js b/assets/js/components/notifications/ZeroDataStateNotifications.js @@ -93,7 +93,7 @@ export default function ZeroDataStateNotifications() {821) }822format=""small""823dismiss={ __( 'OK, Got it!', 'google-site-kit' ) }824- isDismissible={ true }825+ isDismissible826dismissExpires={ getTimeInSeconds( 'day' ) }827SmallImageSVG={ GatheringDataIcon }828/>829@@ -114,7 +114,7 @@ export default function ZeroDataStateNotifications() {830learnMoreLabel={ __( 'Learn more', 'google-site-kit' ) }831learnMoreURL=""https://sitekit.withgoogle.com/documentation/using-site-kit/dashboard-data-display/""832dismiss={ __( 'Remind me later', 'google-site-kit' ) }833- isDismissible={ true }834+ isDismissible835dismissExpires={ getTimeInSeconds( 'day' ) }836SmallImageSVG={ ZeroStateIcon }837/>838",2
839"diff --git a/best-practices.md b/best-practices.md @@ -312,7 +312,8 @@ actual role requirements.840| data-mask | Best Practice | File indicating if corresponding pixels have Valid data and various types of invalid data |841| snow-ice | Best Practice | Points to a file that indicates whether a pixel is assessed as being snow/ice or not. |842| land-water | Best Practice | Points to a file that indicates whether a pixel is assessed as being land or water. |843-| water-mask | Best Practice | Points to a file that indicates whether a pixel is assessed as being water (e.g. flooding map). |844+| water-mask | Best Practice | Points to a file that indicates whether a pixel is assessed as being water (e.g. flooding map). | iso-19139 | Best Practice | Points to an [ISO 19139](https://www.iso.org/standard/67253.html) metadata xml file |845+| iso-19115 | Best Practice | Points to an [ISO 19115](https://www.iso.org/standard/53798.html) metadata file |846| reflectance, temperature, saturation, cloud, cloud-shadow | [EO Extension](extensions/eo/README.md#best-practices) | See the [table](extensions/eo/README.md#best-practices) in EO for more information, and the definitive list of roles related to EO. |847| incidence-angle, azimuth, sun-azimuth, sun-elevation, terrain-shadow, terrain-occlusion, terrain-illumination | [View Extension](extensions/view/README.md#best-practices) | See the [table](extensions/view/README.md#best-practices) in View for more information, and the definitive list of roles related to viewing angles. |848| local-incidence-angle, noise-power, amplitude, magnitude, sigma0, beta0, gamma0, date-offset, covmat, prd | [SAR Extension](extensions/sar/README.md#best-practices) | See the [table](extensions/sar/README.md#best-practices) in SAR for more information. , and the definitive list of roles related to SAR. |849",0
850"diff --git a/website/src/docs/transloadit.md b/website/src/docs/transloadit.md @@ -338,7 +338,7 @@ Fired when Transloadit has received all uploads, and is currently executing the851**Parameters**852- - `assembly` - The [Assembly Status](https://transloadit.com/docs/api-docs/#assembly-status-response) of the Assembly that is currently executing.853+ - `assembly` - The [Assembly Status](https://transloadit.com/docs/api/#assembly-status-response) of the Assembly that is currently executing.854### `transloadit:result`855@@ -379,4 +379,4 @@ uppy.on('transloadit:complete', (assembly) => {856})857```858-[assembly-status]: https://transloadit.com/docs/api-docs/#assembly-status-response859+[assembly-status]: https://transloadit.com/docs/api/#assembly-status-response860",1
861"diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml @@ -605,24 +605,24 @@ inttest:registryAuth:862# Helm upgrade863- helm init --upgrade864script:865- - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,global.externalUrl=https://$CI_COMMIT_REF_SLUG.dev.magda.io,global.namespace=$CI_COMMIT_REF_SLUG --timeout 3600 --wait866+ - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,magda-core.ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,global.externalUrl=https://$CI_COMMIT_REF_SLUG.dev.magda.io,global.namespace=$CI_COMMIT_REF_SLUG --timeout 3600 --wait867- echo ""Successfully deployed to https://${CI_COMMIT_REF_SLUG}.dev.magda.io""868(UI) Run As Preview:869<<: *runAsPreview870script:871- - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,ingress.targetService=web,tags.all=false,tags.web-server=true,web-server.baseUrl=https://dev.magda.io,web-server.useLocalStyleSheet=true --timeout 3600 --wait872+ - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,magda-core.ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,magda-core.ingress.targetService=web,tags.all=false,tags.web-server=true,magda-core.web-server.baseUrl=https://dev.magda.io,web-server.useLocalStyleSheet=true --timeout 3600 --wait873- echo ""Successfully deployed to https://${CI_COMMIT_REF_SLUG}.dev.magda.io""874(No Data) Run As Preview:875<<: *runAsPreview876script:877- - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,combined-db.waleBackup.method=NONE,elasticsearch.useGcsSnapshots=false,global.externalUrl=https://$CI_COMMIT_REF_SLUG.dev.magda.io,global.namespace=$CI_COMMIT_REF_SLUG --timeout 3600 --wait878+ - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,magda-core.ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,magda-core.combined-db.waleBackup.method=NONE,magda-core.elasticsearch.useGcsSnapshots=false,global.externalUrl=https://$CI_COMMIT_REF_SLUG.dev.magda.io,global.namespace=$CI_COMMIT_REF_SLUG --timeout 3600 --wait879- echo ""Successfully deployed to https://${CI_COMMIT_REF_SLUG}.dev.magda.io""880(No Data) Run As Multi-tenant Preview:881<<: *runAsPreview882script:883- - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview-multi-tenant.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,combined-db.waleBackup.method=NONE,elasticsearch.useGcsSnapshots=false,global.externalUrl=https://$CI_COMMIT_REF_SLUG.dev.magda.io,global.magdaAdminPortalName=admin-$CI_COMMIT_REF_SLUG.dev.magda.io,global.namespace=$CI_COMMIT_REF_SLUG --timeout 3600 --wait884+ - helm upgrade $CI_COMMIT_REF_SLUG deploy/helm/magda --install --recreate-pods --namespace $CI_COMMIT_REF_SLUG -f deploy/helm/preview-multi-tenant.yml --set global.image.repository=registry.gitlab.com/magda-data/magda/data61,global.image.tag=$CI_COMMIT_REF_SLUG,magda-core.ingress.hostname=$CI_COMMIT_REF_SLUG.dev.magda.io,magda-core.combined-db.waleBackup.method=NONE,magda-core.elasticsearch.useGcsSnapshots=false,global.externalUrl=https://$CI_COMMIT_REF_SLUG.dev.magda.io,global.magdaAdminPortalName=admin-$CI_COMMIT_REF_SLUG.dev.magda.io,global.namespace=$CI_COMMIT_REF_SLUG --timeout 3600 --wait885- echo ""Successfully deployed to https://${CI_COMMIT_REF_SLUG}.dev.magda.io""886Stop Preview: &stopPreview887",12
888"diff --git a/src/content/en/fundamentals/media/recording-audio/index.md b/src/content/en/fundamentals/media/recording-audio/index.md @@ -218,7 +218,7 @@ If the user has not previously granted your site access to the microphone then889the instant that you call `getUserMedia` the browser will prompt the user to890grant your site permission to the microphone.891-User's hate getting prompted for access to powerful devices on their machine and892+Users hate getting prompted for access to powerful devices on their machine and893they will frequently block the request, or they will ignore it if they don't894understand the context of which the prompt has been created. It is best practice895to only ask to access the microphone when first needed. Once the user has896",1
897"diff --git a/components/Notifications/SubscribeCallout.js b/components/Notifications/SubscribeCallout.js @@ -36,7 +36,9 @@ const SubscribeCallout = ({898setAnimate,899me900}) => {901- const authorSubscriptionsWithoutMe = authorSubscriptions?.filter(902+ const authorSubscriptionsWithoutMe =903+ authorSubscriptions &&904+ authorSubscriptions.filter(905subscription => subscription.object.id !== me?.id906)907return (908",1
909"diff --git a/structs/Article.js b/structs/Article.js @@ -47,8 +47,9 @@ function escapeRegExp (str) {910return str.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&')911}912-function regexReplace (string, searchOptions, replacement) {913+function regexReplace (string, searchOptions, replacement, replacementDirect) {914if (typeof searchOptions !== 'object') throw new TypeError(`Expected RegexOp search key to have an object value, found ${typeof searchOptions} instead`)915+ if (replacementDirect) return string.replace(new RegExp(searchOptions.regex, searchOptions.flags), replacementDirect) // Allow direct input into the search function, and ignore ""match"" and ""group"" in the regexOp.search916const flags = !searchOptions.flags ? 'g' : searchOptions.flags.includes('g') ? searchOptions.flags : searchOptions.flags + 'g' // Global flag must be included to prevent infinite loop during .exec917const matchIndex = searchOptions.match !== undefined ? parseInt(searchOptions.match, 10) : undefined918const groupNum = searchOptions.group !== undefined ? parseInt(searchOptions.group, 10) : undefined919@@ -103,7 +104,7 @@ function evalRegexConfig (source, text, placeholderName) {920if (regexOp.disabled === true || typeof regexOp.name !== 'string') continue921if (!customPlaceholders[regexOp.name]) customPlaceholders[regexOp.name] = text // Initialize with a value if it doesn't exist922const clone = Object.assign({}, customPlaceholders)923- customPlaceholders[regexOp.name] = regexReplace(clone[regexOp.name], regexOp.search, regexOp.replacement)924+ customPlaceholders[regexOp.name] = regexReplace(clone[regexOp.name], regexOp.search, regexOp.replacement, regexOp.replacementDirect)925}926} else return null927return customPlaceholders928",11
929"diff --git a/server/events/simulator.js b/server/events/simulator.js @@ -239,7 +239,6 @@ App.on(""triggerMacros"", ({simulatorId, macros}) => {930if (!noCancelOnReset) flight.timeouts.push(timeout);931},932);933- pubsub.publish(""simulatorsUpdate"", App.simulators);934});935App.on(""autoAdvance"", ({simulatorId, prev}) => {936",1
937"diff --git a/src/logic/kea.js b/src/logic/kea.js @@ -27,7 +27,7 @@ let nonameCounter = 0938export function kea (_this) {939const hasConnect = !!(_this.connect)940const hasLogic = !!(_this.path || _this.actions || _this.reducers || _this.selectors)941- const hasSaga = !!(_this.sagas || _this.start || _this.stop || _this.takeEvery || _this.takeLatest || (_this.connect && _this.connect.sagas))942+ let hasSaga = !!(_this.sagas || _this.start || _this.stop || _this.takeEvery || _this.takeLatest || (_this.connect && _this.connect.sagas))943const isSingleton = !_this.key944let object = {}945@@ -62,6 +62,7 @@ export function kea (_this) {946// sagas we automatically connect from actions && props947if (connectedSagas.length > 0) {948+ hasSaga = true949_this.sagas = _this.sagas ? _this.sagas.concat(connectedSagas) : connectedSagas950}951",12
952"diff --git a/src/inner-slider.js b/src/inner-slider.js @@ -391,7 +391,6 @@ export class InnerSlider extends React.Component {953onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);954this.setState(state, () => {955asNavFor &&956- asNavFor.innerSlider.state.currentSlide !== this.state.currentSlide &&957asNavFor.innerSlider.slideHandler(index);958if (!nextState) return;959this.animationEndCallback = setTimeout(() => {960",1
961"diff --git a/src/lib.js b/src/lib.js @@ -41,7 +41,7 @@ const rarity_order = ['special', 'mythic', 'legendary', 'epic', 'rare', 'uncommo962const petTiers = ['common', 'uncommon', 'rare', 'epic', 'legendary'];963-const MAX_SOULS = 201;964+const MAX_SOULS = 209;965function replaceAll(target, search, replacement){966return target.split(search).join(replacement);967",12
968"diff --git a/app/components/Features/ComplexPermissionsForm/index.js b/app/components/Features/ComplexPermissionsForm/index.js @@ -39,7 +39,7 @@ const makeTransaction = values => {969mixed.map(perm => {970//is account?971- if(perm.value.includes('@') || perm.value.length < 54) {972+ if(perm.value.includes('@') || perm.value.length < 53) {973if(perm.value.split('@')[1] === undefined && perm.value.length > 0) throw(""Accounts must have @permission appended i.e. account@active"")974accounts.push({975permission: {976",1
977"diff --git a/developers/src/stores/layout.js b/developers/src/stores/layout.js @@ -19,10 +19,16 @@ export const useLayoutStore = defineStore('layout', () => {978};979const fetchAll = async (client) => {980modifyGlobalLoadingStatus(true);981- appList.value = await client.app.fetchList();982- userInfo.value = await client.user.profile();983+ [984+ appList.value,985+ userInfo.value,986+ appProperty.value987+ ] = await Promise.all([988+ client.app.fetchList(),989+ client.user.profile(),990+ client.app.properties()991+ ])992modifyGlobalLoadingStatus(false);993- appProperty.value = await client.app.properties();994};995return {996",7
997"diff --git a/src/enforcers/Operation.js b/src/enforcers/Operation.js @@ -95,20 +95,10 @@ module.exports = {998* @param {string} [request.query=''] The request query string.999* @param {object} [options]1000* @param {boolean,string[]} [options.allowOtherQueryParameters=false] Allow query parameter data that is not specified in the OAS document1001- * @param {Object<string,string>} [options.pathParametersValueMap] A map of the already parsed out path parameters.1002+ * @param {boolean} [options.pathParametersProcessed=false] Set to true if the path parameters have already been parsed, deserialized, and validated1003*/1004request: function (request, options) {1005-1006- // validate input parameters1007- if (!request || typeof request !== 'object') throw Error('Invalid request. Expected a non-null object. Received: ' + request);1008- request = Object.assign({}, request);1009- if (!request.hasOwnProperty('headers')) request.headers = {};1010- if (!request.hasOwnProperty('path')) request.path = {};1011- if (!request.hasOwnProperty('query')) request.query = '';1012- if (!util.isObjectStringMap(request.headers)) throw Error('Invalid request headers. Expected an object with string keys and string values');1013- if (!util.isObjectStringMap(request.path)) throw Error('Invalid request path. Expected an object with string keys and string values');1014- if (typeof request.query !== 'string') throw Error('Invalid request query. Expected a string');1015-1016+ // process options1017if (!options) options = {};1018if (options && typeof options !== 'object') throw Error('Invalid options. Expected an object. Received: ' + options);1019options = Object.assign({}, options);1020@@ -127,6 +117,16 @@ module.exports = {1021}1022}1023+ // validate input parameters1024+ if (!request || typeof request !== 'object') throw Error('Invalid request. Expected a non-null object. Received: ' + request);1025+ request = Object.assign({}, request);1026+ if (!request.hasOwnProperty('headers')) request.headers = {};1027+ if (!request.hasOwnProperty('path')) request.path = {};1028+ if (!request.hasOwnProperty('query')) request.query = '';1029+ if (!util.isObjectStringMap(request.headers)) throw Error('Invalid request headers. Expected an object with string keys and string values');1030+ if (!options.pathParametersProcessed && !util.isObjectStringMap(request.path)) throw Error('Invalid request path. Expected an object with string keys and string values');1031+ if (typeof request.query !== 'string') throw Error('Invalid request query. Expected a string');1032+1033// build request objects1034const req = {1035header: util.lowerCaseObjectProperties(request.headers),1036@@ -146,15 +146,30 @@ module.exports = {1037const result = {1038cookie: {},1039headers: {},1040- path: {},1041+ path: request.path,1042query: {}1043};1044// if formData is expected for the body then make sure that the body is a non-null object1045if (parameters.formData && (!request.body || typeof request.body !== 'object')) throw Error('Parameters in ""formData"" require that the provided body be a non-null object');1046+ // check for unknown path parameters1047+ if (options.pathParametersProcessed) {1048+ const unknownPathParameters = [];1049+ Object.keys(request.path).forEach(key => {1050+ if (!parameters.path.hasOwnProperty(key)) unknownPathParameters.push(key)1051+ });1052+ if (unknownPathParameters.length) {1053+ const message = 'Received unexpected parameter' +1054+ (unknownPathParameters.length === 1 ? '' : 's') + ': ' +1055+ unknownPathParameters.join(', ');1056+ exception.nest('In path parameters').message(message);1057+ }1058+ }1059+1060// begin processing parameters1061- const inArray = ['cookie', 'header', 'path', 'query'];1062+ const inArray = ['cookie', 'header', 'query'];1063+ if (!options.pathParametersProcessed) inArray.push('path');1064if (parameters.formData) inArray.push('formData');1065inArray.forEach(at => {1066",11
1067"diff --git a/packages/rmw-shell/src/components/MenuHeader/MenuHeader.js b/packages/rmw-shell/src/components/MenuHeader/MenuHeader.js @@ -63,11 +63,9 @@ const MenuHeader = () => {1068isMenuOpen,1069isMiniSwitchVisibility,1070isAuthMenuOpen,1071- isAuthMenuOpen,1072} = menuContext || {}1073const isAuthenticated = auth.isAuthenticated1074-1075return (1076<Paper square={true} className={classes.paper}>1077{isMiniMode && isAuthenticated && <div className={classes.toolbar}></div>}1078",1
1079"diff --git a/Sortable.js b/Sortable.js */1080_detectNearestEmptySortable = function(x, y) {1081for (var i = 0; i < sortables.length; i++) {1082- if (sortables[i].children.length) continue;1083+ if (_lastChild(sortables[i])) continue;1084var rect = _getRect(sortables[i]),1085threshold = sortables[i][expando].options.emptyInsertThreshold,1086return completed();1087}1088- if ((el.children.length === 0) || (el.children[0] === ghostEl) ||1089- _ghostIsLast(evt, axis, el) && !dragEl.animated1090- ) {1091+ var elLastChild = _lastChild(el);1092+1093+ if (!elLastChild || _ghostIsLast(evt, axis, el) && !elLastChild.animated) {1094// assign target only if condition is true1095- if (el.children.length !== 0 && el.children[0] !== ghostEl && el === evt.target) {1096- target = _lastChild(el);1097+ if (elLastChild && el === evt.target) {1098+ target = elLastChild;1099}1100if (target) {1101function _lastChild(el) {1102var last = el.lastElementChild;1103- while (last === ghostEl || last.style.display === 'none') {1104+ while (last && (last === ghostEl || last.style.display === 'none')) {1105last = last.previousElementSibling;1106-1107- if (!last) break;1108}1109return last || null;1110",7
1111"diff --git a/js/feature/interactionTrack.js b/js/feature/interactionTrack.js @@ -94,9 +94,14 @@ class InteractionTrack extends TrackBase {1112}1113// Create the FeatureSource and override the default whole genome method1114+ if (config.featureSource) {1115+ this.featureSource = config.featureSource1116+ delete config._featureSource1117+ } else {1118this.featureSource = FeatureSource(config, this.browser.genome)1119this.featureSource.getWGFeatures = getWGFeatures1120}1121+ }1122async postInit() {1123",11
1124"diff --git a/src/lib/project-loader-hoc.jsx b/src/lib/project-loader-hoc.jsx @@ -44,7 +44,7 @@ const ProjectLoaderHOC = function (WrappedComponent) {1125analytics.event({1126category: 'project',1127action: 'Load Project',1128- value: projectId,1129+ label: projectId,1130nonInteraction: true1131});1132}1133",4
1134"diff --git a/articles/multifactor-authentication/google-auth/admin-guide.md b/articles/multifactor-authentication/google-auth/admin-guide.md @@ -55,7 +55,6 @@ function (user, context, callback) {1135context.multifactor = {1136provider: 'google-authenticator',1137// issuer: 'Label on Google Authenticator App', // optional1138- // key: 'YOUR_KEY_HERE', // optional, the key to use for TOTP. by default one is generated for you1139// optional, defaults to true. Set to false to force Google Authenticator every time.1140// See https://auth0.com/docs/multifactor-authentication/custom#change-the-frequency-of-authentication-requests for details1141",2
1142"diff --git a/project/src/backend/sdl/SDLWindow.cpp b/project/src/backend/sdl/SDLWindow.cpp @@ -70,11 +70,6 @@ namespace lime {1143SDL_SetHint (SDL_HINT_RENDER_DRIVER, ""opengles2"");1144#endif1145- #if defined (IPHONE) || defined (APPLETV)1146- SDL_GL_SetAttribute (SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);1147- SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 3);1148- #endif1149-1150if (flags & WINDOW_FLAG_DEPTH_BUFFER) {1151SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 32 - (flags & WINDOW_FLAG_STENCIL_BUFFER) ? 8 : 0);1152",11
1153"diff --git a/packages/styled/src/index.tsx b/packages/styled/src/index.tsx @@ -92,12 +92,15 @@ export interface IBaseStyled<1154[P in keyof V]?: C[""screens""] extends IScreens1155?1156| keyof V[P]1157+ | false1158+ | null1159+ | undefined1160| ({1161[S in keyof C[""screens""]]?: keyof V[P];1162} & {1163""""?: keyof V[P];1164})1165- : keyof V[P];1166+ : keyof V[P] | false | null | undefined;1167} & {1168styled?: string;1169},1170@@ -115,13 +118,16 @@ export interface IBaseStyled<1171: {1172[P in keyof V]?: C[""screens""] extends IScreens1173?1174+ | false1175+ | null1176+ | undefined1177| keyof V[P]1178| ({1179[S in keyof C[""screens""]]?: keyof V[P];1180} & {1181""""?: keyof V[P];1182})1183- : keyof V[P];1184+ : keyof V[P] | false | null | undefined;1185} &1186(E extends React.ComponentType<infer PP>1187? PP & {1188@@ -158,6 +164,9 @@ interface IStyledConstructor<1189{1190[P in keyof V]?: C[""screens""] extends IScreens1191?1192+ | false1193+ | null1194+ | undefined1195| keyof V[P]1196| ({1197[S in keyof C[""screens""]]?: keyof V[P];1198@@ -261,7 +270,7 @@ export const createStyled = <T extends IConfig>(1199if (typeof props[propName] === ""string"") {1200compositions.push(screens?.get(props[propName])![""""]);