Skip to content

Commit fcd14d3

Browse files
MelvinBotQichenZhu
andcommitted
Merge remote-tracking branch 'origin/main' into claude-rulesDontChangeOption
Co-authored-by: Qichen Zhu <QichenZhu@users.noreply.github.com>
2 parents 3c9a7f0 + aabe6a3 commit fcd14d3

1,025 files changed

Lines changed: 26446 additions & 10409 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.

.github/actions/javascript/isDeployChecklistLocked/index.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16091,8 +16091,7 @@ function isObject(obj) {
1609116091
/***/ 2589:
1609216092
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
1609316093

16094-
"worklet"; // This function is used in react-native-live-markdown parser and it must be a worklet to run in UI thread (react-native-reanimated)
16095-
"use strict";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports, "__esModule", ({value:true}));var named_references_1=__nccwpck_require__(6068);var numeric_unicode_map_1=__nccwpck_require__(5439);var surrogate_pairs_1=__nccwpck_require__(1454);var allNamedReferences=__assign(__assign({},named_references_1.namedReferences),{all:named_references_1.namedReferences.html5});var encodeRegExps={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g};var defaultEncodeOptions={mode:"specialChars",level:"all",numeric:"decimal"};function encode(text,_a){var _b=_a===void 0?defaultEncodeOptions:_a,_c=_b.mode,mode=_c===void 0?"specialChars":_c,_d=_b.numeric,numeric=_d===void 0?"decimal":_d,_e=_b.level,level=_e===void 0?"all":_e;if(!text){return""}var encodeRegExp=encodeRegExps[mode];var references=allNamedReferences[level].characters;var isHex=numeric==="hexadecimal";return text.replace(encodeRegExp,(function(input){var result=references[input];if(!result){var code=input.length>1?surrogate_pairs_1.getCodePoint(input,0):input.charCodeAt(0);result=(isHex?"&#x"+code.toString(16):"&#"+code)+";"}return result}))}exports.encode=encode;var defaultDecodeOptions={scope:"body",level:"all"};var strict=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g;var attribute=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;var baseDecodeRegExps={xml:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.xml},html4:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html4},html5:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html5}};var decodeRegExps=__assign(__assign({},baseDecodeRegExps),{all:baseDecodeRegExps.html5});var fromCharCode=String.fromCharCode;var outOfBoundsChar=fromCharCode(65533);var defaultDecodeEntityOptions={level:"all"};function getDecodedEntity(entity,references,isAttribute,isStrict){var decodeResult=entity;var decodeEntityLastChar=entity[entity.length-1];if(isAttribute&&decodeEntityLastChar==="="){decodeResult=entity}else if(isStrict&&decodeEntityLastChar!==";"){decodeResult=entity}else{var decodeResultByReference=references[entity];if(decodeResultByReference){decodeResult=decodeResultByReference}else if(entity[0]==="&"&&entity[1]==="#"){var decodeSecondChar=entity[2];var decodeCode=decodeSecondChar=="x"||decodeSecondChar=="X"?parseInt(entity.substr(3),16):parseInt(entity.substr(2));decodeResult=decodeCode>=1114111?outOfBoundsChar:decodeCode>65535?surrogate_pairs_1.fromCodePoint(decodeCode):fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode]||decodeCode)}}return decodeResult}function decodeEntity(entity,_a){var _b=(_a===void 0?defaultDecodeEntityOptions:_a).level,level=_b===void 0?"all":_b;if(!entity){return""}return getDecodedEntity(entity,allNamedReferences[level].entities,false,false)}exports.decodeEntity=decodeEntity;function decode(text,_a){var _b=_a===void 0?defaultDecodeOptions:_a,_c=_b.level,level=_c===void 0?"all":_c,_d=_b.scope,scope=_d===void 0?level==="xml"?"strict":"body":_d;if(!text){return""}var decodeRegExp=decodeRegExps[level][scope];var references=allNamedReferences[level].entities;var isAttribute=scope==="attribute";var isStrict=scope==="strict";return text.replace(decodeRegExp,(function(entity){return getDecodedEntity(entity,references,isAttribute,isStrict)}))}exports.decode=decode;
16094+
"worklet"; /* This function is used in the react-native-live-markdown parser and must be a worklet to run on the UI thread (react-native-reanimated). Kept on the same line as "use strict" so re-running patch-package detects the patch as already applied instead of inserting another copy. */ "use strict";var __assign=this&&this.__assign||function(){__assign=Object.assign||function(t){for(var s,i=1,n=arguments.length;i<n;i++){s=arguments[i];for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))t[p]=s[p]}return t};return __assign.apply(this,arguments)};Object.defineProperty(exports, "__esModule", ({value:true}));var named_references_1=__nccwpck_require__(6068);var numeric_unicode_map_1=__nccwpck_require__(5439);var surrogate_pairs_1=__nccwpck_require__(1454);var allNamedReferences=__assign(__assign({},named_references_1.namedReferences),{all:named_references_1.namedReferences.html5});var encodeRegExps={specialChars:/[<>'"&]/g,nonAscii:/[<>'"&\u0080-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintable:/[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,nonAsciiPrintableOnly:/[\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,extensive:/[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF\uDC00-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g};var defaultEncodeOptions={mode:"specialChars",level:"all",numeric:"decimal"};function encode(text,_a){var _b=_a===void 0?defaultEncodeOptions:_a,_c=_b.mode,mode=_c===void 0?"specialChars":_c,_d=_b.numeric,numeric=_d===void 0?"decimal":_d,_e=_b.level,level=_e===void 0?"all":_e;if(!text){return""}var encodeRegExp=encodeRegExps[mode];var references=allNamedReferences[level].characters;var isHex=numeric==="hexadecimal";return text.replace(encodeRegExp,(function(input){var result=references[input];if(!result){var code=input.length>1?surrogate_pairs_1.getCodePoint(input,0):input.charCodeAt(0);result=(isHex?"&#x"+code.toString(16):"&#"+code)+";"}return result}))}exports.encode=encode;var defaultDecodeOptions={scope:"body",level:"all"};var strict=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g;var attribute=/&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g;var baseDecodeRegExps={xml:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.xml},html4:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html4},html5:{strict:strict,attribute:attribute,body:named_references_1.bodyRegExps.html5}};var decodeRegExps=__assign(__assign({},baseDecodeRegExps),{all:baseDecodeRegExps.html5});var fromCharCode=String.fromCharCode;var outOfBoundsChar=fromCharCode(65533);var defaultDecodeEntityOptions={level:"all"};function getDecodedEntity(entity,references,isAttribute,isStrict){var decodeResult=entity;var decodeEntityLastChar=entity[entity.length-1];if(isAttribute&&decodeEntityLastChar==="="){decodeResult=entity}else if(isStrict&&decodeEntityLastChar!==";"){decodeResult=entity}else{var decodeResultByReference=references[entity];if(decodeResultByReference){decodeResult=decodeResultByReference}else if(entity[0]==="&"&&entity[1]==="#"){var decodeSecondChar=entity[2];var decodeCode=decodeSecondChar=="x"||decodeSecondChar=="X"?parseInt(entity.substr(3),16):parseInt(entity.substr(2));decodeResult=decodeCode>=1114111?outOfBoundsChar:decodeCode>65535?surrogate_pairs_1.fromCodePoint(decodeCode):fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode]||decodeCode)}}return decodeResult}function decodeEntity(entity,_a){var _b=(_a===void 0?defaultDecodeEntityOptions:_a).level,level=_b===void 0?"all":_b;if(!entity){return""}return getDecodedEntity(entity,allNamedReferences[level].entities,false,false)}exports.decodeEntity=decodeEntity;function decode(text,_a){var _b=_a===void 0?defaultDecodeOptions:_a,_c=_b.level,level=_c===void 0?"all":_c,_d=_b.scope,scope=_d===void 0?level==="xml"?"strict":"body":_d;if(!text){return""}var decodeRegExp=decodeRegExps[level][scope];var references=allNamedReferences[level].entities;var isAttribute=scope==="attribute";var isStrict=scope==="strict";return text.replace(decodeRegExp,(function(entity){return getDecodedEntity(entity,references,isAttribute,isStrict)}))}exports.decode=decode;
1609616095
//# sourceMappingURL=./index.js.map
1609716096

1609816097
/***/ }),

