@xyo-network/archivist-cookie 3.0.0 → 3.0.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.
@@ -3,7 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/CookieArchivist.ts
5
5
  import { assertEx } from "@xylabs/assert";
6
- import { compact } from "@xylabs/lodash";
6
+ import { exists } from "@xylabs/exists";
7
7
  import { fulfilled } from "@xylabs/promise";
8
8
  import { AbstractArchivist } from "@xyo-network/archivist-abstract";
9
9
  import { ArchivistAllQuerySchema, ArchivistClearQuerySchema, ArchivistCommitQuerySchema, ArchivistDeleteQuerySchema, ArchivistInsertQuerySchema } from "@xyo-network/archivist-model";
@@ -65,15 +65,15 @@ var CookieArchivist = class extends AbstractArchivist {
65
65
  try {
66
66
  const payloads = await this.all();
67
67
  assertEx(payloads.length > 0, () => "Nothing to commit");
68
- const settled = await Promise.allSettled(compact(Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {
68
+ const settled = await Promise.allSettled((Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {
69
69
  const queryPayload = await PayloadBuilder.build({
70
70
  schema: ArchivistInsertQuerySchema
71
71
  });
72
72
  const query = await this.bindQuery(queryPayload, payloads);
73
73
  return (await parent?.query(query[0], query[1]))?.[0];
74
- })));
74
+ })).filter(exists));
75
75
  await this.clear();
