@superbee/core 0.1.6 → 0.2.0-pre.1

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 (105) hide show
  1. package/dist/backend.d.ts.map +1 -1
  2. package/dist/backend.js +29 -7
  3. package/dist/backend.js.map +1 -1
  4. package/dist/bundle-ops.d.ts +42 -0
  5. package/dist/bundle-ops.d.ts.map +1 -0
  6. package/dist/bundle-ops.js +88 -0
  7. package/dist/bundle-ops.js.map +1 -0
  8. package/dist/bundle.d.ts +8 -27
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +9 -66
  11. package/dist/bundle.js.map +1 -1
  12. package/dist/document-field-actions.d.ts +95 -0
  13. package/dist/document-field-actions.d.ts.map +1 -0
  14. package/dist/document-field-actions.js +261 -0
  15. package/dist/document-field-actions.js.map +1 -0
  16. package/dist/document-mutation.d.ts +46 -2
  17. package/dist/document-mutation.d.ts.map +1 -1
  18. package/dist/document-mutation.js +79 -19
  19. package/dist/document-mutation.js.map +1 -1
  20. package/dist/document-write-policy.d.ts +0 -1
  21. package/dist/document-write-policy.d.ts.map +1 -1
  22. package/dist/document-write-policy.js +3 -2
  23. package/dist/document-write-policy.js.map +1 -1
  24. package/dist/engine.d.ts +2 -0
  25. package/dist/engine.d.ts.map +1 -1
  26. package/dist/engine.js +2 -1
  27. package/dist/engine.js.map +1 -1
  28. package/dist/freshness.d.ts +10 -7
  29. package/dist/freshness.d.ts.map +1 -1
  30. package/dist/freshness.js +14 -11
  31. package/dist/freshness.js.map +1 -1
  32. package/dist/frontmatter-contract.d.ts +2 -2
  33. package/dist/frontmatter-contract.js +2 -2
  34. package/dist/frontmatter.d.ts +3 -1
  35. package/dist/frontmatter.d.ts.map +1 -1
  36. package/dist/frontmatter.js +7 -4
  37. package/dist/frontmatter.js.map +1 -1
  38. package/dist/index.d.ts +10 -3
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +12 -2
  41. package/dist/index.js.map +1 -1
  42. package/dist/indexeddb-backend.d.ts +165 -0
  43. package/dist/indexeddb-backend.d.ts.map +1 -0
  44. package/dist/indexeddb-backend.js +718 -0
  45. package/dist/indexeddb-backend.js.map +1 -0
  46. package/dist/journaled-backend.d.ts +178 -0
  47. package/dist/journaled-backend.d.ts.map +1 -0
  48. package/dist/journaled-backend.js +77 -0
  49. package/dist/journaled-backend.js.map +1 -0
  50. package/dist/kind-field-mutation.d.ts +15 -0
  51. package/dist/kind-field-mutation.d.ts.map +1 -0
  52. package/dist/kind-field-mutation.js +160 -0
  53. package/dist/kind-field-mutation.js.map +1 -0
  54. package/dist/kinds.d.ts.map +1 -1
  55. package/dist/kinds.js +3 -1
  56. package/dist/kinds.js.map +1 -1
  57. package/dist/meaningful-change-time.d.ts +6 -6
  58. package/dist/meaningful-change-time.d.ts.map +1 -1
  59. package/dist/meaningful-change-time.js +12 -13
  60. package/dist/meaningful-change-time.js.map +1 -1
  61. package/dist/mutation.d.ts.map +1 -1
  62. package/dist/mutation.js +2 -2
  63. package/dist/mutation.js.map +1 -1
  64. package/dist/page.d.ts.map +1 -1
  65. package/dist/page.js +2 -1
  66. package/dist/page.js.map +1 -1
  67. package/dist/platform.d.ts +161 -0
  68. package/dist/platform.d.ts.map +1 -0
  69. package/dist/platform.js +77 -0
  70. package/dist/platform.js.map +1 -0
  71. package/dist/recipes.d.ts +3 -1
  72. package/dist/recipes.d.ts.map +1 -1
  73. package/dist/recipes.js +4 -4
  74. package/dist/recipes.js.map +1 -1
  75. package/dist/remote-backend.d.ts +28 -0
  76. package/dist/remote-backend.d.ts.map +1 -1
  77. package/dist/remote-backend.js +75 -2
  78. package/dist/remote-backend.js.map +1 -1
  79. package/dist/remote-operations.d.ts +60 -0
  80. package/dist/remote-operations.d.ts.map +1 -0
  81. package/dist/remote-operations.js +110 -0
  82. package/dist/remote-operations.js.map +1 -0
  83. package/dist/sha256.d.ts +21 -0
  84. package/dist/sha256.d.ts.map +1 -0
  85. package/dist/sha256.js +114 -0
  86. package/dist/sha256.js.map +1 -0
  87. package/dist/storage.d.ts +5 -1
  88. package/dist/storage.d.ts.map +1 -1
  89. package/dist/storage.js +7 -1
  90. package/dist/storage.js.map +1 -1
  91. package/dist/types.d.ts +12 -0
  92. package/dist/types.d.ts.map +1 -1
  93. package/dist/uncertain-write.d.ts +142 -0
  94. package/dist/uncertain-write.d.ts.map +1 -0
  95. package/dist/uncertain-write.js +174 -0
  96. package/dist/uncertain-write.js.map +1 -0
  97. package/dist/version-transport.d.ts +7 -0
  98. package/dist/version-transport.d.ts.map +1 -1
  99. package/dist/version-transport.js +9 -0
  100. package/dist/version-transport.js.map +1 -1
  101. package/dist/versioning.d.ts +9 -3
  102. package/dist/versioning.d.ts.map +1 -1
  103. package/dist/versioning.js +14 -10
  104. package/dist/versioning.js.map +1 -1
  105. package/package.json +42 -3
