@ressjs/platform 0.6.0-experimental.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 (46) hide show
  1. package/README.md +95 -0
  2. package/dist/client.d.ts +32 -0
  3. package/dist/client.js +59 -0
  4. package/dist/compat.d.ts +9 -0
  5. package/dist/compat.js +13 -0
  6. package/dist/detect/layers.d.ts +40 -0
  7. package/dist/detect/layers.js +34 -0
  8. package/dist/detect/merge.d.ts +30 -0
  9. package/dist/detect/merge.js +50 -0
  10. package/dist/detect/override.d.ts +9 -0
  11. package/dist/detect/override.js +33 -0
  12. package/dist/detect/pipeline.d.ts +10 -0
  13. package/dist/detect/pipeline.js +75 -0
  14. package/dist/index.d.ts +26 -0
  15. package/dist/index.js +51 -0
  16. package/dist/model/defaults.d.ts +8 -0
  17. package/dist/model/defaults.js +25 -0
  18. package/dist/model/known.d.ts +31 -0
  19. package/dist/model/known.js +9 -0
  20. package/dist/model/types.d.ts +95 -0
  21. package/dist/model/types.js +2 -0
  22. package/dist/predicates.d.ts +9 -0
  23. package/dist/predicates.js +15 -0
  24. package/dist/registry/create.d.ts +17 -0
  25. package/dist/registry/create.js +87 -0
  26. package/dist/registry/defaults.d.ts +23 -0
  27. package/dist/registry/defaults.js +63 -0
  28. package/dist/registry/index.d.ts +11 -0
  29. package/dist/registry/index.js +20 -0
  30. package/dist/registry/parse.d.ts +14 -0
  31. package/dist/registry/parse.js +89 -0
  32. package/dist/registry/types.d.ts +91 -0
  33. package/dist/registry/types.js +2 -0
  34. package/dist/rules/apply.d.ts +13 -0
  35. package/dist/rules/apply.js +40 -0
  36. package/dist/rules/edge.d.ts +44 -0
  37. package/dist/rules/edge.js +66 -0
  38. package/dist/rules/headers.d.ts +48 -0
  39. package/dist/rules/headers.js +157 -0
  40. package/dist/rules/request-headers.d.ts +61 -0
  41. package/dist/rules/request-headers.js +113 -0
  42. package/dist/rules/user-agent.d.ts +25 -0
  43. package/dist/rules/user-agent.js +212 -0
  44. package/dist/serialize.d.ts +12 -0
  45. package/dist/serialize.js +23 -0
  46. package/package.json +48 -0
@@ -0,0 +1,12 @@
1
+ import type { PlatformInfo } from './model/types';
2
+ /**
3
+ * Serializa la plataforma para incrustarla en el HTML.
4
+ *
5
+ * El escapado no es opcional: la plataforma incluye valores que vienen de
6
+ * cabeceras del cliente, así que un `</script>` en una cabecera cerraría la
7
+ * etiqueta y todo lo que siguiera se ejecutaría como código. `U+2028` y `U+2029`
8
+ * son saltos de línea válidos en JavaScript pero no en JSON.
9
+ */
10
+ export declare function serializePlatform(platform: PlatformInfo): string;
11
+ /** La etiqueta lista para insertar en el HTML del servidor. */
12
+ export declare function platformScriptTag(platform: PlatformInfo): string;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializePlatform = serializePlatform;
4
+ exports.platformScriptTag = platformScriptTag;
5
+ /**
6
+ * Serializa la plataforma para incrustarla en el HTML.
7
+ *
8
+ * El escapado no es opcional: la plataforma incluye valores que vienen de
9
+ * cabeceras del cliente, así que un `</script>` en una cabecera cerraría la
10
+ * etiqueta y todo lo que siguiera se ejecutaría como código. `U+2028` y `U+2029`
11
+ * son saltos de línea válidos en JavaScript pero no en JSON.
12
+ */
13
+ function serializePlatform(platform) {
14
+ return JSON.stringify(platform)
15
+ .replace(/</g, '\\u003c')
16
+ .replace(/>/g, '\\u003e')
17
+ .replace(/\u2028/g, '\\u2028')
18
+ .replace(/\u2029/g, '\\u2029');
19
+ }
20
+ /** La etiqueta lista para insertar en el HTML del servidor. */
21
+ function platformScriptTag(platform) {
22
+ return `<script>window.__RESS_PLATFORM__=${serializePlatform(platform)};</script>`;
23
+ }
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@ressjs/platform",
3
+ "version": "0.6.0-experimental.0",
4
+ "description": "Modelo de plataforma de ress.js: registro de tokens y detección del cliente. Sin dependencias.",
5
+ "types": "dist/index.d.ts",
6
+ "main": "dist/index.js",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "require": "./dist/index.js",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./client": {
17
+ "types": "./dist/client.d.ts",
18
+ "require": "./dist/client.js",
19
+ "import": "./dist/client.js"
20
+ },
21
+ "./registry": {
22
+ "types": "./dist/registry/index.d.ts",
23
+ "require": "./dist/registry/index.js",
24
+ "import": "./dist/registry/index.js"
25
+ }
26
+ },
27
+ "files": [
28
+ "dist"
29
+ ],
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "dev": "tsc --watch",
33
+ "clean": "rm -rf dist",
34
+ "test": "vitest run"
35
+ },
36
+ "keywords": [
37
+ "platform",
38
+ "user-agent",
39
+ "webview",
40
+ "tv",
41
+ "ressjs"
42
+ ],
43
+ "license": "MIT",
44
+ "devDependencies": {
45
+ "typescript": "^5.9.3",
46
+ "vitest": "^3.2.4"
47
+ }
48
+ }