76
- return compact(settled.filter(fulfilled).map((result) => result.value));
76
+ return settled.filter(fulfilled).map((result) => result.value).filter(exists);
77
77
  } catch (ex) {
78
78
  console.error(`Error: ${JSON.stringify(ex, null, 2)}`);
79
79
  throw ex;
@@ -81,20 +81,20 @@ var CookieArchivist = class extends AbstractArchivist {
81
81
  }
82
82
  async deleteHandler(hashes) {
83
83
  const payloadPairs = await PayloadBuilder.dataHashPairs(await this.get(hashes));
84
- const deletedPairs = compact(await Promise.all(payloadPairs.map(([payload, hash]) => {
84
+ const deletedPairs = (await Promise.all(payloadPairs.map(([payload, hash]) => {
85
85
  Cookies.remove(hash);
86
86
  return [
87
87
  payload,
88
88
  hash
89
89
  ];
90
- })));
90
+ }))).filter(exists);
91
91
  return deletedPairs.map(([, hash]) => hash);
92
92
  }
93
93
  getHandler(hashes) {
94
- return compact(hashes.map((hash) => {
94
+ return hashes.map((hash) => {
95
95
  const cookieString = Cookies.get(this.keyFromHash(hash));
96
96
  return cookieString ? JSON.parse(cookieString) : void 0;
97
- }));
97
+ }).filter(exists);
98
98
  }
99
99
  async insertHandler(payloads) {
100
100
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/CookieArchivist.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\nimport { compact } from '@xylabs/lodash'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistModuleEventData,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\nimport Cookies from 'js-cookie'\n\nexport type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config'\nexport const CookieArchivistConfigSchema: CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config'\n\nexport type CookieArchivistConfig = ArchivistConfig<{\n domain?: string\n maxEntries?: number\n maxEntrySize?: number\n namespace?: string\n schema: CookieArchivistConfigSchema\n}>\n\nexport type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>\n\nexport class CookieArchivist<\n TParams extends CookieArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n> extends AbstractArchivist<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CookieArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = CookieArchivistConfigSchema\n\n get domain() {\n return this.config?.domain\n }\n\n get maxEntries() {\n // all browsers support at least 60 cookies\n return this.config?.maxEntries ?? 60\n }\n\n get maxEntrySize() {\n // all browsers support at least 4000 length per cookie\n return this.config?.maxEntrySize ?? 4000\n }\n\n get namespace() {\n return this.config?.namespace ?? 'xyoarch'\n }\n\n override get queries(): string[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<WithMeta<Payload>> {\n try {\n return Object.entries(Cookies.get())\n .filter(([key]) => key.startsWith(`${this.namespace}-`))\n .map(([, value]) => JSON.parse(value))\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n protected override clearHandler(): void | Promise<void> {\n try {\n for (const [key] of Object.entries(Cookies.get())) {\n if (key.startsWith(`${this.namespace}-`)) {\n Cookies.remove(key)\n }\n }\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n protected override async commitHandler(): Promise<WithMeta<BoundWitness>[]> {\n try {\n const payloads = await this.all()\n assertEx(payloads.length > 0, () => 'Nothing to commit')\n const settled = await Promise.allSettled(\n compact(\n Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {\n const queryPayload: WithMeta<ArchivistInsertQuery> = await PayloadBuilder.build({\n schema: ArchivistInsertQuerySchema,\n })\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n }),\n ),\n )\n await this.clear()\n return compact(settled.filter(fulfilled).map(result => result.value))\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<Hash[]> {\n const payloadPairs = await PayloadBuilder.dataHashPairs(await this.get(hashes))\n const deletedPairs = compact(\n await Promise.all(\n payloadPairs.map<[Payload, Hash]>(([payload, hash]) => {\n Cookies.remove(hash)\n return [payload, hash]\n }),\n ),\n )\n return deletedPairs.map(([, hash]) => hash)\n }\n\n protected override getHandler(hashes: Hash[]): Promisable<PayloadWithMeta[]> {\n return compact(\n hashes.map((hash) => {\n const cookieString = Cookies.get(this.keyFromHash(hash))\n return cookieString ? JSON.parse(cookieString) : undefined\n }),\n )\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]> {\n try {\n const pairs = await PayloadBuilder.hashPairs(payloads)\n const resultPayloads: WithMeta<Payload>[] = await Promise.all(\n pairs.map(async ([payload, hash]) => {\n const payloadWithMeta = await PayloadBuilder.build(payload)\n const value = JSON.stringify(payloadWithMeta)\n assertEx(value.length < this.maxEntrySize, () => `Payload too large [${hash}, ${value.length}]`)\n Cookies.set(this.keyFromHash(hash), value)\n Cookies.set(this.keyFromHash(payload.$hash), value)\n return payloadWithMeta\n }),\n )\n return resultPayloads\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n private keyFromHash(hash: string) {\n return `${this.namespace}-${hash}`\n }\n}\n"],"mappings":"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","names":["assertEx","compact","fulfilled","AbstractArchivist","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","ArchivistInsertQuerySchema","PayloadBuilder","Cookies","CookieArchivistConfigSchema","CookieArchivist","AbstractArchivist","configSchemas","defaultConfigSchema","domain","config","maxEntries","maxEntrySize","namespace","queries","ArchivistAllQuerySchema","ArchivistDeleteQuerySchema","ArchivistClearQuerySchema","ArchivistInsertQuerySchema","ArchivistCommitQuerySchema","allHandler","Object","entries","Cookies","get","filter","key","startsWith","map","value","JSON","parse","ex","console","error","stringify","clearHandler","remove","commitHandler","payloads","all","assertEx","length","settled","Promise","allSettled","compact","values","parentArchivists","commit","parent","queryPayload","PayloadBuilder","build","schema","query","bindQuery","clear","fulfilled","result","deleteHandler","hashes","payloadPairs","dataHashPairs","deletedPairs","payload","hash","getHandler","cookieString","keyFromHash","undefined","insertHandler","pairs","hashPairs","resultPayloads","payloadWithMeta","set","$hash"]}
1
+ {"version":3,"sources":["../../src/CookieArchivist.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { Hash } from '@xylabs/hex'\nimport { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'\nimport { AbstractArchivist } from '@xyo-network/archivist-abstract'\nimport {\n ArchivistAllQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistCommitQuerySchema,\n ArchivistConfig,\n ArchivistDeleteQuerySchema,\n ArchivistInsertQuery,\n ArchivistInsertQuerySchema,\n ArchivistModuleEventData,\n ArchivistParams,\n} from '@xyo-network/archivist-model'\nimport { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model'\nimport Cookies from 'js-cookie'\n\nexport type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config'\nexport const CookieArchivistConfigSchema: CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config'\n\nexport type CookieArchivistConfig = ArchivistConfig<{\n domain?: string\n maxEntries?: number\n maxEntrySize?: number\n namespace?: string\n schema: CookieArchivistConfigSchema\n}>\n\nexport type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>\n\nexport class CookieArchivist<\n TParams extends CookieArchivistParams,\n TEventData extends ArchivistModuleEventData = ArchivistModuleEventData,\n> extends AbstractArchivist<TParams, TEventData> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CookieArchivistConfigSchema]\n static override readonly defaultConfigSchema: Schema = CookieArchivistConfigSchema\n\n get domain() {\n return this.config?.domain\n }\n\n get maxEntries() {\n // all browsers support at least 60 cookies\n return this.config?.maxEntries ?? 60\n }\n\n get maxEntrySize() {\n // all browsers support at least 4000 length per cookie\n return this.config?.maxEntrySize ?? 4000\n }\n\n get namespace() {\n return this.config?.namespace ?? 'xyoarch'\n }\n\n override get queries(): string[] {\n return [\n ArchivistAllQuerySchema,\n ArchivistDeleteQuerySchema,\n ArchivistClearQuerySchema,\n ArchivistInsertQuerySchema,\n ArchivistCommitQuerySchema,\n ...super.queries,\n ]\n }\n\n protected override allHandler(): PromisableArray<WithMeta<Payload>> {\n try {\n return Object.entries(Cookies.get())\n .filter(([key]) => key.startsWith(`${this.namespace}-`))\n .map(([, value]) => JSON.parse(value))\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n protected override clearHandler(): void | Promise<void> {\n try {\n for (const [key] of Object.entries(Cookies.get())) {\n if (key.startsWith(`${this.namespace}-`)) {\n Cookies.remove(key)\n }\n }\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n protected override async commitHandler(): Promise<WithMeta<BoundWitness>[]> {\n try {\n const payloads = await this.all()\n assertEx(payloads.length > 0, () => 'Nothing to commit')\n const settled = await Promise.allSettled(\n (\n Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {\n const queryPayload: WithMeta<ArchivistInsertQuery> = await PayloadBuilder.build({\n schema: ArchivistInsertQuerySchema,\n })\n const query = await this.bindQuery(queryPayload, payloads)\n return (await parent?.query(query[0], query[1]))?.[0]\n })\n ).filter(exists),\n )\n await this.clear()\n return settled.filter(fulfilled).map(result => result.value).filter(exists)\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n protected override async deleteHandler(hashes: Hash[]): Promise<Hash[]> {\n const payloadPairs = await PayloadBuilder.dataHashPairs(await this.get(hashes))\n const deletedPairs = (\n await Promise.all(\n payloadPairs.map<[Payload, Hash]>(([payload, hash]) => {\n Cookies.remove(hash)\n return [payload, hash]\n }),\n )\n ).filter(exists)\n return deletedPairs.map(([, hash]) => hash)\n }\n\n protected override getHandler(hashes: Hash[]): Promisable<PayloadWithMeta[]> {\n return (\n hashes.map((hash) => {\n const cookieString = Cookies.get(this.keyFromHash(hash))\n return cookieString ? JSON.parse(cookieString) : undefined\n })\n ).filter(exists)\n }\n\n protected override async insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]> {\n try {\n const pairs = await PayloadBuilder.hashPairs(payloads)\n const resultPayloads: WithMeta<Payload>[] = await Promise.all(\n pairs.map(async ([payload, hash]) => {\n const payloadWithMeta = await PayloadBuilder.build(payload)\n const value = JSON.stringify(payloadWithMeta)\n assertEx(value.length < this.maxEntrySize, () => `Payload too large [${hash}, ${value.length}]`)\n Cookies.set(this.keyFromHash(hash), value)\n Cookies.set(this.keyFromHash(payload.$hash), value)\n return payloadWithMeta\n }),\n )\n return resultPayloads\n } catch (ex) {\n console.error(`Error: ${JSON.stringify(ex, null, 2)}`)\n throw ex\n }\n }\n\n private keyFromHash(hash: string) {\n return `${this.namespace}-${hash}`\n }\n}\n"],"mappings":"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","names":["assertEx","exists","fulfilled","AbstractArchivist","ArchivistAllQuerySchema","ArchivistClearQuerySchema","ArchivistCommitQuerySchema","ArchivistDeleteQuerySchema","ArchivistInsertQuerySchema","PayloadBuilder","Cookies","CookieArchivistConfigSchema","CookieArchivist","AbstractArchivist","configSchemas","defaultConfigSchema","domain","config","maxEntries","maxEntrySize","namespace","queries","ArchivistAllQuerySchema","ArchivistDeleteQuerySchema","ArchivistClearQuerySchema","ArchivistInsertQuerySchema","ArchivistCommitQuerySchema","allHandler","Object","entries","Cookies","get","filter","key","startsWith","map","value","JSON","parse","ex","console","error","stringify","clearHandler","remove","commitHandler","payloads","all","assertEx","length","settled","Promise","allSettled","values","parentArchivists","commit","parent","queryPayload","PayloadBuilder","build","schema","query","bindQuery","exists","clear","fulfilled","result","deleteHandler","hashes","payloadPairs","dataHashPairs","deletedPairs","payload","hash","getHandler","cookieString","keyFromHash","undefined","insertHandler","pairs","hashPairs","resultPayloads","payloadWithMeta","set","$hash"]}
package/package.json CHANGED
@@ -10,25 +10,25 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.12",
14
- "@xylabs/hex": "^3.6.12",
15
- "@xylabs/lodash": "^3.6.12",
16
- "@xylabs/promise": "^3.6.12",
17
- "@xyo-network/archivist-abstract": "^3.0.0",
18
- "@xyo-network/archivist-model": "^3.0.0",
19
- "@xyo-network/boundwitness-model": "^3.0.0",
20
- "@xyo-network/module-model": "^3.0.0",
21
- "@xyo-network/payload-builder": "^3.0.0",
22
- "@xyo-network/payload-model": "^3.0.0",
13
+ "@xylabs/assert": "^4.0.0",
14
+ "@xylabs/exists": "^4.0.0",
15
+ "@xylabs/hex": "^4.0.0",
16
+ "@xylabs/promise": "^4.0.0",
17
+ "@xyo-network/archivist-abstract": "^3.0.1",
18
+ "@xyo-network/archivist-model": "^3.0.1",
19
+ "@xyo-network/boundwitness-model": "^3.0.1",
20
+ "@xyo-network/module-model": "^3.0.1",
21
+ "@xyo-network/payload-builder": "^3.0.1",
22
+ "@xyo-network/payload-model": "^3.0.1",
23
23
  "js-cookie": "^3.0.5"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/js-cookie": "^3.0.6",
27
- "@xylabs/delay": "^3.6.12",
28
- "@xylabs/ts-scripts-yarn3": "next",
29
- "@xylabs/tsconfig": "next",
30
- "@xyo-network/id-payload-plugin": "^3.0.0",
31
- "@xyo-network/payload-wrapper": "^3.0.0",
27
+ "@xylabs/delay": "^4.0.0",
28
+ "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
29
+ "@xylabs/tsconfig": "^4.0.0-rc.15",
30
+ "@xyo-network/id-payload-plugin": "^3.0.1",
31
+ "@xyo-network/payload-wrapper": "^3.0.1",
32
32
  "typescript": "^5.5.4"
33
33
  },
34
34
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -51,6 +51,6 @@
51
51
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
52
52
  },
53
53
  "sideEffects": false,
54
- "version": "3.0.0",
54
+ "version": "3.0.1",
55
55
  "type": "module"
56
56
  }
