nebius/SWE-rebench-V2-PRs huggingface dataset:
Repository: iamkun/dayjs
Pull request #296 (2018-08-04 07:22:50)

Implements isBetween plugin
Sets testURL in jest config for resolve issue with failing tests
#287 


Patch:
diff --git a/package.json b/package.json
index b47add5..25aaee9 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
       "test"
     ],
     "testRegex": "test/(.*?/)?.*test.js$",
+    "testURL": "http://localhost",
     "coverageDirectory": "./coverage/",
     "collectCoverage": true,
     "collectCoverageFrom": [
diff --git a/src/plugin/isBetween/index.js b/src/plugin/isBetween/index.js
new file mode 100644
index 0000000..a639fe5
--- /dev/null
+++ b/src/plugin/isBetween/index.js
@@ -0,0 +1,10 @@
+export default (o, c, d) => {
+  const proto = c.prototype
+  proto.isBetween = function (a, b) {
+    const dA = d(a)
+    const dB = d(b)
+
+    return (this.isAfter(dA) && this.isBefore(dB)) || (this.isBefore(dA) && this.isAfter(dB))
+  }
+}
+


Test patch:
diff --git a/test/plugin/isBetween.test.js b/test/plugin/isBetween.test.js
new file mode 100644
index 0000000..1165bc8
--- /dev/null
+++ b/test/plugin/isBetween.test.js
@@ -0,0 +1,19 @@
+import MockDate from 'mockdate'
+import dayjs from '../../src'
+import isBetween from '../../src/plugin/isBetween'
+
+dayjs.extend(isBetween)
+
+beforeEach(() => {
+  MockDate.set(new Date())
+})
+
+afterEach(() => {
+  MockDate.reset()
+})
+
+it('is between', () => {
+  expect(dayjs('2018-01-01').isBetween('2017-01-01', '2019-01-01')).toBeTruthy()
+  expect(dayjs('2018-01-01').isBetween('2019-01-01', '2017-01-01')).toBeTruthy()
+  expect(dayjs('2018-01-01').isBetween('2016-01-01', '2017-01-01')).toBeFalsy()
+})
Repository: iamkun/dayjs
Pull request #2222 (2023-02-01 20:02:47)

fix: Mark `date` parameter as optional in timezone plugin
LIke `dayjs()`, `dayjs.tz()` falls back to the default time internally if no parameter is passed. But the current Typescript types do not allow for this existing, expected, and correct functionality.


Patch:
diff --git a/src/plugin/duration/index.js b/src/plugin/duration/index.js
index 10ebb4c..5d4cc6a 100644
--- a/src/plugin/duration/index.js
+++ b/src/plugin/duration/index.js
@@ -235,6 +235,10 @@ class Duration {
       .fromNow(!withSuffix)
   }
 
+  valueOf() {
+    return this.asMilliseconds()
+  }
+
   milliseconds() { return this.get('milliseconds') }
   asMilliseconds() { return this.as('milliseconds') }
   seconds() { return this.get('seconds') }
diff --git a/types/plugin/timezone.d.ts b/types/plugin/timezone.d.ts
index d504f69..049bb08 100644
--- a/types/plugin/timezone.d.ts
+++ b/types/plugin/timezone.d.ts
@@ -10,7 +10,7 @@ declare module 'dayjs' {
   }
 
   interface DayjsTimezone {
-    (date: ConfigType, timezone?: string): Dayjs
+    (date?: ConfigType, timezone?: string): Dayjs
     (date: ConfigType, format: string, timezone?: string): Dayjs
     guess(): string
     setDefault(timezone?: string): void


Test patch:
diff --git a/test/plugin/duration.test.js b/test/plugin/duration.test.js
index 2e80469..8a7e0e6 100644
--- a/test/plugin/duration.test.js
+++ b/test/plugin/duration.test.js
@@ -67,6 +67,9 @@ describe('Creating', () => {
       ms: -1
     }).toISOString()).toBe('-PT0.001S')
   })
