react-native-jieba 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/Jieba.podspec +30 -0
  2. package/LICENSE +20 -0
  3. package/README.md +103 -0
  4. package/android/CMakeLists.txt +29 -0
  5. package/android/build.gradle +60 -0
  6. package/android/generated/java/com/jieba/NativeJiebaAndroidHelperSpec.java +38 -0
  7. package/android/generated/java/com/jieba/NativeJiebaSpec.java +74 -0
  8. package/android/generated/jni/CMakeLists.txt +28 -0
  9. package/android/generated/jni/JiebaSpec-generated.cpp +98 -0
  10. package/android/generated/jni/JiebaSpec.h +39 -0
  11. package/android/generated/jni/react/renderer/components/JiebaSpec/JiebaSpecJSI.h +144 -0
  12. package/android/src/main/AndroidManifest.xml +2 -0
  13. package/android/src/main/java/com/jieba/JiebaAndroidHelperModule.kt +48 -0
  14. package/android/src/main/java/com/jieba/JiebaPackage.kt +32 -0
  15. package/cpp/JiebaImpl.cpp +154 -0
  16. package/cpp/JiebaImpl.h +37 -0
  17. package/cpp/cppjieba/LICENSE +20 -0
  18. package/cpp/cppjieba/deps/limonp/LICENSE +20 -0
  19. package/cpp/cppjieba/deps/limonp/include/limonp/ArgvContext.hpp +70 -0
  20. package/cpp/cppjieba/deps/limonp/include/limonp/Closure.hpp +206 -0
  21. package/cpp/cppjieba/deps/limonp/include/limonp/Colors.hpp +31 -0
  22. package/cpp/cppjieba/deps/limonp/include/limonp/Condition.hpp +38 -0
  23. package/cpp/cppjieba/deps/limonp/include/limonp/Config.hpp +103 -0
  24. package/cpp/cppjieba/deps/limonp/include/limonp/ForcePublic.hpp +7 -0
  25. package/cpp/cppjieba/deps/limonp/include/limonp/LocalVector.hpp +139 -0
  26. package/cpp/cppjieba/deps/limonp/include/limonp/Logging.hpp +92 -0
  27. package/cpp/cppjieba/deps/limonp/include/limonp/NonCopyable.hpp +21 -0
  28. package/cpp/cppjieba/deps/limonp/include/limonp/StdExtension.hpp +157 -0
  29. package/cpp/cppjieba/deps/limonp/include/limonp/StringUtil.hpp +386 -0
  30. package/cpp/cppjieba/dict/hmm_model.utf8 +34 -0
  31. package/cpp/cppjieba/dict/idf.utf8 +258826 -0
  32. package/cpp/cppjieba/dict/jieba.dict.utf8 +348982 -0
  33. package/cpp/cppjieba/dict/stop_words.utf8 +1534 -0
  34. package/cpp/cppjieba/dict/user.dict.utf8 +3 -0
  35. package/cpp/cppjieba/include/cppjieba/DictTrie.hpp +322 -0
  36. package/cpp/cppjieba/include/cppjieba/FullSegment.hpp +94 -0
  37. package/cpp/cppjieba/include/cppjieba/HMMModel.hpp +131 -0
  38. package/cpp/cppjieba/include/cppjieba/HMMSegment.hpp +211 -0
  39. package/cpp/cppjieba/include/cppjieba/Jieba.hpp +169 -0
  40. package/cpp/cppjieba/include/cppjieba/KeywordExtractor.hpp +152 -0
  41. package/cpp/cppjieba/include/cppjieba/MPSegment.hpp +137 -0
  42. package/cpp/cppjieba/include/cppjieba/MixSegment.hpp +109 -0
  43. package/cpp/cppjieba/include/cppjieba/PosTagger.hpp +77 -0
  44. package/cpp/cppjieba/include/cppjieba/PreFilter.hpp +54 -0
  45. package/cpp/cppjieba/include/cppjieba/QuerySegment.hpp +89 -0
  46. package/cpp/cppjieba/include/cppjieba/SegmentBase.hpp +46 -0
  47. package/cpp/cppjieba/include/cppjieba/SegmentTagged.hpp +23 -0
  48. package/cpp/cppjieba/include/cppjieba/TextRankExtractor.hpp +192 -0
  49. package/cpp/cppjieba/include/cppjieba/Trie.hpp +200 -0
  50. package/cpp/cppjieba/include/cppjieba/Unicode.hpp +231 -0
  51. package/cpp/cppjieba/include/cppjieba/UnicodeFile.hpp +68 -0
  52. package/ios/OnLoad.mm +35 -0
  53. package/ios/generated/ReactCodegen/JiebaSpec/JiebaSpec-generated.mm +126 -0
  54. package/ios/generated/ReactCodegen/JiebaSpec/JiebaSpec.h +103 -0
  55. package/ios/generated/ReactCodegen/JiebaSpecJSI.h +144 -0
  56. package/lib/module/NativeJieba.js +5 -0
  57. package/lib/module/NativeJieba.js.map +1 -0
  58. package/lib/module/NativeJiebaAndroidHelper.js +5 -0
  59. package/lib/module/NativeJiebaAndroidHelper.js.map +1 -0
  60. package/lib/module/index.js +5 -0
  61. package/lib/module/index.js.map +1 -0
  62. package/lib/module/init.js +24 -0
  63. package/lib/module/init.js.map +1 -0
  64. package/lib/module/jieba.js +31 -0
  65. package/lib/module/jieba.js.map +1 -0
  66. package/lib/module/package.json +1 -0
  67. package/lib/typescript/package.json +1 -0
  68. package/lib/typescript/src/NativeJieba.d.ts +22 -0
  69. package/lib/typescript/src/NativeJieba.d.ts.map +1 -0
  70. package/lib/typescript/src/NativeJiebaAndroidHelper.d.ts +7 -0
  71. package/lib/typescript/src/NativeJiebaAndroidHelper.d.ts.map +1 -0
  72. package/lib/typescript/src/index.d.ts +4 -0
  73. package/lib/typescript/src/index.d.ts.map +1 -0
  74. package/lib/typescript/src/init.d.ts +2 -0
  75. package/lib/typescript/src/init.d.ts.map +1 -0
  76. package/lib/typescript/src/jieba.d.ts +18 -0
  77. package/lib/typescript/src/jieba.d.ts.map +1 -0
  78. package/package.json +197 -0
  79. package/react-native.config.js +17 -0
  80. package/src/NativeJieba.ts +19 -0
  81. package/src/NativeJiebaAndroidHelper.ts +7 -0
  82. package/src/index.tsx +13 -0
  83. package/src/init.ts +25 -0
  84. package/src/jieba.ts +43 -0
