From 475a4bbdfdff9694a79e34abda708d28d4adfe29 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 7 Nov 2023 09:20:16 +0000 Subject: [PATCH 001/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f8d53c1..58ea415 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.1.0" + "@stdlib/types": "^0.1.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -87,4 +88,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 8b4a7697a6fe1ff1d65dcf21584e51dc111c8a55 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 7 Nov 2023 09:32:05 +0000 Subject: [PATCH 002/105] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 41 +- benchmark/benchmark.js | 123 - branches.md | 53 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 93 - package.json | 61 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 41 files changed, 6203 insertions(+), 3955 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 76ad161..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -147,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -207,7 +200,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/stdlib +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/stdlib/tree/esm
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 522d849..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 617cf51..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 95e9b8b..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var b=function(t,r){return function(){return r||t((r={exports:{}}).exports,r),r.exports}};var q=b(function(l,m){ -function g(t,r,i,y){var u,f,n,s,c,o,p,S,h,x,a,v,d,e;for(h=r[0],S=r[1],p=r[2],s=i[0],n=i[1],f=i[2],u=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 4, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 4, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cA+CA,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EACdS,EAAKT,EAAO,CAAE,EAEdM,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EACjBG,EAAMH,EAAS,CAAE,EAEjBE,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMjB,EAAGS,CAAI,CAAE,EAClBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAN,EAAO,QAAUC,ICrDjB,IAAImB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "strided2array3d", "x", "shape", "strides", "offset", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index b71c39f..26b951f 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..6f1b34e --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 4, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index a60be72..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 4, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 39a128f..0000000 --- a/lib/main.js +++ /dev/null @@ -1,93 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 4, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( x[ ix0 ] ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 58ea415..cffa338 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.0.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,38 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.1.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/bench": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -88,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4a7efbe --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From e94921df67f20e1c8ac03425243501fbf237c435 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 7 Nov 2023 09:55:50 +0000 Subject: [PATCH 003/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f8d53c1..58ea415 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.1.0" + "@stdlib/types": "^0.1.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -87,4 +88,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 54327ec306d50fb6b1e7db4054ecbb8d0268fa24 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 7 Nov 2023 09:57:59 +0000 Subject: [PATCH 004/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index 26b951f..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 4, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 6f1b34e..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 4, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4a7efbe..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From d324a8ad17a111205579580393bc74da4e6f5865 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 7 Nov 2023 09:58:51 +0000 Subject: [PATCH 005/105] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 41 +- benchmark/benchmark.js | 123 - branches.md | 53 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 93 - package.json | 61 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 41 files changed, 6203 insertions(+), 3955 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 76ad161..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -147,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -207,7 +200,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/stdlib +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/stdlib/tree/esm
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 522d849..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 617cf51..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 95e9b8b..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var b=function(t,r){return function(){return r||t((r={exports:{}}).exports,r),r.exports}};var q=b(function(l,m){ -function g(t,r,i,y){var u,f,n,s,c,o,p,S,h,x,a,v,d,e;for(h=r[0],S=r[1],p=r[2],s=i[0],n=i[1],f=i[2],u=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cA+CA,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EACdS,EAAKT,EAAO,CAAE,EAEdM,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EACjBG,EAAMH,EAAS,CAAE,EAEjBE,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMjB,EAAGS,CAAI,CAAE,EAClBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAN,EAAO,QAAUC,ICrDjB,IAAImB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "strided2array3d", "x", "shape", "strides", "offset", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..6f1b34e --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 34783c3..0000000 --- a/lib/main.js +++ /dev/null @@ -1,93 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( x[ ix0 ] ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 58ea415..cffa338 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.0.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,38 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.1.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/bench": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -88,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..33c3c03 --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 714fdf6dce2a90733fb2b9330c889dcfb27ca42c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 9 Nov 2023 10:04:28 +0000 Subject: [PATCH 006/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 116038f..759aa18 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -87,4 +88,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From be5833ecaec7534aadc0e789bd4c83088fc262be Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 9 Nov 2023 10:33:30 +0000 Subject: [PATCH 007/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 6f1b34e..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 33c3c03..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From f79ad7878a31b029ca01b2caa180fc431d28c89c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 9 Nov 2023 10:34:12 +0000 Subject: [PATCH 008/105] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 41 +- benchmark/benchmark.js | 123 - branches.md | 53 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 93 - package.json | 61 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 41 files changed, 6203 insertions(+), 3955 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 76ad161..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -147,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -207,7 +200,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 522d849..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 617cf51..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 95e9b8b..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var b=function(t,r){return function(){return r||t((r={exports:{}}).exports,r),r.exports}};var q=b(function(l,m){ -function g(t,r,i,y){var u,f,n,s,c,o,p,S,h,x,a,v,d,e;for(h=r[0],S=r[1],p=r[2],s=i[0],n=i[1],f=i[2],u=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cA+CA,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EACdS,EAAKT,EAAO,CAAE,EAEdM,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EACjBG,EAAMH,EAAS,CAAE,EAEjBE,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMjB,EAAGS,CAAI,CAAE,EAClBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAN,EAAO,QAAUC,ICrDjB,IAAImB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "strided2array3d", "x", "shape", "strides", "offset", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..6f1b34e --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 34783c3..0000000 --- a/lib/main.js +++ /dev/null @@ -1,93 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( x[ ix0 ] ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 759aa18..cffa338 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.0.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,38 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/bench": "^0.2.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -88,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..57cb877 --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 76894ad4d9a441bd9f6e833372d5b8d969d453e1 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 17 Nov 2023 14:08:31 +0000 Subject: [PATCH 009/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f4be328..b5bf409 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,8 @@ "url": "https://github.com/stdlib-js/stdlib/issues" }, "dependencies": { - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -87,4 +88,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From ec3ba2fb8e872f2cef860dd5b87bf2507ddd02d6 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 17 Nov 2023 14:10:29 +0000 Subject: [PATCH 010/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 6f1b34e..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 57cb877..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 1b75ed4a07bcaca0afa80526c791f56bc5a73c85 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 17 Nov 2023 14:11:03 +0000 Subject: [PATCH 011/105] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 41 +- benchmark/benchmark.js | 123 - branches.md | 53 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 93 - package.json | 61 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 41 files changed, 6203 insertions(+), 3955 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 76ad161..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -147,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -207,7 +200,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 522d849..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 617cf51..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 95e9b8b..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var b=function(t,r){return function(){return r||t((r={exports:{}}).exports,r),r.exports}};var q=b(function(l,m){ -function g(t,r,i,y){var u,f,n,s,c,o,p,S,h,x,a,v,d,e;for(h=r[0],S=r[1],p=r[2],s=i[0],n=i[1],f=i[2],u=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cA+CA,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EACdS,EAAKT,EAAO,CAAE,EAEdM,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EACjBG,EAAMH,EAAS,CAAE,EAEjBE,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMjB,EAAGS,CAAI,CAAE,EAClBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAN,EAAO,QAAUC,ICrDjB,IAAImB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "strided2array3d", "x", "shape", "strides", "offset", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..6f1b34e --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 34783c3..0000000 --- a/lib/main.js +++ /dev/null @@ -1,93 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( x[ ix0 ] ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index b5bf409..9d67e79 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.1.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,38 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/bench": "^0.2.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -88,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..601cefa --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 27f834343fb0ad66ecc1ceb7f4f2349cda6cee41 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 17 Nov 2023 14:11:30 +0000 Subject: [PATCH 012/105] Update README.md for ESM bundle v0.1.0 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7c0b172..c36c967 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ limitations under the License. ## Usage ```javascript -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.1.0-esm/index.mjs'; ``` #### strided2array3d( x, shape, strides, offset ) @@ -101,7 +101,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.1.0-esm/index.mjs'; var shape = [ 3, 3, 3 ]; From cbfaf9ef5b3753a4426081a8ceea50ebf36644b8 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 17 Nov 2023 14:11:31 +0000 Subject: [PATCH 013/105] Auto-generated commit --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c36c967..74e6382 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,11 @@ limitations under the License. ## Usage +```javascript +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +``` +The previous example will load the latest bundled code from the esm branch. Alternatively, you may load a specific version by loading the file from one of the [tagged bundles](https://github.com/stdlib-js/array-base-strided2array3d/tags). For example, + ```javascript import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.1.0-esm/index.mjs'; ``` @@ -101,7 +106,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.1.0-esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; var shape = [ 3, 3, 3 ]; From cac2bd79f23d4ecae0e3e8132c766b52c70e2996 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 23 Nov 2023 09:39:00 +0000 Subject: [PATCH 014/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9b0f97a..a0df231 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "github:stdlib-js/array-base-resolve-getter#main", - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 9dbd7b011566d5d51bd3f2cb12f5701f344469bd Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 23 Nov 2023 09:45:28 +0000 Subject: [PATCH 015/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 6f1b34e..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -function r(r,u,f,o){var p,s,t,a,e,h,n,c,d,i,l,v,x,b;for(d=u[0],c=u[1],n=u[2],a=f[0],t=f[1],s=f[2],p=[],v=0;v>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( x[ ix0 ] );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","push"],"mappings":";;AA+CA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAWJ,IATAL,EAAKX,EAAO,GACZU,EAAKV,EAAO,GACZS,EAAKT,EAAO,GAEZM,EAAML,EAAS,GACfI,EAAMJ,EAAS,GACfG,EAAMH,EAAS,GAEfE,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAML,EAAWI,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGC,KAAMlB,EAAGS,IACZA,GAAOJ,EAERW,EAAGE,KAAMD,EACT,CACDb,EAAIc,KAAMF,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 601cefa..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 33d0acc17861547e27689aeb3f4252ddfe904987 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 23 Nov 2023 09:46:09 +0000 Subject: [PATCH 016/105] Auto-generated commit --- .editorconfig | 186 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 41 +- benchmark/benchmark.js | 123 - branches.md | 53 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 41 files changed, 6203 insertions(+), 3964 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 13e9c39..0000000 --- a/.editorconfig +++ /dev/null @@ -1,186 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tslint.json` files: -[tslint.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 76ad161..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -147,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -207,7 +200,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 522d849..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 617cf51..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..1714455 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,j,v,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;6FAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index a0df231..9d67e79 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.1.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "github:stdlib-js/array-base-resolve-getter#main", - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/bench": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..0351abd --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From b1ae0fe2725e9383491f29cd225a200993481045 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Dec 2023 14:00:47 +0000 Subject: [PATCH 017/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d53c59b..95876d4 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.1.0", - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 20a99cf86c22f2661043a10a8053d5fa1be6906c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 2 Dec 2023 12:12:45 +0000 Subject: [PATCH 018/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 1714455..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,j,v,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;6FAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 0351abd..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 1680a5862f4421997a8335160fc44216006b5d33 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 2 Dec 2023 12:13:24 +0000 Subject: [PATCH 019/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 227 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 41 +- benchmark/benchmark.js | 123 - branches.md | 53 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 42 files changed, 6203 insertions(+), 3960 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index ae2d846..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2023-12-01T05:54:41.980Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index ab56cca..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c1c45e7..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 76ad161..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA corresponding to v3.0.3: - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 265afda..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA corresponding to v4.1.0 - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 16 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -147,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -207,7 +200,7 @@ Copyright © 2016-2023. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 522d849..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 617cf51..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..5df9694 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 95876d4..9d67e79 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.1.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.1.0", - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/bench": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..cbb0c03 --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 766f47876f8ed1ccfd9e2a8b589a9170114acc47 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Jan 2024 08:20:39 +0000 Subject: [PATCH 020/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9251b2d..c8f2362 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.1.0", - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 9c2e404d952dfa32a6b25613c7ea9b15b36fff02 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Jan 2024 15:00:10 +0000 Subject: [PATCH 021/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 5df9694..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2023 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index cbb0c03..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 99bfce5f32a552aed8685ccdd8de418c4733b63d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Jan 2024 15:00:30 +0000 Subject: [PATCH 022/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 41 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 53 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 6203 insertions(+), 3966 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 89573d6..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-01-01T05:23:22.943Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 30656c4..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c92f5c4..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 2ffa0eb..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index e1e3539..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -147,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -207,7 +200,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 617cf51..0000000 --- a/branches.md +++ /dev/null @@ -1,53 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers. -- **deno**: [Deno][deno-url] branch for use in Deno. -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments. - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..349e715 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index c8f2362..9d67e79 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.1.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.1.0", - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..ed1f5ac --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From bbe5444b6b35ee70b66dd7fa37dd6796c3eb0dd8 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Feb 2024 08:55:19 +0000 Subject: [PATCH 023/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9251b2d..c8f2362 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.1.0", - "@stdlib/types": "^0.2.0" + "@stdlib/types": "^0.2.0", + "@stdlib/error-tools-fmtprodmsg": "^0.1.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 9ed19b4e5cc804e1227250effa6873aa32bef097 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Feb 2024 14:18:55 +0000 Subject: [PATCH 024/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 349e715..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index ed1f5ac..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From ca5b81d013047f78566718d5ea3c6b7acb6c499c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Feb 2024 14:19:11 +0000 Subject: [PATCH 025/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 128 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 6203 insertions(+), 3971 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index dfbb820..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-02-01T06:15:11.826Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index 30656c4..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index 3acd3a9..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA corresponding to v0.11.0 - uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index c92f5c4..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 2ffa0eb..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index e1e3539..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA corresponding to v3.8.1 - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..349e715 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index c8f2362..9d67e79 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.1.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.1.0", - "@stdlib/types": "^0.2.0", - "@stdlib/error-tools-fmtprodmsg": "^0.1.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.1.1", - "@stdlib/math-base-special-floor": "^0.1.1", - "@stdlib/math-base-special-pow": "^0.1.0", - "@stdlib/ndarray-base-numel": "^0.1.1", - "@stdlib/ndarray-base-shape2strides": "^0.1.1", - "@stdlib/ndarray-orders": "^0.1.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2aa8c11 --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From aebdc620f047ce79b4af417120e9ad2a1736e88b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 15 Feb 2024 01:00:24 +0000 Subject: [PATCH 026/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 78a2424..3f3ac9d 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.0", - "@stdlib/types": "^0.3.1" + "@stdlib/types": "^0.3.1", + "@stdlib/error-tools-fmtprodmsg": "^0.2.0" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.1.0", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From e2c839d32efdd8951744bd22875efc6d87f1907c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 15 Feb 2024 04:30:10 +0000 Subject: [PATCH 027/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 349e715..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2aa8c11..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 6caf5095c26ac7839159a2c23cf889029a9e107d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 15 Feb 2024 04:30:30 +0000 Subject: [PATCH 028/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 --- .github/workflows/publish.yml | 255 - .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 6177 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 42 files changed, 6203 insertions(+), 3974 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3d31efb..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA corresponding to v3.1.3 - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 9106b5d..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..349e715 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 3f3ac9d..8bb9730 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.0", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.0", - "@stdlib/types": "^0.3.1", - "@stdlib/error-tools-fmtprodmsg": "^0.2.0" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.1.0", - "@stdlib/math-base-assert-is-nan": "^0.2.0", - "@stdlib/math-base-special-floor": "^0.2.0", - "@stdlib/math-base-special-pow": "^0.2.0", - "@stdlib/ndarray-base-numel": "^0.2.0", - "@stdlib/ndarray-base-shape2strides": "^0.2.0", - "@stdlib/ndarray-orders": "^0.2.0", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..b65c461 --- /dev/null +++ b/stats.html @@ -0,0 +1,6177 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 0f1defbfca49886317d098cadaef7b5105d54e6c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 15 Feb 2024 06:26:57 +0000 Subject: [PATCH 029/105] Update README.md for ESM bundle v0.2.0 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 65898fe..054275d 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ limitations under the License. ## Usage ```javascript -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.0-esm/index.mjs'; ``` #### strided2array3d( x, shape, strides, offset ) @@ -101,7 +101,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.0-esm/index.mjs'; var shape = [ 3, 3, 3 ]; From 71a3b0ceaa17782c4dffd0af092762e922f872c9 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 15 Feb 2024 06:26:58 +0000 Subject: [PATCH 030/105] Auto-generated commit --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 054275d..d20f1ae 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,11 @@ limitations under the License. ## Usage +```javascript +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +``` +The previous example will load the latest bundled code from the esm branch. Alternatively, you may load a specific version by loading the file from one of the [tagged bundles](https://github.com/stdlib-js/array-base-strided2array3d/tags). For example, + ```javascript import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.0-esm/index.mjs'; ``` @@ -101,7 +106,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.0-esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; var shape = [ 3, 3, 3 ]; From 39b531a8acdd8442793d14ea390c1e344c799d23 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 25 Feb 2024 19:44:23 +0000 Subject: [PATCH 031/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c4cccae..48502be 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.0", - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.0", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From f352e03381f511a83c3df3d63b7d283dab52ea84 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 25 Feb 2024 20:52:01 +0000 Subject: [PATCH 032/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 6177 ------------------------------------------------- 4 files changed, 6238 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 349e715..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.1.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index b65c461..0000000 --- a/stats.html +++ /dev/null @@ -1,6177 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 548ce40778c80c13b3294feb352abbc7ab56be78 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 25 Feb 2024 20:52:18 +0000 Subject: [PATCH 033/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 228 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 42 files changed, 4868 insertions(+), 3968 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 9106b5d..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..c46129d --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 48502be..b1d485d 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.1", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.0", - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.0", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/math-base-special-floor": "^0.2.1", - "@stdlib/math-base-special-pow": "^0.2.1", - "@stdlib/ndarray-base-numel": "^0.2.1", - "@stdlib/ndarray-base-shape2strides": "^0.2.1", - "@stdlib/ndarray-orders": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..24c4499 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From f1e3ad9c369a4e97d5de648f457b0a9f689596ef Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 25 Feb 2024 21:33:17 +0000 Subject: [PATCH 034/105] Update README.md for ESM bundle v0.2.1 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8dd30bc..610833a 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ limitations under the License. ## Usage ```javascript -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.1-esm/index.mjs'; ``` #### strided2array3d( x, shape, strides, offset ) @@ -101,7 +101,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.1-esm/index.mjs'; var shape = [ 3, 3, 3 ]; From 1c016f690d31448804353eb905f5b9b54dded1ad Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 25 Feb 2024 21:33:18 +0000 Subject: [PATCH 035/105] Auto-generated commit --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 610833a..d415456 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,11 @@ limitations under the License. ## Usage +```javascript +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +``` +The previous example will load the latest bundled code from the esm branch. Alternatively, you may load a specific version by loading the file from one of the [tagged bundles](https://github.com/stdlib-js/array-base-strided2array3d/tags). For example, + ```javascript import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.1-esm/index.mjs'; ``` @@ -101,7 +106,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.1-esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; var shape = [ 3, 3, 3 ]; From f09bb0733af4d3b7f6f72b19e1508bbcc1a015c7 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Mar 2024 08:12:17 +0000 Subject: [PATCH 036/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 45d41a0..28f2fbc 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 47d4be5575321291fc03a18b351d2a41b7c413d9 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Mar 2024 13:55:10 +0000 Subject: [PATCH 037/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index c46129d..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.0-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 24c4499..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From e389b10f73df98dfd2442d7b33dd9477a47d2c3d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 1 Mar 2024 13:55:28 +0000 Subject: [PATCH 038/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 229 - .npmrc | 28 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 4868 insertions(+), 3970 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index d4f7ea4..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-03-01T05:55:32.472Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 9106b5d..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA corresponding to v2.0.0 - uses: act10ns/slack@ed1309ab9862e57e9e583e51c7889486b9a00b0f - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..780fba0 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 28f2fbc..b1d485d 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.1", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/math-base-special-floor": "^0.2.1", - "@stdlib/math-base-special-pow": "^0.2.1", - "@stdlib/ndarray-base-numel": "^0.2.1", - "@stdlib/ndarray-base-shape2strides": "^0.2.1", - "@stdlib/ndarray-orders": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..ac8b74f --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 5dc3ba48b1a17d02326857d6c4d388528a4ee808 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Apr 2024 07:29:55 +0000 Subject: [PATCH 039/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index db84436..2aa6603 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 90ee00d41ce19029083ad358478276fada728ae8 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Apr 2024 12:54:47 +0000 Subject: [PATCH 040/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 780fba0..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index ac8b74f..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From d222bfcf33caad5a559012538cf3910493a791bc Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 1 Apr 2024 12:55:06 +0000 Subject: [PATCH 041/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 132 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 4868 insertions(+), 3973 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index ef04faf..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-04-01T05:12:25.020Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index ec90164..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..780fba0 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 2aa6603..b1d485d 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.1", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/math-base-special-floor": "^0.2.2", - "@stdlib/math-base-special-pow": "^0.2.1", - "@stdlib/ndarray-base-numel": "^0.2.1", - "@stdlib/ndarray-base-shape2strides": "^0.2.1", - "@stdlib/ndarray-orders": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..ac8b74f --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 515ab936fc0728866830f06142c9485426c34eca Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 12 Apr 2024 03:44:53 +0000 Subject: [PATCH 042/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index db84436..2aa6603 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.1" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 5989eae4cf8f159c986e0ba4456382687031fec4 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 12 Apr 2024 09:05:25 +0000 Subject: [PATCH 043/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 780fba0..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index ac8b74f..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 0a139fcd38e4524ea8c5e05f6257fdafe24056a6 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 12 Apr 2024 09:05:38 +0000 Subject: [PATCH 044/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 49 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 797 ---- .github/workflows/publish.yml | 249 -- .github/workflows/test.yml | 100 - .github/workflows/test_bundles.yml | 189 - .github/workflows/test_coverage.yml | 134 - .github/workflows/test_install.yml | 86 - .gitignore | 188 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 5 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 42 files changed, 4868 insertions(+), 3974 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 10a16e6..0000000 --- a/.gitattributes +++ /dev/null @@ -1,49 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/deps/** linguist-vendored=false -/lib/node_modules/** linguist-vendored=false linguist-generated=false -test/fixtures/** linguist-vendored=false -tools/** linguist-vendored=false - -# Override what is considered "documentation" by GitHub's linguist: -examples/** linguist-documentation=false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index ec90164..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,797 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - steps: ${{ toJson(steps) }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure git: - - name: 'Configure git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..780fba0 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 2aa6603..b1d485d 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.1", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.1", - "@stdlib/math-base-special-floor": "^0.2.2", - "@stdlib/math-base-special-pow": "^0.2.1", - "@stdlib/ndarray-base-numel": "^0.2.1", - "@stdlib/ndarray-base-shape2strides": "^0.2.1", - "@stdlib/ndarray-orders": "^0.2.1", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..ac8b74f --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 4aecfeaa92b1034cc9f226e5b557598f9159ad01 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 29 Jul 2024 03:11:48 +0000 Subject: [PATCH 045/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7ef5e09..9d27f3f 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 9b2a94beb79f5910e80d6d7744cb021c42cf2e24 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 29 Jul 2024 03:34:36 +0000 Subject: [PATCH 046/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 780fba0..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index ac8b74f..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From ed3f4c406da2335023d6b623339b5210e64edff1 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 29 Jul 2024 03:34:52 +0000 Subject: [PATCH 047/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 42 files changed, 4868 insertions(+), 4097 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..780fba0 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 9d27f3f..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.1", - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..ac8b74f --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 110f5d5c07fd4556fb793f3309972757793d87e4 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 29 Jul 2024 03:45:22 +0000 Subject: [PATCH 048/105] Update README.md for ESM bundle v0.2.2 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9534c4a..d99885e 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ limitations under the License. ## Usage ```javascript -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.2-esm/index.mjs'; ``` #### strided2array3d( x, shape, strides, offset ) @@ -101,7 +101,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.2-esm/index.mjs'; var shape = [ 3, 3, 3 ]; From ec9eca7729648b370b4069f61ec0b246a88f745b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 29 Jul 2024 03:45:23 +0000 Subject: [PATCH 049/105] Auto-generated commit --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d99885e..19e7b3f 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,11 @@ limitations under the License. ## Usage +```javascript +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +``` +The previous example will load the latest bundled code from the esm branch. Alternatively, you may load a specific version by loading the file from one of the [tagged bundles](https://github.com/stdlib-js/array-base-strided2array3d/tags). For example, + ```javascript import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.2-esm/index.mjs'; ``` @@ -101,7 +106,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.2-esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; var shape = [ 3, 3, 3 ]; From 59f3598cfb145ba7c7170d2c3d66df05a148f217 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Aug 2024 08:20:37 +0000 Subject: [PATCH 050/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c04d976..c3376ce 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.3.2" + "@stdlib/types": "^0.3.2", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 7d1d1150f3c5ea6d10d82af247487b0fe635f9cc Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Aug 2024 13:13:08 +0000 Subject: [PATCH 051/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 780fba0..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.1-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index ac8b74f..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 9a30f42160fb5179be31715667a492d76bd76a19 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Thu, 1 Aug 2024 13:13:23 +0000 Subject: [PATCH 052/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 78 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 4868 insertions(+), 4061 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 076d8a9..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-08-01T06:05:09.762Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..8534435 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index c3376ce..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.3.2", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From b311fbddb6ea84c5343e47541fdc7f3bf1474dad Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Sep 2024 08:42:36 +0000 Subject: [PATCH 053/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index db44701..991c7f3 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.1" + "@stdlib/types": "^0.4.1", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 3ead086fc7353e01d63c983a0f35533d805097ff Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Sep 2024 13:10:18 +0000 Subject: [PATCH 054/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 8534435..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 9afcade392ed58037c3f0422a17a1f86cc128193 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 1 Sep 2024 13:10:30 +0000 Subject: [PATCH 055/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 ---- .github/workflows/publish.yml | 252 -- .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 --- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 +++++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 4868 insertions(+), 4098 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 60d743f..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = false - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 493ed34..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-09-01T06:33:01.162Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..8534435 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 991c7f3..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.1", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 5f3b00b548e18f646cd33834ed34e2e0251f4848 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 30 Dec 2024 02:37:29 +0000 Subject: [PATCH 056/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9fc789d..8fb9ed0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From a142b35f6fcbc84c0fd387ea1d47f18c53411d64 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 30 Dec 2024 03:32:28 +0000 Subject: [PATCH 057/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 8534435..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From ea33b71cc3aa89f9da3391ea879933b441d1a868 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 30 Dec 2024 03:32:43 +0000 Subject: [PATCH 058/105] Auto-generated commit --- .editorconfig | 181 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4203 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0779e8a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,181 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 -insert_final_newline = false - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 2e5f71d..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2024-12-30T02:21:29.382Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2024. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..8534435 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 8fb9ed0..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 9f78b0e54e070fa16b407cd853133175df6c2672 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 3 Feb 2025 01:27:04 +0000 Subject: [PATCH 059/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9fc789d..8fb9ed0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From d87b6b56f24ce9091908919c5ddf9d40c8358565 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 3 Feb 2025 01:57:57 +0000 Subject: [PATCH 060/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 8534435..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2024 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From bd04905a218cc377a66400505d5b0edc6d0c34da Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 3 Feb 2025 01:58:12 +0000 Subject: [PATCH 061/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 190 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4202 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 0bef6cb..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-02-03T01:13:17.020Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index ac8d991..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..0d7f7a7 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 8fb9ed0..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 456e4fd4325af8b3cdd969d2c558eec5589d1ab9 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 24 Feb 2025 02:17:44 +0000 Subject: [PATCH 062/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9fc789d..8fb9ed0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 45ec28c29d017fc8d12dd6cdcd9cb2af1c1486b3 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 24 Feb 2025 03:21:16 +0000 Subject: [PATCH 063/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 0d7f7a7..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From ba25791729baa64ac18e110565aaa6a5a69fbe75 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 24 Feb 2025 03:21:29 +0000 Subject: [PATCH 064/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 194 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4206 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 3e3f405..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-02-24T01:57:13.875Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..0d7f7a7 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 8fb9ed0..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 17c996bf945d81169318caff672b8e28d8504e4a Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 19 May 2025 02:19:58 +0000 Subject: [PATCH 065/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9fc789d..8fb9ed0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From eb066f8a9d860d4e4fe88bb0db51bcfdc0366f87 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 19 May 2025 03:05:35 +0000 Subject: [PATCH 066/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 0d7f7a7..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 483af030f86a3b09d1857886132842f5646e50cc Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 19 May 2025 03:05:56 +0000 Subject: [PATCH 067/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 194 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4206 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 1ec7177..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-05-19T01:42:39.278Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..0d7f7a7 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 8fb9ed0..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 40d89ec3599aef9da65ea6e864a7a8c059fadca9 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 16 Jun 2025 00:31:11 +0000 Subject: [PATCH 068/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9fc789d..8fb9ed0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 09cde3af5ac3e612c1df54a1d8d135974db4395d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 16 Jun 2025 00:31:28 +0000 Subject: [PATCH 069/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 0d7f7a7..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 94265e46f015b1d634f6723686e2daf4c0d855e7 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 16 Jun 2025 00:31:55 +0000 Subject: [PATCH 070/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 194 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4206 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 078e410..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-06-16T00:30:47.131Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..0d7f7a7 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 8fb9ed0..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 41b73ab936f73f4d18712347752c91d43b861894 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 28 Jul 2025 00:35:58 +0000 Subject: [PATCH 071/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9fc789d..8fb9ed0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From a2dcc39f91f271acf7fe43ac3538633bf1ac5711 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 28 Jul 2025 00:36:32 +0000 Subject: [PATCH 072/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 0d7f7a7..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 2100b772d32c7e94ecb1b237303590d5efba54c6 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 28 Jul 2025 00:36:49 +0000 Subject: [PATCH 073/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 794 --- .github/workflows/publish.yml | 252 - .github/workflows/test.yml | 99 - .github/workflows/test_bundles.yml | 186 - .github/workflows/test_coverage.yml | 133 - .github/workflows/test_install.yml | 85 - .github/workflows/test_published_package.yml | 105 - .gitignore | 194 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4206 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 76d1461..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-07-28T00:35:25.078Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2025. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..0d7f7a7 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 8fb9ed0..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 3c82e4a14ef196eecb6847e2684a1cffd7a78439 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 31 Jan 2026 01:39:41 +0000 Subject: [PATCH 074/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 9fc789d..8fb9ed0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.2" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 6663a618f71a9a2aff6bc027b983873692fbf85c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 31 Jan 2026 02:34:04 +0000 Subject: [PATCH 075/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 0d7f7a7..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2025 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 1ab64e1dcb5b999e6e417ca0cfa9404c1330aa5a Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sat, 31 Jan 2026 02:34:27 +0000 Subject: [PATCH 076/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 108 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 199 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 115 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 4868 insertions(+), 4310 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..8e089ec --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 8fb9ed0..2906c2f 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.2", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.2" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.2", - "@stdlib/math-base-special-floor": "^0.2.3", - "@stdlib/math-base-special-pow": "^0.3.0", - "@stdlib/ndarray-base-numel": "^0.2.2", - "@stdlib/ndarray-base-shape2strides": "^0.2.2", - "@stdlib/ndarray-orders": "^0.2.2", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From a0fad72d6ff480037433edacbcefe676ff57ca0e Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 8 Feb 2026 18:09:04 +0000 Subject: [PATCH 077/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 76ff551..fcb3523 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.1", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From ea206f31bde6ddb758481b062692fff8e406195f Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 8 Feb 2026 19:04:55 +0000 Subject: [PATCH 078/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 8e089ec..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 70d7908a7fa8ad925c2f75a710e272cf4f701636 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 8 Feb 2026 19:05:12 +0000 Subject: [PATCH 079/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 199 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 125 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 4868 insertions(+), 4313 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..8e089ec --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index fcb3523..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.2", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.1", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..2cc11f6 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From a185faee4b3300b243d24829a505c95cd3bc2b8b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 8 Feb 2026 19:29:47 +0000 Subject: [PATCH 080/105] Update README.md for ESM bundle v0.2.3 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 618b3cd..b243036 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ limitations under the License. ## Usage ```javascript -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.3-esm/index.mjs'; ``` #### strided2array3d( x, shape, strides, offset ) @@ -101,7 +101,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.3-esm/index.mjs'; var shape = [ 3, 3, 3 ]; From 69081649a76ea28ba9f9866aa8b50ba646f36c0b Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 8 Feb 2026 19:29:47 +0000 Subject: [PATCH 081/105] Auto-generated commit --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b243036..edf2f42 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,11 @@ limitations under the License. ## Usage +```javascript +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; +``` +The previous example will load the latest bundled code from the esm branch. Alternatively, you may load a specific version by loading the file from one of the [tagged bundles](https://github.com/stdlib-js/array-base-strided2array3d/tags). For example, + ```javascript import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.3-esm/index.mjs'; ``` @@ -101,7 +106,7 @@ The function accepts the following arguments: import zeroTo from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-zero-to@esm/index.mjs'; import numel from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@esm/index.mjs'; import shape2strides from 'https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-shape2strides@esm/index.mjs'; -import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@v0.2.3-esm/index.mjs'; +import strided2array3d from 'https://cdn.jsdelivr.net/gh/stdlib-js/array-base-strided2array3d@esm/index.mjs'; var shape = [ 3, 3, 3 ]; From 3a8cf04c0122874541f30ec4cd715fcf28f77b52 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 16 Feb 2026 03:03:20 +0000 Subject: [PATCH 082/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b1c08bb..fe2f4eb 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.2", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 4a26c3e656182245aac70bd8b48bec58149670aa Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 16 Feb 2026 04:18:36 +0000 Subject: [PATCH 083/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 8e089ec..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.2-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 2cc11f6..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 97ce52adf035c38587a01942d06e907f25f241c6 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 16 Feb 2026 04:18:55 +0000 Subject: [PATCH 084/105] Auto-generated commit --- .editorconfig | 180 - .eslintrc.js | 1 - .gitattributes | 66 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 199 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 125 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4314 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index cb909ed..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-02-16T02:19:11.327Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index fe2f4eb..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From bb317b435cdaac060aebed6943db8b31f812f199 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 3 Apr 2026 03:17:44 +0000 Subject: [PATCH 085/105] Transform error messages --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b1c08bb..fe2f4eb 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ }, "dependencies": { "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.4.3" + "@stdlib/types": "^0.4.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3" }, "devDependencies": { "@stdlib/array-base-zero-to": "^0.2.2", @@ -88,4 +89,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} +} \ No newline at end of file From 5267ffc23b8d3373c866ba47c06757be76761f13 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 3 Apr 2026 03:29:04 +0000 Subject: [PATCH 086/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 2d0159f..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4f3ae91..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 5cc15d0f43ba3ea2cb68478c8ad73c3e250a9851 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 3 Apr 2026 03:29:32 +0000 Subject: [PATCH 087/105] Auto-generated commit --- .editorconfig | 189 - .eslintrc.js | 1 - .gitattributes | 68 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 199 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 125 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 123 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 62 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4868 insertions(+), 4325 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 78b0ca8..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-04-03T03:16:08.174Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index 296a67e..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,123 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( pkg+'::equidimensional:size='+numel( sh )+',order='+ord, f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index fe2f4eb..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.4.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", @@ -89,4 +33,4 @@ "type": "opencollective", "url": "https://opencollective.com/stdlib" } -} \ No newline at end of file +} diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 7b9e206b3dabb8ae39172c5b417786603f865916 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 21 Apr 2026 00:38:34 +0000 Subject: [PATCH 088/105] Transform error messages --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca38229..a9e0d60 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@stdlib/ndarray-base-numel": "^0.2.3", "@stdlib/ndarray-base-shape2strides": "^0.2.3", "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/string-format": "^0.2.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3", "tape": "git+https://github.com/kgryte/tape.git#fix/globby", "istanbul": "^0.4.1", "tap-min": "git+https://github.com/Planeshifter/tap-min.git", From e632f8c058984075b0a4520db865613d9bd2161d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 21 Apr 2026 00:59:32 +0000 Subject: [PATCH 089/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 2d0159f..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4f3ae91..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 49c864ea3fc3f249a93e07faa1108278d45260e5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 21 Apr 2026 00:59:50 +0000 Subject: [PATCH 090/105] Auto-generated commit --- .editorconfig | 189 - .eslintrc.js | 1 - .gitattributes | 68 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 199 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 159 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 124 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 60 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 43 files changed, 4867 insertions(+), 4358 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index b9b6e11..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( format( '%s::equidimensional:size=%d,order=%s', pkg, numel( sh ), ord ), f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index a9e0d60..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.4.3" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 455748956d82b5ae4dab27559a662fbf544b41ba Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 10 May 2026 03:36:41 +0000 Subject: [PATCH 091/105] Transform error messages --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca38229..a9e0d60 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@stdlib/ndarray-base-numel": "^0.2.3", "@stdlib/ndarray-base-shape2strides": "^0.2.3", "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/string-format": "^0.2.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3", "tape": "git+https://github.com/kgryte/tape.git#fix/globby", "istanbul": "^0.4.1", "tap-min": "git+https://github.com/Planeshifter/tap-min.git", From 56d1a9cad523cf5fa4fd9f8c94a753a27982d2b8 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 10 May 2026 03:53:19 +0000 Subject: [PATCH 092/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 2d0159f..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4f3ae91..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 1cfa6f3663f8c7cb6cddae8a226dc026a3668312 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Sun, 10 May 2026 03:53:36 +0000 Subject: [PATCH 093/105] Auto-generated commit --- .editorconfig | 189 - .eslintrc.js | 1 - .gitattributes | 68 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 204 - .npmignore | 229 - .npmrc | 31 - CHANGELOG.md | 159 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 124 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 60 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4867 insertions(+), 4364 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index adeec5b..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-05-10T03:29:26.269Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index b9b6e11..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( format( '%s::equidimensional:size=%d,order=%s', pkg, numel( sh ), ord ), f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index ae7d8a9..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(a,r){return function(){return r||a((r={exports:{}}).exports,r),r.exports}};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(a,r,e,m){var d,i,f,n,c,p,u,S,q,g,o,v,t,x,s;for(d=G(a),g=r[0],q=r[1],S=r[2],c=e[0],n=e[1],f=e[2],i=[],t=0;t>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "uGAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index a9e0d60..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.4.3" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 3fe2cc4b1122cb08e5a9d048689567c6bf97a838 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 19 Jun 2026 03:25:34 +0000 Subject: [PATCH 094/105] Transform error messages --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a11259..9fa52d1 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@stdlib/ndarray-base-numel": "^0.2.3", "@stdlib/ndarray-base-shape2strides": "^0.2.3", "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/string-format": "^0.2.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3", "tape": "git+https://github.com/kgryte/tape.git#fix/globby", "istanbul": "^0.4.1", "tap-min": "git+https://github.com/Planeshifter/tap-min.git", From 5aa42e6ef4ff96f532915628ddea2a02c487dcd6 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 19 Jun 2026 03:29:18 +0000 Subject: [PATCH 095/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 2d0159f..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4f3ae91..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 676305ed139b1daae71feadfa305baa0d105d6cb Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Fri, 19 Jun 2026 03:29:36 +0000 Subject: [PATCH 096/105] Auto-generated commit --- .editorconfig | 189 - .eslintrc.js | 1 - .gitattributes | 68 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 204 - .npmignore | 229 - .npmrc | 44 - CHANGELOG.md | 159 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 124 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 60 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4867 insertions(+), 4377 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index abfcca8..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-06-19T03:24:06.299Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index b9b6e11..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( format( '%s::equidimensional:size=%d,order=%s', pkg, numel( sh ), ord ), f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 05913f8..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(v,r){return function(){try{return r||v((r={exports:{}}).exports,r),r.exports}catch(a){throw (r=0, a)}};};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(v,r,a,m){var d,i,f,n,c,p,u,S,q,g,o,t,e,x,s;for(d=G(v),g=r[0],q=r[1],S=r[2],c=a[0],n=a[1],f=a[2],i=[],e=0;e>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "iIAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 9fa52d1..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.5.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 5658da87ab4c898116e5af7bca6c5a6a3254b72c Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 23 Jun 2026 03:27:47 +0000 Subject: [PATCH 097/105] Transform error messages --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a11259..9fa52d1 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@stdlib/ndarray-base-numel": "^0.2.3", "@stdlib/ndarray-base-shape2strides": "^0.2.3", "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/string-format": "^0.2.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3", "tape": "git+https://github.com/kgryte/tape.git#fix/globby", "istanbul": "^0.4.1", "tap-min": "git+https://github.com/Planeshifter/tap-min.git", From 57bff403e0786075527803d3045350a00b9a0e12 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 23 Jun 2026 03:38:24 +0000 Subject: [PATCH 098/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 2d0159f..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4f3ae91..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 0eadf1fb800f55cb141e380118f532e91e0e09d5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Tue, 23 Jun 2026 03:38:44 +0000 Subject: [PATCH 099/105] Auto-generated commit --- .editorconfig | 189 - .eslintrc.js | 1 - .gitattributes | 68 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 204 - .npmignore | 229 - .npmrc | 44 - CHANGELOG.md | 159 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 124 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 60 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4867 insertions(+), 4377 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 78a7edf..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-06-23T03:26:04.008Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index b9b6e11..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( format( '%s::equidimensional:size=%d,order=%s', pkg, numel( sh ), ord ), f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 05913f8..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(v,r){return function(){try{return r||v((r={exports:{}}).exports,r),r.exports}catch(a){throw (r=0, a)}};};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(v,r,a,m){var d,i,f,n,c,p,u,S,q,g,o,t,e,x,s;for(d=G(v),g=r[0],q=r[1],S=r[2],c=a[0],n=a[1],f=a[2],i=[],e=0;e>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "iIAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 9fa52d1..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.5.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From a9376ac5cd8c06837f685089fe34d46efa43d08d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 5 Aug 2026 03:33:55 +0000 Subject: [PATCH 100/105] Transform error messages --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a11259..9fa52d1 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@stdlib/ndarray-base-numel": "^0.2.3", "@stdlib/ndarray-base-shape2strides": "^0.2.3", "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/string-format": "^0.2.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3", "tape": "git+https://github.com/kgryte/tape.git#fix/globby", "istanbul": "^0.4.1", "tap-min": "git+https://github.com/Planeshifter/tap-min.git", From 8985824beac7443cd99f7ed6353be573a0d69e52 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 5 Aug 2026 03:53:37 +0000 Subject: [PATCH 101/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 2d0159f..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4f3ae91..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 4e645f662482a75a3ea5218cc1363a3e9c137562 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Wed, 5 Aug 2026 03:53:53 +0000 Subject: [PATCH 102/105] Auto-generated commit --- .editorconfig | 189 - .eslintrc.js | 1 - .gitattributes | 68 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 204 - .npmignore | 229 - .npmrc | 44 - CHANGELOG.md | 159 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 124 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 60 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4867 insertions(+), 4377 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index 0fc6890..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-08-05T03:23:26.627Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index b9b6e11..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( format( '%s::equidimensional:size=%d,order=%s', pkg, numel( sh ), ord ), f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 05913f8..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(v,r){return function(){try{return r||v((r={exports:{}}).exports,r),r.exports}catch(a){throw (r=0, a)}};};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(v,r,a,m){var d,i,f,n,c,p,u,S,q,g,o,t,e,x,s;for(d=G(v),g=r[0],q=r[1],S=r[2],c=a[0],n=a[1],f=a[2],i=[],e=0;e>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "iIAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 9fa52d1..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.5.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); From 6606e1b3d4af710f4d0ca576b1aaf1608261209d Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 10 Aug 2026 03:16:12 +0000 Subject: [PATCH 103/105] Transform error messages --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a11259..9fa52d1 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "@stdlib/ndarray-base-numel": "^0.2.3", "@stdlib/ndarray-base-shape2strides": "^0.2.3", "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/string-format": "^0.2.3", + "@stdlib/error-tools-fmtprodmsg": "^0.2.3", "tape": "git+https://github.com/kgryte/tape.git#fix/globby", "istanbul": "^0.4.1", "tap-min": "git+https://github.com/Planeshifter/tap-min.git", From b10c2bdf0240d5a9307bc56c160c01d1078562e1 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 10 Aug 2026 03:34:42 +0000 Subject: [PATCH 104/105] Remove files --- index.d.ts | 56 - index.mjs | 4 - index.mjs.map | 1 - stats.html | 4842 ------------------------------------------------- 4 files changed, 4903 deletions(-) delete mode 100644 index.d.ts delete mode 100644 index.mjs delete mode 100644 index.mjs.map delete mode 100644 stats.html diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index a6a2931..0000000 --- a/index.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -// TypeScript Version: 4.1 - -/// - -import { Array3D, ArrayLike } from '@stdlib/types/array'; -import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param x - input array -* @param shape - array shape -* @param strides - dimension strides -* @param offset - index of the first indexed value in the input array -* @returns three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -declare function strided2array3d( x: ArrayLike, shape: Shape3D, strides: Strides3D, offset: number ): Array3D; - - -// EXPORTS // - -export = strided2array3d; diff --git a/index.mjs b/index.mjs deleted file mode 100644 index 2d0159f..0000000 --- a/index.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 -/// -import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/stats.html b/stats.html deleted file mode 100644 index 4f3ae91..0000000 --- a/stats.html +++ /dev/null @@ -1,4842 +0,0 @@ - - - - - - - - Rollup Visualizer - - - -
- - - - - From 35cd371e2fabaa15a363ad91c0c487ddfb83a5a5 Mon Sep 17 00:00:00 2001 From: stdlib-bot Date: Mon, 10 Aug 2026 03:35:02 +0000 Subject: [PATCH 105/105] Auto-generated commit --- .editorconfig | 189 - .eslintrc.js | 1 - .gitattributes | 68 - .github/.keepalive | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 - .github/workflows/benchmark.yml | 64 - .github/workflows/cancel.yml | 57 - .github/workflows/close_pull_requests.yml | 54 - .github/workflows/examples.yml | 64 - .github/workflows/npm_downloads.yml | 112 - .github/workflows/productionize.yml | 821 --- .github/workflows/publish.yml | 261 - .github/workflows/test.yml | 101 - .github/workflows/test_bundles.yml | 213 - .github/workflows/test_coverage.yml | 142 - .github/workflows/test_install.yml | 94 - .github/workflows/test_published_package.yml | 115 - .gitignore | 204 - .npmignore | 229 - .npmrc | 44 - CHANGELOG.md | 159 - CITATION.cff | 30 - CODE_OF_CONDUCT.md | 3 - CONTRIBUTING.md | 3 - Makefile | 534 -- README.md | 43 +- SECURITY.md | 5 - benchmark/benchmark.js | 124 - branches.md | 56 - dist/index.d.ts | 3 - dist/index.js | 5 - dist/index.js.map | 7 - docs/repl.txt | 30 - docs/types/test.ts | 92 - examples/index.js | 35 - docs/types/index.d.ts => index.d.ts | 2 +- index.mjs | 4 + index.mjs.map | 1 + lib/index.js | 45 - lib/main.js | 101 - package.json | 60 +- stats.html | 4842 ++++++++++++++++++ test/dist/test.js | 33 - test/test.js | 186 - 44 files changed, 4867 insertions(+), 4377 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .eslintrc.js delete mode 100644 .gitattributes delete mode 100644 .github/.keepalive delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 .github/workflows/benchmark.yml delete mode 100644 .github/workflows/cancel.yml delete mode 100644 .github/workflows/close_pull_requests.yml delete mode 100644 .github/workflows/examples.yml delete mode 100644 .github/workflows/npm_downloads.yml delete mode 100644 .github/workflows/productionize.yml delete mode 100644 .github/workflows/publish.yml delete mode 100644 .github/workflows/test.yml delete mode 100644 .github/workflows/test_bundles.yml delete mode 100644 .github/workflows/test_coverage.yml delete mode 100644 .github/workflows/test_install.yml delete mode 100644 .github/workflows/test_published_package.yml delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 .npmrc delete mode 100644 CHANGELOG.md delete mode 100644 CITATION.cff delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Makefile delete mode 100644 SECURITY.md delete mode 100644 benchmark/benchmark.js delete mode 100644 branches.md delete mode 100644 dist/index.d.ts delete mode 100644 dist/index.js delete mode 100644 dist/index.js.map delete mode 100644 docs/repl.txt delete mode 100644 docs/types/test.ts delete mode 100644 examples/index.js rename docs/types/index.d.ts => index.d.ts (95%) create mode 100644 index.mjs create mode 100644 index.mjs.map delete mode 100644 lib/index.js delete mode 100644 lib/main.js create mode 100644 stats.html delete mode 100644 test/dist/test.js delete mode 100644 test/test.js diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 80f3fca..0000000 --- a/.editorconfig +++ /dev/null @@ -1,189 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Ignore generated lock files for GitHub Agentic Workflows: -[*.lock.yml] -charset = unset -end_of_line = unset -indent_style = unset -indent_size = unset -trim_trailing_whitespace = unset -insert_final_newline = unset - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 24b327f..0000000 --- a/.gitattributes +++ /dev/null @@ -1,68 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation - -.github/workflows/*.lock.yml linguist-generated=true merge=ours diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index b0c65d6..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-08-10T03:07:55.733Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 70a7977..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 4b8cf9e..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 3a89ea5..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '36 12 * * 4' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index 83d50c4..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,821 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send notification to Zulip if job fails: - - name: 'Send notification to Zulip in case of failure' - # Pin action to full length commit SHA - uses: zulip/github-actions-zulip/send-message@e4c8f27c732ba9bd98ac6be0583096dea82feea5 # v1.0.2 - if: failure() - with: - api-key: ${{ secrets.ZULIP_API_KEY }} - email: 'github-actions-bot@stdlib.zulipchat.com' - organization-url: 'https://stdlib.zulipchat.com' - to: 'workflows-standalone' - type: 'stream' - topic: ${{ github.event.repository.name }} - content: | - :cross_mark: **${{ github.workflow }}** workflow failed - - **Repository:** [${{ github.repository }}](${{ github.server_url }}/${{ github.repository }}) - **Run:** [View workflow run](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + ```
@@ -149,7 +140,7 @@ console.log( y ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. @@ -212,7 +203,7 @@ Copyright © 2016-2026. The Stdlib [Authors][stdlib-authors]. [stdlib-license]: https://raw.githubusercontent.com/stdlib-js/array-base-strided2array3d/main/LICENSE -[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible +[@stdlib/ndarray/base/assert/is-buffer-length-compatible]: https://github.com/stdlib-js/ndarray-base-assert-is-buffer-length-compatible/tree/esm
diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 9702d4c..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security - -> Policy for reporting security vulnerabilities. - -See the security policy [in the main project repository](https://github.com/stdlib-js/stdlib/security). diff --git a/benchmark/benchmark.js b/benchmark/benchmark.js deleted file mode 100644 index b9b6e11..0000000 --- a/benchmark/benchmark.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isnan = require( '@stdlib/math-base-assert-is-nan' ); -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var orders = require( '@stdlib/ndarray-orders' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var strided2array3d = require( './../lib' ); - - -// VARIABLES // - -var ORDERS = orders(); - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveIntegerArray} shape - array shape -* @param {string} order - memory layout order -* @returns {Function} benchmark function -*/ -function createBenchmark( shape, order ) { - var strides = shape2strides( shape, order ); - var x = zeroTo( numel( shape ) ); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i0; - var i1; - var i2; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = strided2array3d( x, shape, strides, 0 ); - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - } - b.toc(); - - i2 = i % shape[ 0 ]; - i1 = i % shape[ 1 ]; - i0 = i % shape[ 2 ]; - if ( isnan( out[ i2 ][ i1 ][ i0 ] ) ) { - b.fail( 'should not return NaN' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var min; - var max; - var ord; - var sh; - var N; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < ORDERS.length; j++ ) { - for ( i = min; i <= max; i++ ) { - N = floor( pow( pow( 10, i ), 1.0/3.0 ) ); - sh = [ N, N, N ]; - ord = ORDERS[ j ]; - f = createBenchmark( sh, ord ); - bench( format( '%s::equidimensional:size=%d,order=%s', pkg, numel( sh ), ord ), f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 9cb152f..0000000 --- a/branches.md +++ /dev/null @@ -1,56 +0,0 @@ - - -# Branches - -This repository has the following branches: - -- **main**: default branch generated from the [stdlib project][stdlib-url], where all development takes place. -- **production**: [production build][production-url] of the package (e.g., reformatted error messages to reduce bundle sizes and thus the number of bytes transmitted over a network). -- **esm**: [ES Module][esm-url] branch for use via a `script` tag without the need for installation and bundlers (see [README][esm-readme]). -- **deno**: [Deno][deno-url] branch for use in Deno (see [README][deno-readme]). -- **umd**: [UMD][umd-url] branch for use in Observable, or in dual browser/Node.js environments (see [README][umd-readme]). - -The following diagram illustrates the relationships among the above branches: - -```mermaid -graph TD; -A[stdlib]-->|generate standalone package|B; -B[main] -->|productionize| C[production]; -C -->|bundle| D[esm]; -C -->|bundle| E[deno]; -C -->|bundle| F[umd]; - -%% click A href "https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d" -%% click B href "https://github.com/stdlib-js/array-base-strided2array3d/tree/main" -%% click C href "https://github.com/stdlib-js/array-base-strided2array3d/tree/production" -%% click D href "https://github.com/stdlib-js/array-base-strided2array3d/tree/esm" -%% click E href "https://github.com/stdlib-js/array-base-strided2array3d/tree/deno" -%% click F href "https://github.com/stdlib-js/array-base-strided2array3d/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/base/strided2array3d -[production-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/production -[deno-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/deno -[deno-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/umd -[umd-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/array-base-strided2array3d/tree/esm -[esm-readme]: https://github.com/stdlib-js/array-base-strided2array3d/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 6172f92..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import strided2array3d from '../docs/types/index'; -export = strided2array3d; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index 05913f8..0000000 --- a/dist/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";var y=function(v,r){return function(){try{return r||v((r={exports:{}}).exports,r),r.exports}catch(a){throw (r=0, a)}};};var l=y(function(w,h){ -var G=require('@stdlib/array-base-resolve-getter/dist');function b(v,r,a,m){var d,i,f,n,c,p,u,S,q,g,o,t,e,x,s;for(d=G(v),g=r[0],q=r[1],S=r[2],c=a[0],n=a[1],f=a[2],i=[],e=0;e>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = strided2array3d;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2023 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Convert a strided array to a three-dimensional nested array.\n*\n* @module @stdlib/array-base-strided2array3d\n*\n* @example\n* var strided2array3d = require( '@stdlib/array-base-strided2array3d' );\n*\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "iIAAA,IAAAA,EAAAC,EAAA,SAAAC,EAAAC,EAAA,cAsBA,IAAIC,EAAgB,QAAS,mCAAoC,EA8BjE,SAASC,EAAiBC,EAAGC,EAAOC,EAASC,EAAS,CACrD,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMN,EAAeE,CAAE,EAEvBa,EAAKZ,EAAO,CAAE,EACdW,EAAKX,EAAO,CAAE,EACdU,EAAKV,EAAO,CAAE,EAEdO,EAAMN,EAAS,CAAE,EACjBK,EAAML,EAAS,CAAE,EACjBI,EAAMJ,EAAS,CAAE,EAEjBG,EAAM,CAAC,EACDW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,CAAC,EACNR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,CAAC,EACNR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAG,KAAMd,EAAKJ,EAAGU,CAAI,CAAE,EACvBA,GAAOJ,EAERW,EAAG,KAAMC,CAAG,CACb,CACAb,EAAI,KAAMY,CAAG,CACd,CACA,OAAOZ,CACR,CAKAR,EAAO,QAAUE,IC7DjB,IAAIoB,EAAO,IAKX,OAAO,QAAUA", - "names": ["require_main", "__commonJSMin", "exports", "module", "resolveGetter", "strided2array3d", "x", "shape", "strides", "offset", "get", "out", "dx0", "dx1", "dx2", "ix1", "ix0", "S0", "S1", "S2", "i0", "i1", "i2", "t2", "t1", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index a29bde5..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,30 +0,0 @@ - -{{alias}}( x, shape, strides, offset ) - Converts a strided array to a three-dimensional nested array. - - The function assumes that the input array is compatible with the specified - array shape, dimension strides, and index offset. - - Parameters - ---------- - x: ArrayLikeObject - Input array. - - shape: Array - Array shape. - - strides: Array - Dimension strides. - - offset: integer - Index of the first indexed value in the input array. - - Examples - -------- - > var x = [ 1.0, 2.0, 3.0, 4.0 ]; - > var y = {{alias}}( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ) - [ [ [ 1.0, 2.0 ], [ 3.0, 4.0 ] ] ] - - See Also - -------- - diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index 8236c28..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import strided2array3d = require( './index' ); - - -// TESTS // - -// The function returns a three-dimensional nested array... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectType Array3D - strided2array3d( x, [ 1, 2, 2 ], [ 1, 1, 2 ], 0 ); // $ExpectType Array3D -} - -// The compiler throws an error if the function is provided a first argument which is not an array... -{ - strided2array3d( 3.14, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( true, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( false, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( null, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( {}, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( ( x: number ): number => x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a second argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, 'abc', [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, 3.14, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, true, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, false, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, null, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, [ '1' ], [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, {}, [ 4, 2, 1 ], 0 ); // $ExpectError - strided2array3d( x, ( x: number ): number => x, [ 4, 2, 1 ], 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a third argument which is not an array of numbers... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], 'abc', 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], 3.14, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], true, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], false, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], null, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ '1' ], 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], {}, 0 ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], ( x: number ): number => x, 0 ); // $ExpectError -} - -// The compiler throws an error if the function is provided a fourth argument which is not a number... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 'abc' ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], true ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], false ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], null ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], [ '1' ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], {} ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = [ 1.0, 2.0, 3.0, 4.0 ]; - - strided2array3d(); // $ExpectError - strided2array3d( x ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ] ); // $ExpectError - strided2array3d( x, [ 1, 2, 2 ], [ 4, 2, 1 ], 0, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index fb9c7c4..0000000 --- a/examples/index.js +++ /dev/null @@ -1,35 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var zeroTo = require( '@stdlib/array-base-zero-to' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - -var shape = [ 3, 3, 3 ]; - -var x = zeroTo( numel( shape ) ); -console.log( x ); - -var y = strided2array3d( x, shape, shape2strides( shape, 'row-major' ), 0 ); -console.log( y ); - -y = strided2array3d( x, shape, shape2strides( shape, 'column-major' ), 0 ); -console.log( y ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 9a2d51f..a6a2931 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { Array3D, ArrayLike } from '@stdlib/types/array'; import { Shape3D, Strides3D } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..2d0159f --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-resolve-getter@v0.2.3-esm/index.mjs";function e(e,s,t,o){var a,f,n,p,u,d,h,i,l,m,v,j,b,c,g;for(a=r(e),m=s[0],l=s[1],i=s[2],u=t[0],p=t[1],n=t[2],f=[],b=0;b>} three-dimensional nested array\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 );\n* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ]\n*\n* @example\n* var x = [ 1, 2, 3, 4, 5, 6 ];\n*\n* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 );\n* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ]\n*/\nfunction strided2array3d( x, shape, strides, offset ) {\n\tvar get;\n\tvar out;\n\tvar dx0;\n\tvar dx1;\n\tvar dx2;\n\tvar ix1;\n\tvar ix0;\n\tvar S0;\n\tvar S1;\n\tvar S2;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar t2;\n\tvar t1;\n\n\tget = resolveGetter( x );\n\n\tS2 = shape[ 0 ];\n\tS1 = shape[ 1 ];\n\tS0 = shape[ 2 ];\n\n\tdx2 = strides[ 0 ];\n\tdx1 = strides[ 1 ];\n\tdx0 = strides[ 2 ];\n\n\tout = [];\n\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\tt2 = [];\n\t\tix1 = offset + ( dx2*i2 );\n\t\tfor ( i1 = 0; i1 < S1; i1++ ) {\n\t\t\tt1 = [];\n\t\t\tix0 = ix1 + ( dx1*i1 );\n\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\tt1.push( get( x, ix0 ) );\n\t\t\t\tix0 += dx0;\n\t\t\t}\n\t\t\tt2.push( t1 );\n\t\t}\n\t\tout.push( t2 );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nexport default strided2array3d;\n"],"names":["strided2array3d","x","shape","strides","offset","get","out","dx0","dx1","dx2","ix1","ix0","S0","S1","S2","i0","i1","i2","t2","t1","resolveGetter","push"],"mappings":";;oGAoDA,SAASA,EAAiBC,EAAGC,EAAOC,EAASC,GAC5C,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAaJ,IAXAd,EAAMe,EAAenB,GAErBa,EAAKZ,EAAO,GACZW,EAAKX,EAAO,GACZU,EAAKV,EAAO,GAEZO,EAAMN,EAAS,GACfK,EAAML,EAAS,GACfI,EAAMJ,EAAS,GAEfG,EAAM,GACAW,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAC,EAAK,GACLR,EAAMN,EAAWK,EAAIQ,EACfD,EAAK,EAAGA,EAAKH,EAAIG,IAAO,CAG7B,IAFAG,EAAK,GACLR,EAAMD,EAAQF,EAAIQ,EACZD,EAAK,EAAGA,EAAKH,EAAIG,IACtBI,EAAGE,KAAMhB,EAAKJ,EAAGU,IACjBA,GAAOJ,EAERW,EAAGG,KAAMF,EACT,CACDb,EAAIe,KAAMH,EACV,CACD,OAAOZ,CACR"} \ No newline at end of file diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index dbf38b5..0000000 --- a/lib/index.js +++ /dev/null @@ -1,45 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -/** -* Convert a strided array to a three-dimensional nested array. -* -* @module @stdlib/array-base-strided2array3d -* -* @example -* var strided2array3d = require( '@stdlib/array-base-strided2array3d' ); -* -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7f029d1..0000000 --- a/lib/main.js +++ /dev/null @@ -1,101 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var resolveGetter = require( '@stdlib/array-base-resolve-getter' ); - - -// MAIN // - -/** -* Converts a strided array to a three-dimensional nested array. -* -* ## Notes -* -* - The function assumes that the input array is compatible with the specified array shape, dimension strides, and index offset. -* -* @param {Collection} x - input array -* @param {NonNegativeIntegerArray} shape - array shape -* @param {IntegerArray} strides - dimension strides -* @param {NonNegativeInteger} offset - index of the first indexed value in the input array -* @returns {Array>} three-dimensional nested array -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 6, 2, 1 ], 0 ); -* // returns [ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ] ] -* -* @example -* var x = [ 1, 2, 3, 4, 5, 6 ]; -* -* var arr = strided2array3d( x, [ 1, 3, 2 ], [ 1, 1, 3 ], 0 ); -* // returns [ [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ] ] -*/ -function strided2array3d( x, shape, strides, offset ) { - var get; - var out; - var dx0; - var dx1; - var dx2; - var ix1; - var ix0; - var S0; - var S1; - var S2; - var i0; - var i1; - var i2; - var t2; - var t1; - - get = resolveGetter( x ); - - S2 = shape[ 0 ]; - S1 = shape[ 1 ]; - S0 = shape[ 2 ]; - - dx2 = strides[ 0 ]; - dx1 = strides[ 1 ]; - dx0 = strides[ 2 ]; - - out = []; - for ( i2 = 0; i2 < S2; i2++ ) { - t2 = []; - ix1 = offset + ( dx2*i2 ); - for ( i1 = 0; i1 < S1; i1++ ) { - t1 = []; - ix0 = ix1 + ( dx1*i1 ); - for ( i0 = 0; i0 < S0; i0++ ) { - t1.push( get( x, ix0 ) ); - ix0 += dx0; - } - t2.push( t1 ); - } - out.push( t2 ); - } - return out; -} - - -// EXPORTS // - -module.exports = strided2array3d; diff --git a/package.json b/package.json index 9fa52d1..0bcb5fa 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.2.3", "description": "Convert a strided array to a three-dimensional nested array.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,39 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-resolve-getter": "^0.2.3", - "@stdlib/types": "^0.5.1" - }, - "devDependencies": { - "@stdlib/array-base-zero-to": "^0.2.2", - "@stdlib/math-base-assert-is-nan": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-orders": "^0.2.3", - "@stdlib/error-tools-fmtprodmsg": "^0.2.3", - "tape": "git+https://github.com/kgryte/tape.git#fix/globby", - "istanbul": "^0.4.1", - "tap-min": "git+https://github.com/Planeshifter/tap-min.git", - "@stdlib/bench-harness": "^0.2.3" - }, - "engines": { - "node": ">=0.10.0", - "npm": ">2.7.0" - }, - "os": [ - "aix", - "darwin", - "freebsd", - "linux", - "macos", - "openbsd", - "sunos", - "win32", - "windows" - ], "keywords": [ "stdlib", "utilities", diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..4f3ae91 --- /dev/null +++ b/stats.html @@ -0,0 +1,4842 @@ + + + + + + + + Rollup Visualizer + + + +
+ + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index a4bed52..0000000 --- a/test/test.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strided2array3d = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof strided2array3d, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'row-major' ); - - expected = [ - [ - [ 1, 2 ], - [ 3, 4 ] - ], - [ - [ 5, 6 ], - [ 7, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 8, 4, 2 ]; - - expected = [ - [ - [ 1, 3 ], - [ 5, 7 ] - ], - [ - [ 9, 11 ], - [ 13, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, -2 ]; - - expected = [ - [ - [ 16, 14 ], - [ 12, 10 ] - ], - [ - [ 8, 6 ], - [ 4, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -8, -4, 1 ]; - - expected = [ - [ - [ 15, 16 ], - [ 11, 12 ] - ], - [ - [ 7, 8 ], - [ 3, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function converts a strided array to a nested array (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var shape; - var x; - - x = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]; - - shape = [ 2, 2, 2 ]; - strides = shape2strides( shape, 'column-major' ); - - expected = [ - [ - [ 1, 5 ], - [ 3, 7 ] - ], - [ - [ 2, 6 ], - [ 4, 8 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 2, 4, 8 ]; - - expected = [ - [ - [ 1, 9 ], - [ 5, 13 ] - ], - [ - [ 3, 11 ], - [ 7, 15 ] - ] - ]; - actual = strided2array3d( x, shape, strides, 0 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ -2, -4, -8 ]; - - expected = [ - [ - [ 16, 8 ], - [ 12, 4 ] - ], - [ - [ 14, 6 ], - [ 10, 2 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-1 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - shape = [ 2, 2, 2 ]; - strides = [ 1, -4, -8 ]; - - expected = [ - [ - [ 15, 7 ], - [ 11, 3 ] - ], - [ - [ 16, 8 ], - [ 12, 4 ] - ] - ]; - actual = strided2array3d( x, shape, strides, x.length-2 ); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -});