Skip to content

Commit c819c6a

Browse files
committed
Merge remote-tracking branch 'origin/aiscript-next' into date-parse-err
2 parents b4a4171 + a26576a commit c819c6a

15 files changed

+492
-146
lines changed
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Publish nightly (dev)
2+
3+
on:
4+
schedule:
5+
- cron: '50 18 * * *'
6+
workflow_dispatch:
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-latest
11+
env:
12+
NPM_SECRET: ${{ secrets.NPM_SECRET }}
13+
BRANCH: master
14+
TAG: dev
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/[email protected]
19+
with:
20+
ref: ${{ env.BRANCH }}
21+
22+
- name: Setup Node.js
23+
uses: actions/[email protected]
24+
with:
25+
node-version: 20.x
26+
27+
- name: Cache dependencies
28+
uses: actions/cache@v3
29+
with:
30+
path: ~/.npm
31+
key: npm-${{ hashFiles('package-lock.json') }}
32+
restore-keys: npm-
33+
34+
- name: Install dependencies
35+
run: npm ci
36+
37+
- name: Build
38+
run: npm run build
39+
40+
- name: Set Version
41+
run: |
42+
TIME_STAMP=$( date +'%Y%m%d' )
43+
VERSION_SUFFIX=-$TAG.$TIME_STAMP
44+
vim package.json '+/"version"' '+s/:\s*".*\zs\ze"/'$VERSION_SUFFIX/ '+wq'
45+
46+
- name: Check Commits
47+
run: |
48+
echo 'LAST_COMMITS='$( git log --since '24 hours ago' | wc -c ) >> $GITHUB_ENV
49+
50+
- name: Publish
51+
uses: JS-DevTools/npm-publish@v3
52+
if: ${{ env.NPM_SECRET != '' && env.LAST_COMMITS != 0 }}
53+
with:
54+
token: ${{ env.NPM_SECRET }}
55+
tag: ${{ env.TAG }}
56+
access: public
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Publish nightly (next)
2+
3+
on:
4+
schedule:
5+
- cron: '50 18 * * *'
6+
workflow_dispatch:
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-latest
11+
env:
12+
NPM_SECRET: ${{ secrets.NPM_SECRET }}
13+
BRANCH: aiscript-next
14+
TAG: next
15+
16+
steps:
17+
- name: Checkout
18+
uses: actions/[email protected]
19+
with:
20+
ref: ${{ env.BRANCH }}
21+
22+
- name: Setup Node.js
23+
uses: actions/[email protected]
24+
with:
25+
node-version: 20.x
26+
27+
- name: Cache dependencies
28+
uses: actions/cache@v3
29+
with:
30+
path: ~/.npm
31+
key: npm-${{ hashFiles('package-lock.json') }}
32+
restore-keys: npm-
33+
34+
- name: Install dependencies
35+
run: npm ci
36+
37+
- name: Build
38+
run: npm run build
39+
40+
- name: Set Version
41+
run: |
42+
TIME_STAMP=$( date +'%Y%m%d' )
43+
VERSION_SUFFIX=-$TAG.$TIME_STAMP
44+
vim package.json '+/"version"' '+s/:\s*".*\zs\ze"/'$VERSION_SUFFIX/ '+wq'
45+
46+
- name: Check Commits
47+
run: |
48+
echo 'LAST_COMMITS='$( git log --since '24 hours ago' | wc -c ) >> $GITHUB_ENV
49+
50+
- name: Publish
51+
uses: JS-DevTools/npm-publish@v3
52+
if: ${{ env.NPM_SECRET != '' && env.LAST_COMMITS != 0 }}
53+
with:
54+
token: ${{ env.NPM_SECRET }}
55+
tag: ${{ env.TAG }}
56+
access: public

.npmignore

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
/src
33
/test
44
/coverage
5+
/.github
6+
/playground
7+
/temp
58
.gitignore
69
npm-debug.log
710
gulpfile.js

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
- `Error:create`関数でエラー型の値を生成できるように
1515
- `Obj:merge`で2つのオブジェクトの併合を得られるように
1616
- Fix: チェイン系(インデックスアクセス`[]`、プロパティアクセス`.`、関数呼び出し`()`)と括弧を組み合わせた時に不正な挙動をするバグを修正
17+
- 関数`Str#charcode_at` `Str#to_arr` `Str#to_char_arr` `Str#to_charcode_arr` `Str#to_utf8_byte_arr` `Str#to_unicode_codepoint_arr` `Str:from_unicode_codepoints` `Str:from_utf8_bytes`を追加
18+
- Fix: `Str#codepoint_at`がサロゲートペアに対応していないのを修正
19+
- 配列の範囲外および非整数のインデックスへの代入でエラーを出すように
1720
## Note
1821
バージョン0.16.0に記録漏れがありました。
1922
>- 関数`Str:from_codepoint` `Str#codepoint_at`を追加

