@xyo-network/archivist-cookie 2.111.3 → 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.
Files changed (51) hide show
  1. package/dist/browser/index.d.ts +36 -2
  2. package/dist/browser/index.mjs +8 -8
  3. package/dist/browser/index.mjs.map +1 -1
  4. package/package.json +20 -39
  5. package/src/CookieArchivist.ts +11 -11
  6. package/xy.config.ts +10 -0
  7. package/dist/browser/CookieArchivist.d.cts +0 -34
  8. package/dist/browser/CookieArchivist.d.cts.map +0 -1
  9. package/dist/browser/CookieArchivist.d.mts +0 -34
  10. package/dist/browser/CookieArchivist.d.mts.map +0 -1
  11. package/dist/browser/CookieArchivist.d.ts +0 -34
  12. package/dist/browser/CookieArchivist.d.ts.map +0 -1
  13. package/dist/browser/index.cjs +0 -155
  14. package/dist/browser/index.cjs.map +0 -1
  15. package/dist/browser/index.d.cts +0 -2
  16. package/dist/browser/index.d.cts.map +0 -1
  17. package/dist/browser/index.d.mts +0 -2
  18. package/dist/browser/index.d.mts.map +0 -1
  19. package/dist/browser/index.d.ts.map +0 -1
  20. package/dist/neutral/CookieArchivist.d.cts +0 -34
  21. package/dist/neutral/CookieArchivist.d.cts.map +0 -1
  22. package/dist/neutral/CookieArchivist.d.mts +0 -34
  23. package/dist/neutral/CookieArchivist.d.mts.map +0 -1
  24. package/dist/neutral/CookieArchivist.d.ts +0 -34
  25. package/dist/neutral/CookieArchivist.d.ts.map +0 -1
  26. package/dist/neutral/index.cjs +0 -155
  27. package/dist/neutral/index.cjs.map +0 -1
  28. package/dist/neutral/index.d.cts +0 -2
  29. package/dist/neutral/index.d.cts.map +0 -1
  30. package/dist/neutral/index.d.mts +0 -2
  31. package/dist/neutral/index.d.mts.map +0 -1
  32. package/dist/neutral/index.d.ts +0 -2
  33. package/dist/neutral/index.d.ts.map +0 -1
  34. package/dist/neutral/index.mjs +0 -124
  35. package/dist/neutral/index.mjs.map +0 -1
  36. package/dist/node/CookieArchivist.d.cts +0 -34
  37. package/dist/node/CookieArchivist.d.cts.map +0 -1
  38. package/dist/node/CookieArchivist.d.mts +0 -34
  39. package/dist/node/CookieArchivist.d.mts.map +0 -1
  40. package/dist/node/CookieArchivist.d.ts +0 -34
  41. package/dist/node/CookieArchivist.d.ts.map +0 -1
  42. package/dist/node/index.cjs +0 -169
  43. package/dist/node/index.cjs.map +0 -1
  44. package/dist/node/index.d.cts +0 -2
  45. package/dist/node/index.d.cts.map +0 -1
  46. package/dist/node/index.d.mts +0 -2
  47. package/dist/node/index.d.mts.map +0 -1
  48. package/dist/node/index.d.ts +0 -2
  49. package/dist/node/index.d.ts.map +0 -1
  50. package/dist/node/index.mjs +0 -134
  51. package/dist/node/index.mjs.map +0 -1