.github/actions/javascript/markPullRequestsAsDeployed/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12707,7 +12707,7 @@ function wrappy (fn, cb) {
1270712707
/***/ }),
1270812708

1270912709
/***/ 2483:
12710-
/***/ (function(module, exports, __nccwpck_require__) {
12710+
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
1271112711

1271212712
"use strict";
1271312713

@@ -12748,7 +12748,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
1274812748
return (mod && mod.__esModule) ? mod : { "default": mod };
1274912749
};
1275012750
Object.defineProperty(exports, "__esModule", ({ value: true }));
12751-
/* eslint-disable @typescript-eslint/naming-convention, import/no-import-module-exports */
12751+
/* eslint-disable @typescript-eslint/naming-convention */
1275212752
const ActionUtils = __importStar(__nccwpck_require__(6981));
1275312753
const CONST_1 = __importDefault(__nccwpck_require__(9873));
1275412754
const GithubUtils_1 = __importDefault(__nccwpck_require__(9296));
@@ -12937,7 +12937,7 @@ async function run() {
1293712937
if (require.main === require.cache[eval('__filename')]) {
1293812938
run();
1293912939
}
12940-
module.exports = run;
12940+
exports["default"] = run;
1294112941

1294212942

1294312943
/***/ }),

.github/actions/javascript/markPullRequestsAsDeployed/markPullRequestsAsDeployed.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable @typescript-eslint/naming-convention, import/no-import-module-exports */
1+
/* eslint-disable @typescript-eslint/naming-convention */
22
import * as ActionUtils from '@github/libs/ActionUtils';
33
import CONST from '@github/libs/CONST';
44
import GithubUtils from '@github/libs/GithubUtils';
@@ -219,4 +219,4 @@ if (require.main === module) {
219219
run();
220220
}
221221

