Skip to content

Commit a773b2d

Browse files
committed
rewrite: TypeScript implementation (from interscript-ts); removes legacy JavaScript
- Full .isc/.imp map execution with megaregexp parallel mode - TypeScript with strict type checking - Vitest test suite - npm trusted publishing (OIDC) - IMF v1 runtime for the secryst phonological layer The legacy JavaScript code is superseded entirely; this repo is the canonical JS/TS runtime and will be renamed interscript-ts.
1 parent 14db0af commit a773b2d

60 files changed

Lines changed: 111321 additions & 8902 deletions

Some content is hidden

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

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
build-and-test:
13+
name: Build + Test (Node ${{ matrix.node }})
14+
runs-on: ubuntu-latest
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
node: [20, 22]
19+
steps:
20+
- uses: actions/checkout@v7
21+
- uses: actions/setup-node@v7
22+
with:
23+
node-version: ${{ matrix.node }}
24+
cache: npm
25+
- run: npm ci
26+
- run: npm run build
27+
- run: npm test
28+
- run: npm run lint
29+
- run: npm run format:check
30+
31+
coverage:
32+
name: Coverage
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v7
36+
- uses: actions/setup-node@v7
37+
with:
38+
node-version: "22"
39+
cache: npm
40+
- run: npm ci
41+
- run: npm run build
42+
- run: npm test -- --coverage
43+
- uses: actions/upload-artifact@v4
44+
with:
45+
name: coverage-report
46+
path: coverage/

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
strategy:
1919
fail-fast: false
2020
matrix:
21-
language: [javascript]
21+
language: [javascript-typescript]
2222
steps:
2323
- uses: actions/checkout@v7
2424
- uses: github/codeql-action/init@v3

.github/workflows/release.yml

Lines changed: 14 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,49 +3,26 @@ name: release
33
on:
44
push:
55
tags:
6-
- 'v*'
6+
- "v*"
7+
8+
permissions:
9+
contents: read
10+
id-token: write # required for npm provenance
711

812
jobs:
9-
release:
13+
publish:
1014
runs-on: ubuntu-latest
15+
environment: release
1116
steps:
12-
- name: Checkout monorepo
13-
uses: actions/checkout@v7
14-
with:
15-
repository: interscript/interscript
16-
17-
- name: Bootstrap packages
18-
run: ruby bootstrap.rb
19-
20-
- uses: ruby/setup-ruby@v1
21-
with:
22-
ruby-version: '3.3'
23-
bundler-cache: true
24-
working-directory: ruby
25-
17+
- uses: actions/checkout@v7
2618
- uses: actions/setup-node@v7
2719
with:
28-
node-version: '22'
29-
registry-url: https://registry.npmjs.org
20+
node-version: "22"
3021
cache: npm
31-
cache-dependency-path: js/package-lock.json
32-
33-
- name: Install gems
34-
working-directory: ruby
35-
run: bundle install --jobs 4 --retry 3 --with jsexec --without secryst
36-
37-
- name: Test Ruby package
38-
working-directory: ruby
39-
run: bundle exec rake
40-
41-
- name: Test JS package
42-
working-directory: js
43-
run: npm ci && npm run prepareMaps && npm test
44-
45-
- name: Publish to npmjs.org
22+
registry-url: https://registry.npmjs.org
23+
- run: npm ci
24+
- run: npm run build
25+
- run: npm test
26+
- run: npm publish --provenance --access public
4627
env:
4728
NODE_AUTH_TOKEN: ${{ secrets.INTERSCRIPT_NPM_TOKEN }}
48-
working-directory: js
49-
run: |
50-
npm run prepareMaps
51-
npm publish --access public

.gitignore

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
1-
/src/maps
2-
/node_modules
1+
node_modules/
2+
dist/
3+
coverage/
4+
*.tsbuildinfo
35

4-
# Legacy Opal bundle — do not commit (TS port will remove this entirely)
5-
interscript.js
6+
# Editor
7+
.vscode/
8+
.idea/
9+
.DS_Store
10+
11+
# Logs
12+
*.log
13+
npm-debug.log*

.prettierrc.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 0 additions & 42 deletions
This file was deleted.

LICENSE

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
BSD 2-Clause License
2+
3+
Copyright (c) 2026 Ribose Inc. All rights reserved.
4+
5+
Redistribution and use in source and binary forms, with or without modification,
6+
are permitted provided that the following conditions are met:
7+
8+
1. Redistributions of source code must retain the above copyright notice,
9+
this list of conditions and the following disclaimer.
10+
11+
2. Redistributions in binary form must reproduce the above copyright notice,
12+
this list of conditions and the following disclaimer in the documentation
13+
and/or other materials provided with the distribution.
14+
15+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
25+
THE POSSIBILITY OF SUCH DAMAGE.

LICENSE.md

Lines changed: 0 additions & 31 deletions
This file was deleted.

README.adoc

Lines changed: 0 additions & 79 deletions
This file was deleted.

0 commit comments

Comments
 (0)