@@ -1,2 +1,36 @@
1
- export * from './CookieArchivist.ts';
2
- //# sourceMappingURL=index.d.ts.map
1
+ import { Hash } from '@xylabs/hex';
2
+ import { PromisableArray, Promisable } from '@xylabs/promise';
3
+ import { AbstractArchivist } from '@xyo-network/archivist-abstract';
4
+ import { ArchivistConfig, ArchivistParams, ArchivistModuleEventData } from '@xyo-network/archivist-model';
5
+ import { BoundWitness } from '@xyo-network/boundwitness-model';
6
+ import { AnyConfigSchema } from '@xyo-network/module-model';
7
+ import { Schema, WithMeta, Payload, PayloadWithMeta } from '@xyo-network/payload-model';
8
+
9
+ type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config';
10
+ declare const CookieArchivistConfigSchema: CookieArchivistConfigSchema;
11
+ type CookieArchivistConfig = ArchivistConfig<{
12
+ domain?: string;
13
+ maxEntries?: number;
14
+ maxEntrySize?: number;
15
+ namespace?: string;
16
+ schema: CookieArchivistConfigSchema;
17
+ }>;
18
+ type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>;
19
+ declare class CookieArchivist<TParams extends CookieArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> {
20
+ static readonly configSchemas: Schema[];
21
+ static readonly defaultConfigSchema: Schema;
22
+ get domain(): string | undefined;
23
+ get maxEntries(): number;
24
+ get maxEntrySize(): number;
25
+ get namespace(): string;
26
+ get queries(): string[];
27
+ protected allHandler(): PromisableArray<WithMeta<Payload>>;
28
+ protected clearHandler(): void | Promise<void>;
29
+ protected commitHandler(): Promise<WithMeta<BoundWitness>[]>;
30
+ protected deleteHandler(hashes: Hash[]): Promise<Hash[]>;
31
+ protected getHandler(hashes: Hash[]): Promisable<PayloadWithMeta[]>;
32
+ protected insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]>;
33
+ private keyFromHash;
34
+ }
35
+
36
+ export { CookieArchivist, type CookieArchivistConfig, CookieArchivistConfigSchema, type CookieArchivistParams };
@@ -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,56 +10,37 @@
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": "^2.111.3",
18
- "@xyo-network/archivist-model": "^2.111.3",
19
- "@xyo-network/boundwitness-model": "^2.111.3",
20
- "@xyo-network/module-model": "^2.111.3",
21
- "@xyo-network/payload-builder": "^2.111.3",
22
- "@xyo-network/payload-model": "^2.111.3",
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": "^3.15.14",
29
- "@xylabs/tsconfig": "^3.15.14",
30
- "@xyo-network/id-payload-plugin": "^2.111.3",
31
- "@xyo-network/payload-wrapper": "^2.111.3",
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",
35
- "types": "dist/node/index.d.ts",
35
+ "types": "dist/browser/index.d.ts",
36
36
  "exports": {
37
37
  ".": {
38
- "browser": {
39
- "require": {
40
- "types": "./dist/browser/index.d.cts",
41
- "default": "./dist/browser/index.cjs"
42
- },
43
- "import": {
44
- "types": "./dist/browser/index.d.mts",
45
- "default": "./dist/browser/index.mjs"
46
- }
47
- },
48
- "node": {
49
- "require": {
50
- "types": "./dist/node/index.d.cts",
51
- "default": "./dist/node/index.cjs"
52
- },
53
- "import": {
54
- "types": "./dist/node/index.d.mts",
55
- "default": "./dist/node/index.mjs"
56
- }
57
- }
38
+ "types": "./dist/browser/index.d.ts",
39
+ "default": "./dist/browser/index.mjs"
58
40
  },
59
41
  "./package.json": "./package.json"
60
42
  },
61
- "main": "dist/node/index.cjs",
62
- "module": "dist/node/index.mjs",
43
+ "module": "dist/browser/index.mjs",
63
44
  "homepage": "https://xyo.network",
64
45
  "license": "LGPL-3.0-only",
65
46
  "publishConfig": {
@@ -70,6 +51,6 @@
70
51
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
71
52
  },
72
53
  "sideEffects": false,
73
- "version": "2.111.3",
54
+ "version": "3.0.1",
74
55
  "type": "module"