222-
module.exports = run;
222+
export default run;

.github/workflows/authorChecklist.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
if: |
1717
github.actor != 'OSBotify'
1818
&& github.actor != 'imgbot[bot]'
19-
&& github.actor != 'melvin-bot[bot]'
19+
&& github.actor != 'MelvinBot'
2020
steps:
2121
- name: Checkout
2222
uses: useblacksmith/checkout@1c9394c220d293645707b625ba9d79685f093a8f # v1

.github/workflows/bunTests.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,27 @@
11
name: Bun tests
22

33
on:
4+
workflow_call:
45
pull_request:
56
types: [opened, synchronize]
67
branches-ignore: [staging, production]
78
paths:
89
- 'server/**'
910
- 'src/**'
11+
- 'tests/tooling/**'
12+
- 'tests/utils/**'
13+
- '.github/actions/javascript/**'
14+
- '.github/libs/**'
15+
- '.github/scripts/**'
16+
- 'scripts/**'
1017
- 'bunfig.toml'
1118
- '.bun-version'
1219
- 'package.json'
1320
- 'package-lock.json'
1421
- '.github/workflows/bunTests.yml'
1522

1623
concurrency:
17-
group: ${{ github.ref }}-bun-tests
24+
group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-bun-tests
1825
cancel-in-progress: true
1926

2027
jobs:

.github/workflows/createNewVersion.yml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,17 @@ on:
3939
description: Private key for OSBotify GitHub App
4040
required: true
4141

42+
concurrency:
43+
group: createNewVersion
44+
cancel-in-progress: false
45+
queue: max
46+
4247
jobs:
4348
createNewVersion:
4449
runs-on: blacksmith-6vcpu-macos-latest
4550
outputs:
4651
NEW_VERSION: ${{ steps.bumpVersion.outputs.NEW_VERSION }}
4752
steps:
48-
# v3.2.4
49-
- name: Run turnstyle
50-
uses: softprops/turnstyle@4415445a6780f85c074f0e4334cf8e65bae3ad45
51-
with:
52-
poll-interval-seconds: 10
53-
env:
54-
GITHUB_TOKEN: ${{ github.token }}
55-
5653
- name: Check out
5754
# Upstream checkout on macOS - Blacksmith's git-mirror cache can't work there (see workflows/README.md)
5855
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -137,16 +134,16 @@ jobs:
137134
echo "::notice::Successfully pushed E/App changes on attempt $i"
138135
exit 0
139136
fi
140-
137+
141138
echo "::warning::Push attempt $i failed, retrying in ${RETRY_DELAY}s..."
142139
sleep $RETRY_DELAY
143140
RETRY_DELAY=$((RETRY_DELAY * 2))
144-
141+
145142
if ! git fetch origin main; then
146143
echo "::error::Unable to fetch main on attempt $i"
147144
continue
148145
fi
149-
146+
150147
if ! git rebase origin/main; then
151148
echo "::warning::Rebase failed on attempt $i, aborting and retrying..."
152149
git rebase --abort || true