@@ -17,14 +17,16 @@
17
17
  * the caller's `expectedVersion` no longer matches the backend's current version.
18
18
  *
19
19
  * Nothing here touches the filesystem — hashing and attribution are backend-neutral,
20
- * which is precisely why the memory adapter can reuse them.
20
+ * which is precisely why the memory adapter can reuse them. The digest itself lives in
21
+ * `sha256.ts`, a pure implementation with no `node:*` import, so this module and the memory
22
+ * adapter bundle for the browser and mint the same tokens there.
21
23
  */
22
- import { createHash } from "node:crypto";
23
24
  import { stringifyDoc } from "./frontmatter.js";
24
- export { VersionConflict, stripETagWrapper } from "./version-transport.js";
25
+ import { sha256HexOfBytes, sha256HexOfUtf8 } from "./sha256.js";
26
+ export { VersionConflict, isContentVersion, stripETagWrapper } from "./version-transport.js";
25
27
  /** Lowercase hex SHA-256 of a UTF-8 string. The version tokens' underlying digest. */
26
28
  export function sha256Hex(input) {
27
- return createHash("sha256").update(input, "utf8").digest("hex");
29
+ return sha256HexOfUtf8(input);
28
30
  }
29
31
  /**
30
32
  * The content-addressed {@link Version} of a concept document: the SHA-256 of its
@@ -50,13 +52,15 @@ export function versionOfBytes(raw) {
50
52
  * of adapter, exactly as {@link contentVersion} is for documents.
51
53
  */