docs/contribution/index.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
## PRマージ時の規則
2+
以降の規則は[member](https://github.com/orgs/aiscript-dev/people)が何をしてよいか明示するものであり、何かを禁止するものではありません。(禁止のための条項が必要になれば別に作ります)
3+
- バグ修正、ドキュメントの編集、dependabotのPRはmember1人の判断でマージしてよい。
4+
- ソースコード及びテストの変更は、
5+
- 非破壊的変更であればmember2人以上の同意&1日の経過を待ち、非memberを含む反対者が同意者の半数以下ならマージしてよい
6+
- 破壊的変更であればmember3人以上の同意&1日の経過を待ち、非memberを含む反対者が同意者の4分の1以下ならマージしてよい
7+
- ソースコード・テスト以外の変更はmember1人以上の同意&1日の経過を待ち、非memberを含む反対者が同意者の半数以下ならマージしてよい
8+
- リポジトリの所有者(@syuilo)の同意がある場合、以上の規則によらずにマージしてもよい
9+
- 大前提としてすべてのマージはCI Checkを通過し、全てのreviewにPR主から何らかの返答がある必要がある
10+
- 後でrevertになっても泣かない

docs/primitive-props.md

+32-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,30 @@ Core:range(0,2).push(4) //[0,1,2,4]
3232
### @(_v_: str).to_num(): num | null
3333
文字列が数字であれば、数値に変換します。
3434

35+
### @(_v_: str).to_arr(): `arr<str>`
36+
文字列を書記素クラスタ毎に区切り、配列にしたものを返します。
37+
文字列に孤立サロゲートが含まれない場合、孤立サロゲートを返すことはありません。
38+
39+
### @(_v_: str).to_unicode_arr(): `arr<str>`
40+
文字列を Unicode コードポイント毎に区切り、配列にしたものを返します。
41+
書記素クラスタは分割されます。
42+
文字列に孤立サロゲートが含まれない場合、孤立サロゲートを返すことはありません。
43+
44+
### @(_v_: str).to_unicode_codepoint_arr(): `arr<num>`
45+
文字列を Unicode コードポイント毎に区切り、それぞれ[コードポイント](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)値を取得し配列にしたものを返します。
46+
文字列に孤立サロゲートが含まれない場合、孤立サロゲートを返すことはありません。
47+
48+
### @(_v_: str).to_char_arr(): `arr<str>`
49+
文字列を UTF-16 コード単位毎に区切り、配列にしたものを返します。
50+
文字列にサロゲートペアが含まれる場合、上位と下位それぞれ孤立サロゲートを返します。
51+
52+
### @(_v_: str).to_charcode_arr(): `arr<num>`
53+
文字列を UTF-16 コード単位毎に区切り、それぞれ[UTF-16 コード単位を表す `0` から `65535` までの整数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt)を取得し配列にしたものを返します。
54+
文字列にサロゲートペアが含まれる場合、上位と下位それぞれ孤立サロゲートを返します。
55+
56+
### @(_v_: str).to_utf8_byte_arr(): `arr<num>`
57+
文字列を UTF-8 エンコードし、各バイト毎の `0` から `255` までの整数値を取得し配列にしたものを返します。
58+
3559
### @(_v_: str).pick(_i_: num): str | null
3660
文字列中の _i_ 番目の文字を取得します。
3761

@@ -60,11 +84,18 @@ _splitter_ が与えられなければ一文字づつ区切ります。
6084
### @(_v_: str).lower(): str
6185
文字列中の英字を小文字に変換して返します。
6286

87+
### @(_v_: str).charcode_at(_i_: num): num | null
88+
_i_ 番目のにある [UTF-16 コード単位を表す `0` から `65535` までの整数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt)を返します。
89+
インデックスは UTF-16 コード単位に基づきます。
90+
文字列にサロゲートペアが含まれる場合、位置によって上位または下位の孤立サロゲートを返すことがあります。
91+
_i_ 番目の文字が存在しない場合は null が返されます。
92+
6393
### @(_v_: str).codepoint_at(_i_: num): num | null
6494
_i_ 番目の文字の[コードポイント](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)を取得します。
95+
インデックスは UTF-16 コード単位に基づきます。
96+
文字列にサロゲートペアが含まれ、指定位置が下位のサロゲートである場合、下位の孤立サロゲートを返します。
6597
_i_ 番目の文字が存在しない場合は null が返されます。
6698

67-
6899
## 配列
69100
### #(_v_: arr).len
70101
型: `num`

docs/std.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,18 @@ a > b ならば -1、a == b ならば 0、a < b ならば 1 を返します。
117117
arr.sortの比較関数として使用できます。
118118

119119
### #Str:from_codepoint(codepoint: num): str
120-
unicodeのコードポイントから文字を生成します
120+
Unicodeのコードポイントから文字を生成します
121121

122122
_codepoint_ は 0 以上、10FFFF<sub>16</sub> 以下である必要があります。
123123

124+
### #Str:from_unicode_codepoints(_codePoints_: `arr<num>`): str
125+
Unicodeのコードポイント列を表す数値の配列から文字を生成します。
126+
_codePoints_の各要素は 0 以上、10FFFF<sub>16</sub> 以下である必要があります。
127+
128+
### #Str:from_utf8_bytes(_bytes_: `arr<num>`): str
129+
UTF-8のバイト列を表す数値の配列から文字を生成します。
130+
_bytes_の各要素は 0 以上、255 以下である必要があります。
131+
124132
## :: Obj
125133
### @Obj:keys(_v_: obj): arr
126134
### @Obj:vals(_v_: obj): arr

0 commit comments

Comments
 (0)