@powerhousedao/connect 2.5.0-dev.8 → 2.5.0-dev.9
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/dist/assets/{app-loader-vVhBxIuY.js → app-loader-CoyBESHk.js} +5 -5
- package/dist/assets/{app-loader-vVhBxIuY.js.map → app-loader-CoyBESHk.js.map} +1 -1
- package/dist/assets/{app-I2eUc7Ka.js → app-zx1YyyUM.js} +12 -12
- package/dist/assets/{app-I2eUc7Ka.js.map → app-zx1YyyUM.js.map} +1 -1
- package/dist/assets/{browser-D5qWTuHp.js → browser-B-knZlQT.js} +4 -4
- package/dist/assets/{browser-D5qWTuHp.js.map → browser-B-knZlQT.js.map} +1 -1
- package/dist/assets/{ccip-DaAg3ehg.js → ccip-D4nCXVI1.js} +4 -4
- package/dist/assets/{ccip-DaAg3ehg.js.map → ccip-D4nCXVI1.js.map} +1 -1
- package/dist/assets/{content-Da0-C8M1.js → content-D7s7KOOd.js} +5 -5
- package/dist/assets/{content-Da0-C8M1.js.map → content-D7s7KOOd.js.map} +1 -1
- package/dist/assets/{index-B7wlX9_2.js → index-3URObUWC.js} +4 -4
- package/dist/assets/{index-B7wlX9_2.js.map → index-3URObUWC.js.map} +1 -1
- package/dist/assets/{index-CdVeNIwo.js → index-BwMq3vZI.js} +5 -5
- package/dist/assets/{index-CdVeNIwo.js.map → index-BwMq3vZI.js.map} +1 -1
- package/dist/assets/{index-BUGAkmTe.js → index-DPbdjvDn.js} +4 -4
- package/dist/assets/{index-BUGAkmTe.js.map → index-DPbdjvDn.js.map} +1 -1
- package/dist/assets/{index-BbrQ4A6-.js → index-Dfw6sZ3B.js} +4 -4
- package/dist/assets/{index-BbrQ4A6-.js.map → index-Dfw6sZ3B.js.map} +1 -1
- package/dist/assets/{main.CN6_kLSi.js → main.DR_V0RtA.js} +2 -2
- package/dist/assets/{main.CN6_kLSi.js.map → main.DR_V0RtA.js.map} +1 -1
- package/dist/assets/{reactor-analytics-DaBv00Mj.js → reactor-analytics-CghowkXY.js} +6 -6
- package/dist/assets/{reactor-analytics-DaBv00Mj.js.map → reactor-analytics-CghowkXY.js.map} +1 -1
- package/dist/assets/{router-D1C9W_D4.js → router-Dbtpg473.js} +6 -6
- package/dist/assets/{router-D1C9W_D4.js.map → router-Dbtpg473.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/vite-envs.sh +1 -1
- package/package.json +9 -9
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { a8 as AnalyticsPath, a7 as DateTime } from "./app-
|
|
5
|
-
import { ag as childLogger } from "./app-loader-
|
|
6
|
-
import "./main.
|
|
4
|
+
import { a8 as AnalyticsPath, a7 as DateTime } from "./app-zx1YyyUM.js";
|
|
5
|
+
import { ag as childLogger } from "./app-loader-CoyBESHk.js";
|
|
6
|
+
import "./main.DR_V0RtA.js";
|
|
7
7
|
import "react/jsx-runtime";
|
|
8
8
|
import "react";
|
|
9
9
|
import "react-dom";
|
|
@@ -205,4 +205,4 @@ const processorFactory = (module) => (driveId) => {
|
|
|
205
205
|
export {
|
|
206
206
|
processorFactory
|
|
207
207
|
};
|
|
208
|
-
//# sourceMappingURL=index-
|
|
208
|
+
//# sourceMappingURL=index-Dfw6sZ3B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-BbrQ4A6-.js","sources":["../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.4_8c5db4e75bdfe1aaa29ef5c1a21f284a/node_modules/@powerhousedao/diff-analyzer/dist/lib/document-diff.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.4_8c5db4e75bdfe1aaa29ef5c1a21f284a/node_modules/@powerhousedao/diff-analyzer/dist/processors/diff-analytics/index.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.4_8c5db4e75bdfe1aaa29ef5c1a21f284a/node_modules/@powerhousedao/diff-analyzer/dist/processors/index.js"],"sourcesContent":["/**\n * Calculates the difference between two document states\n */\nexport function diffDocumentStates(doc1, doc2) {\n const changes = [];\n // Compare global state\n const globalChanges = diffStateObjects(doc1, doc2, \"state.global\", \"global\");\n changes.push(...globalChanges);\n // Count changes by type\n const additions = changes.filter((c) => c.type === \"add\").length;\n const removals = changes.filter((c) => c.type === \"remove\").length;\n // Group changes by scope\n const changesByScope = {\n global: changes.filter((c) => c.scope === \"global\"),\n };\n return {\n totalChanges: changes.length,\n additions,\n removals,\n changesByScope,\n changes,\n };\n}\n/**\n * Recursively compares two state objects and returns a list of changes\n */\nfunction diffStateObjects(obj1, obj2, path, scope) {\n const changes = [];\n // Handle primitive values\n if (typeof obj1 !== \"object\" ||\n typeof obj2 !== \"object\" ||\n obj1 === null ||\n obj2 === null) {\n if (obj1 !== obj2) {\n // Special handling for strings to diff character by character\n if (typeof obj1 === \"string\" && typeof obj2 === \"string\") {\n return diffStateStrings(obj1, obj2, path, scope);\n }\n else {\n // For non-string primitives, treat a change as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n }\n }\n return changes;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n // Compare array lengths\n if (obj1.length !== obj2.length) {\n // For arrays with different lengths, treat as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n return changes;\n }\n // Compare array elements\n for (let i = 0; i < obj1.length; i++) {\n const elementChanges = diffStateObjects(obj1[i], obj2[i], `${path}[${i}]`, scope);\n changes.push(...elementChanges);\n }\n return changes;\n }\n // Handle objects\n const obj1Record = obj1;\n const obj2Record = obj2;\n const obj1Keys = Object.keys(obj1Record);\n const obj2Keys = Object.keys(obj2Record);\n // First, check for removed keys\n for (const key of obj1Keys) {\n if (!(key in obj2Record)) {\n // Key was removed\n changes.push({\n type: \"remove\",\n path: `${path}.${key}`,\n oldValue: obj1Record[key],\n scope,\n });\n }\n }\n // Then, check for added keys and modified values\n for (const key of obj2Keys) {\n if (!(key in obj1Record)) {\n // Key was added\n changes.push({\n type: \"add\",\n path: `${path}.${key}`,\n newValue: obj2Record[key],\n scope,\n });\n }\n else if (obj1Record[key] !== obj2Record[key]) {\n // For object changes, recursively diff the objects\n const nestedChanges = diffStateObjects(obj1Record[key], obj2Record[key], `${path}.${key}`, scope);\n changes.push(...nestedChanges);\n }\n }\n return changes;\n}\n/**\n * Compares two strings character by character and returns a list of changes\n */\nfunction diffStateStrings(str1, str2, path, scope) {\n const changes = [];\n const maxLen = Math.max(str1.length, str2.length);\n for (let i = 0; i < maxLen; i++) {\n if (i >= str1.length) {\n // Addition of new character\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n else if (i >= str2.length) {\n // Removal of character\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n }\n else if (str1[i] !== str2[i]) {\n // Character changed\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n }\n return changes;\n}\n/**\n * Generates analytics data from a state diff summary\n */\nexport function generateStateAnalyticsData(diff) {\n return {\n totalChanges: diff.totalChanges,\n changesByType: {\n add: diff.additions,\n remove: diff.removals,\n },\n changesByScope: {\n global: diff.changesByScope.global.length,\n },\n changePaths: diff.changes.map((c) => c.path),\n };\n}\n","import { AnalyticsPath, } from \"@powerhousedao/analytics-engine-core\";\nimport { DateTime } from \"luxon\";\nimport { diffDocumentStates } from \"../../lib/document-diff.js\";\nimport { childLogger } from \"document-drive\";\nexport class DiffAnalyticsProcessor {\n analyticsStore;\n logger;\n constructor(analyticsStore, logger = childLogger([\"processor\", \"diff-analytics\"])) {\n this.analyticsStore = analyticsStore;\n this.logger = logger;\n //\n }\n async onStrands(strands) {\n if (strands.length === 0) {\n return;\n }\n const inputs = [];\n for (const strand of strands) {\n if (strand.operations.length === 0) {\n continue;\n }\n const firstOp = strand.operations[0];\n const source = AnalyticsPath.fromString(`ph/${strand.driveId}/${strand.documentId}/${strand.branch}/${strand.scope}`);\n if (firstOp.index === 0) {\n await this.clearSource(source);\n }\n for (const operation of strand.operations) {\n const diff = diffDocumentStates(operation.previousState, operation.state);\n for (const change of diff.changes) {\n inputs.push(this.generateInput(strand.documentId, strand.branch, strand.scope, operation.index, change.type, 1, source, operation.timestamp, change.path));\n }\n }\n }\n if (inputs.length) {\n await this.analyticsStore.addSeriesValues(inputs);\n }\n }\n async onDisconnect() { }\n async clearSource(source) {\n try {\n await this.analyticsStore.clearSeriesBySource(source, true);\n }\n catch (e) {\n this.logger.error(\"Failed to clear source\", e);\n }\n }\n generateInput(documentId, branch, scope, revision, type, value, source, timestamp, path) {\n const dimensions = {};\n const changePath = path.split(\"[\")[0].replaceAll(\".\", \"/\");\n dimensions.changes = AnalyticsPath.fromString(`changes/${type}`);\n dimensions.document = AnalyticsPath.fromString(`document/${documentId}/${branch}/${scope}/${revision}`);\n dimensions.path = AnalyticsPath.fromString(`path/${changePath}`);\n return {\n dimensions,\n metric: \"Count\",\n start: DateTime.fromISO(timestamp),\n source,\n value,\n };\n }\n}\n","/**\n * This is a scaffold file meant for customization.\n * Delete the file and run the code generator again to have it reset\n */\nimport { DiffAnalyticsProcessor } from \"./diff-analytics/index.js\";\nexport const processorFactory = (module) => (driveId) => {\n return [\n {\n processor: new DiffAnalyticsProcessor(module.analyticsStore),\n filter: {\n branch: [\"main\"],\n documentId: [\"*\"],\n scope: [\"*\"],\n documentType: [\"*\"],\n },\n },\n ];\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"index-Dfw6sZ3B.js","sources":["../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.4_8c5db4e75bdfe1aaa29ef5c1a21f284a/node_modules/@powerhousedao/diff-analyzer/dist/lib/document-diff.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.4_8c5db4e75bdfe1aaa29ef5c1a21f284a/node_modules/@powerhousedao/diff-analyzer/dist/processors/diff-analytics/index.js","../../../../node_modules/.pnpm/@powerhousedao+diff-analyzer@0.0.0-dev.4_8c5db4e75bdfe1aaa29ef5c1a21f284a/node_modules/@powerhousedao/diff-analyzer/dist/processors/index.js"],"sourcesContent":["/**\n * Calculates the difference between two document states\n */\nexport function diffDocumentStates(doc1, doc2) {\n const changes = [];\n // Compare global state\n const globalChanges = diffStateObjects(doc1, doc2, \"state.global\", \"global\");\n changes.push(...globalChanges);\n // Count changes by type\n const additions = changes.filter((c) => c.type === \"add\").length;\n const removals = changes.filter((c) => c.type === \"remove\").length;\n // Group changes by scope\n const changesByScope = {\n global: changes.filter((c) => c.scope === \"global\"),\n };\n return {\n totalChanges: changes.length,\n additions,\n removals,\n changesByScope,\n changes,\n };\n}\n/**\n * Recursively compares two state objects and returns a list of changes\n */\nfunction diffStateObjects(obj1, obj2, path, scope) {\n const changes = [];\n // Handle primitive values\n if (typeof obj1 !== \"object\" ||\n typeof obj2 !== \"object\" ||\n obj1 === null ||\n obj2 === null) {\n if (obj1 !== obj2) {\n // Special handling for strings to diff character by character\n if (typeof obj1 === \"string\" && typeof obj2 === \"string\") {\n return diffStateStrings(obj1, obj2, path, scope);\n }\n else {\n // For non-string primitives, treat a change as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n }\n }\n return changes;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n // Compare array lengths\n if (obj1.length !== obj2.length) {\n // For arrays with different lengths, treat as a remove + add\n changes.push({\n type: \"remove\",\n path,\n oldValue: obj1,\n scope,\n });\n changes.push({\n type: \"add\",\n path,\n newValue: obj2,\n scope,\n });\n return changes;\n }\n // Compare array elements\n for (let i = 0; i < obj1.length; i++) {\n const elementChanges = diffStateObjects(obj1[i], obj2[i], `${path}[${i}]`, scope);\n changes.push(...elementChanges);\n }\n return changes;\n }\n // Handle objects\n const obj1Record = obj1;\n const obj2Record = obj2;\n const obj1Keys = Object.keys(obj1Record);\n const obj2Keys = Object.keys(obj2Record);\n // First, check for removed keys\n for (const key of obj1Keys) {\n if (!(key in obj2Record)) {\n // Key was removed\n changes.push({\n type: \"remove\",\n path: `${path}.${key}`,\n oldValue: obj1Record[key],\n scope,\n });\n }\n }\n // Then, check for added keys and modified values\n for (const key of obj2Keys) {\n if (!(key in obj1Record)) {\n // Key was added\n changes.push({\n type: \"add\",\n path: `${path}.${key}`,\n newValue: obj2Record[key],\n scope,\n });\n }\n else if (obj1Record[key] !== obj2Record[key]) {\n // For object changes, recursively diff the objects\n const nestedChanges = diffStateObjects(obj1Record[key], obj2Record[key], `${path}.${key}`, scope);\n changes.push(...nestedChanges);\n }\n }\n return changes;\n}\n/**\n * Compares two strings character by character and returns a list of changes\n */\nfunction diffStateStrings(str1, str2, path, scope) {\n const changes = [];\n const maxLen = Math.max(str1.length, str2.length);\n for (let i = 0; i < maxLen; i++) {\n if (i >= str1.length) {\n // Addition of new character\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n else if (i >= str2.length) {\n // Removal of character\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n }\n else if (str1[i] !== str2[i]) {\n // Character changed\n changes.push({\n type: \"remove\",\n path: `${path}[${i}]`,\n oldValue: str1[i],\n scope,\n });\n changes.push({\n type: \"add\",\n path: `${path}[${i}]`,\n newValue: str2[i],\n scope,\n });\n }\n }\n return changes;\n}\n/**\n * Generates analytics data from a state diff summary\n */\nexport function generateStateAnalyticsData(diff) {\n return {\n totalChanges: diff.totalChanges,\n changesByType: {\n add: diff.additions,\n remove: diff.removals,\n },\n changesByScope: {\n global: diff.changesByScope.global.length,\n },\n changePaths: diff.changes.map((c) => c.path),\n };\n}\n","import { AnalyticsPath, } from \"@powerhousedao/analytics-engine-core\";\nimport { DateTime } from \"luxon\";\nimport { diffDocumentStates } from \"../../lib/document-diff.js\";\nimport { childLogger } from \"document-drive\";\nexport class DiffAnalyticsProcessor {\n analyticsStore;\n logger;\n constructor(analyticsStore, logger = childLogger([\"processor\", \"diff-analytics\"])) {\n this.analyticsStore = analyticsStore;\n this.logger = logger;\n //\n }\n async onStrands(strands) {\n if (strands.length === 0) {\n return;\n }\n const inputs = [];\n for (const strand of strands) {\n if (strand.operations.length === 0) {\n continue;\n }\n const firstOp = strand.operations[0];\n const source = AnalyticsPath.fromString(`ph/${strand.driveId}/${strand.documentId}/${strand.branch}/${strand.scope}`);\n if (firstOp.index === 0) {\n await this.clearSource(source);\n }\n for (const operation of strand.operations) {\n const diff = diffDocumentStates(operation.previousState, operation.state);\n for (const change of diff.changes) {\n inputs.push(this.generateInput(strand.documentId, strand.branch, strand.scope, operation.index, change.type, 1, source, operation.timestamp, change.path));\n }\n }\n }\n if (inputs.length) {\n await this.analyticsStore.addSeriesValues(inputs);\n }\n }\n async onDisconnect() { }\n async clearSource(source) {\n try {\n await this.analyticsStore.clearSeriesBySource(source, true);\n }\n catch (e) {\n this.logger.error(\"Failed to clear source\", e);\n }\n }\n generateInput(documentId, branch, scope, revision, type, value, source, timestamp, path) {\n const dimensions = {};\n const changePath = path.split(\"[\")[0].replaceAll(\".\", \"/\");\n dimensions.changes = AnalyticsPath.fromString(`changes/${type}`);\n dimensions.document = AnalyticsPath.fromString(`document/${documentId}/${branch}/${scope}/${revision}`);\n dimensions.path = AnalyticsPath.fromString(`path/${changePath}`);\n return {\n dimensions,\n metric: \"Count\",\n start: DateTime.fromISO(timestamp),\n source,\n value,\n };\n }\n}\n","/**\n * This is a scaffold file meant for customization.\n * Delete the file and run the code generator again to have it reset\n */\nimport { DiffAnalyticsProcessor } from \"./diff-analytics/index.js\";\nexport const processorFactory = (module) => (driveId) => {\n return [\n {\n processor: new DiffAnalyticsProcessor(module.analyticsStore),\n filter: {\n branch: [\"main\"],\n documentId: [\"*\"],\n scope: [\"*\"],\n documentType: [\"*\"],\n },\n },\n ];\n};\n"],"names":[],"mappings":";;;;;;;;;AAGO,SAAS,mBAAmB,MAAM,MAAM;AAC3C,QAAM,UAAU,CAAE;AAElB,QAAM,gBAAgB,iBAAiB,MAAM,MAAM,gBAAgB,QAAQ;AAC3E,UAAQ,KAAK,GAAG,aAAa;AAE7B,QAAM,YAAY,QAAQ,OAAO,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE;AAC1D,QAAM,WAAW,QAAQ,OAAO,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE;AAE5D,QAAM,iBAAiB;AAAA,IACnB,QAAQ,QAAQ,OAAO,CAAC,MAAM,EAAE,UAAU,QAAQ;AAAA,EACrD;AACD,SAAO;AAAA,IACH,cAAc,QAAQ;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AACL;AAIA,SAAS,iBAAiB,MAAM,MAAM,MAAM,OAAO;AAC/C,QAAM,UAAU,CAAE;AAElB,MAAI,OAAO,SAAS,YAChB,OAAO,SAAS,YAChB,SAAS,QACT,SAAS,MAAM;AACf,QAAI,SAAS,MAAM;AAEf,UAAI,OAAO,SAAS,YAAY,OAAO,SAAS,UAAU;AACtD,eAAO,iBAAiB,MAAM,MAAM,MAAM,KAAK;AAAA,MAC/D,OACiB;AAED,gBAAQ,KAAK;AAAA,UACT,MAAM;AAAA,UACN;AAAA,UACA,UAAU;AAAA,UACV;AAAA,QACpB,CAAiB;AACD,gBAAQ,KAAK;AAAA,UACT,MAAM;AAAA,UACN;AAAA,UACA,UAAU;AAAA,UACV;AAAA,QACpB,CAAiB;AAAA,MACjB;AAAA,IACA;AACQ,WAAO;AAAA,EACf;AAEI,MAAI,MAAM,QAAQ,IAAI,KAAK,MAAM,QAAQ,IAAI,GAAG;AAE5C,QAAI,KAAK,WAAW,KAAK,QAAQ;AAE7B,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAChB,CAAa;AACD,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAChB,CAAa;AACD,aAAO;AAAA,IACnB;AAEQ,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,iBAAiB,iBAAiB,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,KAAK;AAChF,cAAQ,KAAK,GAAG,cAAc;AAAA,IAC1C;AACQ,WAAO;AAAA,EACf;AAEI,QAAM,aAAa;AACnB,QAAM,aAAa;AACnB,QAAM,WAAW,OAAO,KAAK,UAAU;AACvC,QAAM,WAAW,OAAO,KAAK,UAAU;AAEvC,aAAW,OAAO,UAAU;AACxB,QAAI,EAAE,OAAO,aAAa;AAEtB,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,MAAM,GAAG,IAAI,IAAI,GAAG;AAAA,QACpB,UAAU,WAAW,GAAG;AAAA,QACxB;AAAA,MAChB,CAAa;AAAA,IACb;AAAA,EACA;AAEI,aAAW,OAAO,UAAU;AACxB,QAAI,EAAE,OAAO,aAAa;AAEtB,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,MAAM,GAAG,IAAI,IAAI,GAAG;AAAA,QACpB,UAAU,WAAW,GAAG;AAAA,QACxB;AAAA,MAChB,CAAa;AAAA,IACb,WACiB,WAAW,GAAG,MAAM,WAAW,GAAG,GAAG;AAE1C,YAAM,gBAAgB,iBAAiB,WAAW,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,KAAK;AAChG,cAAQ,KAAK,GAAG,aAAa;AAAA,IACzC;AAAA,EACA;AACI,SAAO;AACX;AAIA,SAAS,iBAAiB,MAAM,MAAM,MAAM,OAAO;AAC/C,QAAM,UAAU,CAAE;AAClB,QAAM,SAAS,KAAK,IAAI,KAAK,QAAQ,KAAK,MAAM;AAChD,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,QAAI,KAAK,KAAK,QAAQ;AAElB,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,MAAM,GAAG,IAAI,IAAI,CAAC;AAAA,QAClB,UAAU,KAAK,CAAC;AAAA,QAChB;AAAA,MAChB,CAAa;AAAA,IACb,WACiB,KAAK,KAAK,QAAQ;AAEvB,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,MAAM,GAAG,IAAI,IAAI,CAAC;AAAA,QAClB,UAAU,KAAK,CAAC;AAAA,QAChB;AAAA,MAChB,CAAa;AAAA,IACb,WACiB,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG;AAE1B,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,MAAM,GAAG,IAAI,IAAI,CAAC;AAAA,QAClB,UAAU,KAAK,CAAC;AAAA,QAChB;AAAA,MAChB,CAAa;AACD,cAAQ,KAAK;AAAA,QACT,MAAM;AAAA,QACN,MAAM,GAAG,IAAI,IAAI,CAAC;AAAA,QAClB,UAAU,KAAK,CAAC;AAAA,QAChB;AAAA,MAChB,CAAa;AAAA,IACb;AAAA,EACA;AACI,SAAO;AACX;AC5JO,MAAM,uBAAuB;AAAA,EAGhC,YAAY,gBAAgB,SAAS,YAAY,CAAC,aAAa,gBAAgB,CAAC,GAAG;AAFnF;AACA;AAEI,SAAK,iBAAiB;AACtB,SAAK,SAAS;AAAA,EAEtB;AAAA,EACI,MAAM,UAAU,SAAS;AACrB,QAAI,QAAQ,WAAW,GAAG;AACtB;AAAA,IACZ;AACQ,UAAM,SAAS,CAAE;AACjB,eAAW,UAAU,SAAS;AAC1B,UAAI,OAAO,WAAW,WAAW,GAAG;AAChC;AAAA,MAChB;AACY,YAAM,UAAU,OAAO,WAAW,CAAC;AACnC,YAAM,SAAS,cAAc,WAAW,MAAM,OAAO,OAAO,IAAI,OAAO,UAAU,IAAI,OAAO,MAAM,IAAI,OAAO,KAAK,EAAE;AACpH,UAAI,QAAQ,UAAU,GAAG;AACrB,cAAM,KAAK,YAAY,MAAM;AAAA,MAC7C;AACY,iBAAW,aAAa,OAAO,YAAY;AACvC,cAAM,OAAO,mBAAmB,UAAU,eAAe,UAAU,KAAK;AACxE,mBAAW,UAAU,KAAK,SAAS;AAC/B,iBAAO,KAAK,KAAK,cAAc,OAAO,YAAY,OAAO,QAAQ,OAAO,OAAO,UAAU,OAAO,OAAO,MAAM,GAAG,QAAQ,UAAU,WAAW,OAAO,IAAI,CAAC;AAAA,QAC7K;AAAA,MACA;AAAA,IACA;AACQ,QAAI,OAAO,QAAQ;AACf,YAAM,KAAK,eAAe,gBAAgB,MAAM;AAAA,IAC5D;AAAA,EACA;AAAA,EACI,MAAM,eAAe;AAAA,EAAA;AAAA,EACrB,MAAM,YAAY,QAAQ;AACtB,QAAI;AACA,YAAM,KAAK,eAAe,oBAAoB,QAAQ,IAAI;AAAA,IACtE,SACe,GAAG;AACN,WAAK,OAAO,MAAM,0BAA0B,CAAC;AAAA,IACzD;AAAA,EACA;AAAA,EACI,cAAc,YAAY,QAAQ,OAAO,UAAU,MAAM,OAAO,QAAQ,WAAW,MAAM;AACrF,UAAM,aAAa,CAAE;AACrB,UAAM,aAAa,KAAK,MAAM,GAAG,EAAE,CAAC,EAAE,WAAW,KAAK,GAAG;AACzD,eAAW,UAAU,cAAc,WAAW,WAAW,IAAI,EAAE;AAC/D,eAAW,WAAW,cAAc,WAAW,YAAY,UAAU,IAAI,MAAM,IAAI,KAAK,IAAI,QAAQ,EAAE;AACtG,eAAW,OAAO,cAAc,WAAW,QAAQ,UAAU,EAAE;AAC/D,WAAO;AAAA,MACH;AAAA,MACA,QAAQ;AAAA,MACR,OAAO,SAAS,QAAQ,SAAS;AAAA,MACjC;AAAA,MACA;AAAA,IACH;AAAA,EACT;AACA;ACvDY,MAAC,mBAAmB,CAAC,WAAW,CAAC,YAAY;AACrD,SAAO;AAAA,IACH;AAAA,MACI,WAAW,IAAI,uBAAuB,OAAO,cAAc;AAAA,MAC3D,QAAQ;AAAA,QACJ,QAAQ,CAAC,MAAM;AAAA,QACf,YAAY,CAAC,GAAG;AAAA,QAChB,OAAO,CAAC,GAAG;AAAA,QACX,cAAc,CAAC,GAAG;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ;AACL;","x_google_ignoreList":[0,1,2]}
|
|
@@ -109,8 +109,8 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
|
|
|
109
109
|
return baseModule().catch(handlePreloadError);
|
|
110
110
|
});
|
|
111
111
|
};
|
|
112
|
-
__vitePreload(() => import("./index-
|
|
112
|
+
__vitePreload(() => import("./index-3URObUWC.js"), true ? [] : void 0);
|
|
113
113
|
export {
|
|
114
114
|
__vitePreload as _
|
|
115
115
|
};
|
|
116
|
-
//# sourceMappingURL=main.
|
|
116
|
+
//# sourceMappingURL=main.DR_V0RtA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8BA,OAAO,qBAAY","names":[],"ignoreList":[],"sources":["../../src/renderer.ts"],"sourcesContent":["/**\n * This file will automatically be loaded by vite and run in the \"renderer\" context.\n * To learn more about the differences between the \"main\" and the \"renderer\" context in\n * Electron, visit:\n *\n * https://electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes\n *\n * By default, Node.js integration in this file is disabled. When enabling Node.js integration\n * in a renderer process, please be aware of potential security implications. You can read\n * more about security risks here:\n *\n * https://electronjs.org/docs/tutorial/security\n *\n * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`\n * flag:\n *\n * ```\n * // Create the browser window.\n * mainWindow = new BrowserWindow({\n * width: 800,\n * height: 600,\n * webPreferences: {\n * nodeIntegration: true\n * }\n * });\n * ```\n */\n\n// splits app code into separate chunk to avoid circular dependencies\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nimport('./index.js');\n"],"file":"assets/main.
|
|
1
|
+
{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8BA,OAAO,qBAAY","names":[],"ignoreList":[],"sources":["../../src/renderer.ts"],"sourcesContent":["/**\n * This file will automatically be loaded by vite and run in the \"renderer\" context.\n * To learn more about the differences between the \"main\" and the \"renderer\" context in\n * Electron, visit:\n *\n * https://electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes\n *\n * By default, Node.js integration in this file is disabled. When enabling Node.js integration\n * in a renderer process, please be aware of potential security implications. You can read\n * more about security risks here:\n *\n * https://electronjs.org/docs/tutorial/security\n *\n * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`\n * flag:\n *\n * ```\n * // Create the browser window.\n * mainWindow = new BrowserWindow({\n * width: 800,\n * height: 600,\n * webPreferences: {\n * nodeIntegration: true\n * }\n * });\n * ```\n */\n\n// splits app code into separate chunk to avoid circular dependencies\n// eslint-disable-next-line @typescript-eslint/no-floating-promises\nimport('./index.js');\n"],"file":"assets/main.DR_V0RtA.js"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-
|
|
2
|
-
import { _ as __vitePreload } from "./main.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Dfw6sZ3B.js","assets/app-zx1YyyUM.js","assets/main.DR_V0RtA.js","assets/app-loader-CoyBESHk.js","assets/app-loader-CDW9U8zV.css","assets/app-Djvyy0EQ.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { _ as __vitePreload } from "./main.DR_V0RtA.js";
|
|
3
3
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
4
|
-
import { _ as logger, af as connectConfig } from "./app-loader-
|
|
5
|
-
import { V as useAnalyticsStore, X as useUnwrappedProcessorManager, Y as AnalyticsProvider } from "./app-
|
|
4
|
+
import { _ as logger, af as connectConfig } from "./app-loader-CoyBESHk.js";
|
|
5
|
+
import { V as useAnalyticsStore, X as useUnwrappedProcessorManager, Y as AnalyticsProvider } from "./app-zx1YyyUM.js";
|
|
6
6
|
import { useRef, useEffect } from "react";
|
|
7
7
|
import "react-dom";
|
|
8
8
|
async function registerDiffAnalyzer(manager, analyticsStore) {
|
|
9
9
|
const { processorFactory } = await __vitePreload(async () => {
|
|
10
|
-
const { processorFactory: processorFactory2 } = await import("./index-
|
|
10
|
+
const { processorFactory: processorFactory2 } = await import("./index-Dfw6sZ3B.js");
|
|
11
11
|
return { processorFactory: processorFactory2 };
|
|
12
12
|
}, true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0);
|
|
13
13
|
return await manager.registerFactory(
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
ReactorAnalyticsProvider,
|
|
40
40
|
ReactorAnalyticsProvider as default
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=reactor-analytics-
|
|
42
|
+
//# sourceMappingURL=reactor-analytics-CghowkXY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":";;;;;;;AAWA,eAAe,qBACX,SACA,gBACF;AACE,QAAM,EAAE,qBAAqB;0DAAM,OAC/B,qBACJ;AAAA,+BAAAA,kBAAA;AAAA;AAEA,SAAO,MAAM,QAAQ;AAAA,IACjB;AAAA,IACA,iBAAiB,EAAE,eAAgB;AAAA,EACvC;AACJ;AAEO,SAAS,wBAAwB;AACpC,QAAM,QAAQ,kBAAkB;AAChC,QAAM,UAAU,6BAA6B;AACvC,wBAAgB,OAAO,KAAK;AAElC,YAAU,MAAM;AACZ,QAAI,CAAC,SAAS,CAAC,WAAW,cAAc,SAAS;AAC7C;AAAA;AAGJ,kBAAc,UAAU;AACxB,yBAAqB,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK;AAAA,KACxD,CAAC,OAAO,OAAO,CAAC;AAEZ;AACX;AAEgB,kCAAyB,EAAE,YAA+B;AACtE,SACK,0CAAkB,cAAc,cAAc,uBAC3C;AAAA,wBAAC,uBAAsB;AAAA,IACtB;AAAA,KACL;AAER","names":["processorFactory"],"ignoreList":[],"sources":["../../src/context/reactor-analytics.tsx"],"sourcesContent":["import connectConfig from '#connect-config';\nimport { type IAnalyticsStore } from '@powerhousedao/reactor-browser/analytics';\nimport {\n AnalyticsProvider,\n useAnalyticsStore,\n} from '@powerhousedao/reactor-browser/analytics/context';\nimport { logger } from 'document-drive';\nimport { type ProcessorManager } from 'document-drive/processors/processor-manager';\nimport { useEffect, useRef, type PropsWithChildren } from 'react';\nimport { useUnwrappedProcessorManager } from '../store/processors';\n\nasync function registerDiffAnalyzer(\n manager: ProcessorManager,\n analyticsStore: IAnalyticsStore,\n) {\n const { processorFactory } = await import(\n '@powerhousedao/diff-analyzer/processors'\n );\n\n return await manager.registerFactory(\n '@powerhousedao/diff-analyzer',\n processorFactory({ analyticsStore }),\n );\n}\n\nexport function DiffAnalyzerProcessor() {\n const store = useAnalyticsStore();\n const manager = useUnwrappedProcessorManager();\n const hasRegistered = useRef(false);\n\n useEffect(() => {\n if (!store || !manager || hasRegistered.current) {\n return;\n }\n\n hasRegistered.current = true;\n registerDiffAnalyzer(manager, store).catch(logger.error);\n }, [store, manager]);\n\n return null;\n}\n\nexport function ReactorAnalyticsProvider({ children }: PropsWithChildren) {\n return (\n <AnalyticsProvider databaseName={connectConfig.analyticsDatabaseName}>\n <DiffAnalyzerProcessor />\n {children}\n </AnalyticsProvider>\n );\n}\n\nexport default ReactorAnalyticsProvider;\n"],"file":"assets/reactor-analytics-
|
|
1
|
+
{"version":3,"mappings":";;;;;;;AAWA,eAAe,qBACX,SACA,gBACF;AACE,QAAM,EAAE,qBAAqB;0DAAM,OAC/B,qBACJ;AAAA,+BAAAA,kBAAA;AAAA;AAEA,SAAO,MAAM,QAAQ;AAAA,IACjB;AAAA,IACA,iBAAiB,EAAE,eAAgB;AAAA,EACvC;AACJ;AAEO,SAAS,wBAAwB;AACpC,QAAM,QAAQ,kBAAkB;AAChC,QAAM,UAAU,6BAA6B;AACvC,wBAAgB,OAAO,KAAK;AAElC,YAAU,MAAM;AACZ,QAAI,CAAC,SAAS,CAAC,WAAW,cAAc,SAAS;AAC7C;AAAA;AAGJ,kBAAc,UAAU;AACxB,yBAAqB,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK;AAAA,KACxD,CAAC,OAAO,OAAO,CAAC;AAEZ;AACX;AAEgB,kCAAyB,EAAE,YAA+B;AACtE,SACK,0CAAkB,cAAc,cAAc,uBAC3C;AAAA,wBAAC,uBAAsB;AAAA,IACtB;AAAA,KACL;AAER","names":["processorFactory"],"ignoreList":[],"sources":["../../src/context/reactor-analytics.tsx"],"sourcesContent":["import connectConfig from '#connect-config';\nimport { type IAnalyticsStore } from '@powerhousedao/reactor-browser/analytics';\nimport {\n AnalyticsProvider,\n useAnalyticsStore,\n} from '@powerhousedao/reactor-browser/analytics/context';\nimport { logger } from 'document-drive';\nimport { type ProcessorManager } from 'document-drive/processors/processor-manager';\nimport { useEffect, useRef, type PropsWithChildren } from 'react';\nimport { useUnwrappedProcessorManager } from '../store/processors';\n\nasync function registerDiffAnalyzer(\n manager: ProcessorManager,\n analyticsStore: IAnalyticsStore,\n) {\n const { processorFactory } = await import(\n '@powerhousedao/diff-analyzer/processors'\n );\n\n return await manager.registerFactory(\n '@powerhousedao/diff-analyzer',\n processorFactory({ analyticsStore }),\n );\n}\n\nexport function DiffAnalyzerProcessor() {\n const store = useAnalyticsStore();\n const manager = useUnwrappedProcessorManager();\n const hasRegistered = useRef(false);\n\n useEffect(() => {\n if (!store || !manager || hasRegistered.current) {\n return;\n }\n\n hasRegistered.current = true;\n registerDiffAnalyzer(manager, store).catch(logger.error);\n }, [store, manager]);\n\n return null;\n}\n\nexport function ReactorAnalyticsProvider({ children }: PropsWithChildren) {\n return (\n <AnalyticsProvider databaseName={connectConfig.analyticsDatabaseName}>\n <DiffAnalyzerProcessor />\n {children}\n </AnalyticsProvider>\n );\n}\n\nexport default ReactorAnalyticsProvider;\n"],"file":"assets/reactor-analytics-CghowkXY.js"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/content-
|
|
2
|
-
import { _ as __vitePreload } from "./main.
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/content-D7s7KOOd.js","assets/app-zx1YyyUM.js","assets/main.DR_V0RtA.js","assets/app-loader-CoyBESHk.js","assets/app-loader-CDW9U8zV.css","assets/app-Djvyy0EQ.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import { _ as __vitePreload } from "./main.DR_V0RtA.js";
|
|
3
3
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
4
|
-
import { aN as generateDocumentStateQueryFields, a3 as PUBLIC, a1 as LOCAL, aM as t, _ as logger, aO as gql, aP as request, af as connectConfig } from "./app-loader-
|
|
4
|
+
import { aN as generateDocumentStateQueryFields, a3 as PUBLIC, a1 as LOCAL, aM as t, _ as logger, aO as gql, aP as request, af as connectConfig } from "./app-loader-CoyBESHk.js";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import React__default, { useRef, useState, useEffect, useCallback, useContext, useSyncExternalStore, useMemo, Component, createElement, createContext, Suspense } from "react";
|
|
7
7
|
import * as ReactDOM from "react-dom";
|
|
8
|
-
import { P as Popover, a as PopoverTrigger, b as PopoverContent, t as twMerge, I as Icon, B as Button, g as getEnsAvatar$1, c as getEnsName$1, d as BaseError$1, W as WagmiContext, u as useQuery$1, e as useDocumentDriveServer, m as makeNodeSlugFromNodeName, D as DRIVE, F as FILE, S as SUCCESS, f as useModal, h as useUiNodesContext, i as useApps, j as toast$1, k as useUnwrappedReactor, l as createRouter$1, n as createBrowserHistory, o as logV6DeprecationWarnings, p as DataRouterContext, q as DataRouterStateContext, R as Router, E as ErrorResponseImpl, r as useRoutesImpl, s as mapRouteProperties, v as useLocation, w as useNavigate, x as useTranslation, y as useDocumentDrives, z as useReadModeContext, A as useAsyncReactor, C as useConnectConfig, G as CONFLICT, H as ERROR, J as isLatestVersion, K as useParams, L as useLogin, M as ModalManager, N as isElectron, O as isMac, Q as Outlet, T as useGetAppNameForEditorId, U as createMemoryRouter } from "./app-
|
|
8
|
+
import { P as Popover, a as PopoverTrigger, b as PopoverContent, t as twMerge, I as Icon, B as Button, g as getEnsAvatar$1, c as getEnsName$1, d as BaseError$1, W as WagmiContext, u as useQuery$1, e as useDocumentDriveServer, m as makeNodeSlugFromNodeName, D as DRIVE, F as FILE, S as SUCCESS, f as useModal, h as useUiNodesContext, i as useApps, j as toast$1, k as useUnwrappedReactor, l as createRouter$1, n as createBrowserHistory, o as logV6DeprecationWarnings, p as DataRouterContext, q as DataRouterStateContext, R as Router, E as ErrorResponseImpl, r as useRoutesImpl, s as mapRouteProperties, v as useLocation, w as useNavigate, x as useTranslation, y as useDocumentDrives, z as useReadModeContext, A as useAsyncReactor, C as useConnectConfig, G as CONFLICT, H as ERROR, J as isLatestVersion, K as useParams, L as useLogin, M as ModalManager, N as isElectron, O as isMac, Q as Outlet, T as useGetAppNameForEditorId, U as createMemoryRouter } from "./app-zx1YyyUM.js";
|
|
9
9
|
const AccountPopover = ({ children, content }) => {
|
|
10
10
|
return jsxs(Popover, { children: [jsx(PopoverTrigger, { asChild: true, children: jsx("div", { className: "cursor-pointer", children }) }), jsx(PopoverContent, { className: "w-52 p-0", align: "start", children: content })] });
|
|
11
11
|
};
|
|
@@ -1732,7 +1732,7 @@ function Home() {
|
|
|
1732
1732
|
config.drives.addDriveEnabled && /* @__PURE__ */ jsx(HomeScreenAddDriveItem, { onClick: onAddDriveClick })
|
|
1733
1733
|
] });
|
|
1734
1734
|
}
|
|
1735
|
-
const Content = React__default.lazy(() => __vitePreload(() => import("./content-
|
|
1735
|
+
const Content = React__default.lazy(() => __vitePreload(() => import("./content-D7s7KOOd.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0));
|
|
1736
1736
|
async function createRouter(routes2) {
|
|
1737
1737
|
var _a;
|
|
1738
1738
|
const isPackaged = await ((_a = window.electronAPI) == null ? void 0 : _a.isPackaged());
|
|
@@ -1788,4 +1788,4 @@ export {
|
|
|
1788
1788
|
toast as t,
|
|
1789
1789
|
useSwitchboard as u
|
|
1790
1790
|
};
|
|
1791
|
-
//# sourceMappingURL=router-
|
|
1791
|
+
//# sourceMappingURL=router-Dbtpg473.js.map
|