+  it('convert to milliseconds', () => {
+    expect(+dayjs.duration(100)).toBe(100)
+  })
 })
 
 describe('Parse ISO string', () => {
Repository: iamkun/dayjs
Pull request #2395 (2023-08-02 11:42:13)

fix: Add Korean Day of Month with ordinal
* add '일' suffix to 'Do' format


Patch:
diff --git a/docs/ko/README-ko.md b/docs/ko/README-ko.md
index 4389cc3..cb1f77a 100644
--- a/docs/ko/README-ko.md
+++ b/docs/ko/README-ko.md
@@ -23,7 +23,7 @@
     </a>
 </p>
 
-> Day.js는 Moment.js와 호환되는 대부분의 API를 사용하며, 최신 브라우저에서 날짜와 시간에 대한 구문 분석, 유효성 검사, 조작, 출력하는 경량 JavaScript 라이브러리입니다. Moment.js를 사용하고 있다면, Day.js는 껌입니다.
+> Day.js는 대부분의 API가 Moment.js와 호환되며 최신 브라우저에서 날짜와 시간에 대한 구문 분석, 유효성 검사, 조작, 출력을 간편하게 처리하는 경량 JavaScript 라이브러리 입니다. Moment.js를 사용해본 경험이 있다면, Day.js도 쉽게 사용하실 수 있습니다.
 
 ```js
 dayjs()
@@ -46,7 +46,7 @@ dayjs()
 
 ### 문서
 
-더 많은 세부 사항과 API, 그리고 다른 문서를 [day.js.org](https://day.js.org/) 웹사이트에서 볼 수 있습니다.
+더 많은 세부 사항과 API 및 다른 문서는 [day.js.org](https://day.js.org/) 웹사이트에서 확인하실 수 있습니다.
 
 ### 설치
 
@@ -58,7 +58,7 @@ npm install dayjs --save
 
 ### API
 
-Day.js API를 사용해서 날짜와 시간에 대한 구문 분석, 유효성 검사, 조작, 출력을 쉽게 할 수 있습니다.
+Day.js API를 사용하여 날짜와 시간의 구문 분석, 검증, 조작, 출력을 간편하게 처리할 수 있습니다.
 
 ```javascript
 dayjs('2018-08-08') // parse
@@ -78,9 +78,9 @@ dayjs().isBefore(dayjs()) // query
 
 ### I18n
 
-Day.js는 국제화에 대해 많은 지원을 합니다.
+Day.js는 국제화에 대한 많은 지원을 제공하고 있습니다.
 
-그러나 그것을 사용하지 않는다면, 그 누구도 당신의 빌드에 포함되지 않습니다.
+하지만 이 기능을 사용하지 않는 경우, 빌드에 포함되지 않습니다.
 
 ```javascript
 import 'dayjs/locale/es' // load on demand
@@ -96,7 +96,7 @@ dayjs('2018-05-05')
 
 ### Plugin
 
-플러그인은 기능을 확장하거나 새로운 기능을 추가하기 위해 Day.js에 추가할 수 있는 독립적인 모듈입니다.
+플러그인은 Day.js의 기능을 확장하거나 새로운 기능을 도입하기 위한 독립적인 모듈입니다.
 
 ```javascript
 import advancedFormat from 'dayjs/plugin/advancedFormat' // load on demand
diff --git a/src/locale/ar.js b/src/locale/ar.js
index a7025c4..f418379 100644
--- a/src/locale/ar.js
+++ b/src/locale/ar.js
@@ -2,6 +2,7 @@
 import dayjs from 'dayjs'
 
 const months = 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_')
+
 const symbolMap = {
   1: '١',
   2: '٢',
@@ -36,6 +37,7 @@ const locale = {
   months,
   monthsShort: months,
   weekStart: 6,
+  meridiem: hour => (hour > 12 ? 'م' : 'ص'),
   relativeTime: {
     future: 'بعد %s',
     past: 'منذ %s',
diff --git a/src/locale/ko.js b/src/locale/ko.js
index 8a8e8ea..7053e83 100644
--- a/src/locale/ko.js
+++ b/src/locale/ko.js
@@ -8,7 +8,7 @@ const locale = {
   weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
   months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
   monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
-  ordinal: n => n,
+  ordinal: n => `${n}일`,
   formats: {
     LT: 'A h:mm',
     LTS: 'A h:mm:ss',


Test patch:
diff --git a/test/locale/ar.test.js b/test/locale/ar.test.js
index 3f9f60f..2b5a57d 100644
--- a/test/locale/ar.test.js
+++ b/test/locale/ar.test.js
@@ -50,3 +50,13 @@ it('RelativeTime: Time from X gets formatted', () => {
       .toBe(t[2])
   })
 })
+
+it('Format meridiem with locale function', () => {
+  for (let i = 0; i <= 23; i += 1) {
+    const hour = dayjs()
+      .startOf('day')
+      .add(i, 'hour')
+    const meridiem = i > 12 ? 'م' : 'ص'
+    expect(hour.locale('ar').format('A')).toBe(`${meridiem}`)
+  }
+})
Repository: iamkun/dayjs
Pull request #2414 (2023-08-15 08:54:24)

docs: corrected incorrect Korean translations
Hello, I work as a Node developer in Korea. 
Many developers in Korea also use dayjs. 
While looking at the Korean README for dayjs, I noticed some translations seemed off. 
I've corrected the parts that were strangely translated.

keepinblazing: @iamkun If it's not too much trouble and when you have the time, could you please review this? I believe this has been accurately translated into Korean, but if you find anything amiss, please do point it out.

Patch:
diff --git a/docs/ko/README-ko.md b/docs/ko/README-ko.md
index 4389cc3..cb1f77a 100644
--- a/docs/ko/README-ko.md
+++ b/docs/ko/README-ko.md
@@ -23,7 +23,7 @@
     </a>
 </p>
 
-> Day.js는 Moment.js와 호환되는 대부분의 API를 사용하며, 최신 브라우저에서 날짜와 시간에 대한 구문 분석, 유효성 검사, 조작, 출력하는 경량 JavaScript 라이브러리입니다. Moment.js를 사용하고 있다면, Day.js는 껌입니다.
+> Day.js는 대부분의 API가 Moment.js와 호환되며 최신 브라우저에서 날짜와 시간에 대한 구문 분석, 유효성 검사, 조작, 출력을 간편하게 처리하는 경량 JavaScript 라이브러리 입니다. Moment.js를 사용해본 경험이 있다면, Day.js도 쉽게 사용하실 수 있습니다.
 
 ```js
 dayjs()
@@ -46,7 +46,7 @@ dayjs()
 
 ### 문서
 
-더 많은 세부 사항과 API, 그리고 다른 문서를 [day.js.org](https://day.js.org/) 웹사이트에서 볼 수 있습니다.
+더 많은 세부 사항과 API 및 다른 문서는 [day.js.org](https://day.js.org/) 웹사이트에서 확인하실 수 있습니다.
 
 ### 설치
 
@@ -58,7 +58,7 @@ npm install dayjs --save
 
 ### API
 
-Day.js API를 사용해서 날짜와 시간에 대한 구문 분석, 유효성 검사, 조작, 출력을 쉽게 할 수 있습니다.
+Day.js API를 사용하여 날짜와 시간의 구문 분석, 검증, 조작, 출력을 간편하게 처리할 수 있습니다.
 
 ```javascript
 dayjs('2018-08-08') // parse
@@ -78,9 +78,9 @@ dayjs().isBefore(dayjs()) // query
 
 ### I18n
 
-Day.js는 국제화에 대해 많은 지원을 합니다.
+Day.js는 국제화에 대한 많은 지원을 제공하고 있습니다.
 
-그러나 그것을 사용하지 않는다면, 그 누구도 당신의 빌드에 포함되지 않습니다.
+하지만 이 기능을 사용하지 않는 경우, 빌드에 포함되지 않습니다.
 
 ```javascript
 import 'dayjs/locale/es' // load on demand
@@ -96,7 +96,7 @@ dayjs('2018-05-05')
 
 ### Plugin
 
-플러그인은 기능을 확장하거나 새로운 기능을 추가하기 위해 Day.js에 추가할 수 있는 독립적인 모듈입니다.
+플러그인은 Day.js의 기능을 확장하거나 새로운 기능을 도입하기 위한 독립적인 모듈입니다.
 
 ```javascript
 import advancedFormat from 'dayjs/plugin/advancedFormat' // load on demand
diff --git a/src/locale/ar.js b/src/locale/ar.js
index a7025c4..f418379 100644
--- a/src/locale/ar.js
+++ b/src/locale/ar.js
@@ -2,6 +2,7 @@
 import dayjs from 'dayjs'
 
 const months = 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_')
+
 const symbolMap = {
   1: '١',
   2: '٢',
@@ -36,6 +37,7 @@ const locale = {
   months,
   monthsShort: months,
   weekStart: 6,
+  meridiem: hour => (hour > 12 ? 'م' : 'ص'),
   relativeTime: {
     future: 'بعد %s',
     past: 'منذ %s',


Test patch:
diff --git a/test/locale/ar.test.js b/test/locale/ar.test.js
index 3f9f60f..2b5a57d 100644
--- a/test/locale/ar.test.js
+++ b/test/locale/ar.test.js
@@ -50,3 +50,13 @@ it('RelativeTime: Time from X gets formatted', () => {
       .toBe(t[2])
   })
 })
+
+it('Format meridiem with locale function', () => {
+  for (let i = 0; i <= 23; i += 1) {
+    const hour = dayjs()
+      .startOf('day')
+      .add(i, 'hour')
+    const meridiem = i > 12 ? 'م' : 'ص'
+    expect(hour.locale('ar').format('A')).toBe(`${meridiem}`)
+  }
+})
Repository: iamkun/dayjs
Pull request #2418 (2023-08-18 01:34:00)

fix(locale): add meridiem in `ar` locale
Fixes https://github.com/iamkun/dayjs/issues/2416


Patch:
diff --git a/src/locale/ar.js b/src/locale/ar.js
index a7025c4..f418379 100644
--- a/src/locale/ar.js
+++ b/src/locale/ar.js
@@ -2,6 +2,7 @@
 import dayjs from 'dayjs'
 
 const months = 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_')
+
 const symbolMap = {
   1: '١',
   2: '٢',
@@ -36,6 +37,7 @@ const locale = {
   months,
   monthsShort: months,
   weekStart: 6,
+  meridiem: hour => (hour > 12 ? 'م' : 'ص'),
   relativeTime: {
     future: 'بعد %s',
     past: 'منذ %s',


Test patch:
diff --git a/test/locale/ar.test.js b/test/locale/ar.test.js
index 3f9f60f..2b5a57d 100644
--- a/test/locale/ar.test.js
+++ b/test/locale/ar.test.js
@@ -50,3 +50,13 @@ it('RelativeTime: Time from X gets formatted', () => {
       .toBe(t[2])
   })
 })
+
+it('Format meridiem with locale function', () => {
+  for (let i = 0; i <= 23; i += 1) {
+    const hour = dayjs()
+      .startOf('day')
+      .add(i, 'hour')
+    const meridiem = i > 12 ? 'م' : 'ص'
+    expect(hour.locale('ar').format('A')).toBe(`${meridiem}`)
+  }
+})