Skip to content

Commit 849fd14

Browse files
committed
Merge branch 'main' of github.com:Expensify/App into parasharrajat/workspace-chat-invite-whisper
2 parents 2cb4f5b + 8815437 commit 849fd14

1,582 files changed

Lines changed: 110590 additions & 24901 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,6 @@ EXPENSIFY_ACCOUNT_ID_MANAGER_MCTEST=-1
3636
FB_API_KEY=YOUR_API_KEY
3737
FB_APP_ID=YOUR_APP_ID
3838
FB_PROJECT_ID=YOUR_PROJECT_ID
39+
40+
GITHUB_TOKEN=YOUR_TOKEN
41+
OPENAI_API_KEY=YOUR_TOKEN

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ web/gtm.js
1414
src/libs/SearchParser/searchParser.js
1515
src/libs/SearchParser/autocompleteParser.js
1616
help/_scripts/**
17+
modules/ExpensifyNitroUtils/nitrogen/**
1718
Mobile-Expensify/**
1819
vendor

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ module.exports = {
292292
'@libs': './src/libs',
293293
'@navigation': './src/libs/Navigation',
294294
'@pages': './src/pages',
295+
'@prompts': './prompts',
295296
'@styles': './src/styles',
296297
// This path is provide alias for files like `ONYXKEYS` and `CONST`.
297298
'@src': './src',

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ This is a checklist for PR authors. Please make sure to complete all tasks and c
9292
- [ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. `toggleReport` and not `onIconClick`)
9393
- [ ] I verified that comments were added to code that is not self explanatory
9494
- [ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
95-
- [ ] I verified any copy / text shown in the product is localized by adding it to `src/languages/*` files and using the [translation method](https://github.com/Expensify/App/blob/4bd99402cebdf4d7394e0d1f260879ea238197eb/src/components/withLocalize.js#L60)
95+
- [ ] I verified any copy / text shown in the product is localized by adding it to `src/languages/*` files and using the [translation method](https://github.com/Expensify/App/blob/4510fc76bbf5df699a2575bfb49a276af90f3ed7/src/components/LocaleContextProvider.tsx#L80)
9696
- [ ] If any non-english text was added/modified, I used [JaimeGPT](https://chatgpt.com/g/g-2dgOQl5VM-english-to-spanish-translator-aka-jaimegpt) to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:
97-
- [ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the [localization methods](https://github.com/Expensify/App/blob/4bd99402cebdf4d7394e0d1f260879ea238197eb/src/components/withLocalize.js#L60-L68)
97+
- [ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the [localization methods](https://github.com/Expensify/App/blob/4510fc76bbf5df699a2575bfb49a276af90f3ed7/src/components/LocaleContextProvider.tsx#L116-L123)
9898
- [ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
9999
- [ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
100100
- [ ] I verified the JSDocs style guidelines (in [`STYLE.md`](https://github.com/Expensify/App/blob/main/contributingGuides/STYLE.md#jsdocs)) were followed

.github/actionlint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ self-hosted-runner:
1010
paths:
1111
'**/*':
1212
ignore:
13-
# This is meant to be a temporary workaround for a bug in actionslint. Upstream:
13+
# This is meant to be a temporary workaround for a bug in actionlint. Upstream:
1414
# - issue: https://github.com/rhysd/actionlint/issues/511
1515
# - PR: https://github.com/rhysd/actionlint/pull/513
1616
- '"env" is not allowed in "runs" section because .* is a Composite action.*'

