@powerhousedao/common 3.2.0-dev.8 → 3.2.0-staging.0

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 (118) hide show
  1. package/dist/drive-analytics/index.d.ts +0 -1
  2. package/dist/drive-analytics/index.d.ts.map +1 -1
  3. package/dist/drive-analytics/index.js +0 -1
  4. package/dist/drive-analytics/index.js.map +1 -1
  5. package/dist/drive-analytics/processor/document-processor.js +3 -3
  6. package/dist/drive-analytics/processor/document-processor.js.map +1 -1
  7. package/dist/drive-analytics/processor/drive-processor.js +4 -4
  8. package/dist/drive-analytics/processor/drive-processor.js.map +1 -1
  9. package/dist/drive-analytics/useDriveAnalytics.js +5 -5
  10. package/dist/drive-analytics/useDriveAnalytics.js.map +1 -1
  11. package/dist/editors/generic-drive-explorer/components/file-content-view.d.ts.map +1 -1
  12. package/dist/editors/generic-drive-explorer/components/file-content-view.js.map +1 -1
  13. package/dist/editors/generic-drive-explorer/editor.d.ts.map +1 -1
  14. package/dist/editors/generic-drive-explorer/editor.js +1 -19
  15. package/dist/editors/generic-drive-explorer/editor.js.map +1 -1
  16. package/dist/editors/styles.css +1 -1
  17. package/dist/editors/utils/storybook.d.ts.map +1 -1
  18. package/dist/editors/utils/storybook.js +14 -13
  19. package/dist/editors/utils/storybook.js.map +1 -1
  20. package/dist/editors/utils/uiNodes.d.ts +2 -2
  21. package/dist/editors/utils/uiNodes.d.ts.map +1 -1
  22. package/dist/editors/utils/uiNodes.js +3 -2
  23. package/dist/editors/utils/uiNodes.js.map +1 -1
  24. package/dist/index.d.ts +0 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +0 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/package.json +2 -3
  29. package/dist/state/apps.d.ts +5 -0
  30. package/dist/state/apps.d.ts.map +1 -0
  31. package/dist/state/apps.js +56 -0
  32. package/dist/state/apps.js.map +1 -0
  33. package/dist/state/atoms.d.ts +93 -99
  34. package/dist/state/atoms.d.ts.map +1 -1
  35. package/dist/state/atoms.js +52 -123
  36. package/dist/state/atoms.js.map +1 -1
  37. package/dist/state/config.d.ts +5 -0
  38. package/dist/state/config.d.ts.map +1 -0
  39. package/dist/state/config.js +20 -0
  40. package/dist/state/config.js.map +1 -0
  41. package/dist/state/cookies.d.ts +21 -0
  42. package/dist/state/cookies.d.ts.map +1 -0
  43. package/dist/state/cookies.js +7 -0
  44. package/dist/state/cookies.js.map +1 -0
  45. package/dist/state/document-model-modules.d.ts +1 -1
  46. package/dist/state/document-model-modules.d.ts.map +1 -1
  47. package/dist/state/document-model-modules.js.map +1 -1
  48. package/dist/state/documents.d.ts +35 -14
  49. package/dist/state/documents.d.ts.map +1 -1
  50. package/dist/state/documents.js +7 -14
  51. package/dist/state/documents.js.map +1 -1
  52. package/dist/state/drives.d.ts +6 -25
  53. package/dist/state/drives.d.ts.map +1 -1
  54. package/dist/state/drives.js +9 -29
  55. package/dist/state/drives.js.map +1 -1
  56. package/dist/state/editor-modules.d.ts +4 -1
  57. package/dist/state/editor-modules.d.ts.map +1 -1
  58. package/dist/state/editor-modules.js +10 -2
  59. package/dist/state/editor-modules.js.map +1 -1
  60. package/dist/state/folders.d.ts +0 -2
  61. package/dist/state/folders.d.ts.map +1 -1
  62. package/dist/state/folders.js +0 -2
  63. package/dist/state/folders.js.map +1 -1
  64. package/dist/state/index.d.ts +6 -0
  65. package/dist/state/index.d.ts.map +1 -1
  66. package/dist/state/index.js +6 -0
  67. package/dist/state/index.js.map +1 -1
  68. package/dist/state/modals.d.ts.map +1 -1
  69. package/dist/state/modals.js.map +1 -1
  70. package/dist/state/nodes.d.ts +4 -18
  71. package/dist/state/nodes.d.ts.map +1 -1
  72. package/dist/state/nodes.js +17 -31
  73. package/dist/state/nodes.js.map +1 -1
  74. package/dist/state/permissions.d.ts +17 -0
  75. package/dist/state/permissions.d.ts.map +1 -0
  76. package/dist/state/permissions.js +18 -0
  77. package/dist/state/permissions.js.map +1 -0
  78. package/dist/state/ph-packages.d.ts +2 -1
  79. package/dist/state/ph-packages.d.ts.map +1 -1
  80. package/dist/state/ph-packages.js.map +1 -1
  81. package/dist/state/processors.js +1 -1
  82. package/dist/state/processors.js.map +1 -1
  83. package/dist/state/reactor.d.ts +1 -10
  84. package/dist/state/reactor.d.ts.map +1 -1
  85. package/dist/state/reactor.js +17 -24
  86. package/dist/state/reactor.js.map +1 -1
  87. package/dist/state/storage.d.ts +2 -0
  88. package/dist/state/storage.d.ts.map +1 -0
  89. package/dist/state/storage.js +37 -0
  90. package/dist/state/storage.js.map +1 -0
  91. package/dist/state/store-provider.d.ts +0 -11
  92. package/dist/state/store-provider.d.ts.map +1 -1
  93. package/dist/state/store-provider.js +0 -11
  94. package/dist/state/store-provider.js.map +1 -1
  95. package/dist/state/store.d.ts +0 -4
  96. package/dist/state/store.d.ts.map +1 -1
  97. package/dist/state/store.js +0 -4
  98. package/dist/state/store.js.map +1 -1
  99. package/dist/state/syncing.d.ts +0 -1
  100. package/dist/state/syncing.d.ts.map +1 -1
  101. package/dist/state/syncing.js +0 -1
  102. package/dist/state/syncing.js.map +1 -1
  103. package/dist/state/theme.d.ts +3 -0
  104. package/dist/state/theme.d.ts.map +1 -0
  105. package/dist/state/theme.js +5 -0
  106. package/dist/state/theme.js.map +1 -0
  107. package/dist/state/types.d.ts +1 -13
  108. package/dist/state/types.d.ts.map +1 -1
  109. package/dist/state/utils.d.ts +20 -24
  110. package/dist/state/utils.d.ts.map +1 -1
  111. package/dist/state/utils.js +54 -65
  112. package/dist/state/utils.js.map +1 -1
  113. package/dist/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +9 -10
  115. package/dist/drive-analytics/useDocumentAnalytics.d.ts +0 -22
  116. package/dist/drive-analytics/useDocumentAnalytics.d.ts.map +0 -1
  117. package/dist/drive-analytics/useDocumentAnalytics.js +0 -59
  118. package/dist/drive-analytics/useDocumentAnalytics.js.map +0 -1
