@xyo-network/archivist-cookie 5.3.22 → 5.3.24

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/archivist-cookie",
3
- "version": "5.3.22",
3
+ "version": "5.3.24",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -30,50 +30,46 @@
30
30
  "types": "dist/browser/index.d.ts",
31
31
  "files": [
32
32
  "dist",
33
- "src",
34
33
  "!**/*.bench.*",
35
34
  "!**/*.spec.*",
36
35
  "!**/*.test.*",
37
36
  "README.md"
38
37
  ],
39
38
  "dependencies": {
40
- "@xyo-network/archivist-abstract": "~5.3.22",
41
- "@xyo-network/archivist-model": "~5.3.22",
42
- "@xyo-network/boundwitness-model": "~5.3.22",
43
- "@xyo-network/module-model": "~5.3.22",
44
- "@xyo-network/payload-builder": "~5.3.22",
45
- "@xyo-network/payload-model": "~5.3.22",
46
- "js-cookie": "~3.0.5"
39
+ "js-cookie": "~3.0.5",
40
+ "@xyo-network/module-model": "~5.3.24",
41
+ "@xyo-network/archivist-abstract": "~5.3.24",
42
+ "@xyo-network/archivist-model": "~5.3.24",
43
+ "@xyo-network/boundwitness-model": "~5.3.24",
44
+ "@xyo-network/payload-builder": "~5.3.24",
45
+ "@xyo-network/payload-model": "~5.3.24"
47
46
  },
48
47
  "devDependencies": {
49
48
  "@opentelemetry/api": "^1.9.1",
50
49
  "@types/js-cookie": "~3.0.6",
51
50
  "@types/node": "^25.5.0",
52
- "@xylabs/sdk-js": "^5.0.91",
53
- "@xylabs/ts-scripts-common": "~7.6.8",
54
- "@xylabs/ts-scripts-yarn3": "~7.6.8",
55
- "@xylabs/tsconfig": "~7.6.8",
56
- "@xyo-network/archivist-abstract": "~5.3.22",
57
- "@xyo-network/archivist-model": "~5.3.22",
58
- "@xyo-network/boundwitness-model": "~5.3.22",
59
- "@xyo-network/id-payload-plugin": "~5.3.22",
60
- "@xyo-network/module-model": "~5.3.22",
61
- "@xyo-network/payload-builder": "~5.3.22",
62
- "@xyo-network/payload-model": "~5.3.22",
63
- "@xyo-network/payload-wrapper": "~5.3.22",
51
+ "@xylabs/sdk-js": "^5.0.93",
52
+ "@xylabs/ts-scripts-common": "~7.6.16",
53
+ "@xylabs/ts-scripts-pnpm": "~7.6.16",
54
+ "@xylabs/tsconfig": "~7.6.16",
64
55
  "acorn": "^8.16.0",
65
56
  "axios": "^1.14.0",
66
- "cosmiconfig": "^9.0.1",
67
- "esbuild": "^0.27.4",
68
- "eslint": "^10.1.0",
57
+ "esbuild": "^0.28.0",
69
58
  "ethers": "^6.16.0",
70
59
  "js-cookie": "~3.0.5",
71
- "rollup": "^4.60.1",
72
60
  "tslib": "^2.8.1",
73
61
  "typescript": "~5.9.3",
74
62
  "vite": "^8.0.3",
75
63
  "vitest": "~4.1.2",
76
- "zod": "^4.3.6"
64
+ "zod": "^4.3.6",
65
+ "@xyo-network/archivist-abstract": "~5.3.24",
66
+ "@xyo-network/boundwitness-model": "~5.3.24",
67
+ "@xyo-network/payload-model": "~5.3.24",
68
+ "@xyo-network/archivist-model": "~5.3.24",
69
+ "@xyo-network/module-model": "~5.3.24",
70
+ "@xyo-network/id-payload-plugin": "~5.3.24",
71
+ "@xyo-network/payload-builder": "~5.3.24",
72
+ "@xyo-network/payload-wrapper": "~5.3.24"
77
73
  },
