mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 18:08:11 +00:00 
			
		
		
		
	Merge branches 'fix/i18n-locale-queries-forbidden-access' and 'main' of github.com:strapi/strapi into fix/i18n-locale-queries-forbidden-access
This commit is contained in:
		
						commit
						ccf39e4f2f
					
				| @ -51,6 +51,7 @@ module.exports = { | |||||||
|     '<rootDir>/packages/admin-test-utils/lib/setup/styled-components.js', |     '<rootDir>/packages/admin-test-utils/lib/setup/styled-components.js', | ||||||
|     '<rootDir>/packages/admin-test-utils/lib/setup/strapi.js', |     '<rootDir>/packages/admin-test-utils/lib/setup/strapi.js', | ||||||
|   ], |   ], | ||||||
|  |   testEnvironment: 'jsdom', | ||||||
|   transform: { |   transform: { | ||||||
|     '^.+\\.js$': ['@swc/jest', { jsc: { parser: { jsx: true, dynamicImport: true } } }], |     '^.+\\.js$': ['@swc/jest', { jsc: { parser: { jsx: true, dynamicImport: true } } }], | ||||||
|     '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': |     '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': | ||||||
|  | |||||||
| @ -87,9 +87,10 @@ | |||||||
|     "husky": "3.1.0", |     "husky": "3.1.0", | ||||||
|     "inquirer": "8.2.4", |     "inquirer": "8.2.4", | ||||||
|     "istanbul": "~0.4.2", |     "istanbul": "~0.4.2", | ||||||
|     "jest": "26.6.3", |     "jest": "29.0.0", | ||||||
|     "jest-circus": "26.6.3", |     "jest-circus": "29.0.0", | ||||||
|     "jest-cli": "26.6.3", |     "jest-cli": "29.0.0", | ||||||
|  |     "jest-environment-jsdom": "29.0.0", | ||||||
|     "jest-watch-typeahead": "0.6.5", |     "jest-watch-typeahead": "0.6.5", | ||||||
|     "lerna": "5.4.3", |     "lerna": "5.4.3", | ||||||
|     "lint-staged": "10.5.4", |     "lint-staged": "10.5.4", | ||||||
|  | |||||||
| @ -17,6 +17,7 @@ function SelectMany({ | |||||||
|   name, |   name, | ||||||
|   isDisabled, |   isDisabled, | ||||||
|   isLoading, |   isLoading, | ||||||
|  |   loadingMessage, | ||||||
|   onInputChange, |   onInputChange, | ||||||
|   onMenuClose, |   onMenuClose, | ||||||
|   onMenuOpen, |   onMenuOpen, | ||||||
| @ -61,6 +62,7 @@ function SelectMany({ | |||||||
|         }} |         }} | ||||||
|         mainField={mainField} |         mainField={mainField} | ||||||
|         isLoading={isLoading} |         isLoading={isLoading} | ||||||
|  |         loadingMessage={loadingMessage} | ||||||
|         isMulti |         isMulti | ||||||
|         isSearchable |         isSearchable | ||||||
|         options={options} |         options={options} | ||||||
| @ -119,6 +121,7 @@ SelectMany.propTypes = { | |||||||
|   displayNavigationLink: PropTypes.bool.isRequired, |   displayNavigationLink: PropTypes.bool.isRequired, | ||||||
|   isDisabled: PropTypes.bool.isRequired, |   isDisabled: PropTypes.bool.isRequired, | ||||||
|   isLoading: PropTypes.bool.isRequired, |   isLoading: PropTypes.bool.isRequired, | ||||||
|  |   loadingMessage: PropTypes.string.isRequired, | ||||||
|   mainField: PropTypes.shape({ |   mainField: PropTypes.shape({ | ||||||
|     name: PropTypes.string.isRequired, |     name: PropTypes.string.isRequired, | ||||||
|     schema: PropTypes.shape({ |     schema: PropTypes.shape({ | ||||||
|  | |||||||
| @ -14,6 +14,7 @@ function SelectOne({ | |||||||
|   name, |   name, | ||||||
|   isDisabled, |   isDisabled, | ||||||
|   isLoading, |   isLoading, | ||||||
|  |   loadingMessage, | ||||||
|   onChange, |   onChange, | ||||||
|   onInputChange, |   onInputChange, | ||||||
|   onMenuClose, |   onMenuClose, | ||||||
| @ -37,6 +38,7 @@ function SelectOne({ | |||||||
|         isClearable |         isClearable | ||||||
|         isDisabled={isDisabled} |         isDisabled={isDisabled} | ||||||
|         isLoading={isLoading} |         isLoading={isLoading} | ||||||
|  |         loadingMessage={loadingMessage} | ||||||
|         mainField={mainField} |         mainField={mainField} | ||||||
|         options={options} |         options={options} | ||||||
|         onChange={onChange} |         onChange={onChange} | ||||||
| @ -70,6 +72,7 @@ SelectOne.propTypes = { | |||||||
|   components: PropTypes.object, |   components: PropTypes.object, | ||||||
|   isDisabled: PropTypes.bool.isRequired, |   isDisabled: PropTypes.bool.isRequired, | ||||||
|   isLoading: PropTypes.bool.isRequired, |   isLoading: PropTypes.bool.isRequired, | ||||||
|  |   loadingMessage: PropTypes.string.isRequired, | ||||||
|   mainField: PropTypes.shape({ |   mainField: PropTypes.shape({ | ||||||
|     name: PropTypes.string.isRequired, |     name: PropTypes.string.isRequired, | ||||||
|     schema: PropTypes.shape({ |     schema: PropTypes.shape({ | ||||||
|  | |||||||
| @ -282,6 +282,12 @@ function SelectWrapper({ | |||||||
|         isDisabled={isDisabled} |         isDisabled={isDisabled} | ||||||
|         isLoading={isLoading} |         isLoading={isLoading} | ||||||
|         isClearable |         isClearable | ||||||
|  |         loadingMessage={() => | ||||||
|  |           formatMessage({ | ||||||
|  |             id: getTrad('DynamicTable.relation-loading'), | ||||||
|  |             defaultMessage: 'Relations are loading', | ||||||
|  |           }) | ||||||
|  |         } | ||||||
|         mainField={mainField} |         mainField={mainField} | ||||||
|         move={moveRelation} |         move={moveRelation} | ||||||
|         name={name} |         name={name} | ||||||
|  | |||||||
| @ -63,7 +63,7 @@ | |||||||
|     "bcryptjs": "2.4.3", |     "bcryptjs": "2.4.3", | ||||||
|     "chalk": "^4.1.1", |     "chalk": "^4.1.1", | ||||||
|     "chokidar": "^3.5.1", |     "chokidar": "^3.5.1", | ||||||
|     "codemirror": "^5.65.6", |     "codemirror": "^5.65.8", | ||||||
|     "cross-env": "^7.0.3", |     "cross-env": "^7.0.3", | ||||||
|     "css-loader": "6.7.1", |     "css-loader": "6.7.1", | ||||||
|     "date-fns": "2.29.2", |     "date-fns": "2.29.2", | ||||||
|  | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -12,16 +12,16 @@ describe('Configuration settings service', () => { | |||||||
|       const settings = await settingsService.createDefaultSettings(schema); |       const settings = await settingsService.createDefaultSettings(schema); | ||||||
| 
 | 
 | ||||||
|       expect(settings).toMatchInlineSnapshot(` |       expect(settings).toMatchInlineSnapshot(` | ||||||
|       Object { |         { | ||||||
|         "bulkable": true, |           "bulkable": true, | ||||||
|         "defaultSortBy": "id", |           "defaultSortBy": "id", | ||||||
|         "defaultSortOrder": "ASC", |           "defaultSortOrder": "ASC", | ||||||
|         "filterable": true, |           "filterable": true, | ||||||
|         "mainField": "id", |           "mainField": "id", | ||||||
|         "pageSize": 10, |           "pageSize": 10, | ||||||
|         "searchable": true, |           "searchable": true, | ||||||
|       } |         } | ||||||
|     `);
 |       `);
 | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     test('uses id as mainField by default', async () => { |     test('uses id as mainField by default', async () => { | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||||
| 
 | 
 | ||||||
| exports[`Content types service format ContentType Returns consistent schemas 1`] = ` | exports[`Content types service format ContentType Returns consistent schemas 1`] = ` | ||||||
| Object { | { | ||||||
|   "apiID": "my-name", |   "apiID": "my-name", | ||||||
|   "plugin": "some-plugin", |   "plugin": "some-plugin", | ||||||
|   "schema": Object { |   "schema": { | ||||||
|     "attributes": Object { |     "attributes": { | ||||||
|       "title": Object { |       "title": { | ||||||
|         "type": "string", |         "type": "string", | ||||||
|       }, |       }, | ||||||
|     }, |     }, | ||||||
| @ -15,8 +15,8 @@ Object { | |||||||
|     "displayName": "My name", |     "displayName": "My name", | ||||||
|     "draftAndPublish": false, |     "draftAndPublish": false, | ||||||
|     "kind": "singleType", |     "kind": "singleType", | ||||||
|     "pluginOptions": Object { |     "pluginOptions": { | ||||||
|       "content-manager": Object { |       "content-manager": { | ||||||
|         "visible": true, |         "visible": true, | ||||||
|       }, |       }, | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -1,14 +1,14 @@ | |||||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||||
| 
 | 
 | ||||||
| exports[`Content Type Builder - Content types Collection Types Get collection type returns full schema and information 1`] = ` | exports[`Content Type Builder - Content types Collection Types Get collection type returns full schema and information 1`] = ` | ||||||
| Object { | { | ||||||
|   "data": Object { |   "data": { | ||||||
|     "apiID": "test-collection-type", |     "apiID": "test-collection-type", | ||||||
|     "schema": Object { |     "schema": { | ||||||
|       "attributes": Object { |       "attributes": { | ||||||
|         "title": Object { |         "title": { | ||||||
|           "pluginOptions": Object { |           "pluginOptions": { | ||||||
|             "i18n": Object { |             "i18n": { | ||||||
|               "localized": true, |               "localized": true, | ||||||
|             }, |             }, | ||||||
|           }, |           }, | ||||||
| @ -20,8 +20,8 @@ Object { | |||||||
|       "displayName": "Test Collection Type", |       "displayName": "Test Collection Type", | ||||||
|       "draftAndPublish": false, |       "draftAndPublish": false, | ||||||
|       "kind": "collectionType", |       "kind": "collectionType", | ||||||
|       "pluginOptions": Object { |       "pluginOptions": { | ||||||
|         "i18n": Object { |         "i18n": { | ||||||
|           "localized": true, |           "localized": true, | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
| @ -36,12 +36,12 @@ Object { | |||||||
| `; | `; | ||||||
| 
 | 
 | ||||||
| exports[`Content Type Builder - Content types Collection Types Get collection type returns full schema and informations with draftAndPublish 1`] = ` | exports[`Content Type Builder - Content types Collection Types Get collection type returns full schema and informations with draftAndPublish 1`] = ` | ||||||
| Object { | { | ||||||
|   "data": Object { |   "data": { | ||||||
|     "apiID": "ct-with-dp", |     "apiID": "ct-with-dp", | ||||||
|     "schema": Object { |     "schema": { | ||||||
|       "attributes": Object { |       "attributes": { | ||||||
|         "title": Object { |         "title": { | ||||||
|           "type": "string", |           "type": "string", | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|  | |||||||
| @ -1,14 +1,14 @@ | |||||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||||
| 
 | 
 | ||||||
| exports[`Content Type Builder - Content types Single Types Get single type returns full schema and information 1`] = ` | exports[`Content Type Builder - Content types Single Types Get single type returns full schema and information 1`] = ` | ||||||
| Object { | { | ||||||
|   "data": Object { |   "data": { | ||||||
|     "apiID": "test-single-type", |     "apiID": "test-single-type", | ||||||
|     "schema": Object { |     "schema": { | ||||||
|       "attributes": Object { |       "attributes": { | ||||||
|         "title": Object { |         "title": { | ||||||
|           "pluginOptions": Object { |           "pluginOptions": { | ||||||
|             "i18n": Object { |             "i18n": { | ||||||
|               "localized": true, |               "localized": true, | ||||||
|             }, |             }, | ||||||
|           }, |           }, | ||||||
| @ -20,8 +20,8 @@ Object { | |||||||
|       "displayName": "Test Single Type", |       "displayName": "Test Single Type", | ||||||
|       "draftAndPublish": false, |       "draftAndPublish": false, | ||||||
|       "kind": "singleType", |       "kind": "singleType", | ||||||
|       "pluginOptions": Object { |       "pluginOptions": { | ||||||
|         "i18n": Object { |         "i18n": { | ||||||
|           "localized": true, |           "localized": true, | ||||||
|         }, |         }, | ||||||
|       }, |       }, | ||||||
|  | |||||||
| @ -17,7 +17,13 @@ const ReactSelect = ({ components, styles, error, ariaErrorMessage, ...props }) | |||||||
|     <Select |     <Select | ||||||
|       {...props} |       {...props} | ||||||
|       menuPosition="fixed" |       menuPosition="fixed" | ||||||
|       components={{ ClearIndicator, DropdownIndicator, IndicatorSeparator, ...components }} |       components={{ | ||||||
|  |         ClearIndicator, | ||||||
|  |         DropdownIndicator, | ||||||
|  |         IndicatorSeparator, | ||||||
|  |         LoadingIndicator: () => null, | ||||||
|  |         ...components, | ||||||
|  |       }} | ||||||
|       aria-errormessage={error && ariaErrorMessage} |       aria-errormessage={error && ariaErrorMessage} | ||||||
|       aria-invalid={!!error} |       aria-invalid={!!error} | ||||||
|       styles={{ ...customStyles, ...styles }} |       styles={{ ...customStyles, ...styles }} | ||||||
|  | |||||||
| @ -45,12 +45,12 @@ module.exports = (strapi) => { | |||||||
|     environment: strapi.config.environment, |     environment: strapi.config.environment, | ||||||
|     os: os.type(), |     os: os.type(), | ||||||
|     osPlatform: os.platform(), |     osPlatform: os.platform(), | ||||||
|  |     osArch: os.arch(), | ||||||
|     osRelease: os.release(), |     osRelease: os.release(), | ||||||
|     nodeVersion: process.version, |     nodeVersion: process.versions.node, | ||||||
|     docker: process.env.DOCKER || isDocker(), |     docker: process.env.DOCKER || isDocker(), | ||||||
|     isCI: ciEnv.isCI, |     isCI: ciEnv.isCI, | ||||||
|     version: strapi.config.get('info.strapi'), |     version: strapi.config.get('info.strapi'), | ||||||
|     strapiVersion: strapi.config.get('info.strapi'), |  | ||||||
|     projectType: isEE ? 'Enterprise' : 'Community', |     projectType: isEE ? 'Enterprise' : 'Community', | ||||||
|     useTypescriptOnServer: isUsingTypeScriptSync(serverRootPath), |     useTypescriptOnServer: isUsingTypeScriptSync(serverRootPath), | ||||||
|     useTypescriptOnAdmin: isUsingTypeScriptSync(adminRootPath), |     useTypescriptOnAdmin: isUsingTypeScriptSync(adminRootPath), | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||||
| 
 | 
 | ||||||
| exports[`SelectTree renders 1`] = ` | exports[`SelectTree renders 1`] = ` | ||||||
| Object { | { | ||||||
|   "asFragment": [Function], |   "asFragment": [Function], | ||||||
|   "baseElement": .c3 { |   "baseElement": .c3 { | ||||||
|   border: 0; |   border: 0; | ||||||
|  | |||||||
| @ -1,22 +1,22 @@ | |||||||
| // Jest Snapshot v1, https://goo.gl/fbAQLP | // Jest Snapshot v1, https://goo.gl/fbAQLP | ||||||
| 
 | 
 | ||||||
| exports[`flattenTree flattens the passed tree structure properly 1`] = ` | exports[`flattenTree flattens the passed tree structure properly 1`] = ` | ||||||
| Array [ | [ | ||||||
|   Object { |   { | ||||||
|     "depth": 0, |     "depth": 0, | ||||||
|     "label": "Folder 1", |     "label": "Folder 1", | ||||||
|     "parent": undefined, |     "parent": undefined, | ||||||
|     "value": "f-1", |     "value": "f-1", | ||||||
|   }, |   }, | ||||||
|   Object { |   { | ||||||
|     "children": Array [ |     "children": [ | ||||||
|       Object { |       { | ||||||
|         "label": "Folder 2-1", |         "label": "Folder 2-1", | ||||||
|         "value": "f-2-1", |         "value": "f-2-1", | ||||||
|       }, |       }, | ||||||
|       Object { |       { | ||||||
|         "children": Array [ |         "children": [ | ||||||
|           Object { |           { | ||||||
|             "label": "Folder 2-2-1", |             "label": "Folder 2-2-1", | ||||||
|             "value": "f-2-2-1", |             "value": "f-2-2-1", | ||||||
|           }, |           }, | ||||||
| @ -30,15 +30,15 @@ Array [ | |||||||
|     "parent": undefined, |     "parent": undefined, | ||||||
|     "value": "f-2", |     "value": "f-2", | ||||||
|   }, |   }, | ||||||
|   Object { |   { | ||||||
|     "depth": 1, |     "depth": 1, | ||||||
|     "label": "Folder 2-1", |     "label": "Folder 2-1", | ||||||
|     "parent": "f-2", |     "parent": "f-2", | ||||||
|     "value": "f-2-1", |     "value": "f-2-1", | ||||||
|   }, |   }, | ||||||
|   Object { |   { | ||||||
|     "children": Array [ |     "children": [ | ||||||
|       Object { |       { | ||||||
|         "label": "Folder 2-2-1", |         "label": "Folder 2-2-1", | ||||||
|         "value": "f-2-2-1", |         "value": "f-2-2-1", | ||||||
|       }, |       }, | ||||||
| @ -48,7 +48,7 @@ Array [ | |||||||
|     "parent": "f-2", |     "parent": "f-2", | ||||||
|     "value": "f-2-2", |     "value": "f-2-2", | ||||||
|   }, |   }, | ||||||
|   Object { |   { | ||||||
|     "depth": 2, |     "depth": 2, | ||||||
|     "label": "Folder 2-2-1", |     "label": "Folder 2-2-1", | ||||||
|     "parent": "f-2-2", |     "parent": "f-2-2", | ||||||
|  | |||||||
| @ -2,11 +2,6 @@ | |||||||
| 
 | 
 | ||||||
| const metricsService = require('../metrics'); | const metricsService = require('../metrics'); | ||||||
| 
 | 
 | ||||||
| // TODO: the matcher exists in jest@28
 |  | ||||||
| const closeTo = (expected, precision = 2) => ({ |  | ||||||
|   asymmetricMatch: (actual) => Math.abs(expected - actual) < 10 ** -precision / 2, |  | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| describe('metrics', () => { | describe('metrics', () => { | ||||||
|   describe('computeMetrics', () => { |   describe('computeMetrics', () => { | ||||||
|     test.each([ |     test.each([ | ||||||
| @ -95,9 +90,9 @@ describe('metrics', () => { | |||||||
|       expect(results).toMatchObject({ |       expect(results).toMatchObject({ | ||||||
|         assetNumber, |         assetNumber, | ||||||
|         folderNumber, |         folderNumber, | ||||||
|         averageDepth: closeTo(averageDepth, 3), |         averageDepth: expect.closeTo(averageDepth, 3), | ||||||
|         maxDepth, |         maxDepth, | ||||||
|         averageDeviationDepth: closeTo(averageDeviationDepth, 3), |         averageDeviationDepth: expect.closeTo(averageDeviationDepth, 3), | ||||||
|       }); |       }); | ||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
|  | |||||||
| @ -58,12 +58,12 @@ const generateNewApp = (projectDirectory, cliArguments) => { | |||||||
| 
 | 
 | ||||||
|   sentry.configureScope(function scope(sentryScope) { |   sentry.configureScope(function scope(sentryScope) { | ||||||
|     const tags = { |     const tags = { | ||||||
|       os_arch: os.arch(), |       os: os.type(), | ||||||
|       os_type: os.type(), |       osPlatform: os.platform(), | ||||||
|       os_platform: os.platform(), |       osArch: os.arch(), | ||||||
|       os_release: os.release(), |       osRelease: os.release(), | ||||||
|       strapi_version: scope.strapiVersion, |       version: scope.strapiVersion, | ||||||
|       node_version: process.version, |       nodeVersion: process.versions.node, | ||||||
|       docker: scope.docker, |       docker: scope.docker, | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -53,6 +53,21 @@ function captureStderr(name, error) { | |||||||
|   return captureError(name); |   return captureError(name); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | const getProperties = (scope, error) => ({ | ||||||
|  |   error: typeof error === 'string' ? error : error && error.message, | ||||||
|  |   os: os.type(), | ||||||
|  |   osPlatform: os.platform(), | ||||||
|  |   osArch: os.arch(), | ||||||
|  |   osRelease: os.release(), | ||||||
|  |   version: scope.strapiVersion, | ||||||
|  |   nodeVersion: process.versions.node, | ||||||
|  |   docker: scope.docker, | ||||||
|  |   useYarn: scope.useYarn, | ||||||
|  |   useTypescriptOnServer: scope.useTypescript, | ||||||
|  |   useTypescriptOnAdmin: scope.useTypescript, | ||||||
|  |   noRun: (scope.runQuickstartApp !== true).toString(), | ||||||
|  | }); | ||||||
|  | 
 | ||||||
| function trackEvent(event, body) { | function trackEvent(event, body) { | ||||||
|   if (process.env.NODE_ENV === 'test') { |   if (process.env.NODE_ENV === 'test') { | ||||||
|     return; |     return; | ||||||
| @ -76,19 +91,7 @@ function trackEvent(event, body) { | |||||||
| 
 | 
 | ||||||
| function trackError({ scope, error }) { | function trackError({ scope, error }) { | ||||||
|   const { uuid } = scope; |   const { uuid } = scope; | ||||||
| 
 |   const properties = getProperties(scope, error); | ||||||
|   const properties = { |  | ||||||
|     error: typeof error === 'string' ? error : error && error.message, |  | ||||||
|     os: os.type(), |  | ||||||
|     platform: os.platform(), |  | ||||||
|     release: os.release(), |  | ||||||
|     version: scope.strapiVersion, |  | ||||||
|     nodeVersion: process.version, |  | ||||||
|     docker: scope.docker, |  | ||||||
|     useYarn: scope.useYarn, |  | ||||||
|     useTypescriptOnServer: scope.useTypescript, |  | ||||||
|     useTypescriptOnAdmin: scope.useTypescript, |  | ||||||
|   }; |  | ||||||
| 
 | 
 | ||||||
|   try { |   try { | ||||||
|     return trackEvent('didNotCreateProject', { |     return trackEvent('didNotCreateProject', { | ||||||
| @ -104,21 +107,7 @@ function trackError({ scope, error }) { | |||||||
| 
 | 
 | ||||||
| function trackUsage({ event, scope, error }) { | function trackUsage({ event, scope, error }) { | ||||||
|   const { uuid } = scope; |   const { uuid } = scope; | ||||||
| 
 |   const properties = getProperties(scope, error); | ||||||
|   const properties = { |  | ||||||
|     error: typeof error === 'string' ? error : error && error.message, |  | ||||||
|     os: os.type(), |  | ||||||
|     os_arch: os.arch(), |  | ||||||
|     os_platform: os.platform(), |  | ||||||
|     os_release: os.release(), |  | ||||||
|     node_version: process.version, |  | ||||||
|     version: scope.strapiVersion, |  | ||||||
|     docker: scope.docker, |  | ||||||
|     useYarn: scope.useYarn.toString(), |  | ||||||
|     useTypescriptOnServer: scope.useTypescript, |  | ||||||
|     useTypescriptOnAdmin: scope.useTypescript, |  | ||||||
|     noRun: (scope.runQuickstartApp !== true).toString(), |  | ||||||
|   }; |  | ||||||
| 
 | 
 | ||||||
|   try { |   try { | ||||||
|     return trackEvent(event, { |     return trackEvent(event, { | ||||||
|  | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Convly
						Convly