@@ -1,31 +1,27 @@
1
1
  import { type DocumentDriveDocument, type Node } from "document-drive";
2
+ import { type Loadable } from "jotai/vanilla/utils/loadable";
2
3
  import { type Reactor } from "./types.js";
3
- /** Sentinel value for atoms that are not set. */
4
- export declare const NOT_SET = "NOT_SET";
5
- export declare function suspendUntilSet<T>(): Promise<T>;
6
- /** Makes a URL component for a drive. */
4
+ export declare function atomWithCompare<Value>(initialValue: Value, areEqual: (prev: Value, next: Value) => boolean): import("jotai").WritableAtom<Value, [Value], void>;
7
5
  export declare function makeDriveUrlComponent(drive: DocumentDriveDocument | undefined): string;
8
- /** Makes a URL component for a node. */
9
6
  export declare function makeNodeUrlComponent(node: Node | undefined): string;
10
- /** Extracts the node id from a path. */
11
7
  export declare function extractNodeFromPath(path: string): string | undefined;
12
- /** Extracts the node name, slug, or id from a path. */
13
- export declare function extractNodeNameOrSlugOrIdFromPath(path: string): string | undefined;
14
- /** Extracts the drive slug from a path.
15
- * Used for extracting drive ids from drive slugs in the URL.
16
- * Expects the path to be in the format `/d/<drive-slug>`.
17
- */
18
8
  export declare function extractDriveFromPath(path: string): string | null;