78
74
  "peerDependencies": {
79
75
  "@xylabs/sdk-js": "^5",
@@ -84,4 +80,4 @@
84
80
  "publishConfig": {
85
81
  "access": "public"
86
82
  }
87
- }
83
+ }
@@ -1,168 +0,0 @@
1
- import type {
2
- Hash, Promisable, PromisableArray,
3
- } from '@xylabs/sdk-js'
4
- import {
5
- assertEx,
6
- exists, fulfilled, isString,
7
- } from '@xylabs/sdk-js'
8
- import { AbstractArchivist, StorageClassLabel } from '@xyo-network/archivist-abstract'
9
- import type {
10
- ArchivistConfig,
11
- ArchivistInsertQuery,
12
- ArchivistModuleEventData,
13
- ArchivistParams,
14
- } from '@xyo-network/archivist-model'
15
- import {
16
- ArchivistAllQuerySchema,
17
- ArchivistClearQuerySchema,
18
- ArchivistCommitQuerySchema,
19
- ArchivistDeleteQuerySchema,
20
- ArchivistInsertQuerySchema,
21
- } from '@xyo-network/archivist-model'
22
- import type { BoundWitness } from '@xyo-network/boundwitness-model'
23
- import { type AnyConfigSchema, creatableModule } from '@xyo-network/module-model'
24
- import { PayloadBuilder } from '@xyo-network/payload-builder'
25
- import {
26
- asSchema,
27
- type Payload, type Schema, type WithStorageMeta,
28
- } from '@xyo-network/payload-model'
29
- import Cookies from 'js-cookie'
30
-
31
- export const CookieArchivistConfigSchema = asSchema('network.xyo.archivist.cookie.config', true)
32
- export type CookieArchivistConfigSchema = typeof CookieArchivistConfigSchema
33
-
34
- export type CookieArchivistConfig = ArchivistConfig<{
35
- domain?: string
36
- maxEntries?: number
37
- maxEntrySize?: number
38
- namespace?: string
39
- schema: CookieArchivistConfigSchema
40
- }>
41
-
42
- export type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>
43
-
44
- @creatableModule()
45
- export class CookieArchivist<
46
- TParams extends CookieArchivistParams = CookieArchivistParams,
47
- TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,
48
- > extends AbstractArchivist<TParams, TEventData> {
49
- static override readonly configSchemas: Schema[] = [...super.configSchemas, CookieArchivistConfigSchema]
50
- static override readonly defaultConfigSchema: Schema = CookieArchivistConfigSchema
51
- static override readonly labels = { ...super.labels, [StorageClassLabel]: 'disk' }
52
-
53
- get domain() {
54
- return this.config?.domain
55
- }
56
-
57
- get maxEntries() {
58
- // all browsers support at least 60 cookies
59
- return this.config?.maxEntries ?? 60
60
- }
61
-
62
- get maxEntrySize() {
63
- // all browsers support at least 4000 length per cookie
64
- return this.config?.maxEntrySize ?? 4000
65
- }
66
-
67
- get namespace() {
68
- return this.config?.namespace ?? 'xyoarch'
69
- }
70
-
71
- override get queries(): Schema[] {
72
- return [
73
- ArchivistAllQuerySchema,
74
- ArchivistDeleteQuerySchema,
75
- ArchivistClearQuerySchema,
76
- ArchivistInsertQuerySchema,
77
- ArchivistCommitQuerySchema,
78
- ...super.queries,
79
- ]
80
- }
81
-
82
- protected override allHandler(): PromisableArray<WithStorageMeta<Payload>> {
83
- try {
84
- return Object.entries(Cookies.get())
85
- .filter(([key]) => key.startsWith(`${this.namespace}-`))
86
- .map(([, value]) => JSON.parse(value))
87
- } catch (ex) {
88
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`)
89
- throw ex
90
- }
91
- }
92
-
93
- protected override clearHandler(): void | Promise<void> {
94
- try {
95
- for (const [key] of Object.entries(Cookies.get())) {
96
- if (key.startsWith(`${this.namespace}-`)) {
97
- Cookies.remove(key)
98
- }
99
- }
100
- } catch (ex) {
101
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`)
102
- throw ex
103
- }
104
- }
105
-
106
- protected override async commitHandler(): Promise<BoundWitness[]> {
107
- try {
108
- const payloads = await this.next({ limit: Number.MAX_SAFE_INTEGER })
109
- assertEx(payloads.length > 0, () => 'Nothing to commit')
110
- const settled = await Promise.allSettled(
111
- (
112
- Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {
113
- const queryPayload: ArchivistInsertQuery = { schema: ArchivistInsertQuerySchema }
114
- const query = await this.bindQuery(queryPayload, payloads)
115
- return (await parent?.query(query[0], query[1]))?.[0]
116
- })
117
- ).filter(exists),
118
- )
119
- await this.clear()
120
- return settled.filter(fulfilled).map(result => result.value).filter(exists)
121
- } catch (ex) {
122
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`)
123
- throw ex
124
- }
125
- }
126
-
127
- protected override async deleteHandler(hashes: Hash[]): Promise<WithStorageMeta<Payload>[]> {
128
- const payloadPairs = await PayloadBuilder.dataHashPairs(await this.get(hashes))
129
- const deletedPairs = (
130
- await Promise.all(
131
- payloadPairs.map<[WithStorageMeta<Payload>, Hash]>(([payload, hash]) => {
132
- Cookies.remove(hash)
133
- return [payload, hash]
134
- }),
135
- )
136
- ).filter(exists)
137
- return deletedPairs.map(([payload]) => payload)
138
- }
139
-
140
- protected override getHandler(hashes: Hash[]): Promisable<WithStorageMeta<Payload>[]> {
141
- return (
142
- hashes.map((hash) => {
143
- const cookieString = Cookies.get(this.keyFromHash(hash))
144
- return isString(cookieString) ? JSON.parse(cookieString) : undefined
145
- })
146
- ).filter(exists)
147
- }
148
-
149
- protected override insertHandler(payloads: WithStorageMeta<Payload>[]): WithStorageMeta<Payload>[] {
150
- try {
151
- const resultPayloads: WithStorageMeta<Payload>[] = payloads.map((payload) => {
152
- const value = JSON.stringify(payload)
153
- assertEx(value.length < this.maxEntrySize, () => `Payload too large [${payload._hash}, ${value.length}]`)
154
- Cookies.set(this.keyFromHash(payload._hash), value)
155
- Cookies.set(this.keyFromHash(payload._dataHash), value)
156
- return payload
157
- })
158
- return resultPayloads
159
- } catch (ex) {
160
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`)
161
- throw ex
162
- }
163
- }
164
-
165
- private keyFromHash(hash: string) {
166
- return `${this.namespace}-${hash}`
167
- }
168
- }
package/src/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './CookieArchivist.ts'