Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
73 changes: 60 additions & 13 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,61 @@ on:
permissions:
contents: read

concurrency:
group: codeql-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

env:
XCODE_VERSION: 16.4

jobs:
codeql-scope:
name: Detect CodeQL Scope
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
outputs:
swift_core: ${{ github.event_name != 'pull_request' || steps.core.outputs.swift_core == 'true' }}
swift_wrappers: ${{ github.event_name != 'pull_request' || steps.wrappers.outputs.changes != '[]' }}
swift_components: >-
${{ github.event_name != 'pull_request' &&
'["react-native","expo","expo-onside","flutter","godot"]' ||
steps.wrappers.outputs.changes }}
steps:
- name: Checkout
if: github.event_name == 'pull_request'
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false

- name: Detect Apple core changes
if: github.event_name == 'pull_request'
id: core
uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4
with:
filters: |
swift_core:
- 'packages/apple/**'
- 'libraries/kmp-iap/native/InAppPurchaseBridge/**'

- name: Detect Swift wrapper changes
if: github.event_name == 'pull_request'
id: wrappers
uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4
with:
filters: |
react-native:
- 'libraries/react-native-iap/**'
expo:
- 'libraries/expo-iap/**'
expo-onside:
- 'libraries/expo-iap/**'
flutter:
- 'libraries/flutter_inapp_purchase/**'
godot:
- 'libraries/godot-iap/**'

analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
Expand Down Expand Up @@ -225,6 +276,8 @@ jobs:

analyze-swift:
name: Analyze (swift)
needs: codeql-scope
if: needs.codeql-scope.outputs.swift_core == 'true'
runs-on: macos-15
timeout-minutes: 45
permissions:
Expand Down Expand Up @@ -267,26 +320,20 @@ jobs:

analyze-swift-wrappers:
name: Analyze (swift / ${{ matrix.component }})
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
runs-on: ${{ matrix.runner }}
needs: codeql-scope
if: >-
needs.codeql-scope.outputs.swift_wrappers == 'true' &&
(github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name == github.repository)
runs-on: ${{ (github.event_name == 'pull_request' || matrix.component == 'godot') && 'macos-26' || 'xcode-27' }}
timeout-minutes: 90
permissions:
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
include:
- component: react-native
runner: xcode-27
- component: expo
runner: xcode-27
- component: expo-onside
runner: xcode-27
- component: flutter
runner: xcode-27
- component: godot
runner: macos-26
component: ${{ fromJSON(needs.codeql-scope.outputs.swift_components) }}
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
Expand Down
9 changes: 6 additions & 3 deletions packages/docs/COMMUNITY_RESOURCES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The [Community Resources page](https://openiap.dev/community-resources) is a
curated library of third-party knowledge about OpenIAP and the implementations
built on its specification. The official OpenIAP blog is presented separately
built on its specification. Official OpenIAP updates are presented separately
from this community-maintained collection.

Thank you to every developer, writer, speaker, and team who shares practical
Expand Down Expand Up @@ -53,10 +53,13 @@ these rules:
them.
5. Add accurate language metadata. English is the initial default; future
non-English additions should ship with a visible language filter.
6. Do not add view counts or other metrics that will become stale.
6. Add a verified `publishedAt` date in `YYYY-MM-DD` format. Use the original
publication date when available. For sources that only expose an update or
submission date, set `dateLabel` to `Updated` or `Submitted`.
7. Do not add view counts or other metrics that will become stale.

Before opening a pull request, run the docs format check, typecheck, and build
described in [`README.md`](README.md).

If you prefer to introduce your work before editing the library, share it in
[Show and Tell](https://github.com/hyodotdev/openiap/discussions/categories/show-and-tell).
the [community resources discussion](https://github.com/hyodotdev/openiap/discussions/349).
4 changes: 2 additions & 2 deletions packages/docs/SHOWCASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ are skipped at render time.

## Don't want to send a PR?

Comment on [issue #280](https://github.com/hyodotdev/openiap/issues/280) or
Reply to [discussion #350](https://github.com/hyodotdev/openiap/discussions/350) or
email **hyo@hyo.dev** with your app name, one-liner, logo, store links, and which
library you use — we'll add it for you.

## Removal and updates

Your app is listed only with your permission. To change or remove an entry, open
a PR, comment on issue #280, or email hyo@hyo.dev anytime.
a PR, comment on discussion #350, or email hyo@hyo.dev anytime.
12 changes: 12 additions & 0 deletions packages/docs/src/components/MetaWordmark.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import type { ReactElement } from 'react';

function MetaWordmark(): ReactElement {
return (
<span className="meta-wordmark" role="img" aria-label="Meta">
<img src="/meta.svg" alt="" aria-hidden="true" />
<img src="/meta-txt.svg" alt="" aria-hidden="true" />
</span>
);
}

export default MetaWordmark;
6 changes: 3 additions & 3 deletions packages/docs/src/components/ShowcaseCards.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { SiApple, SiGoogleplay } from 'react-icons/si';
import { Globe } from 'lucide-react';
import type { ShowcaseApp } from '../lib/showcase';

export const SHOWCASE_ISSUE_URL =
'https://github.com/hyodotdev/openiap/issues/280';
export const SHOWCASE_DISCUSSION_URL =
'https://github.com/hyodotdev/openiap/discussions/350';

export const SHOWCASE_GUIDE_URL =
'https://github.com/hyodotdev/openiap/blob/main/packages/docs/SHOWCASE.md';
Expand Down Expand Up @@ -159,7 +159,7 @@ export function ShowcaseSubmitCard() {
Send your app name, icon, and store links — we'll add it here.
</div>
<a
href={SHOWCASE_ISSUE_URL}
href={SHOWCASE_DISCUSSION_URL}
target="_blank"
rel="noreferrer"
style={{
Expand Down
Loading
Loading