75
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>[]> {
package/xy.config.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
+ const config: XyTsupConfig = {
3
+ compile: {
4
+ browser: { src: true },
5
+ neutral: {},
6
+ node: {},
7
+ },
8
+ }
9
+
10
+ export default config
@@ -1,34 +0,0 @@
1
- import { Hash } from '@xylabs/hex';
2
- import { Promisable, PromisableArray } from '@xylabs/promise';
3
- import { AbstractArchivist } from '@xyo-network/archivist-abstract';
4
- import { ArchivistConfig, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
5
- import { BoundWitness } from '@xyo-network/boundwitness-model';
6
- import { AnyConfigSchema } from '@xyo-network/module-model';
7
- import { Payload, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model';
8
- export type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config';
9
- export declare const CookieArchivistConfigSchema: CookieArchivistConfigSchema;
10
- export type CookieArchivistConfig = ArchivistConfig<{
11
- domain?: string;
12
- maxEntries?: number;
13
- maxEntrySize?: number;
14
- namespace?: string;
15
- schema: CookieArchivistConfigSchema;
16
- }>;
17
- export type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>;
18
- export declare class CookieArchivist<TParams extends CookieArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> {
19
- static readonly configSchemas: Schema[];
20
- static readonly defaultConfigSchema: Schema;
21
- get domain(): string | undefined;
22
- get maxEntries(): number;
23
- get maxEntrySize(): number;
24
- get namespace(): string;
25
- get queries(): string[];
26
- protected allHandler(): PromisableArray<WithMeta<Payload>>;
27
- protected clearHandler(): void | Promise<void>;
28
- protected commitHandler(): Promise<WithMeta<BoundWitness>[]>;
29
- protected deleteHandler(hashes: Hash[]): Promise<Hash[]>;
30
- protected getHandler(hashes: Hash[]): Promisable<PayloadWithMeta[]>;
31
- protected insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]>;
32
- private keyFromHash;
33
- }
34
- //# sourceMappingURL=CookieArchivist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieArchivist.d.ts","sourceRoot":"","sources":["../../src/CookieArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAIf,wBAAwB,EACxB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGvF,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAE3F,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,EACrC,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,IAAI,MAAM,uBAET;IAED,IAAI,UAAU,WAGb;IAED,IAAI,YAAY,WAGf;IAED,IAAI,SAAS,WAEZ;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;cAEkB,UAAU,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;cAWhD,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAa9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAuBlD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;cAapD,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;cASnD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAoBzF,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,34 +0,0 @@
1
- import { Hash } from '@xylabs/hex';
2
- import { Promisable, PromisableArray } from '@xylabs/promise';
3
- import { AbstractArchivist } from '@xyo-network/archivist-abstract';
4
- import { ArchivistConfig, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
5
- import { BoundWitness } from '@xyo-network/boundwitness-model';
6
- import { AnyConfigSchema } from '@xyo-network/module-model';
7
- import { Payload, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model';
8
- export type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config';
9
- export declare const CookieArchivistConfigSchema: CookieArchivistConfigSchema;
10
- export type CookieArchivistConfig = ArchivistConfig<{
11
- domain?: string;
12
- maxEntries?: number;
13
- maxEntrySize?: number;
14
- namespace?: string;
15
- schema: CookieArchivistConfigSchema;
16
- }>;
17
- export type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>;
18
- export declare class CookieArchivist<TParams extends CookieArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> {
19
- static readonly configSchemas: Schema[];
20
- static readonly defaultConfigSchema: Schema;
21
- get domain(): string | undefined;
22
- get maxEntries(): number;
23
- get maxEntrySize(): number;
24
- get namespace(): string;
25
- get queries(): string[];
26
- protected allHandler(): PromisableArray<WithMeta<Payload>>;
27
- protected clearHandler(): void | Promise<void>;
28
- protected commitHandler(): Promise<WithMeta<BoundWitness>[]>;
29
- protected deleteHandler(hashes: Hash[]): Promise<Hash[]>;
30
- protected getHandler(hashes: Hash[]): Promisable<PayloadWithMeta[]>;
31
- protected insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]>;
32
- private keyFromHash;
33
- }
34
- //# sourceMappingURL=CookieArchivist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieArchivist.d.ts","sourceRoot":"","sources":["../../src/CookieArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAIf,wBAAwB,EACxB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGvF,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAE3F,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,EACrC,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,IAAI,MAAM,uBAET;IAED,IAAI,UAAU,WAGb;IAED,IAAI,YAAY,WAGf;IAED,IAAI,SAAS,WAEZ;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;cAEkB,UAAU,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;cAWhD,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAa9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAuBlD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;cAapD,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;cASnD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAoBzF,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,34 +0,0 @@
1
- import { Hash } from '@xylabs/hex';
2
- import { Promisable, PromisableArray } from '@xylabs/promise';
3
- import { AbstractArchivist } from '@xyo-network/archivist-abstract';
4
- import { ArchivistConfig, ArchivistModuleEventData, ArchivistParams } from '@xyo-network/archivist-model';
5
- import { BoundWitness } from '@xyo-network/boundwitness-model';
6
- import { AnyConfigSchema } from '@xyo-network/module-model';
7
- import { Payload, PayloadWithMeta, Schema, WithMeta } from '@xyo-network/payload-model';
8
- export type CookieArchivistConfigSchema = 'network.xyo.archivist.cookie.config';
9
- export declare const CookieArchivistConfigSchema: CookieArchivistConfigSchema;
10
- export type CookieArchivistConfig = ArchivistConfig<{
11
- domain?: string;
12
- maxEntries?: number;
13
- maxEntrySize?: number;
14
- namespace?: string;
15
- schema: CookieArchivistConfigSchema;
16
- }>;
17
- export type CookieArchivistParams = ArchivistParams<AnyConfigSchema<CookieArchivistConfig>>;
18
- export declare class CookieArchivist<TParams extends CookieArchivistParams, TEventData extends ArchivistModuleEventData = ArchivistModuleEventData> extends AbstractArchivist<TParams, TEventData> {
19
- static readonly configSchemas: Schema[];
20
- static readonly defaultConfigSchema: Schema;
21
- get domain(): string | undefined;
22
- get maxEntries(): number;
23
- get maxEntrySize(): number;
24
- get namespace(): string;
25
- get queries(): string[];
26
- protected allHandler(): PromisableArray<WithMeta<Payload>>;
27
- protected clearHandler(): void | Promise<void>;
28
- protected commitHandler(): Promise<WithMeta<BoundWitness>[]>;
29
- protected deleteHandler(hashes: Hash[]): Promise<Hash[]>;
30
- protected getHandler(hashes: Hash[]): Promisable<PayloadWithMeta[]>;
31
- protected insertHandler(payloads: Payload[]): Promise<WithMeta<Payload>[]>;
32
- private keyFromHash;
33
- }
34
- //# sourceMappingURL=CookieArchivist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CookieArchivist.d.ts","sourceRoot":"","sources":["../../src/CookieArchivist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,OAAO,EAAa,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAIL,eAAe,EAIf,wBAAwB,EACxB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGvF,MAAM,MAAM,2BAA2B,GAAG,qCAAqC,CAAA;AAC/E,eAAO,MAAM,2BAA2B,EAAE,2BAAmE,CAAA;AAE7G,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAE3F,qBAAa,eAAe,CAC1B,OAAO,SAAS,qBAAqB,EACrC,UAAU,SAAS,wBAAwB,GAAG,wBAAwB,CACtE,SAAQ,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC9C,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,IAAI,MAAM,uBAET;IAED,IAAI,UAAU,WAGb;IAED,IAAI,YAAY,WAGf;IAED,IAAI,SAAS,WAEZ;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAS/B;cAEkB,UAAU,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;cAWhD,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;cAa9B,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;cAuBlD,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;cAapD,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;cASnD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAoBzF,OAAO,CAAC,WAAW;CAGpB"}
@@ -1,155 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
-
31
- // src/index.ts
32
- var src_exports = {};
33
- __export(src_exports, {
34
- CookieArchivist: () => CookieArchivist,
35
- CookieArchivistConfigSchema: () => CookieArchivistConfigSchema
36
- });
37
- module.exports = __toCommonJS(src_exports);
38
-
39
- // src/CookieArchivist.ts
40
- var import_assert = require("@xylabs/assert");
41
- var import_lodash = require("@xylabs/lodash");
42
- var import_promise = require("@xylabs/promise");
43
- var import_archivist_abstract = require("@xyo-network/archivist-abstract");
44
- var import_archivist_model = require("@xyo-network/archivist-model");
45
- var import_payload_builder = require("@xyo-network/payload-builder");
46
- var import_js_cookie = __toESM(require("js-cookie"), 1);
47
- var CookieArchivistConfigSchema = "network.xyo.archivist.cookie.config";
48
- var CookieArchivist = class extends import_archivist_abstract.AbstractArchivist {
49
- static {
50
- __name(this, "CookieArchivist");
51
- }
52
- static configSchemas = [
53
- ...super.configSchemas,
54
- CookieArchivistConfigSchema
55
- ];
56
- static defaultConfigSchema = CookieArchivistConfigSchema;
57
- get domain() {
58
- return this.config?.domain;
59
- }
60
- get maxEntries() {
61
- return this.config?.maxEntries ?? 60;
62
- }
63
- get maxEntrySize() {
64
- return this.config?.maxEntrySize ?? 4e3;
65
- }
66
- get namespace() {
67
- return this.config?.namespace ?? "xyoarch";
68
- }
69
- get queries() {
70
- return [
71
- import_archivist_model.ArchivistAllQuerySchema,
72
- import_archivist_model.ArchivistDeleteQuerySchema,
73
- import_archivist_model.ArchivistClearQuerySchema,
74
- import_archivist_model.ArchivistInsertQuerySchema,
75
- import_archivist_model.ArchivistCommitQuerySchema,
76
- ...super.queries
77
- ];
78
- }
79
- allHandler() {
80
- try {
81
- return Object.entries(import_js_cookie.default.get()).filter(([key]) => key.startsWith(`${this.namespace}-`)).map(([, value]) => JSON.parse(value));
82
- } catch (ex) {
83
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`);
84
- throw ex;
85
- }
86
- }
87
- clearHandler() {
88
- try {
89
- for (const [key] of Object.entries(import_js_cookie.default.get())) {
90
- if (key.startsWith(`${this.namespace}-`)) {
91
- import_js_cookie.default.remove(key);
92
- }
93
- }
94
- } catch (ex) {
95
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`);
96
- throw ex;
97
- }
98
- }
99
- async commitHandler() {
100
- try {
101
- const payloads = await this.all();
102
- (0, import_assert.assertEx)(payloads.length > 0, () => "Nothing to commit");
103
- const settled = await Promise.allSettled((0, import_lodash.compact)(Object.values((await this.parentArchivists()).commit ?? [])?.map(async (parent) => {
104
- const queryPayload = await import_payload_builder.PayloadBuilder.build({
105
- schema: import_archivist_model.ArchivistInsertQuerySchema
106
- });
107
- const query = await this.bindQuery(queryPayload, payloads);
108
- return (await parent?.query(query[0], query[1]))?.[0];
109
- })));
110
- await this.clear();
111
- return (0, import_lodash.compact)(settled.filter(import_promise.fulfilled).map((result) => result.value));
112
- } catch (ex) {
113
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`);
114
- throw ex;
115
- }
116
- }
117
- async deleteHandler(hashes) {
118
- const payloadPairs = await import_payload_builder.PayloadBuilder.dataHashPairs(await this.get(hashes));
119
- const deletedPairs = (0, import_lodash.compact)(await Promise.all(payloadPairs.map(([payload, hash]) => {
120
- import_js_cookie.default.remove(hash);
121
- return [
122
- payload,
123
- hash
124
- ];
125
- })));
126
- return deletedPairs.map(([, hash]) => hash);
127
- }
128
- getHandler(hashes) {
129
- return (0, import_lodash.compact)(hashes.map((hash) => {
130
- const cookieString = import_js_cookie.default.get(this.keyFromHash(hash));
131
- return cookieString ? JSON.parse(cookieString) : void 0;
132
- }));
133
- }
134
- async insertHandler(payloads) {
135
- try {
136
- const pairs = await import_payload_builder.PayloadBuilder.hashPairs(payloads);
137
- const resultPayloads = await Promise.all(pairs.map(async ([payload, hash]) => {
138
- const payloadWithMeta = await import_payload_builder.PayloadBuilder.build(payload);
139
- const value = JSON.stringify(payloadWithMeta);
140
- (0, import_assert.assertEx)(value.length < this.maxEntrySize, () => `Payload too large [${hash}, ${value.length}]`);
141
- import_js_cookie.default.set(this.keyFromHash(hash), value);
142
- import_js_cookie.default.set(this.keyFromHash(payload.$hash), value);
143
- return payloadWithMeta;
144
- }));
145
- return resultPayloads;
146
- } catch (ex) {
147
- console.error(`Error: ${JSON.stringify(ex, null, 2)}`);
148
- throw ex;
149
- }
150
- }
151
- keyFromHash(hash) {
152
- return `${this.namespace}-${hash}`;
153
- }
154
- };
155
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/CookieArchivist.ts"],"sourcesContent":["export * from './CookieArchivist.ts'\n","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":["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,2 +0,0 @@
1
- export * from './CookieArchivist.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './CookieArchivist.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}