@@ -0,0 +1,103 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleObjCpp
8
+ *
9
+ * We create an umbrella header (and corresponding implementation) here since
10
+ * Cxx compilation in BUCK has a limitation: source-code producing genrule()s
11
+ * must have a single output. More files => more genrule()s => slower builds.
12
+ */
13
+
14
+ #ifndef __cplusplus
15
+ #error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
16
+ #endif
17
+
18
+ // Avoid multiple includes of JiebaSpec symbols
19
+ #ifndef JiebaSpec_H
20
+ #define JiebaSpec_H
21
+
22
+ #import <Foundation/Foundation.h>
23
+ #import <RCTRequired/RCTRequired.h>
24
+ #import <RCTTypeSafety/RCTConvertHelpers.h>
25
+ #import <RCTTypeSafety/RCTTypedModuleConstants.h>
26
+ #import <React/RCTBridgeModule.h>
27
+ #import <React/RCTCxxConvert.h>
28
+ #import <React/RCTManagedPointer.h>
29
+ #import <ReactCommon/RCTTurboModule.h>
30
+ #import <optional>
31
+ #import <vector>
32
+
33
+
34
+ NS_ASSUME_NONNULL_BEGIN
35
+
36
+ @protocol NativeJiebaSpec <RCTBridgeModule, RCTTurboModule>
37
+
38
+ - (void)setDictPath:(NSString *)path;
39
+ - (NSArray<NSString *> *)cut:(NSString *)sentence
40
+ hmm:(BOOL)hmm;
41
+ - (NSArray<NSString *> *)cutAll:(NSString *)sentence;
42
+ - (NSArray<NSString *> *)cutForSearch:(NSString *)sentence
43
+ hmm:(BOOL)hmm;
44
+ - (NSArray<NSString *> *)cutHMM:(NSString *)sentence;
45
+ - (NSArray<NSString *> *)cutSmall:(NSString *)sentence
46
+ maxWordLen:(double)maxWordLen;
47
+ - (NSArray<NSDictionary *> *)tag:(NSString *)sentence;
48
+ - (NSArray<NSDictionary *> *)extract:(NSString *)sentence
49
+ topK:(double)topK;
50
+ - (NSNumber *)insertUserWord:(NSString *)word
51
+ tag:(NSString *)tag;
52
+ - (NSNumber *)find:(NSString *)word;
53
+
54
+ @end
55
+
56
+ @interface NativeJiebaSpecBase : NSObject {
57
+ @protected
58
+ facebook::react::EventEmitterCallback _eventEmitterCallback;
59
+ }
60
+ - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;
61
+
62
+
63
+ @end
64
+
65
+ namespace facebook::react {
66
+ /**
67
+ * ObjC++ class for module 'NativeJieba'
68
+ */
69
+ class JSI_EXPORT NativeJiebaSpecJSI : public ObjCTurboModule {
70
+ public:
71
+ NativeJiebaSpecJSI(const ObjCTurboModule::InitParams &params);
72
+ };
73
+ } // namespace facebook::react
74
+
75
+ @protocol NativeJiebaAndroidHelperSpec <RCTBridgeModule, RCTTurboModule>
76
+
77
+ - (void)prepareDictDir:(RCTPromiseResolveBlock)resolve
78
+ reject:(RCTPromiseRejectBlock)reject;
79
+
80
+ @end
81
+
82
+ @interface NativeJiebaAndroidHelperSpecBase : NSObject {
83
+ @protected
84
+ facebook::react::EventEmitterCallback _eventEmitterCallback;
85
+ }
86
+ - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;
87
+
88
+
89
+ @end
90
+
91
+ namespace facebook::react {
92
+ /**
93
+ * ObjC++ class for module 'NativeJiebaAndroidHelper'
94
+ */
95
+ class JSI_EXPORT NativeJiebaAndroidHelperSpecJSI : public ObjCTurboModule {
96
+ public:
97
+ NativeJiebaAndroidHelperSpecJSI(const ObjCTurboModule::InitParams &params);
98
+ };
99
+ } // namespace facebook::react
100
+
101
+
102
+ NS_ASSUME_NONNULL_END
103
+ #endif // JiebaSpec_H
@@ -0,0 +1,144 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GenerateModuleH.js
8
+ */
9
+
10
+ #pragma once
11
+
12
+ #include <ReactCommon/TurboModule.h>
13
+ #include <react/bridging/Bridging.h>
14
+
15
+ namespace facebook::react {
16
+
17
+
18
+ template <typename T>
19
+ class JSI_EXPORT NativeJiebaCxxSpec : public TurboModule {
20
+ public:
21
+ static constexpr std::string_view kModuleName = "Jieba";
22
+
23
+ protected:
24
+ NativeJiebaCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeJiebaCxxSpec::kModuleName}, jsInvoker) {
25
+ methodMap_["setDictPath"] = MethodMetadata {.argCount = 1, .invoker = __setDictPath};
26
+ methodMap_["cut"] = MethodMetadata {.argCount = 2, .invoker = __cut};
27
+ methodMap_["cutAll"] = MethodMetadata {.argCount = 1, .invoker = __cutAll};
28
+ methodMap_["cutForSearch"] = MethodMetadata {.argCount = 2, .invoker = __cutForSearch};
29
+ methodMap_["cutHMM"] = MethodMetadata {.argCount = 1, .invoker = __cutHMM};
30
+ methodMap_["cutSmall"] = MethodMetadata {.argCount = 2, .invoker = __cutSmall};
31
+ methodMap_["tag"] = MethodMetadata {.argCount = 1, .invoker = __tag};
32
+ methodMap_["extract"] = MethodMetadata {.argCount = 2, .invoker = __extract};
33
+ methodMap_["insertUserWord"] = MethodMetadata {.argCount = 2, .invoker = __insertUserWord};
34
+ methodMap_["find"] = MethodMetadata {.argCount = 1, .invoker = __find};
35
+ }
36
+
37
+ private:
38
+ static jsi::Value __setDictPath(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
39
+ static_assert(
40
+ bridging::getParameterCount(&T::setDictPath) == 2,
41
+ "Expected setDictPath(...) to have 2 parameters");
42
+ bridging::callFromJs<void>(rt, &T::setDictPath, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
43
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
44
+ }
45
+
46
+ static jsi::Value __cut(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
47
+ static_assert(
48
+ bridging::getParameterCount(&T::cut) == 3,
49
+ "Expected cut(...) to have 3 parameters");
50
+ return bridging::callFromJs<jsi::Array>(rt, &T::cut, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
51
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
52
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool());
53
+ }
54
+
55
+ static jsi::Value __cutAll(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
56
+ static_assert(
57
+ bridging::getParameterCount(&T::cutAll) == 2,
58
+ "Expected cutAll(...) to have 2 parameters");
59
+ return bridging::callFromJs<jsi::Array>(rt, &T::cutAll, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
60
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
61
+ }
62
+
63
+ static jsi::Value __cutForSearch(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
64
+ static_assert(
65
+ bridging::getParameterCount(&T::cutForSearch) == 3,
66
+ "Expected cutForSearch(...) to have 3 parameters");
67
+ return bridging::callFromJs<jsi::Array>(rt, &T::cutForSearch, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
68
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
69
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool());
70
+ }
71
+
72
+ static jsi::Value __cutHMM(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
73
+ static_assert(
74
+ bridging::getParameterCount(&T::cutHMM) == 2,
75
+ "Expected cutHMM(...) to have 2 parameters");
76
+ return bridging::callFromJs<jsi::Array>(rt, &T::cutHMM, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
77
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
78
+ }
79
+
80
+ static jsi::Value __cutSmall(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
81
+ static_assert(
82
+ bridging::getParameterCount(&T::cutSmall) == 3,
83
+ "Expected cutSmall(...) to have 3 parameters");
84
+ return bridging::callFromJs<jsi::Array>(rt, &T::cutSmall, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
85
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
86
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber());
87
+ }
88
+
89
+ static jsi::Value __tag(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
90
+ static_assert(
91
+ bridging::getParameterCount(&T::tag) == 2,
92
+ "Expected tag(...) to have 2 parameters");
93
+ return bridging::callFromJs<jsi::Array>(rt, &T::tag, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
94
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
95
+ }
96
+
97
+ static jsi::Value __extract(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
98
+ static_assert(
99
+ bridging::getParameterCount(&T::extract) == 3,
100
+ "Expected extract(...) to have 3 parameters");
101
+ return bridging::callFromJs<jsi::Array>(rt, &T::extract, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
102
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
103
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber());
104
+ }
105
+
106
+ static jsi::Value __insertUserWord(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
107
+ static_assert(
108
+ bridging::getParameterCount(&T::insertUserWord) == 3,
109
+ "Expected insertUserWord(...) to have 3 parameters");
110
+ return bridging::callFromJs<bool>(rt, &T::insertUserWord, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
111
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
112
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt));
113
+ }
114
+
115
+ static jsi::Value __find(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
116
+ static_assert(
117
+ bridging::getParameterCount(&T::find) == 2,
118
+ "Expected find(...) to have 2 parameters");
119
+ return bridging::callFromJs<bool>(rt, &T::find, static_cast<NativeJiebaCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
120
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
121
+ }
122
+ };
123
+
124
+
125
+ template <typename T>
126
+ class JSI_EXPORT NativeJiebaAndroidHelperCxxSpec : public TurboModule {
127
+ public:
128
+ static constexpr std::string_view kModuleName = "JiebaAndroidHelper";
129
+
130
+ protected:
131
+ NativeJiebaAndroidHelperCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeJiebaAndroidHelperCxxSpec::kModuleName}, jsInvoker) {
132
+ methodMap_["prepareDictDir"] = MethodMetadata {.argCount = 0, .invoker = __prepareDictDir};
133
+ }
134
+
135
+ private:
136
+ static jsi::Value __prepareDictDir(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
137
+ static_assert(
138
+ bridging::getParameterCount(&T::prepareDictDir) == 1,
139
+ "Expected prepareDictDir(...) to have 1 parameters");
140
+ return bridging::callFromJs<jsi::Value>(rt, &T::prepareDictDir, static_cast<NativeJiebaAndroidHelperCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
141
+ }
142
+ };
143
+
144
+ } // namespace facebook::react
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.getEnforcing('Jieba');
5
+ //# sourceMappingURL=NativeJieba.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeJieba.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAkBpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,OAAO,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.get('JiebaAndroidHelper');
5
+ //# sourceMappingURL=NativeJiebaAndroidHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../src","sources":["NativeJiebaAndroidHelper.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AAMpE,eAAeA,mBAAmB,CAACC,GAAG,CAAO,oBAAoB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export { cut, cutAll, cutForSearch, cutHMM, cutSmall, tag, extract, insertUserWord, find } from "./jieba.js";
4
+ export { initJieba } from "./init.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cut","cutAll","cutForSearch","cutHMM","cutSmall","tag","extract","insertUserWord","find","initJieba"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SACEA,GAAG,EACHC,MAAM,EACNC,YAAY,EACZC,MAAM,EACNC,QAAQ,EACRC,GAAG,EACHC,OAAO,EACPC,cAAc,EACdC,IAAI,QACC,YAAS;AAEhB,SAASC,SAAS,QAAQ,WAAQ","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ import { Platform } from 'react-native';
4
+ import Jieba from "./NativeJieba.js";
5
+ import JiebaAndroidHelper from "./NativeJiebaAndroidHelper.js";
6
+ let initPromise = null;
7
+ export function initJieba() {
8
+ if (initPromise) return initPromise;
9
+ initPromise = (async () => {
10
+ if (Platform.OS === 'android') {
11
+ if (!JiebaAndroidHelper) {
12
+ throw new Error('react-native-jieba: JiebaAndroidHelper native module is missing.');
13
+ }
14
+ const path = await JiebaAndroidHelper.prepareDictDir();
15
+ Jieba.setDictPath(path);
16
+ }
17
+ // iOS: OnLoad.mm already configured the dict path from the bundle.
18
+ })().catch(err => {
19
+ initPromise = null;
20
+ throw err;
21
+ });
22
+ return initPromise;
23
+ }
24
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","Jieba","JiebaAndroidHelper","initPromise","initJieba","OS","Error","path","prepareDictDir","setDictPath","catch","err"],"sourceRoot":"../../src","sources":["init.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,KAAK,MAAM,kBAAe;AACjC,OAAOC,kBAAkB,MAAM,+BAA4B;AAE3D,IAAIC,WAAiC,GAAG,IAAI;AAE5C,OAAO,SAASC,SAASA,CAAA,EAAkB;EACzC,IAAID,WAAW,EAAE,OAAOA,WAAW;EACnCA,WAAW,GAAG,CAAC,YAAY;IACzB,IAAIH,QAAQ,CAACK,EAAE,KAAK,SAAS,EAAE;MAC7B,IAAI,CAACH,kBAAkB,EAAE;QACvB,MAAM,IAAII,KAAK,CACb,kEACF,CAAC;MACH;MACA,MAAMC,IAAI,GAAG,MAAML,kBAAkB,CAACM,cAAc,CAAC,CAAC;MACtDP,KAAK,CAACQ,WAAW,CAACF,IAAI,CAAC;IACzB;IACA;EACF,CAAC,EAAE,CAAC,CAACG,KAAK,CAAEC,GAAG,IAAK;IAClBR,WAAW,GAAG,IAAI;IAClB,MAAMQ,GAAG;EACX,CAAC,CAAC;EACF,OAAOR,WAAW;AACpB","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ import Jieba from "./NativeJieba.js";
4
+ export function cut(sentence, hmm = true) {
5
+ return Jieba.cut(sentence, hmm);
6
+ }
7
+ export function cutAll(sentence) {
8
+ return Jieba.cutAll(sentence);
9
+ }
10
+ export function cutForSearch(sentence, hmm = true) {
11
+ return Jieba.cutForSearch(sentence, hmm);
12
+ }
13
+ export function cutHMM(sentence) {
14
+ return Jieba.cutHMM(sentence);
15
+ }
16
+ export function cutSmall(sentence, maxWordLen) {
17
+ return Jieba.cutSmall(sentence, maxWordLen);
18
+ }
19
+ export function tag(sentence) {
20
+ return Jieba.tag(sentence);
21
+ }
22
+ export function extract(sentence, topK = 5) {
23
+ return Jieba.extract(sentence, topK);
24
+ }
25
+ export function insertUserWord(word, tag = '') {
26
+ return Jieba.insertUserWord(word, tag);
27
+ }
28
+ export function find(word) {
29
+ return Jieba.find(word);
30
+ }
31
+ //# sourceMappingURL=jieba.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Jieba","cut","sentence","hmm","cutAll","cutForSearch","cutHMM","cutSmall","maxWordLen","tag","extract","topK","insertUserWord","word","find"],"sourceRoot":"../../src","sources":["jieba.ts"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,kBAAe;AAKjC,OAAO,SAASC,GAAGA,CAACC,QAAgB,EAAEC,GAAY,GAAG,IAAI,EAAY;EACnE,OAAOH,KAAK,CAACC,GAAG,CAACC,QAAQ,EAAEC,GAAG,CAAC;AACjC;AAEA,OAAO,SAASC,MAAMA,CAACF,QAAgB,EAAY;EACjD,OAAOF,KAAK,CAACI,MAAM,CAACF,QAAQ,CAAC;AAC/B;AAEA,OAAO,SAASG,YAAYA,CAC1BH,QAAgB,EAChBC,GAAY,GAAG,IAAI,EACT;EACV,OAAOH,KAAK,CAACK,YAAY,CAACH,QAAQ,EAAEC,GAAG,CAAC;AAC1C;AAEA,OAAO,SAASG,MAAMA,CAACJ,QAAgB,EAAY;EACjD,OAAOF,KAAK,CAACM,MAAM,CAACJ,QAAQ,CAAC;AAC/B;AAEA,OAAO,SAASK,QAAQA,CAACL,QAAgB,EAAEM,UAAkB,EAAY;EACvE,OAAOR,KAAK,CAACO,QAAQ,CAACL,QAAQ,EAAEM,UAAU,CAAC;AAC7C;AAEA,OAAO,SAASC,GAAGA,CAACP,QAAgB,EAAY;EAC9C,OAAOF,KAAK,CAACS,GAAG,CAACP,QAAQ,CAAC;AAC5B;AAEA,OAAO,SAASQ,OAAOA,CAACR,QAAgB,EAAES,IAAY,GAAG,CAAC,EAAa;EACrE,OAAOX,KAAK,CAACU,OAAO,CAACR,QAAQ,EAAES,IAAI,CAAC;AACtC;AAEA,OAAO,SAASC,cAAcA,CAACC,IAAY,EAAEJ,GAAW,GAAG,EAAE,EAAW;EACtE,OAAOT,KAAK,CAACY,cAAc,CAACC,IAAI,EAAEJ,GAAG,CAAC;AACxC;AAEA,OAAO,SAASK,IAAIA,CAACD,IAAY,EAAW;EAC1C,OAAOb,KAAK,CAACc,IAAI,CAACD,IAAI,CAAC;AACzB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,22 @@
1
+ import { type TurboModule } from 'react-native';
2
+ export interface Spec extends TurboModule {
3
+ setDictPath(path: string): void;
4
+ cut(sentence: string, hmm: boolean): string[];
5
+ cutAll(sentence: string): string[];
6
+ cutForSearch(sentence: string, hmm: boolean): string[];
7
+ cutHMM(sentence: string): string[];
8
+ cutSmall(sentence: string, maxWordLen: number): string[];
9
+ tag(sentence: string): Array<{
10
+ word: string;
11
+ tag: string;
12
+ }>;
13
+ extract(sentence: string, topK: number): Array<{
14
+ word: string;
15
+ weight: number;
16
+ }>;
17
+ insertUserWord(word: string, tag: string): boolean;
18
+ find(word: string): boolean;
19
+ }
20
+ declare const _default: Spec;
21
+ export default _default;
22
+ //# sourceMappingURL=NativeJieba.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeJieba.d.ts","sourceRoot":"","sources":["../../../src/NativeJieba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC9C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IACvD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;;AAED,wBAA+D"}
@@ -0,0 +1,7 @@
1
+ import { type TurboModule } from 'react-native';
2
+ export interface Spec extends TurboModule {
3
+ prepareDictDir(): Promise<string>;
4
+ }
5
+ declare const _default: Spec | null | undefined;
6
+ export default _default;
7
+ //# sourceMappingURL=NativeJiebaAndroidHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeJiebaAndroidHelper.d.ts","sourceRoot":"","sources":["../../../src/NativeJiebaAndroidHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;;AAED,wBAAmE"}
@@ -0,0 +1,4 @@
1
+ export { cut, cutAll, cutForSearch, cutHMM, cutSmall, tag, extract, insertUserWord, find, } from './jieba';
2
+ export type { Tagged, Keyword } from './jieba';
3
+ export { initJieba } from './init';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,MAAM,EACN,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,GAAG,EACH,OAAO,EACP,cAAc,EACd,IAAI,GACL,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function initJieba(): Promise<void>;
2
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/init.ts"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBzC"}
@@ -0,0 +1,18 @@
1
+ export type Tagged = {
2
+ word: string;
3
+ tag: string;
4
+ };
5
+ export type Keyword = {
6
+ word: string;
7
+ weight: number;
8
+ };
9
+ export declare function cut(sentence: string, hmm?: boolean): string[];
10
+ export declare function cutAll(sentence: string): string[];
11
+ export declare function cutForSearch(sentence: string, hmm?: boolean): string[];
12
+ export declare function cutHMM(sentence: string): string[];
13
+ export declare function cutSmall(sentence: string, maxWordLen: number): string[];
14
+ export declare function tag(sentence: string): Tagged[];
15
+ export declare function extract(sentence: string, topK?: number): Keyword[];
16
+ export declare function insertUserWord(word: string, tag?: string): boolean;
17
+ export declare function find(word: string): boolean;
18
+ //# sourceMappingURL=jieba.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jieba.d.ts","sourceRoot":"","sources":["../../../src/jieba.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,wBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,OAAc,GAAG,MAAM,EAAE,CAEnE;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjD;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,OAAc,GAClB,MAAM,EAAE,CAEV;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvE;AAED,wBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9C;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,EAAE,CAErE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAW,GAAG,OAAO,CAEtE;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1C"}
package/package.json ADDED
@@ -0,0 +1,197 @@
1
+ {
2
+ "name": "react-native-jieba",
3
+ "version": "0.1.0",
4
+ "description": "Native Chinese text segmentation for React Native, powered by cppjieba.",
5
+ "main": "./lib/module/index.js",
6
+ "types": "./lib/typescript/src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "source": "./src/index.tsx",
10
+ "types": "./lib/typescript/src/index.d.ts",
11
+ "default": "./lib/module/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "files": [
16
+ "src",
17
+ "lib",
18
+ "android/build.gradle",
19
+ "android/CMakeLists.txt",
20
+ "android/generated",
21
+ "android/src",
22
+ "ios/OnLoad.mm",
23
+ "ios/generated",
24
+ "cpp/JiebaImpl.h",
25
+ "cpp/JiebaImpl.cpp",
26
+ "cpp/cppjieba/LICENSE",
27
+ "cpp/cppjieba/include/cppjieba",
28
+ "cpp/cppjieba/deps/limonp/LICENSE",
29
+ "cpp/cppjieba/deps/limonp/include/limonp",
30
+ "cpp/cppjieba/dict/jieba.dict.utf8",
31
+ "cpp/cppjieba/dict/hmm_model.utf8",
32
+ "cpp/cppjieba/dict/idf.utf8",
33
+ "cpp/cppjieba/dict/stop_words.utf8",
34
+ "cpp/cppjieba/dict/user.dict.utf8",
35
+ "*.podspec",
36
+ "react-native.config.js",
37
+ "!**/__tests__",
38
+ "!**/__fixtures__",
39
+ "!**/__mocks__",
40
+ "!**/.*"
41
+ ],
42
+ "scripts": {
43
+ "example": "yarn workspace react-native-jieba-example",
44
+ "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
45
+ "prepare": "bob build",
46
+ "typecheck": "tsc",
47
+ "lint": "eslint \"**/*.{js,ts,tsx}\"",
48
+ "test": "jest",
49
+ "release": "release-it --only-version",
50
+ "web": "vite",
51
+ "build:web": "vite build"
52
+ },
53
+ "keywords": [
54
+ "react-native",
55
+ "ios",
56
+ "android",
57
+ "turbo-module",
58
+ "jieba",
59
+ "cppjieba",
60
+ "chinese",
61
+ "segmentation",
62
+ "tokenizer",
63
+ "nlp"
64
+ ],
65
+ "repository": {
66
+ "type": "git",
67
+ "url": "git+https://github.com/leonsilicon/react-native-jieba.git"
68
+ },
69
+ "author": "Leon Si <leon@leonsilicon.com> (https://github.com/leonsilicon)",
70
+ "license": "MIT",
71
+ "bugs": {
72
+ "url": "https://github.com/leonsilicon/react-native-jieba/issues"
73
+ },
74
+ "homepage": "https://github.com/leonsilicon/react-native-jieba#readme",
75
+ "publishConfig": {
76
+ "registry": "https://registry.npmjs.org/"
77
+ },
78
+ "devDependencies": {
79
+ "@commitlint/config-conventional": "^20.5.0",
80
+ "@eslint/compat": "^2.0.3",
81
+ "@eslint/eslintrc": "^3.3.5",
82
+ "@eslint/js": "^10.0.1",
83
+ "@jest/globals": "^30.0.0",
84
+ "@react-native-community/cli": "20.1.0",
85
+ "@react-native/babel-preset": "0.85.0",
86
+ "@react-native/eslint-config": "0.85.0",
87
+ "@react-native/jest-preset": "0.85.0",
88
+ "@release-it/conventional-changelog": "^10.0.6",
89
+ "@types/react": "^19.2.0",
90
+ "commitlint": "^20.5.0",
91
+ "del-cli": "^7.0.0",
92
+ "eslint": "^9.39.4",
93
+ "eslint-config-prettier": "^10.1.8",
94
+ "eslint-plugin-ft-flow": "^3.0.11",
95
+ "eslint-plugin-prettier": "^5.5.5",
96
+ "jest": "^30.3.0",
97
+ "lefthook": "^2.1.4",
98
+ "prettier": "^3.8.1",
99
+ "react": "19.2.3",
100
+ "react-native": "0.85.0",
101
+ "react-native-builder-bob": "^0.41.0",
102
+ "react-native-web": "~0.21.1",
103
+ "release-it": "^19.2.4",
104
+ "turbo": "^2.8.21",
105
+ "typescript": "^6.0.2"
106
+ },
107
+ "peerDependencies": {
108
+ "react": ">=18.0.0",
109
+ "react-native": ">=0.85.0"
110
+ },
111
+ "workspaces": [
112
+ "example"
113
+ ],
114
+ "packageManager": "yarn@4.11.0",
115
+ "react-native-builder-bob": {
116
+ "source": "src",
117
+ "output": "lib",
118
+ "targets": [
119
+ [
120
+ "module",
121
+ {
122
+ "esm": true
123
+ }
124
+ ],
125
+ [
126
+ "typescript",
127
+ {
128
+ "project": "tsconfig.build.json"
129
+ }
130
+ ],
131
+ "codegen"
132
+ ]
133
+ },
134
+ "codegenConfig": {
135
+ "name": "JiebaSpec",
136
+ "type": "modules",
137
+ "jsSrcsDir": "src",
138
+ "outputDir": {
139
+ "ios": "ios/generated",
140
+ "android": "android/generated"
141
+ },
142
+ "android": {
143
+ "javaPackageName": "com.jieba"
144
+ },
145
+ "includesGeneratedCode": true
146
+ },
147
+ "prettier": {
148
+ "quoteProps": "consistent",
149
+ "singleQuote": true,
150
+ "tabWidth": 2,
151
+ "trailingComma": "es5",
152
+ "useTabs": false
153
+ },
154
+ "jest": {
155
+ "preset": "@react-native/jest-preset",
156
+ "modulePathIgnorePatterns": [
157
+ "<rootDir>/example/node_modules",
158
+ "<rootDir>/lib/"
159
+ ]
160
+ },
161
+ "commitlint": {
162
+ "extends": [
163
+ "@commitlint/config-conventional"
164
+ ]
165
+ },
166
+ "release-it": {
167
+ "git": {
168
+ "commitMessage": "chore: release ${version}",
169
+ "tagName": "v${version}"
170
+ },
171
+ "npm": {
172
+ "publish": true
173
+ },
174
+ "github": {
175
+ "release": true
176
+ },
177
+ "plugins": {
178
+ "@release-it/conventional-changelog": {
179
+ "preset": {
180
+ "name": "angular"
181
+ }
182
+ }
183
+ }
184
+ },
185
+ "create-react-native-library": {
186
+ "type": "turbo-module",
187
+ "languages": "cpp",
188
+ "tools": [
189
+ "eslint",
190
+ "jest",
191
+ "lefthook",
192
+ "release-it",
193
+ "vite"
194
+ ],
195
+ "version": "0.62.0"
196
+ }
197
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @type {import('@react-native-community/cli-types').UserDependencyConfig}
3
+ */
4
+ module.exports = {
5
+ dependency: {
6
+ platforms: {
7
+ android: {
8
+ cmakeListsPath: 'generated/jni/CMakeLists.txt',
9
+ cxxModuleCMakeListsModuleName: 'react-native-jieba',
10
+ cxxModuleCMakeListsPath: 'CMakeLists.txt',
11
+ cxxModuleHeaderName: 'JiebaImpl',
12
+ packageImportPath: 'import com.jieba.JiebaPackage;',
13
+ packageInstance: 'new JiebaPackage()',
14
+ },
15
+ },
16
+ },
17
+ };