19
- /** Legacy function that makes a slug from a node name.
20
- * Used for compatibility with the old URL structure in Connect.
21
- */
22
- export declare function makeNodeSlugFromNodeName(name: string): string;
23
- /** Sets the selected drive and node from the URL.
24
- *
25
- * Both the selected drive id and selected node id begin in the NOT_SET state, so they will suspend unless set by this function or another implementation.
26
- *
27
- * If the URL is in the format `/d/<drive-slug>`, the selected drive will be set.
28
- * If the URL is in the format `/d/<drive-slug>/<node-slug>`, the selected drive and node will be set.
29
- */
30
- export declare function setSelectedDriveAndNodeFromUrl(reactor: Reactor | undefined, setSelectedDrive: (driveId: string | undefined) => void, setSelectedNode: (nodeId: string | undefined) => void, shouldNavigate: boolean): Promise<void>;
9
+ export declare function getReactorDrives(reactor: Reactor | undefined): Promise<(import("document-model").DocumentHeader & {
10
+ state: import("document-model").BaseState<import("document-drive").DocumentDriveState, import("document-drive").DocumentDriveLocalState>;
11
+ attachments?: import("document-model").FileRegistry;
12
+ } & {
13
+ operations: import("document-model").DocumentOperations<import("document-drive").DocumentDriveAction>;
14
+ initialState: import("document-model").ExtendedState<import("document-drive").DocumentDriveState, import("document-drive").DocumentDriveLocalState>;
15
+ clipboard: import("document-model").Operation<import("document-drive").DocumentDriveAction>[];
16
+ })[]>;
17
+ export declare function getReactorDocuments(reactor: Reactor | undefined): Promise<(import("document-model").DocumentHeader & {
18
+ state: import("document-model").BaseState<unknown, unknown>;
19
+ attachments?: import("document-model").FileRegistry;
20
+ } & {
21
+ operations: import("document-model").DocumentOperations<import("document-model").Action<string, unknown, import("document-model").OperationScope>>;
22
+ initialState: import("document-model").ExtendedState<unknown, unknown>;
23
+ clipboard: import("document-model").Operation<import("document-model").Action<string, unknown, import("document-model").OperationScope>>[];
24
+ })[]>;
25
+ export declare function makeNodes(drives: DocumentDriveDocument[]): Node[];
26
+ export declare function unwrapLoadable<T>(loadable: Loadable<T>): Awaited<T> | undefined;
31
27
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,iDAAiD;AACjD,eAAO,MAAM,OAAO,YAAY,CAAC;AAOjC,wBAAgB,eAAe,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAE/C;AAED,yCAAyC;AACzC,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,qBAAqB,GAAG,SAAS,UAIzC;AAED,wCAAwC;AACxC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,UAK1D;AAoBD,wCAAwC;AACxC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,sBAM/C;AAED,uDAAuD;AACvD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,sBAK7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,UAEpD;AAED;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,OAAO,GAAG,SAAS,EAC5B,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,EACvD,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,EACrD,cAAc,EAAE,OAAO,iBAUxB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,IAAI,EACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAgB,eAAe,CAAC,KAAK,EACnC,YAAY,EAAE,KAAK,EACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,OAAO,sDAShD;AACD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,qBAAqB,GAAG,SAAS,UAIzC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,UAK1D;AAcD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,sBAM/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE;AACD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;;;;;;;MAWlE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;;;;;;;MAgBrE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,CAoBjE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,0BAGtD"}
@@ -1,21 +1,18 @@
1
+ import { atomWithReducer } from "jotai/utils";
1
2
  import slug from "slug";
