titanpl 7.0.0-beta → 7.0.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 (185) hide show
  1. package/package.json +2 -6
  2. package/packages/cli/package.json +4 -4
  3. package/packages/core-source/LICENSE +15 -0
  4. package/packages/core-source/README.md +128 -0
  5. package/packages/core-source/V8_SERIALIZATION.md +125 -0
  6. package/packages/core-source/configure.js +50 -0
  7. package/packages/core-source/globals.d.ts +2238 -0
  8. package/packages/core-source/index.d.ts +515 -0
  9. package/packages/core-source/index.js +639 -0
  10. package/packages/core-source/jsconfig.json +12 -0
  11. package/packages/core-source/mkctx.config.json +7 -0
  12. package/packages/core-source/native/Cargo.lock +1559 -0
  13. package/packages/core-source/native/Cargo.toml +30 -0
  14. package/packages/core-source/native/src/crypto_impl.rs +139 -0
  15. package/packages/core-source/native/src/lib.rs +702 -0
  16. package/packages/core-source/native/src/storage_impl.rs +73 -0
  17. package/packages/core-source/native/src/v8_impl.rs +93 -0
  18. package/packages/core-source/package-lock.json +1464 -0
  19. package/packages/core-source/package.json +53 -0
  20. package/packages/core-source/tests/buffer.test.js +78 -0
  21. package/packages/core-source/tests/cookies.test.js +117 -0
  22. package/packages/core-source/tests/crypto.test.js +142 -0
  23. package/packages/core-source/tests/fs.test.js +176 -0
  24. package/packages/core-source/tests/ls.test.js +149 -0
  25. package/packages/core-source/tests/net.test.js +84 -0
  26. package/packages/core-source/tests/os.test.js +81 -0
  27. package/packages/core-source/tests/path.test.js +102 -0
  28. package/packages/core-source/tests/response.test.js +146 -0
  29. package/packages/core-source/tests/session.test.js +110 -0
  30. package/packages/core-source/tests/setup.js +325 -0
  31. package/packages/core-source/tests/time.test.js +57 -0
  32. package/packages/core-source/tests/url.test.js +82 -0
  33. package/packages/core-source/titan-ext.d.ts +2 -0
  34. package/packages/core-source/titan.json +9 -0
  35. package/packages/core-source/vitest.config.js +8 -0
  36. package/packages/engine-darwin-arm64/package.json +1 -1
  37. package/packages/engine-linux-x64/package.json +1 -1
  38. package/packages/engine-win32-x64/bin/titan-server.exe +0 -0
  39. package/packages/engine-win32-x64/package.json +1 -1
  40. package/packages/native/index.d.ts +16 -1
  41. package/packages/native/index.js +6 -0
  42. package/packages/native/package.json +2 -2
  43. package/packages/native/t.native.d.ts +77 -0
  44. package/packages/packet/index.js +94 -102
  45. package/packages/packet/package.json +1 -1
  46. package/packages/route/package.json +1 -1
  47. package/packages/sdk/package.json +1 -1
  48. package/templates/common/_tanfig.json +4 -2
  49. package/templates/extension/package.json +2 -2
  50. package/templates/js/package.json +8 -8
  51. package/templates/rust-js/package.json +5 -5
  52. package/templates/rust-ts/package.json +5 -5
  53. package/templates/ts/package.json +8 -8
  54. package/packages/packet/node_modules/typescript/LICENSE.txt +0 -55
  55. package/packages/packet/node_modules/typescript/README.md +0 -50
  56. package/packages/packet/node_modules/typescript/SECURITY.md +0 -41
  57. package/packages/packet/node_modules/typescript/ThirdPartyNoticeText.txt +0 -193
  58. package/packages/packet/node_modules/typescript/bin/tsc +0 -2
  59. package/packages/packet/node_modules/typescript/bin/tsserver +0 -2
  60. package/packages/packet/node_modules/typescript/lib/_tsc.js +0 -133818
  61. package/packages/packet/node_modules/typescript/lib/_tsserver.js +0 -659
  62. package/packages/packet/node_modules/typescript/lib/_typingsInstaller.js +0 -222
  63. package/packages/packet/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  64. package/packages/packet/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  65. package/packages/packet/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  66. package/packages/packet/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  67. package/packages/packet/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  68. package/packages/packet/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  69. package/packages/packet/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  70. package/packages/packet/node_modules/typescript/lib/lib.d.ts +0 -22
  71. package/packages/packet/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
  72. package/packages/packet/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
  73. package/packages/packet/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
  74. package/packages/packet/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
  75. package/packages/packet/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
  76. package/packages/packet/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
  77. package/packages/packet/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
  78. package/packages/packet/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
  79. package/packages/packet/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
  80. package/packages/packet/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
  81. package/packages/packet/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
  82. package/packages/packet/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
  83. package/packages/packet/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
  84. package/packages/packet/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
  85. package/packages/packet/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
  86. package/packages/packet/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
  87. package/packages/packet/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
  88. package/packages/packet/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
  89. package/packages/packet/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
  90. package/packages/packet/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
  91. package/packages/packet/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
  92. package/packages/packet/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
  93. package/packages/packet/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
  94. package/packages/packet/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
  95. package/packages/packet/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
  96. package/packages/packet/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
  97. package/packages/packet/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
  98. package/packages/packet/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
  99. package/packages/packet/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
  100. package/packages/packet/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
  101. package/packages/packet/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
  102. package/packages/packet/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
  103. package/packages/packet/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
  104. package/packages/packet/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
  105. package/packages/packet/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
  106. package/packages/packet/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
  107. package/packages/packet/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
  108. package/packages/packet/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
  109. package/packages/packet/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
  110. package/packages/packet/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
  111. package/packages/packet/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
  112. package/packages/packet/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
  113. package/packages/packet/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
  114. package/packages/packet/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
  115. package/packages/packet/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
  116. package/packages/packet/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
  117. package/packages/packet/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
  118. package/packages/packet/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
  119. package/packages/packet/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
  120. package/packages/packet/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
  121. package/packages/packet/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
  122. package/packages/packet/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
  123. package/packages/packet/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
  124. package/packages/packet/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
  125. package/packages/packet/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
  126. package/packages/packet/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
  127. package/packages/packet/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
  128. package/packages/packet/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
  129. package/packages/packet/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
  130. package/packages/packet/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
  131. package/packages/packet/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
  132. package/packages/packet/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
  133. package/packages/packet/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
  134. package/packages/packet/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
  135. package/packages/packet/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
  136. package/packages/packet/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
  137. package/packages/packet/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
  138. package/packages/packet/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
  139. package/packages/packet/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
  140. package/packages/packet/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
  141. package/packages/packet/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
  142. package/packages/packet/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
  143. package/packages/packet/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
  144. package/packages/packet/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
  145. package/packages/packet/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
  146. package/packages/packet/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
  147. package/packages/packet/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
  148. package/packages/packet/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
  149. package/packages/packet/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
  150. package/packages/packet/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
  151. package/packages/packet/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
  152. package/packages/packet/node_modules/typescript/lib/lib.es6.d.ts +0 -23
  153. package/packages/packet/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
  154. package/packages/packet/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
  155. package/packages/packet/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
  156. package/packages/packet/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
  157. package/packages/packet/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
  158. package/packages/packet/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
  159. package/packages/packet/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
  160. package/packages/packet/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
  161. package/packages/packet/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
  162. package/packages/packet/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
  163. package/packages/packet/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
  164. package/packages/packet/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
  165. package/packages/packet/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
  166. package/packages/packet/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
  167. package/packages/packet/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
  168. package/packages/packet/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
  169. package/packages/packet/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
  170. package/packages/packet/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  171. package/packages/packet/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  172. package/packages/packet/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  173. package/packages/packet/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  174. package/packages/packet/node_modules/typescript/lib/tsc.js +0 -8
  175. package/packages/packet/node_modules/typescript/lib/tsserver.js +0 -8
  176. package/packages/packet/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
  177. package/packages/packet/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  178. package/packages/packet/node_modules/typescript/lib/typesMap.json +0 -497
  179. package/packages/packet/node_modules/typescript/lib/typescript.d.ts +0 -11437
  180. package/packages/packet/node_modules/typescript/lib/typescript.js +0 -200276
  181. package/packages/packet/node_modules/typescript/lib/typingsInstaller.js +0 -8
  182. package/packages/packet/node_modules/typescript/lib/watchGuard.js +0 -53
  183. package/packages/packet/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
  184. package/packages/packet/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
  185. package/packages/packet/node_modules/typescript/package.json +0 -120