.github/workflows/lint.yml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,21 @@ on:
66
types: [opened, synchronize]
77
branches-ignore: [staging, production]
88
paths:
9-
['**.js', '**.ts', '**.tsx', '**.json', '**.mjs', '**.cjs', 'config/.editorconfig', 'config/eslint/**', 'scripts/lint.sh', 'scripts/lintChanged.sh', '.watchmanconfig', '.imgbotconfig']
9+
[
10+
'**.js',
11+
'**.ts',
12+
'**.tsx',
13+
'**.json',
14+
'**.mjs',
15+
'**.cjs',
16+
'config/.editorconfig',
17+
'config/eslint/**',
18+
'scripts/lint.ts',
19+
'scripts/lintChanged.sh',
20+
'.watchmanconfig',
21+
'.imgbotconfig',
22+
'.github/workflows/lint.yml',
23+
]
1024

1125
concurrency:
1226
group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-lint
@@ -16,10 +30,9 @@ jobs:
1630
lint:
1731
name: ESLint check
1832
if: ${{ github.event.head_commit.author.name != 'OSBotify' || github.event_name == 'push' }}
19-
# A cold-cache run lints the whole repo with type-aware rules, which loads the full TypeScript
20-
# program in every worker (~12GB of heap each, regardless of how files are split between workers).
21-
# 2 workers with a 14GB heap cap need ~30GB of memory, so this requires the 32GB (8vcpu) runner.
22-
runs-on: blacksmith-8vcpu-ubuntu-2404
33+
# A cold-cache run loads the full TypeScript program into every worker (~12GB each), plus any extra
34+
# tsconfig project a file is mapped to. 2 workers need more than the 32GB an 8vcpu runner has.
35+
runs-on: blacksmith-16vcpu-ubuntu-2404
2336
steps:
2437
- name: Checkout
2538
uses: useblacksmith/checkout@1c9394c220d293645707b625ba9d79685f093a8f # v1

.github/workflows/preDeploy.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,21 @@ jobs:
2121
uses: ./.github/workflows/test.yml
2222
secrets: inherit
2323

24+
bunTests:
25+
uses: ./.github/workflows/bunTests.yml
26+
2427
confirmPassingBuild:
2528
runs-on: blacksmith-4vcpu-ubuntu-2404
26-
needs: [typecheck, lint, test]
29+
needs: [typecheck, lint, test, bunTests]
2730
if: ${{ always() }}
2831

2932
steps:
3033
- uses: useblacksmith/checkout@1c9394c220d293645707b625ba9d79685f093a8f # v1
3134

3235
- name: Exit failed workflow
33-
if: ${{ needs.typecheck.result == 'failure' || needs.lint.result == 'failure' || needs.test.result == 'failure' }}
36+
if: ${{ needs.typecheck.result == 'failure' || needs.lint.result == 'failure' || needs.test.result == 'failure' || needs.bunTests.result == 'failure' }}
3437
run: |
35-
echo "Checks failed, exiting ~ typecheck: ${{ needs.typecheck.result }}, lint: ${{ needs.lint.result }}, test: ${{ needs.test.result }}"
38+
echo "Checks failed, exiting ~ typecheck: ${{ needs.typecheck.result }}, lint: ${{ needs.lint.result }}, test: ${{ needs.test.result }}, bunTests: ${{ needs.bunTests.result }}"
3639
exit 1
3740
3841
chooseDeployActions:

.github/workflows/typecheck.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
pull_request:
66
types: [opened, synchronize]
77
branches-ignore: [staging, production]
8-
paths: ['**.js', '**.ts', '**.tsx', 'package.json', 'package-lock.json', 'tsconfig.json']
8+
paths: ['**.js', '**.ts', '**.tsx', 'package.json', 'package-lock.json', '**/tsconfig.json']
99

1010
concurrency:
1111
group: ${{ github.ref == 'refs/heads/main' && format('{0}-{1}', github.ref, github.sha) || github.ref }}-typecheck

.oxfmtrc.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
"ignoreCase": true,
1212
"customGroups": [
1313
{
14-
"groupName": "jest",
15-
"elementNamePattern": ["@jest/globals", "@testing-library/**"]
14+
"groupName": "test-runner",
15+
"elementNamePattern": ["@jest/globals", "@testing-library/**", "bun:test"]
1616
},
1717
{"groupName": "assets", "elementNamePattern": ["@assets/**"]},
1818
{"groupName": "components", "elementNamePattern": ["@components/**"]},
@@ -28,7 +28,7 @@
2828
{"groupName": "src", "elementNamePattern": ["@src/**"]}
2929
],
3030
"groups": [
31-
"jest",
31+
"test-runner",
3232
"assets",
3333
"components",
3434
"github",

0 commit comments

Comments
 (0)