Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
36170c5
ci: Validate GitHub PR title
OS-pedrogustavobilro Dec 5, 2025
6d8b93f
chore: Add note to changelog
OS-pedrogustavobilro Dec 5, 2025
5d7ee96
ci: Add initial semantic-release configuration
OS-pedrogustavobilro Dec 5, 2025
5e35f9a
chore: update release config for X.Y.Z-OS{A} format
OS-pedrogustavobilro Dec 5, 2025
93ee4b6
chore: Fix branch where release runs from
OS-pedrogustavobilro Dec 5, 2025
6d308f2
fix: Mock release
OS-pedrogustavobilro Dec 5, 2025
7ca5f49
fix: another mock change
OS-pedrogustavobilro Dec 5, 2025
5258880
ci: Add workflow for release
OS-pedrogustavobilro Dec 5, 2025
d6ab4fa
chore: remove exclamation mark
OS-pedrogustavobilro Dec 5, 2025
e701253
refactor: Extract release customization of version to variable
OS-pedrogustavobilro Dec 5, 2025
832f1ce
chore: add missing import to release config
OS-pedrogustavobilro Dec 5, 2025
25b034c
chore: add missing repo
OS-pedrogustavobilro Dec 5, 2025
7f450d7
chore(release): 1.0.0 [skip ci]
semantic-release-bot Dec 5, 2025
007761c
Revert "chore(release): 1.0.0 [skip ci]"
OS-pedrogustavobilro Dec 5, 2025
781e6f4
chore: Add header to old changelog
OS-pedrogustavobilro Jan 23, 2026
b1ff4f6
refactor: Replace semantic-release with custom release script
OS-pedrogustavobilro Jan 23, 2026
0c4a1d0
chore: uncomment script
OS-pedrogustavobilro Jan 23, 2026
681ecdd
chore: fix package.json
OS-pedrogustavobilro Jan 23, 2026
5d4f417
chore(release): 2.6.8-OS26 [skip ci]
github-actions[bot] Jan 23, 2026
287714b
Revert "chore(release): 2.6.8-OS26 [skip ci]"
OS-pedrogustavobilro Jan 23, 2026
af552ea
chore: remove splice from release script
OS-pedrogustavobilro Jan 23, 2026
ff629cf
Merge remote-tracking branch 'upstream/outsystems' into outsystems
OS-pedrogustavobilro Jan 23, 2026
f2cffef
chore(release): 2.6.8-OS28 [skip ci]
github-actions[bot] Jan 23, 2026
f88f2c1
chore(release): 2.6.8-OS29 [skip ci]
github-actions[bot] Jan 23, 2026
1bdfd0b
chore(ci): error when there are no commits to release
OS-pedrogustavobilro Jan 23, 2026
e7b83e0
Merge branch 'outsystems' of https://github.com/OS-pedrogustavobilro/…
OS-pedrogustavobilro Jan 23, 2026
15ca49a
chore(release): 2.6.8-OS30 [skip ci]
github-actions[bot] Jan 23, 2026
3815e6f
chore(release): 2.6.8-OS31 [skip ci]
github-actions[bot] Jan 23, 2026
07dbbb1
chore(ci): Improve tag detection
OS-pedrogustavobilro Jan 23, 2026
c306a3c
Merge branch 'outsystems' of https://github.com/OS-pedrogustavobilro/…
OS-pedrogustavobilro Jan 23, 2026
1cd9e5a
chore(release): 2.6.8-OS32 [skip ci]
github-actions[bot] Jan 23, 2026
aefade8
chore: remove merge commits from changelog generation
OS-pedrogustavobilro Jan 23, 2026
62dcc33
Merge branch 'outsystems' of https://github.com/OS-pedrogustavobilro/…
OS-pedrogustavobilro Jan 23, 2026
6c556ff
chore(release): 2.6.8-OS33 [skip ci]
github-actions[bot] Jan 23, 2026
4b8eab2
chore(ci): Add one extra level to date in changelog
OS-pedrogustavobilro Jan 23, 2026
3cac68b
revert changes for test releases
OS-pedrogustavobilro Jan 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/release_plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Release Cordova Plugin (GitHub)

on:
workflow_dispatch:

permissions:
contents: write

jobs:
release:
runs-on: 'ubuntu-latest'
timeout-minutes: 20
steps:
- uses: actions/checkout@v6
with:
ref: outsystems
fetch-depth: 0
token: ${{ secrets.RELEASE_TOKEN_GITHUB }}
- name: Install Node.js
uses: actions/setup-node@v6
with:
node-version: 25
- name: Install dependencies
run: npm i
- name: Configure Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN_GITHUB }}
run: npm run release
28 changes: 28 additions & 0 deletions .github/workflows/validate_pr_title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Validate PR title for Conventional Commits Format"

on:
pull_request:
types: [opened, edited, synchronize, reopened]

jobs:
validate-pr-title-conventional:
runs-on: ubuntu-latest
steps:
- name: Check PR title for conventional commits
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
const prTitle = context.payload.pull_request.title;

