Skip to content

Commit

Permalink
🔄 synced file(s) with circlefin/w3s-react-native-sdk-internal (#11)
Browse files Browse the repository at this point in the history
  • Loading branch information
superandydong authored May 10, 2024
2 parents 380068d + 15388d1 commit ced2920
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 134 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,3 @@ yarn example android
```bash
yarn example ios
```

Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ class ProgrammablewalletRnSdkModule internal constructor(context: ReactApplicati

@ReactMethod
override fun getDeviceId(): String {
return WalletSdk.getDeviceId(reactContext) ?: "123"
return WalletSdk.getDeviceId(reactContext) ?: ""
}
@ReactMethod
override fun execute(
Expand Down
5 changes: 3 additions & 2 deletions ios/ProgrammablewalletRnSdk.mm
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,13 @@ @implementation ProgrammablewalletRnSdk

- (NSDictionary *)getConstants
{
return @{ @"sdkVersion": [sdk sdkVersion] };
return @{ @"sdkVersion": [sdk sdkVersion],
@"deviceId": [sdk getDeviceId]};
}
- (NSDictionary *)constantsToExport
{
return @{ @"sdkVersion": [sdk sdkVersion],
@"deviceId": [sdk getDeviceId] };
@"deviceId": [sdk getDeviceId]};
}
+ (BOOL)requiresMainQueueSetup
{
Expand Down
24 changes: 7 additions & 17 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@circle-fin/w3s-pw-react-native-sdk",
"version": "1.0.4",
"version": "1.0.6",
"description": "React Native SDK for Circle Programmable Wallet",
"main": "lib/commonjs/index",
"module": "lib/module/index",
Expand All @@ -13,7 +13,7 @@
"android",
"ios",
"*.podspec",
"COPYRIGHT*",
"COPYRIGHT",
"!ios/build",
"!android/build",
"!android/gradle",
Expand All @@ -28,14 +28,13 @@
"scripts": {
"example": "yarn workspace @circle-fin/w3s-pw-react-native-sdk-example",
"test": "jest",
"npm": "npm",
"typecheck": "tsc --noEmit",
"lint": "eslint \"**/*.{js,ts,tsx}\"",
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
"prepare": "bob build",
"release": "release-it",
"pod-install-new": "RCT_NEW_ARCH_ENABLED=1 bundle exec pod install",
"publish:sdk": "npm publish"
"publish:sdk": "npm publish --registry https://registry.npmjs.org/"
},
"keywords": [
"circle",
Expand All @@ -49,14 +48,13 @@
"ios",
"android"
],
"author": "Circle Inc.",
"author": "Circle Internet Financial, LTD.",
"license": "Apache-2.0",
"bugs": {
"url": "https://github.com/circlefin/w3s-react-native-sdk/issues"
},
"homepage": "https://github.com/circlefin/w3s-react-native-sdk#readme",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
},
"devDependencies": {
Expand Down Expand Up @@ -108,26 +106,18 @@
"release-it": {
"git": {
"commitMessage": "chore: release ${version}",
"tagName": "v${version}",
"requireCleanWorkingDir": false,
"push": false,
"commit": false,
"tag": false
"tagName": "v${version}"
},
"npm": {
"publish": false,
"skipChecks": true
"publish": true
},
"github": {
"release": false
"release": true
},
"plugins": {
"@release-it/conventional-changelog": {
"preset": "angular"
}
},
"publishConfig": {
"registry": "https://registry.npmjs.org"
}
},
"eslintConfig": {
Expand Down
15 changes: 9 additions & 6 deletions src/WalletSdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,21 @@ const emitter =
const EVENT_NAME_ON_EVENT = 'CirclePwOnEvent'
const EVENT_NAME_ON_SUCCESS = 'CirclePwOnSuccess'
const EVENT_NAME_ON_ERROR = 'CirclePwOnError'
const USER_AGENT_RN = 'Circle-Programmable-Wallet-SDK-RN'

export const WalletSdk = ((): IWalletSdk => {
const constants = WalletSdkModule.getConstants()
const defaultUserAgentRn = USER_AGENT_RN + '/' + packageJson.version
return {
sdkVersion: {
native: constants.sdkVersion,
rn: packageJson.version,
},
deviceId: WalletSdkModule.getDeviceId() ?? constants.deviceId,
deviceId: Platform.OS === 'ios' ? constants.deviceId : (WalletSdkModule.getDeviceId() ?? constants.deviceId),
init(configuration: Configuration): Promise<void> {
return WalletSdkModule.initSdk(configuration)
const promise = WalletSdkModule.initSdk(configuration)
WalletSdkModule.setCustomUserAgent(defaultUserAgentRn)
return promise
},
setSecurityQuestions(securityQuestions: SecurityQuestion[]): void {
WalletSdkModule.setSecurityQuestions(securityQuestions)
Expand All @@ -74,7 +79,7 @@ export const WalletSdk = ((): IWalletSdk => {
emitter.removeAllListeners(EVENT_NAME_ON_EVENT)
},
getDeviceId(): string {
return WalletSdkModule.getDeviceId()
return Platform.OS === 'ios' ? constants.deviceId : (WalletSdkModule.getDeviceId() ?? constants.deviceId)
},
execute(
userToken: string,
Expand Down Expand Up @@ -166,7 +171,6 @@ export const WalletSdk = ((): IWalletSdk => {
// @ts-ignore
map[key] = newConfigs
}
console.log('IconTextConfigs_map:' + JSON.stringify(map))
WalletSdkModule.setIconTextConfigsMap(map)
} catch (e) {
console.error(e)
Expand All @@ -191,7 +195,6 @@ export const WalletSdk = ((): IWalletSdk => {
// @ts-ignore
map[key] = url
}
console.log('Image_map:' + JSON.stringify(map))
WalletSdkModule.setImageMap(map)
} catch (e) {
console.error(e)
Expand All @@ -204,7 +207,7 @@ export const WalletSdk = ((): IWalletSdk => {
WalletSdkModule.setDebugging(debugging)
},
setCustomUserAgent(userAgent: string): void {
WalletSdkModule.setCustomUserAgent(userAgent)
WalletSdkModule.setCustomUserAgent(defaultUserAgentRn + ' | ' + userAgent)
},
setErrorStringMap(map: Map<ErrorCode, string>): void {
try {
Expand Down
110 changes: 3 additions & 107 deletions tsconfig.build.json
Original file line number Diff line number Diff line change
@@ -1,109 +1,5 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig to read more about this file */

/* Projects */
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */

/* Language and Environment */
"target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */

/* Modules */
"module": "commonjs", /* Specify what module code is generated. */
// "rootDir": "./", /* Specify the root folder within your source files. */
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
"resolveJsonModule": true, /* Enable importing .json files. */
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */

/* JavaScript Support */
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */

/* Emit */
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
// "outDir": "./", /* Specify an output folder for all emitted files. */
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
// "newLine": "crlf", /* Set the newline character for emitting files. */
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */

/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */

/* Type Checking */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */

/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
}
{
"extends": "./tsconfig",
"exclude": ["example"]
}
28 changes: 28 additions & 0 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"compilerOptions": {
"rootDir": ".",
"paths": {
"@circle-fin/w3s-pw-react-native-sdk": ["./src/index"]
},
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"jsx": "react",
"lib": ["esnext"],
"module": "esnext",
"moduleResolution": "node",
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noImplicitUseStrict": false,
"noStrictGenericChecks": false,
"noUncheckedIndexedAccess": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "esnext",
"verbatimModuleSyntax": true
}
}

0 comments on commit ced2920

Please sign in to comment.