2
- /** Sentinel value for atoms that are not set. */
3
- export const NOT_SET = "NOT_SET";
4
- /* Will suspend until the atom is set elsewhere.
5
- * Returns a promise that will never resolve of type T.
6
- *
7
- * Makes use of Jotai's "async forever" pattern as described here https://jotai.org/docs/guides/async#async-forever
8
- */
9
- export function suspendUntilSet() {
10
- return new Promise(() => { });
3
+ export function atomWithCompare(initialValue, areEqual) {
4
+ return atomWithReducer(initialValue, (prev, next) => {
5
+ if (areEqual(prev, next)) {
6
+ return prev;
7
+ }
8
+ return next;
9
+ });
11
10
  }
12
- /** Makes a URL component for a drive. */
13
11
  export function makeDriveUrlComponent(drive) {
14
12
  if (!drive)
15
13
  return "";
16
- return `/d/${slug(drive.header.slug)}`;
14
+ return `/d/${slug(drive.slug)}`;
17
15
  }
18
- /** Makes a URL component for a node. */
19
16
  export function makeNodeUrlComponent(node) {
20
17
  if (!node)
21
18
  return "";
@@ -24,15 +21,10 @@ export function makeNodeUrlComponent(node) {
24
21
  return slug(node.id);
25
22
  return slug(`${nodeName}-${node.id}`);
26
23
  }
27
- /** Extracts the node slug from a path.
28
- *
29
- * The path is expected to be in the format `/d/<drive-slug>/<node-slug>`.
30
- */
31
24
  function extractNodeSlug(path) {
32
25
  const match = /^\/d\/[^/]+\/([^/]+)$/.exec(path);
33
- return match ? match[1] : undefined;
26
+ return match ? match[1] : null;
34
27
  }
35
- /** Finds a UUID in a string, used for extracting node ids from node slugs in the URL. */
36
28
  function findUuid(input) {
37
29
  if (!input)
38
30
  return undefined;
@@ -40,7 +32,6 @@ function findUuid(input) {
40
32
  const match = uuidRegex.exec(input);
41
33
  return match ? match[0] : undefined;
42
34
  }
43
- /** Extracts the node id from a path. */
44
35
  export function extractNodeFromPath(path) {
45
36
  const nodeSlug = extractNodeSlug(path);
46
37
  if (!nodeSlug)
@@ -50,59 +41,57 @@ export function extractNodeFromPath(path) {
50
41
  return undefined;
51
42
  return uuid;
52
43
  }
53
- /** Extracts the node name, slug, or id from a path. */
54
- export function extractNodeNameOrSlugOrIdFromPath(path) {
55
- const nodeSlug = extractNodeSlug(path);
56
- const nodeId = findUuid(nodeSlug);
57
- if (nodeId)
58
- return nodeId;
59
- return nodeSlug;
60
- }
61
- /** Extracts the drive slug from a path.
62
- * Used for extracting drive ids from drive slugs in the URL.
63
- * Expects the path to be in the format `/d/<drive-slug>`.
64
- */
65
44
  export function extractDriveFromPath(path) {
66
45
  const match = /^\/d\/([^/]+)/.exec(path);
67
46
  return match ? match[1] : null;
68
47
  }
69
- /** Legacy function that makes a slug from a node name.
70
- * Used for compatibility with the old URL structure in Connect.
71
- */
72
- export function makeNodeSlugFromNodeName(name) {
73
- return name.replaceAll(/\s/g, "-");
74
- }
75
- /** Sets the selected drive and node from the URL.
76
- *
77
- * Both the selected drive id and selected node id begin in the NOT_SET state, so they will suspend unless set by this function or another implementation.
78
- *
79
- * If the URL is in the format `/d/<drive-slug>`, the selected drive will be set.
80
- * If the URL is in the format `/d/<drive-slug>/<node-slug>`, the selected drive and node will be set.
81
- */
82
- export async function setSelectedDriveAndNodeFromUrl(reactor, setSelectedDrive, setSelectedNode, shouldNavigate) {
83
- if (typeof window === "undefined")
84
- return;
85
- if (!shouldNavigate)
86
- return;
48
+ export async function getReactorDrives(reactor) {
87
49
  if (!reactor)
88
- return;
89
- const path = window.location.pathname;
90
- const drive = await handleDriveFromUrl(reactor, path, setSelectedDrive);
91
- handleNodeFromUrl(drive, path, setSelectedNode);
50
+ return [];
51
+ const driveIds = await reactor.getDrives();
52
+ const drives = await Promise.all(driveIds.map(async (id) => {
53
+ const drive = await reactor.getDrive(id);
54
+ return drive;
55
+ }));
56
+ console.log("getting reactor drives", drives);
57
+ return drives;
92
58
  }
93
- async function handleDriveFromUrl(reactor, path, setSelectedDrive) {
94
- const driveSlug = extractDriveFromPath(path);
59
+ export async function getReactorDocuments(reactor) {
60
+ if (!reactor)
61
+ return [];
95
62
  const driveIds = await reactor.getDrives();
96
- const drives = await Promise.all(driveIds.map((id) => reactor.getDrive(id)));
97
- const drive = drives.find((d) => d.header.slug === driveSlug || d.header.id === driveSlug);
98
- setSelectedDrive(drive?.header.id);
99
- return drive;
63
+ const documents = (await Promise.all(driveIds.map(async (driveId) => {
64
+ const documentIds = await reactor.getDocuments(driveId);
65
+ const documents = await Promise.all(documentIds.map(async (id) => await reactor.getDocument(driveId, id)));
66
+ return documents;
67
+ }))).flat();
68
+ console.log("getting reactor documents", documents);
69
+ return documents;
100
70
  }
101
- function handleNodeFromUrl(drive, path, setSelectedNode) {
102
- const nodeIdOrSlugOrNameFromPath = extractNodeNameOrSlugOrIdFromPath(path);
103
- const nodes = drive?.state.global.nodes;
104
- const node = nodes?.find((n) => n.id === nodeIdOrSlugOrNameFromPath ||
105
- makeNodeSlugFromNodeName(n.name) === nodeIdOrSlugOrNameFromPath);
106
- setSelectedNode(node?.id);
71
+ export function makeNodes(drives) {
72
+ const nodes = [];
73
+ for (const drive of drives) {
74
+ const driveFolderNode = {
75
+ id: drive.id,
76
+ name: drive.state.global.name,
77
+ kind: "DRIVE",
78
+ parentFolder: null,
79
+ };
80
+ nodes.push(driveFolderNode);
81
+ for (const n of drive.state.global.nodes) {
82
+ nodes.push({
83
+ id: n.id,
84
+ name: n.name,
85
+ kind: n.kind.toUpperCase(),
86
+ parentFolder: n.parentFolder ?? drive.id,
87
+ });
88
+ }
89
+ }
90
+ return nodes;
91
+ }
92
+ export function unwrapLoadable(loadable) {
93
+ if (loadable.state !== "hasData")
94
+ return undefined;
95
+ return loadable.data;
107
96
  }
108
97
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../state/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../state/utils.ts"],"names":[],"mappings":"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"}