@@ -1,6 +1,6 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
+ import { exists } from '@xylabs/exists'
2
3
  import { Hash } from '@xylabs/hex'
3
- import { compact } from '@xylabs/lodash'
4
4
  import { fulfilled, Promisable, PromisableArray } from '@xylabs/promise'
5
5
  import { AbstractArchivist } from '@xyo-network/archivist-abstract'
6
6
  import {
@@ -98,18 +98,18 @@ export class CookieArchivist<
98
98
  const payloads = await this.all()
99
99
  assertEx(payloads.length > 0, () => 'Nothing to commit')
100
100
  const settled = await Promise.allSettled(
101
- compact(
101
+ (
102
102
  Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {
103
103
  const queryPayload: WithMeta<ArchivistInsertQuery> = await PayloadBuilder.build({
104
104
  schema: ArchivistInsertQuerySchema,
105
105
  })
106
106
  const query = await this.bindQuery(queryPayload, payloads)
107
107
  return (await parent?.query(query[0], query[1]))?.[0]
108
- }),
109
- ),
108
+ })
109
+ ).filter(exists),
110
110
  )
111
111
  await this.clear()
112
- return compact(settled.filter(fulfilled).map(result => result.value))
112
+ return settled.filter(fulfilled).map(result => result.value).filter(exists)
113
113
  } catch (ex) {
114
114
  console.error(`Error: ${JSON.stringify(ex, null, 2)}`)
115
115
  throw ex
@@ -118,24 +118,24 @@ export class CookieArchivist<
118
118
 
119
119
  protected override async deleteHandler(hashes: Hash[]): Promise<Hash[]> {
120
120
  const payloadPairs = await PayloadBuilder.dataHashPairs(await this.get(hashes))
121
- const deletedPairs = compact(
121
+ const deletedPairs = (
122
122
  await Promise.all(
123
123
  payloadPairs.map<[Payload, Hash]>(([payload, hash]) => {
124
124
  Cookies.remove(hash)
125
125
  return [payload, hash]
126
126
  }),
127
- ),
128
- )
127
+ )
128
+ ).filter(exists)
129
129
  return deletedPairs.map(([, hash]) => hash)
130
130
  }
131
131
 
132
132
  protected override getHandler(hashes: Hash[]): Promisable<PayloadWithMeta[]> {
133
- return compact(
133
+ return (
134
134
  hashes.map((hash) => {
135
135
  const cookieString = Cookies.get(this.keyFromHash(hash))
136
136
  return cookieString ? JSON.parse(cookieString) : undefined
137
- }),
138
- )
137
+ })
138
+ ).filter(exists)
139
139
  }
140
140
 
141
141
  protected override async insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]> {