@pixagram/sanitizer 0.2.1 → 0.2.2
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.
- package/README.md +3 -3
- package/package.json +1 -1
- package/sanitizer.d.ts +4 -2
- package/sanitizer.js +30 -27
- package/sanitizer_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# pixa-content
|
|
2
2
|
|
|
3
3
|
> Secure content processing engine for the PIXA blockchain platform.
|
|
4
4
|
> Rust → WebAssembly module for browser-side rendering of posts, comments, profiles, and metadata.
|
|
@@ -81,10 +81,10 @@ npm install -g binaryen
|
|
|
81
81
|
### JavaScript / React
|
|
82
82
|
|
|
83
83
|
```javascript
|
|
84
|
-
import { PixaContent } from '
|
|
84
|
+
import { PixaContent } from './pixa-content.js';
|
|
85
85
|
|
|
86
86
|
// Initialize once
|
|
87
|
-
const pixa = await PixaContent.init('
|
|
87
|
+
const pixa = await PixaContent.init('./pixa_content.js');
|
|
88
88
|
|
|
89
89
|
// ── Render a post ──────────────────────────────
|
|
90
90
|
const result = pixa.sanitizePost(postBody, {
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"Pixagram SA"
|
|
6
6
|
],
|
|
7
7
|
"description": "Secure content processing for PIXA blockchain — Markdown/HTML rendering, sanitization, metadata parsing, summarization",
|
|
8
|
-
"version": "0.2.
|
|
8
|
+
"version": "0.2.2",
|
|
9
9
|
"license": "PROPRIETARY",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
package/sanitizer.d.ts
CHANGED
|
@@ -9,8 +9,9 @@ export function extractPlainText(body: string): string;
|
|
|
9
9
|
/**
|
|
10
10
|
* Parse and sanitize JSON metadata.
|
|
11
11
|
* Internally calls safe_json then extracts known fields.
|
|
12
|
+
* Input: raw JSON string. Output: sanitized JSON string.
|
|
12
13
|
*/
|
|
13
|
-
export function parseMetadata(json_str: string):
|
|
14
|
+
export function parseMetadata(json_str: string): string;
|
|
14
15
|
|
|
15
16
|
export function pixaContentInit(): void;
|
|
16
17
|
|
|
@@ -18,9 +19,10 @@ export function pixaContentInit(): void;
|
|
|
18
19
|
* Sanitize a JSON string. Every key validated, every string HTML-stripped,
|
|
19
20
|
* embedded JSON-in-strings rejected, base64 images allowed if valid.
|
|
20
21
|
*
|
|
22
|
+
* Input: raw JSON string. Output: sanitized JSON string.
|
|
21
23
|
* This is the single entry point for ALL metadata sanitization.
|
|
22
24
|
*/
|
|
23
|
-
export function safeJson(json_str: string):
|
|
25
|
+
export function safeJson(json_str: string): string;
|
|
24
26
|
|
|
25
27
|
/**
|
|
26
28
|
* Sanitize a single string value. Strips HTML, rejects embedded JSON,
|
package/sanitizer.js
CHANGED
|
@@ -27,10 +27,13 @@ export function extractPlainText(body) {
|
|
|
27
27
|
/**
|
|
28
28
|
* Parse and sanitize JSON metadata.
|
|
29
29
|
* Internally calls safe_json then extracts known fields.
|
|
30
|
+
* Input: raw JSON string. Output: sanitized JSON string.
|
|
30
31
|
* @param {string} json_str
|
|
31
|
-
* @returns {
|
|
32
|
+
* @returns {string}
|
|
32
33
|
*/
|
|
33
34
|
export function parseMetadata(json_str) {
|
|
35
|
+
let deferred3_0;
|
|
36
|
+
let deferred3_1;
|
|
34
37
|
try {
|
|
35
38
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
36
39
|
const ptr0 = passStringToWasm0(json_str, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
@@ -39,12 +42,19 @@ export function parseMetadata(json_str) {
|
|
|
39
42
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
40
43
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
41
44
|
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
46
|
+
var ptr2 = r0;
|
|
47
|
+
var len2 = r1;
|
|
48
|
+
if (r3) {
|
|
49
|
+
ptr2 = 0; len2 = 0;
|
|
50
|
+
throw takeObject(r2);
|
|
44
51
|
}
|
|
45
|
-
|
|
52
|
+
deferred3_0 = ptr2;
|
|
53
|
+
deferred3_1 = len2;
|
|
54
|
+
return getStringFromWasm0(ptr2, len2);
|
|
46
55
|
} finally {
|
|
47
56
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
57
|
+
wasm.__wbindgen_export3(deferred3_0, deferred3_1, 1);
|
|
48
58
|
}
|
|
49
59
|
}
|
|
50
60
|
|
|
@@ -56,11 +66,14 @@ export function pixaContentInit() {
|
|
|
56
66
|
* Sanitize a JSON string. Every key validated, every string HTML-stripped,
|
|
57
67
|
* embedded JSON-in-strings rejected, base64 images allowed if valid.
|
|
58
68
|
*
|
|
69
|
+
* Input: raw JSON string. Output: sanitized JSON string.
|
|
59
70
|
* This is the single entry point for ALL metadata sanitization.
|
|
60
71
|
* @param {string} json_str
|
|
61
|
-
* @returns {
|
|
72
|
+
* @returns {string}
|
|
62
73
|
*/
|
|
63
74
|
export function safeJson(json_str) {
|
|
75
|
+
let deferred3_0;
|
|
76
|
+
let deferred3_1;
|
|
64
77
|
try {
|
|
65
78
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
66
79
|
const ptr0 = passStringToWasm0(json_str, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
@@ -69,12 +82,19 @@ export function safeJson(json_str) {
|
|
|
69
82
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
70
83
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
71
84
|
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
72
|
-
|
|
73
|
-
|
|
85
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
86
|
+
var ptr2 = r0;
|
|
87
|
+
var len2 = r1;
|
|
88
|
+
if (r3) {
|
|
89
|
+
ptr2 = 0; len2 = 0;
|
|
90
|
+
throw takeObject(r2);
|
|
74
91
|
}
|
|
75
|
-
|
|
92
|
+
deferred3_0 = ptr2;
|
|
93
|
+
deferred3_1 = len2;
|
|
94
|
+
return getStringFromWasm0(ptr2, len2);
|
|
76
95
|
} finally {
|
|
77
96
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
97
|
+
wasm.__wbindgen_export3(deferred3_0, deferred3_1, 1);
|
|
78
98
|
}
|
|
79
99
|
}
|
|
80
100
|
|
|
@@ -275,10 +295,6 @@ function __wbg_get_imports() {
|
|
|
275
295
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
276
296
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
277
297
|
},
|
|
278
|
-
__wbg___wbindgen_is_string_cd444516edc5b180: function(arg0) {
|
|
279
|
-
const ret = typeof(getObject(arg0)) === 'string';
|
|
280
|
-
return ret;
|
|
281
|
-
},
|
|
282
298
|
__wbg___wbindgen_throw_be289d5034ed271b: function(arg0, arg1) {
|
|
283
299
|
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
284
300
|
},
|
|
@@ -305,14 +321,6 @@ function __wbg_get_imports() {
|
|
|
305
321
|
const ret = new Error();
|
|
306
322
|
return addHeapObject(ret);
|
|
307
323
|
},
|
|
308
|
-
__wbg_new_dca287b076112a51: function() {
|
|
309
|
-
const ret = new Map();
|
|
310
|
-
return addHeapObject(ret);
|
|
311
|
-
},
|
|
312
|
-
__wbg_set_1eb0999cf5d27fc8: function(arg0, arg1, arg2) {
|
|
313
|
-
const ret = getObject(arg0).set(getObject(arg1), getObject(arg2));
|
|
314
|
-
return addHeapObject(ret);
|
|
315
|
-
},
|
|
316
324
|
__wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) {
|
|
317
325
|
getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
|
|
318
326
|
},
|
|
@@ -331,17 +339,12 @@ function __wbg_get_imports() {
|
|
|
331
339
|
const ret = arg0;
|
|
332
340
|
return addHeapObject(ret);
|
|
333
341
|
},
|
|
334
|
-
__wbindgen_cast_0000000000000002: function(arg0) {
|
|
335
|
-
// Cast intrinsic for `I64 -> Externref`.
|
|
336
|
-
const ret = arg0;
|
|
337
|
-
return addHeapObject(ret);
|
|
338
|
-
},
|
|
339
|
-
__wbindgen_cast_0000000000000003: function(arg0, arg1) {
|
|
342
|
+
__wbindgen_cast_0000000000000002: function(arg0, arg1) {
|
|
340
343
|
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
341
344
|
const ret = getStringFromWasm0(arg0, arg1);
|
|
342
345
|
return addHeapObject(ret);
|
|
343
346
|
},
|
|
344
|
-
|
|
347
|
+
__wbindgen_cast_0000000000000003: function(arg0) {
|
|
345
348
|
// Cast intrinsic for `U64 -> Externref`.
|
|
346
349
|
const ret = BigInt.asUintN(64, arg0);
|
|
347
350
|
return addHeapObject(ret);
|
package/sanitizer_bg.wasm
CHANGED
|
Binary file
|