52
54
  export function blobVersion(bytes) {
53
- return `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
55
+ return `sha256:${sha256HexOfBytes(bytes)}`;
54
56
  }
55
- /** A local identity for unattributed writes: `$USER`/`$USERNAME`/`$LOGNAME`, else `"local"`. */
57
+ /**
58
+ * A local identity for unattributed writes: `$USER`/`$USERNAME`/`$LOGNAME`, else `"local"`.
59
+ * A browser host has no `process` global, so the environment lookup is guarded and such a
60
+ * host attributes to `"local"`.
61
+ */
56
62
  export function defaultActor() {
57
- return (process.env.USER?.trim() ||
58
- process.env.USERNAME?.trim() ||
59
- process.env.LOGNAME?.trim() ||
60
- "local");
63
+ const env = typeof process !== "undefined" ? process.env : undefined;
64
+ return env?.USER?.trim() || env?.USERNAME?.trim() || env?.LOGNAME?.trim() || "local";
61
65
  }
62
66
  //# sourceMappingURL=versioning.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../src/versioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAgB;IAC7C,OAAO,UAAU,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,UAAU,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,YAAY;IAC1B,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE;QAC3B,OAAO,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../src/versioning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE7F,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAgB;IAC7C,OAAO,UAAU,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,UAAU,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,OAAO,UAAU,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;AACvF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superbee/core",
3
- "version": "0.1.6",
3
+ "version": "0.2.0-pre.1",
4
4
  "type": "module",
5
5
  "description": "OKF store engine — bundle I/O, cross-links, derived backlinks, freshness, and versioned writes.",
6
6
  "license": "Apache-2.0",
@@ -11,7 +11,9 @@
11
11
  },
12
12
  "main": "./dist/index.js",
13
13
  "types": "./dist/index.d.ts",
14
- "sideEffects": false,
14
+ "sideEffects": [
15
+ "./dist/bundle.js"
16
+ ],
15
17
  "exports": {
16
18
  "./view-admission": {
17
19
  "types": "./dist/view-admission.d.ts",
@@ -21,10 +23,18 @@
21
23
  "types": "./dist/index.d.ts",
22
24
  "default": "./dist/index.js"
23
25
  },
26
+ "./bundle-ops": {
27
+ "types": "./dist/bundle-ops.d.ts",
28
+ "default": "./dist/bundle-ops.js"
29
+ },
24
30
  "./document-codec": {
25
31
  "types": "./dist/document-codec.d.ts",
26
32
  "default": "./dist/document-codec.js"
27
33
  },
34
+ "./document-mutation": {
35
+ "types": "./dist/document-mutation.d.ts",
36
+ "default": "./dist/document-mutation.js"
37
+ },
28
38
  "./engine": {
29
39
  "types": "./dist/engine.d.ts",
30
40
  "default": "./dist/engine.js"
@@ -73,16 +83,44 @@
73
83
  "types": "./dist/remote.d.ts",
74
84
  "default": "./dist/remote.js"
75
85
  },
86
+ "./remote-operations": {
87
+ "types": "./dist/remote-operations.d.ts",
88
+ "default": "./dist/remote-operations.js"
89
+ },
76
90
  "./storage": {
77
91
  "types": "./dist/storage.d.ts",
78
92
  "default": "./dist/storage.js"
93
+ },
94
+ "./versioning": {
95
+ "types": "./dist/versioning.d.ts",
96
+ "default": "./dist/versioning.js"
97
+ },
98
+ "./memory-backend": {
99
+ "types": "./dist/memory-backend.d.ts",
100
+ "default": "./dist/memory-backend.js"
101
+ },
102
+ "./indexeddb-backend": {
103
+ "types": "./dist/indexeddb-backend.d.ts",
104
+ "default": "./dist/indexeddb-backend.js"
105
+ },
106
+ "./journaled-backend": {
107
+ "types": "./dist/journaled-backend.d.ts",
108
+ "default": "./dist/journaled-backend.js"
109
+ },
110
+ "./uncertain-write": {
111
+ "types": "./dist/uncertain-write.d.ts",
112
+ "default": "./dist/uncertain-write.js"
113
+ },
114
+ "./platform": {
115
+ "types": "./dist/platform.d.ts",
116
+ "default": "./dist/platform.js"
79
117
  }
80
118
  },
81
119
  "files": [
82
120
  "dist"
83
121
  ],
84
122
  "publishConfig": {
85
- "access": "restricted",
123
+ "access": "public",
86
124
  "registry": "https://registry.npmjs.org/"
87
125
  },
88
126
  "scripts": {
@@ -100,6 +138,7 @@
100
138
  "@superbee/server": "*",
101
139
  "@types/js-yaml": "3.12.10",
102
140
  "@types/node": "^22.0.0",
141
+ "fake-indexeddb": "6.2.5",
103
142
  "typescript": "^5.4.0"
104
143
  }
105
144
  }