1. 16 Sep, 2026 10 commits
    • Javokhir's avatar
      refactor: tighten inline comments across the native bridge · befb2c86
      Javokhir authored
      Keeps the non-obvious rationale (pod naming, repository injection, one-shot
      promise settling, optional guards) and drops restatements of what the code
      already shows.
      befb2c86
    • Javokhir's avatar
      docs: note that sessionId must be a UUID · 954742e1
      Javokhir authored
      Verified against the MyID backend: a non-UUID sessionId is rejected with code
      103 before the SDK UI appears.
      954742e1
    • Javokhir's avatar
      fix(example): pin demo colors so the screen is readable in dark mode · 65bc5a60
      Javokhir authored
      The demo hardcoded light-theme colors with no explicit background, so on a
      device in dark mode the title and input text rendered dark-on-dark.
      65bc5a60
    • Javokhir's avatar
      fix: preserve SDK defaults and make promise settling thread-safe · 44516365
      Javokhir authored
      Three paths overwrote SDK defaults instead of leaving them alone:
      
      - iOS assigned every appearance color unconditionally, so theming one color
        nil-ed the other eleven. MyIdAppearance seeds its own values.
      - An organizationDetails carrying only a logo replaced the whole details object,
        clearing the default call-centre number. It is now forwarded only when the
        caller supplied a field, and each field is assigned individually.
      - An unrecognised enum value called the setter with a guessed default. The guess
        was not always right: the SDK defaults imageFormat to JPEG while the fallback
        substituted PNG. Unknown values now skip the setter.
      
      Android settled a promise through a plain field touched by the JS, UI and
      native-modules threads, giving neither visibility nor an atomic check-then-set;
      a reload racing a start could wedge the module for the rest of the process. It
      is now an AtomicReference claimed with compareAndSet, and the result listener is
      scoped to a flow id so a late duplicate callback cannot settle a newer promise.
      
      iOS gained the invalidate path Android already had, confines its state to the
      main queue, and extends the proxy's lifetime across the settle callback that
      releases it.
      
      Documented defaults corrected against MyIdDefaults: imageFormat is JPEG,
      withSoundGuides is true, distance depends on camera shape, iOS floor is 15.1.
      44516365
    • Javokhir's avatar
      docs: document setup, configuration and platform differences · 7ffb29ca
      Javokhir authored
      Covers the per-build-type Gradle fallback, the central-repository opt-out, the
      arm-only ABI constraint that breaks x86 emulators, and the Android theming
      path, none of which are discoverable from the API surface.
      7ffb29ca
    • Javokhir's avatar
      feat(example): replace demo screen with a real MyID verification flow · 854818e0
      Javokhir authored
      Credentials are entered at runtime instead of hardcoded so the example can be
      shared without leaking a client hash, and the result view renders the returned
      portrait to prove the base64 payload decodes.
      854818e0
    • Javokhir's avatar
      feat(ios): implement MyID turbo module against MyIdSDK 3.1.3 · 1b21f2dd
      Javokhir authored
      ObjC++ flattens the codegen C++ param structs into NSDictionary, since Swift
      cannot see them, and delegates to a Swift layer that owns all SDK interaction.
      
      The pod is named RNMyidSdk rather than MyidSdk: the latter differs from the
      vendor pod MyIdSDK only by case, and on a case-insensitive filesystem the two
      targets share one intermediate build directory, so the generated Swift header
      lands in the vendor's directory and the bridge fails to import it.
      
      MyIdClientDelegate conformance is kept on an internal proxy so it is not
      re-emitted into the generated Swift header, which ObjC++ parses without any
      visibility of MyIdSDK's Swift types.
      1b21f2dd
    • Javokhir's avatar
      feat(android): implement MyID turbo module against capture SDK 3.1.9 · f790805c
      Javokhir authored
      Maps the JS config onto MyIdConfig.Builder, launches the SDK via
      startActivityForResult and settles a single pending promise from the
      activity-result callback.
      
      handleActivityResult does not inspect the request code, so the listener filters
      on its own code first to avoid settling the promise from an unrelated result.
      
      MyID artifacts are not on Maven Central, and a consuming app re-resolves
      transitive dependencies against its own repository set, so the repositories are
      registered on all projects rather than only on this module. An opt-out property
      is provided for apps that manage repositories centrally.
      f790805c
    • Javokhir's avatar
      feat: add typed MyID JS API over codegen turbo module spec · 567d3cbb
      Javokhir authored
      Public surface is a promise-based start({config, iosAppearance}) mirroring the
      MyID Flutter plugin's wire format, with string-union enums, platform-scoped
      JSDoc and a MyIdError carrying the SDK result code.
      
      The codegen spec stays deliberately untyped for enums because codegen cannot
      express string unions; narrowing lives in the public layer only. Keys that are
      undefined are stripped before crossing the bridge so the SDK's own defaults
      survive rather than being overwritten with empty values.
      567d3cbb
    • Javokhir's avatar
      chore: replace demo app with react-native library scaffold · 9d97b218
      Javokhir authored
      Repo becomes the myid-sdk npm package: library at root, RN 0.86.2 vanilla
      example app in example/, Turbo Module codegen enabled, yarn 4 workspace.
      
      The previous demo app targeted MyID SDK 2.x (clientId, withPassportData,
      MyIdBuildMode), an API that no longer exists in 3.x, so it is removed rather
      than migrated. Recoverable via the pre-rewrite tag.
      9d97b218
  2. 16 Oct, 2024 1 commit
  3. 20 Aug, 2024 1 commit
  4. 05 Apr, 2023 2 commits