// Conventional commits regex: type(scope?): description
const conventionalRegex = /^(feat|fix|chore|docs|style|refactor|perf|test|ci)(\([a-z0-9\-]+\))?: .+/;

if (!conventionalRegex.test(prTitle)) {
core.setFailed(
`PR title "${prTitle}" is not in conventional commit format.\n` +
`Example: "feat(android): add new validation function"`
);
} else {
console.log(`PR title "${prTitle}" follows conventional commit format`);
}
2 changes: 1 addition & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Changelog
## Changelog (old)
=========

2.6.8-OS27 - 2026-01-13
Expand Down
8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,15 @@
},
"scripts": {
"eslint": "./node_modules/.bin/eslint www/securestorage.js tests/tests.js",
"capacitor:update:after": "node build-actions/insert_azure_repository.js"
"capacitor:update:after": "node build-actions/insert_azure_repository.js",
"release": "node scripts/release.js"
},
"devDependencies": {
"@octokit/rest": "^21.0.2",
"cordova-plugin-test-framework": ">=1.0.0",
"eslint": ""
"eslint": "",
"simple-git": "^3.25.0",
"xml2js": "^0.6.2"
},
"license": "MIT",
"bugs": {
Expand Down
71 changes: 25 additions & 46 deletions plugin.xml
Original file line number Diff line number Diff line change
@@ -1,86 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="cordova-plugin-secure-storage"
version="2.6.8-OS27">

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="cordova-plugin-secure-storage" version="2.6.8-OS27">
<name>SecureStorage</name>
<author>Crypho AS</author>

<description>
Secure, encrypted storage for cordova apps in iOS and Android.
</description>

<license>MIT</license>

<keywords>keychain, encryption, security</keywords>

<js-module src="www/securestorage.js" name="SecureStorage">
<clobbers target="SecureStorage" />
<clobbers target="SecureStorage"/>
</js-module>

<js-module src="www/sjcl_ss.js" name="sjcl_ss">
<runs/>
</js-module>

<engines>
<engine name="cordova" version=">=3.0.0" />
<engine name="cordova" version=">=3.0.0"/>
</engines>

<platform name="ios">
<config-file target="config.xml" parent="/*">
<feature name="SecureStorage">
<param name="ios-package" value="SecureStorage"/>
</feature>
<preference name="SwiftVersion" value="5" />
<preference name="SwiftVersion" value="5"/>
</config-file>

<source-file src="src/ios/SecureStorage.swift"/>
<framework src="src/ios/frameworks/OSKeyStoreLib.xcframework" embed="true" custom="true" />
<framework src="src/ios/frameworks/OSKeyStoreLib.xcframework" embed="true" custom="true"/>
</platform>

<platform name="android">

<hook type="after_prepare" src="hooks/android/androidCopyPreferences.js" />

<hook type="after_prepare" src="hooks/android/androidCopyPreferences.js"/>
<config-file target="res/xml/config.xml" parent="/*">
<feature name="SecureStorage" >
<feature name="SecureStorage">
<param name="android-package" value="com.crypho.plugins.SecureStorage"/>
</feature>
<preference name="GradlePluginKotlinEnabled" value="true" />
<preference name="GradlePluginKotlinCodeStyle" value="official" />
<preference name="GradlePluginKotlinEnabled" value="true"/>
<preference name="GradlePluginKotlinCodeStyle" value="official"/>
<preference name="AndroidXEnabled" value="true"/>
</config-file>

<source-file src="src/android/AES.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/IntentRequest.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/IntentRequestQueue.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/IntentRequestType.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/RSA.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/SecureStorage.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/SharedPreferencesHandler.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/TransitionValue.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/EncryptionExecutor.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/DecryptionExecutor.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/ExecutorResult.java" target-dir="src/com/crypho/plugins/" />
<source-file src="src/android/ExecutorResultType.java" target-dir="src/com/crypho/plugins/" />

<framework src="src/android/build.gradle" custom="true" type="gradleReference" />

<source-file src="src/android/AES.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/IntentRequest.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/IntentRequestQueue.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/IntentRequestType.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/RSA.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/SecureStorage.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/SharedPreferencesHandler.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/TransitionValue.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/EncryptionExecutor.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/DecryptionExecutor.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/ExecutorResult.java" target-dir="src/com/crypho/plugins/"/>
<source-file src="src/android/ExecutorResultType.java" target-dir="src/com/crypho/plugins/"/>
<framework src="src/android/build.gradle" custom="true" type="gradleReference"/>
</platform>

<platform name="browser">
<config-file target="config.xml" parent="/*">
<feature name="SecureStorage">
<param name="browser-package" value="SecureStorage" />
<param name="browser-package" value="SecureStorage"/>
</feature>
</config-file>
</platform>

<platform name="windows">
<js-module src="src/windows/SecureStorage.js" name="SecureStorageWindowsImpl">
<runs />
<runs/>
</js-module>
</platform>

</plugin>
</plugin>
Loading
Loading