@@ -0,0 +1,73 @@
1
+ use std::collections::HashMap;
2
+ use std::sync::{OnceLock, RwLock};
3
+
4
+
5
+ static STORAGE: OnceLock<RwLock<HashMap<String, String>>> = OnceLock::new();
6
+ static SESSIONS: OnceLock<RwLock<HashMap<String, String>>> = OnceLock::new();
7
+
8
+ fn get_storage() -> &'static RwLock<HashMap<String, String>> {
9
+ STORAGE.get_or_init(|| RwLock::new(HashMap::new()))
10
+ }
11
+
12
+ fn get_sessions() -> &'static RwLock<HashMap<String, String>> {
13
+ SESSIONS.get_or_init(|| RwLock::new(HashMap::new()))
14
+ }
15
+
16
+ // --- Local Storage ---
17
+
18
+ pub fn ls_get(key: &str) -> Option<String> {
19
+ let map = get_storage().read().ok()?;
20
+ map.get(key).cloned()
21
+ }
22
+
23
+ pub fn ls_set(key: &str, value: &str) -> Result<(), String> {
24
+ let mut map = get_storage().write().map_err(|_| "Storage write lock poisoned".to_string())?;
25
+ map.insert(key.to_string(), value.to_string());
26
+ Ok(())
27
+ }
28
+
29
+ pub fn ls_remove(key: &str) -> Result<(), String> {
30
+ let mut map = get_storage().write().map_err(|_| "Storage write lock poisoned".to_string())?;
31
+ map.remove(key);
32
+ Ok(())
33
+ }
34
+
35
+ pub fn ls_clear() -> Result<(), String> {
36
+ let mut map = get_storage().write().map_err(|_| "Storage write lock poisoned".to_string())?;
37
+ map.clear();
38
+ Ok(())
39
+ }
40
+
41
+ pub fn ls_keys() -> Result<Vec<String>, String> {
42
+ let map = get_storage().read().map_err(|_| "Storage read lock poisoned".to_string())?;
43
+ Ok(map.keys().cloned().collect())
44
+ }
45
+
46
+ // --- Sessions ---
47
+
48
+ pub fn session_set(session_id: &str, key: &str, value: &str) -> Result<(), String> {
49
+ let mut map = get_sessions().write().map_err(|_| "Session write lock poisoned".to_string())?;
50
+ let comp_key = format!("{}:{}", session_id, key);
51
+ map.insert(comp_key, value.to_string());
52
+ Ok(())
53
+ }
54
+
55
+ pub fn session_get(session_id: &str, key: &str) -> Option<String> {
56
+ let map = get_sessions().read().ok()?;
57
+ let comp_key = format!("{}:{}", session_id, key);
58
+ map.get(&comp_key).cloned()
59
+ }
60
+
61
+ pub fn session_delete(session_id: &str, key: &str) -> Result<(), String> {
62
+ let mut map = get_sessions().write().map_err(|_| "Session write lock poisoned".to_string())?;
63
+ let comp_key = format!("{}:{}", session_id, key);
64
+ map.remove(&comp_key);
65
+ Ok(())
66
+ }
67
+
68
+ pub fn session_clear(session_id: &str) -> Result<(), String> {
69
+ let mut map = get_sessions().write().map_err(|_| "Session write lock poisoned".to_string())?;
70
+ let prefix = format!("{}:", session_id);
71
+ map.retain(|k, _| !k.starts_with(&prefix));
72
+ Ok(())
73
+ }
@@ -0,0 +1,93 @@
1
+ use v8;
2
+ use v8::ValueSerializerHelper;
3
+ use v8::ValueDeserializerHelper;
4
+
5
+ struct TitanValueSerializerDelegate;
6
+ impl v8::ValueSerializerImpl for TitanValueSerializerDelegate {
7
+ fn throw_data_clone_error<'s>(
8
+ &self,
9
+ scope: &mut v8::HandleScope<'s>,
10
+ message: v8::Local<'s, v8::String>,
11
+ ) {
12
+ let error = v8::Exception::error(scope, message);
13
+ scope.throw_exception(error);
14
+ }
15
+ }
16
+
17
+ struct TitanValueDeserializerDelegate;
18
+ impl v8::ValueDeserializerImpl for TitanValueDeserializerDelegate {}
19
+
20
+ pub fn native_serialize(
21
+ scope: &mut v8::HandleScope,
22
+ args: v8::FunctionCallbackArguments,
23
+ mut retval: v8::ReturnValue,
24
+ ) {
25
+ let value = args.get(0);
26
+ let context = scope.get_current_context();
27
+
28
+ // Create serializer with delegate
29
+ let mut serializer = v8::ValueSerializer::new(scope, Box::new(TitanValueSerializerDelegate));
30
+ serializer.write_header();
31
+
32
+ // Serialize
33
+ match serializer.write_value(context, value) {
34
+ Some(true) => {
35
+ let raw_bytes = serializer.release();
36
+
37
+ // Generate Uint8Array
38
+ let len = raw_bytes.len();
39
+ let unique_bs = v8::ArrayBuffer::new_backing_store_from_boxed_slice(raw_bytes.into_boxed_slice());
40
+ let shared_bs = unique_bs.make_shared();
41
+ let array_buffer = v8::ArrayBuffer::with_backing_store(scope, &shared_bs);
42
+
43
+ if let Some(uint8) = v8::Uint8Array::new(scope, array_buffer, 0, len) {
44
+ retval.set(uint8.into());
45
+ }
46
+ },
47
+ _ => {}
48
+ }
49
+ }
50
+
51
+ pub fn native_deserialize(
52
+ scope: &mut v8::HandleScope,
53
+ args: v8::FunctionCallbackArguments,
54
+ mut retval: v8::ReturnValue,
55
+ ) {
56
+ // Input: Uint8Array
57
+ let arg0 = args.get(0);
58
+ if !arg0.is_uint8_array() {
59
+ let msg = v8::String::new(scope, "Expected Uint8Array").unwrap();
60
+ let error = v8::Exception::type_error(scope, msg);
61
+ scope.throw_exception(error);
62
+ return;
63
+ }
64
+
65
+ let uint8 = v8::Local::<v8::Uint8Array>::try_from(arg0).unwrap();
66
+ let len = uint8.byte_length();
67
+
68
+ // Copy bytes to vector for deserializer
69
+ let mut data = vec![0u8; len];
70
+ uint8.copy_contents(&mut data);
71
+
72
+ let context = scope.get_current_context();
73
+ let deserializer = v8::ValueDeserializer::new(scope, Box::new(TitanValueDeserializerDelegate), &data);
74
+
75
+ // Read header
76
+ if let Some(true) = deserializer.read_header(context) {
77
+ // Read value
78
+ if let Some(value) = deserializer.read_value(context) {
79
+ retval.set(value);
80
+ } else {
81
+ // Invalid value format
82
+ let msg = v8::String::new(scope, "Failed to deserialize value").unwrap();
83
+ let error = v8::Exception::error(scope, msg);
84
+ scope.throw_exception(error);
85
+ }
86
+ } else {
87
+ // Invalid header
88
+ let msg = v8::String::new(scope, "Invalid serialization header").unwrap();
89
+ let error = v8::Exception::error(scope, msg);
90
+ scope.throw_exception(error);
91
+ }
92
+ }
93
+