.github/actions/javascript/authorChecklist/categories/newComponentCategory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ async function detectReactComponentInFile(filename: string): Promise<boolean | u
9191
};
9292
try {
9393
const {data} = await GithubUtils.octokit.repos.getContent(params);
94-
const content = nodeBase64ToUtf8('content' in data ? data?.content ?? '' : '');
94+
const content = nodeBase64ToUtf8('content' in data ? (data?.content ?? '') : '');
9595
return detectReactComponent(content, filename);
9696
} catch (error) {
9797
console.error('An unknown error occurred with the GitHub API: ', error, params);

.github/actions/javascript/authorChecklist/index.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15419,7 +15419,7 @@ async function detectReactComponentInFile(filename) {
1541915419
};
1542015420
try {
1542115421
const { data } = await GithubUtils_1.default.octokit.repos.getContent(params);
15422-
const content = nodeBase64ToUtf8('content' in data ? data?.content ?? '' : '');
15422+
const content = nodeBase64ToUtf8('content' in data ? (data?.content ?? '') : '');
1542315423
return detectReactComponent(content, filename);
1542415424
}
1542515425
catch (error) {
@@ -15475,12 +15475,7 @@ const CONST = {
1547515475
EVENTS: {
1547615476
ISSUE_COMMENT: 'issue_comment',
1547715477
},
15478-
OPENAI_ROLES: {
15479-
USER: 'user',
15480-
ASSISTANT: 'assistant',
15481-
},
1548215478
PROPOSAL_KEYWORD: 'Proposal',
15483-
OPENAI_THREAD_COMPLETED: 'completed',
1548415479
DATE_FORMAT_STRING: 'yyyy-MM-dd',
1548515480
PULL_REQUEST_REGEX: new RegExp(`${GITHUB_BASE_URL_REGEX.source}/.*/.*/pull/([0-9]+).*`),
1548615481
ISSUE_REGEX: new RegExp(`${GITHUB_BASE_URL_REGEX.source}/.*/.*/issues/([0-9]+).*`),
@@ -15491,8 +15486,6 @@ const CONST = {
1549115486
NO_ACTION: 'NO_ACTION',
1549215487
ACTION_EDIT: 'ACTION_EDIT',
1549315488
ACTION_REQUIRED: 'ACTION_REQUIRED',
15494-
OPENAI_POLL_RATE: 1500,
15495-
OPENAI_POLL_TIMEOUT: 90000,
1549615489
};
1549715490
exports["default"] = CONST;
1549815491

@@ -15653,7 +15646,6 @@ class GithubUtils {
1565315646
PRList: this.getStagingDeployCashPRList(issue),
1565415647
deployBlockers: this.getStagingDeployCashDeployBlockers(issue),
1565515648
internalQAPRList: this.getStagingDeployCashInternalQA(issue),
15656-
isTimingDashboardChecked: issue.body ? /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body) : false,
1565715649
isFirebaseChecked: issue.body ? /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body) : false,
1565815650
isGHStatusChecked: issue.body ? /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body) : false,
1565915651
version,
@@ -15723,7 +15715,7 @@ class GithubUtils {
1572315715
/**
1572415716
* Generate the issue body and assignees for a StagingDeployCash.
1572515717
*/
15726-
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, isGHStatusChecked = false) {
15718+
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isFirebaseChecked = false, isGHStatusChecked = false) {
1572715719
return this.fetchAllPullRequests(PRList.map((pr) => this.getPullRequestNumberFromURL(pr)))
1572815720
.then((data) => {
1572915721
const internalQAPRs = Array.isArray(data) ? data.filter((pr) => !(0, EmptyObject_1.isEmptyObject)(pr.labels.find((item) => item.name === CONST_1.default.LABELS.INTERNAL_QA))) : [];
@@ -15781,8 +15773,6 @@ class GithubUtils {
1578115773
}
1578215774
issueBody += '**Deployer verifications:**';
1578315775
// eslint-disable-next-line max-len
15784-
issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`;
15785-
// eslint-disable-next-line max-len
1578615776
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/ios:com.expensify.expensifylite/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
1578715777
// eslint-disable-next-line max-len
1578815778
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/android:org.me.mobiexpensifyg/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;

.github/actions/javascript/awaitStagingDeploys/index.js

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12268,12 +12268,7 @@ const CONST = {
1226812268
EVENTS: {
1226912269
ISSUE_COMMENT: 'issue_comment',
1227012270
},
12271-
OPENAI_ROLES: {
12272-
USER: 'user',
12273-
ASSISTANT: 'assistant',
12274-
},
1227512271
PROPOSAL_KEYWORD: 'Proposal',
12276-
OPENAI_THREAD_COMPLETED: 'completed',
1227712272
DATE_FORMAT_STRING: 'yyyy-MM-dd',
1227812273
PULL_REQUEST_REGEX: new RegExp(`${GITHUB_BASE_URL_REGEX.source}/.*/.*/pull/([0-9]+).*`),
1227912274
ISSUE_REGEX: new RegExp(`${GITHUB_BASE_URL_REGEX.source}/.*/.*/issues/([0-9]+).*`),
@@ -12284,8 +12279,6 @@ const CONST = {
1228412279
NO_ACTION: 'NO_ACTION',
1228512280
ACTION_EDIT: 'ACTION_EDIT',
1228612281
ACTION_REQUIRED: 'ACTION_REQUIRED',
12287-
OPENAI_POLL_RATE: 1500,
12288-
OPENAI_POLL_TIMEOUT: 90000,
1228912282
};
1229012283
exports["default"] = CONST;
1229112284

@@ -12446,7 +12439,6 @@ class GithubUtils {
1244612439
PRList: this.getStagingDeployCashPRList(issue),
1244712440
deployBlockers: this.getStagingDeployCashDeployBlockers(issue),
1244812441
internalQAPRList: this.getStagingDeployCashInternalQA(issue),
12449-
isTimingDashboardChecked: issue.body ? /-\s\[x]\sI checked the \[App Timing Dashboard]/.test(issue.body) : false,
1245012442
isFirebaseChecked: issue.body ? /-\s\[x]\sI checked \[Firebase Crashlytics]/.test(issue.body) : false,
1245112443
isGHStatusChecked: issue.body ? /-\s\[x]\sI checked \[GitHub Status]/.test(issue.body) : false,
1245212444
version,
@@ -12516,7 +12508,7 @@ class GithubUtils {
1251612508
/**
1251712509
* Generate the issue body and assignees for a StagingDeployCash.
1251812510
*/
12519-
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isTimingDashboardChecked = false, isFirebaseChecked = false, isGHStatusChecked = false) {
12511+
static generateStagingDeployCashBodyAndAssignees(tag, PRList, verifiedPRList = [], deployBlockers = [], resolvedDeployBlockers = [], resolvedInternalQAPRs = [], isFirebaseChecked = false, isGHStatusChecked = false) {
1252012512
return this.fetchAllPullRequests(PRList.map((pr) => this.getPullRequestNumberFromURL(pr)))
1252112513
.then((data) => {
1252212514
const internalQAPRs = Array.isArray(data) ? data.filter((pr) => !(0, EmptyObject_1.isEmptyObject)(pr.labels.find((item) => item.name === CONST_1.default.LABELS.INTERNAL_QA))) : [];
@@ -12574,8 +12566,6 @@ class GithubUtils {
1257412566
}
1257512567
issueBody += '**Deployer verifications:**';
1257612568
// eslint-disable-next-line max-len
12577-
issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`;
12578-
// eslint-disable-next-line max-len
1257912569
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/ios:com.expensify.expensifylite/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
1258012570
// eslint-disable-next-line max-len
1258112571
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/android:org.me.mobiexpensifyg/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;

.github/actions/javascript/bumpVersion/bumpVersion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as core from '@actions/core';
2-
import bumpVersion from '@scripts/bumpVersion';
32
import * as versionUpdater from '@github/libs/versionUpdater';
3+
import bumpVersion from '@scripts/bumpVersion';
44

55
async function run() {
66
try {

.github/actions/javascript/bumpVersion/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3404,8 +3404,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
34043404
};
34053405
Object.defineProperty(exports, "__esModule", ({ value: true }));
34063406
const core = __importStar(__nccwpck_require__(2186));
3407-
const bumpVersion_1 = __importDefault(__nccwpck_require__(3891));
34083407
const versionUpdater = __importStar(__nccwpck_require__(8982));
3408+
const bumpVersion_1 = __importDefault(__nccwpck_require__(3891));
34093409
async function run() {
34103410
try {
34113411
const semverLevel = core.getInput('SEMVER_LEVEL', { required: true });
@@ -3682,7 +3682,7 @@ async function updateIOS(version) {
36823682
[PLIST_KEYS.CF_BUNDLE_SHORT_VERSION]: shortVersion,
36833683
[PLIST_KEYS.CF_BUNDLE_VERSION]: cfVersion,
36843684
});
3685-
// Update plists
3685+
// Update plist
36863686
await Promise.all([PLIST_PATH, PLIST_PATH_NSE, PLIST_PATH_SHARE, MOBILE_EXPENSIFY_PLIST_PATH, MOBILE_EXPENSIFY_PLIST_PATH_NSE, MOBILE_EXPENSIFY_PLIST_PATH_SS].map(async (file) => {
36873687
console.log(`Updating ${file}`);
36883688
await exec(`${PLIST_BUDDY} -c "Set :${PLIST_KEYS.CF_BUNDLE_SHORT_VERSION} ${shortVersion}" ${file}`);

0 commit comments

Comments
 (0)