@pyric/ui 0.1.0-alpha.7 → 0.1.0-alpha.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/LICENSE +216 -0
- package/dist/auth/components/AuthUserList.d.ts +15 -4
- package/dist/auth/components/AuthUserList.d.ts.map +1 -1
- package/dist/auth/components/AuthUserList.js +3 -3
- package/dist/auth/components/AuthUserList.js.map +1 -1
- package/dist/firestore/components/DocumentList.d.ts +5 -2
- package/dist/firestore/components/DocumentList.d.ts.map +1 -1
- package/dist/firestore/components/DocumentList.js +17 -3
- package/dist/firestore/components/DocumentList.js.map +1 -1
- package/dist/firestore/firestoreApi.d.ts +2 -2
- package/dist/firestore/firestoreApi.d.ts.map +1 -1
- package/dist/firestore/firestoreApi.js +2 -1
- package/dist/firestore/firestoreApi.js.map +1 -1
- package/dist/firestore/hooks/useDocumentEditor.d.ts +7 -4
- package/dist/firestore/hooks/useDocumentEditor.d.ts.map +1 -1
- package/dist/firestore/hooks/useDocumentEditor.js +7 -4
- package/dist/firestore/hooks/useDocumentEditor.js.map +1 -1
- package/dist/firestore/hooks/useDocumentList.d.ts +18 -13
- package/dist/firestore/hooks/useDocumentList.d.ts.map +1 -1
- package/dist/firestore/hooks/useDocumentList.js +77 -27
- package/dist/firestore/hooks/useDocumentList.js.map +1 -1
- package/dist/firestore/hooks/useFirestoreCollection.d.ts +1 -1
- package/dist/firestore/hooks/useFirestoreCollection.d.ts.map +1 -1
- package/dist/firestore/hooks/useFirestoreCollection.js +3 -2
- package/dist/firestore/hooks/useFirestoreCollection.js.map +1 -1
- package/dist/firestore/hooks/useFirestoreDoc.d.ts +1 -1
- package/dist/firestore/hooks/useFirestoreDoc.d.ts.map +1 -1
- package/dist/firestore/hooks/useFirestoreDoc.js +3 -2
- package/dist/firestore/hooks/useFirestoreDoc.js.map +1 -1
- package/dist/firestore/index.d.ts +1 -0
- package/dist/firestore/index.d.ts.map +1 -1
- package/dist/firestore/index.js +1 -0
- package/dist/firestore/index.js.map +1 -1
- package/dist/firestore/reducers/documentEditor.d.ts.map +1 -1
- package/dist/firestore/reducers/documentEditor.js +2 -0
- package/dist/firestore/reducers/documentEditor.js.map +1 -1
- package/dist/firestore/reducers/types.d.ts +3 -0
- package/dist/firestore/reducers/types.d.ts.map +1 -1
- package/dist/firestore/valueEquality.d.ts +4 -0
- package/dist/firestore/valueEquality.d.ts.map +1 -0
- package/dist/firestore/valueEquality.js +44 -0
- package/dist/firestore/valueEquality.js.map +1 -0
- package/dist/primitives/hooks/useUpdateHighlights.d.ts +18 -0
- package/dist/primitives/hooks/useUpdateHighlights.d.ts.map +1 -0
- package/dist/primitives/hooks/useUpdateHighlights.js +84 -0
- package/dist/primitives/hooks/useUpdateHighlights.js.map +1 -0
- package/dist/primitives/index.d.ts +1 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +1 -0
- package/dist/primitives/index.js.map +1 -1
- package/dist/rtdb/components/RtdbTree.js +2 -1
- package/dist/rtdb/components/RtdbTree.js.map +1 -1
- package/dist/rtdb/hooks/useRtdbTree.d.ts +2 -0
- package/dist/rtdb/hooks/useRtdbTree.d.ts.map +1 -1
- package/dist/rtdb/hooks/useRtdbTree.js +20 -2
- package/dist/rtdb/hooks/useRtdbTree.js.map +1 -1
- package/dist/rtdb/values.d.ts +6 -0
- package/dist/rtdb/values.d.ts.map +1 -1
- package/dist/rtdb/values.js +43 -0
- package/dist/rtdb/values.js.map +1 -1
- package/dist/rules/hooks/useDenialTrace.d.ts +1 -1
- package/dist/rules/hooks/useDenialTrace.d.ts.map +1 -1
- package/dist/rules/hooks/useDenialTrace.js +1 -1
- package/dist/rules/hooks/useDenialTrace.js.map +1 -1
- package/dist/rules/types.d.ts +1 -1
- package/dist/rules/types.d.ts.map +1 -1
- package/dist/storage/components/DeleteSelectionWithConfirm.d.ts +0 -2
- package/dist/storage/components/DeleteSelectionWithConfirm.d.ts.map +1 -1
- package/dist/storage/components/DeleteSelectionWithConfirm.js.map +1 -1
- package/dist/storage/components/ObjectBrowser.d.ts +6 -3
- package/dist/storage/components/ObjectBrowser.d.ts.map +1 -1
- package/dist/storage/components/ObjectBrowser.js +6 -5
- package/dist/storage/components/ObjectBrowser.js.map +1 -1
- package/dist/storage/components/ObjectInspector.d.ts +1 -1
- package/dist/storage/components/ObjectInspector.d.ts.map +1 -1
- package/dist/storage/folderPlaceholder.d.ts +9 -3
- package/dist/storage/folderPlaceholder.d.ts.map +1 -1
- package/dist/storage/folderPlaceholder.js +12 -5
- package/dist/storage/folderPlaceholder.js.map +1 -1
- package/dist/storage/hooks/useObjectUpload.d.ts +5 -9
- package/dist/storage/hooks/useObjectUpload.d.ts.map +1 -1
- package/dist/storage/hooks/useObjectUpload.js.map +1 -1
- package/dist/storage/hooks/useStorageDelete.d.ts +2 -1
- package/dist/storage/hooks/useStorageDelete.d.ts.map +1 -1
- package/dist/storage/hooks/useStorageDelete.js +19 -13
- package/dist/storage/hooks/useStorageDelete.js.map +1 -1
- package/dist/storage/hooks/useStorageList.d.ts +5 -7
- package/dist/storage/hooks/useStorageList.d.ts.map +1 -1
- package/dist/storage/hooks/useStorageList.js +5 -8
- package/dist/storage/hooks/useStorageList.js.map +1 -1
- package/dist/storage/hooks/useStorageObject.d.ts +4 -5
- package/dist/storage/hooks/useStorageObject.d.ts.map +1 -1
- package/dist/storage/hooks/useStorageObject.js.map +1 -1
- package/dist/storage/hooks/useStorageRulesGate.d.ts +5 -17
- package/dist/storage/hooks/useStorageRulesGate.d.ts.map +1 -1
- package/dist/storage/hooks/useStorageRulesGate.js +35 -43
- package/dist/storage/hooks/useStorageRulesGate.js.map +1 -1
- package/dist/storage/pendingPrefixes.d.ts +7 -3
- package/dist/storage/pendingPrefixes.d.ts.map +1 -1
- package/dist/storage/pendingPrefixes.js +9 -3
- package/dist/storage/pendingPrefixes.js.map +1 -1
- package/dist/storage/storageApi.d.ts +1 -1
- package/dist/storage/storageApi.d.ts.map +1 -1
- package/dist/storage/storageApi.js +9 -2
- package/dist/storage/storageApi.js.map +1 -1
- package/dist/traffic/components/TrafficLineChart.d.ts +4 -1
- package/dist/traffic/components/TrafficLineChart.d.ts.map +1 -1
- package/dist/traffic/components/TrafficLineChart.js +3 -3
- package/dist/traffic/components/TrafficLineChart.js.map +1 -1
- package/dist/traffic/components/TrafficRow.js +1 -1
- package/dist/traffic/components/TrafficRow.js.map +1 -1
- package/dist/traffic/components/TrafficTimeline.d.ts +12 -5
- package/dist/traffic/components/TrafficTimeline.d.ts.map +1 -1
- package/dist/traffic/components/TrafficTimeline.js +20 -6
- package/dist/traffic/components/TrafficTimeline.js.map +1 -1
- package/dist/traffic/hooks/useTrafficMetrics.js +1 -1
- package/package.json +17 -6
|
@@ -32,6 +32,7 @@ function Node({ tree, api, onNavigate, path, label, isViewRoot }) {
|
|
|
32
32
|
const value = tree.valueAt(path);
|
|
33
33
|
const isParent = hasRtdbChildren(value);
|
|
34
34
|
const expanded = tree.isExpanded(path);
|
|
35
|
+
const update = tree.updateAt(path);
|
|
35
36
|
const [adding, setAdding] = useState(false);
|
|
36
37
|
const [editing, setEditing] = useState(false);
|
|
37
38
|
const [confirming, setConfirming] = useState(false);
|
|
@@ -53,7 +54,7 @@ function Node({ tree, api, onNavigate, path, label, isViewRoot }) {
|
|
|
53
54
|
tree.toggle(path);
|
|
54
55
|
};
|
|
55
56
|
const children = isParent && expanded ? tree.childrenAt(path) : null;
|
|
56
|
-
return (_jsxs("div", { "data-rtdb-node": true, "data-rtdb-kind": isParent ? 'parent' : 'leaf', "data-rtdb-view-root": isViewRoot ? '' : undefined, "data-rtdb-expanded": isParent && expanded ? '' : undefined, children: [_jsxs("div", { "data-rtdb-row": true, children: [isParent && !isViewRoot ? (_jsx("button", { type: "button", "data-rtdb-caret": true, "aria-expanded": expanded, "aria-label": expanded ? 'Collapse' : 'Expand', onClick: () => tree.toggle(path), children: _jsx("svg", { "aria-hidden": true, viewBox: "0 0 8 8", width: "8", height: "8", fill: "currentColor", children: _jsx("path", { d: "M1 0l6 4-6 4z" }) }) })) : (_jsx("span", { "aria-hidden": true, "data-rtdb-caret-spacer": true })), _jsx("button", { type: "button", "data-rtdb-key": true, "aria-label": "Key name", onClick: () => onNavigate?.(path), children: label }), !isParent ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": true, "data-rtdb-sep": true, children: ":" }), _jsx("button", { type: "button", "data-rtdb-value": true, "data-rtdb-type": rtdbValueKind(value), title: "Edit value", onClick: () => {
|
|
57
|
+
return (_jsxs("div", { "data-rtdb-node": true, "data-rtdb-kind": isParent ? 'parent' : 'leaf', "data-rtdb-view-root": isViewRoot ? '' : undefined, "data-rtdb-expanded": isParent && expanded ? '' : undefined, children: [_jsxs("div", { "data-rtdb-row": true, "data-pyric-update": update?.kind, "data-pyric-update-cycle": update?.cycle, children: [isParent && !isViewRoot ? (_jsx("button", { type: "button", "data-rtdb-caret": true, "aria-expanded": expanded, "aria-label": expanded ? 'Collapse' : 'Expand', onClick: () => tree.toggle(path), children: _jsx("svg", { "aria-hidden": true, viewBox: "0 0 8 8", width: "8", height: "8", fill: "currentColor", children: _jsx("path", { d: "M1 0l6 4-6 4z" }) }) })) : (_jsx("span", { "aria-hidden": true, "data-rtdb-caret-spacer": true })), _jsx("button", { type: "button", "data-rtdb-key": true, "aria-label": "Key name", onClick: () => onNavigate?.(path), children: label }), !isParent ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": true, "data-rtdb-sep": true, children: ":" }), _jsx("button", { type: "button", "data-rtdb-value": true, "data-rtdb-type": rtdbValueKind(value), title: "Edit value", onClick: () => {
|
|
57
58
|
setEditing(true);
|
|
58
59
|
setConfirming(false);
|
|
59
60
|
}, children: formatRtdbValueLabel(value) })] })) : null, _jsx("span", { "data-rtdb-actions": true, children: confirming ? (_jsxs("span", { "data-rtdb-confirm": true, children: [_jsxs("span", { "data-rtdb-confirm-label": true, children: ["Delete", isParent ? ' subtree' : '', "?"] }), _jsx("button", { type: "button", "data-rtdb-confirm-yes": true, onClick: () => void run(() => api.remove(path), () => setConfirming(false)), children: "Delete" }), _jsx("button", { type: "button", "data-rtdb-confirm-no": true, onClick: () => setConfirming(false), children: "Cancel" })] })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-rtdb-action-add": true, "aria-label": `Add child to ${pathLabel(path)}`, title: "Add child", onClick: openAdd, children: "+" }), _jsx("button", { type: "button", "data-rtdb-action-delete": true, "aria-label": `Delete ${pathLabel(path)}`, title: "Delete", onClick: () => setConfirming(true), children: "\u00D7" })] })) })] }), actionError ? (_jsx("p", { role: "alert", "data-rtdb-error": true, children: actionError })) : null, editing ? (_jsx(ValueEditor, { initialType: inferRtdbEditorType(value), initialText: formatRtdbEditorValue(value, inferRtdbEditorType(value)), submitLabel: "Save", onCancel: () => setEditing(false), onSubmit: (next) => run(() => api.set(path, next), () => setEditing(false)) })) : null, adding ? (_jsx(ValueEditor, { withKey: true, initialType: "string", initialText: "", submitLabel: "Add", onCancel: () => setAdding(false), onSubmit: (next, key) => run(() => api.set(joinRtdbPath(path, key), next), () => setAdding(false)) })) : null, children ? (_jsxs("ul", { "data-rtdb-children": true, children: [children.entries.map(([key]) => (_jsx("li", { children: _jsx(Node, { tree: tree, api: api, onNavigate: onNavigate, path: joinRtdbPath(path, key), label: key }) }, key))), children.hiddenCount > 0 ? (_jsx("li", { "data-rtdb-show-more-item": true, children: _jsxs("button", { type: "button", "data-rtdb-show-more": true, onClick: () => tree.showMore(path), children: ["Show more (", children.hiddenCount, " hidden)"] }) })) : null] })) : null] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RtdbTree.js","sourceRoot":"","sources":["../../../src/rtdb/components/RtdbTree.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkC,MAAM,OAAO,CAAC;AAGzE,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,GAElB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC;AAgBtB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,GAAG,GAAG,EAAE,SAAS,EAAiB;IAC3F,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEhF,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,mBAAgB,WAAW,YACjD,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5B,mEAAiC,CAClC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAC7B,YAAG,IAAI,EAAC,OAAO,qCACZ,KAAK,CAAC,KAAK,GACV,CACL,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,OAAO,EACd,UAAU,SACV,CACH,GACG,CACP,CAAC;AACJ,CAAC;AAaD,SAAS,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAa;IACzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RtdbTree.js","sourceRoot":"","sources":["../../../src/rtdb/components/RtdbTree.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RtdbApi } from '../rtdbApi.js';
|
|
2
|
+
import { type UpdateHighlight } from '../../primitives/hooks/useUpdateHighlights.js';
|
|
2
3
|
import { type RtdbTreeState, type RtdbVisibleChildren } from '../reducers/tree.js';
|
|
3
4
|
/** Console-style child paging (Firebase console shows 50, then "show more"). */
|
|
4
5
|
export declare const RTDB_DEFAULT_PAGE_SIZE = 50;
|
|
@@ -19,6 +20,7 @@ export interface RtdbTreeController {
|
|
|
19
20
|
childrenAt(path: string): RtdbVisibleChildren;
|
|
20
21
|
toggle(path: string): void;
|
|
21
22
|
showMore(path: string): void;
|
|
23
|
+
updateAt(path: string): UpdateHighlight | undefined;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Live tree state for the RTDB viewer: subscribes to the value at the view
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRtdbTree.d.ts","sourceRoot":"","sources":["../../../src/rtdb/hooks/useRtdbTree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useRtdbTree.d.ts","sourceRoot":"","sources":["../../../src/rtdb/hooks/useRtdbTree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAM7C,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC9C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;CACrD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,kBAAkB,CAgFpB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useReducer } from 'react';
|
|
2
|
-
import { normalizeRtdbPath } from '../values.js';
|
|
2
|
+
import { normalizeRtdbPath, rtdbUpdateEntries, rtdbValuesEqual, } from '../values.js';
|
|
3
|
+
import { useUpdateHighlights, } from '../../primitives/hooks/useUpdateHighlights.js';
|
|
3
4
|
import { initialRtdbTree, isRtdbPathExpanded, rtdbTreeReducer, rtdbTreeValueAt, rtdbVisibleChildren, } from '../reducers/tree.js';
|
|
4
5
|
/** Console-style child paging (Firebase console shows 50, then "show more"). */
|
|
5
6
|
export const RTDB_DEFAULT_PAGE_SIZE = 50;
|
|
@@ -14,6 +15,13 @@ export function useRtdbTree(api, path, options = {}) {
|
|
|
14
15
|
const pageSize = options.pageSize ?? RTDB_DEFAULT_PAGE_SIZE;
|
|
15
16
|
const normalized = normalizeRtdbPath(path);
|
|
16
17
|
const [state, dispatch] = useReducer(rtdbTreeReducer, normalized, initialRtdbTree);
|
|
18
|
+
const updateEntries = useMemo(() => rtdbUpdateEntries(state.value, state.path), [state.path, state.value]);
|
|
19
|
+
const updates = useUpdateHighlights({
|
|
20
|
+
scope: state.path,
|
|
21
|
+
entries: updateEntries,
|
|
22
|
+
equals: rtdbValuesEqual,
|
|
23
|
+
ready: state.status === 'live',
|
|
24
|
+
});
|
|
17
25
|
// Keep the reducer's view root in lockstep with the prop BEFORE the
|
|
18
26
|
// subscription effect below re-runs, so a snapshot for the new root never
|
|
19
27
|
// lands on the old root's state.
|
|
@@ -44,6 +52,16 @@ export function useRtdbTree(api, path, options = {}) {
|
|
|
44
52
|
const childrenAt = useCallback((p) => rtdbVisibleChildren(state, p, pageSize), [state, pageSize]);
|
|
45
53
|
const toggle = useCallback((p) => dispatch({ type: 'toggle', path: p }), []);
|
|
46
54
|
const showMore = useCallback((p) => dispatch({ type: 'show-more', path: p, pageSize }), [pageSize]);
|
|
47
|
-
|
|
55
|
+
const updateAt = useCallback((p) => updates.get(normalizeRtdbPath(p)), [updates]);
|
|
56
|
+
return useMemo(() => ({
|
|
57
|
+
state,
|
|
58
|
+
pageSize,
|
|
59
|
+
valueAt,
|
|
60
|
+
isExpanded,
|
|
61
|
+
childrenAt,
|
|
62
|
+
toggle,
|
|
63
|
+
showMore,
|
|
64
|
+
updateAt,
|
|
65
|
+
}), [state, pageSize, valueAt, isExpanded, childrenAt, toggle, showMore, updateAt]);
|
|
48
66
|
}
|
|
49
67
|
//# sourceMappingURL=useRtdbTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRtdbTree.js","sourceRoot":"","sources":["../../../src/rtdb/hooks/useRtdbTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"useRtdbTree.js","sourceRoot":"","sources":["../../../src/rtdb/hooks/useRtdbTree.ts"],"names":[],"mappings":"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"}
|
package/dist/rtdb/values.d.ts
CHANGED
|
@@ -40,5 +40,11 @@ export declare function rtdbValueAt(root: unknown, path: string): unknown;
|
|
|
40
40
|
export declare function formatRtdbJson(value: unknown): string;
|
|
41
41
|
export declare function parseRtdbJson(value: string): unknown;
|
|
42
42
|
export declare function rtdbValueKind(value: unknown): string;
|
|
43
|
+
/** Structural equality for JSON-shaped RTDB snapshots and row fingerprints. */
|
|
44
|
+
export declare function rtdbValuesEqual(previous: unknown, next: unknown): boolean;
|
|
45
|
+
/** One comparison fingerprint per RTDB row. Parent fingerprints contain only
|
|
46
|
+
* direct child keys, so leaf changes remain local while additions/removals
|
|
47
|
+
* also light the immediate parent. */
|
|
48
|
+
export declare function rtdbUpdateEntries(value: unknown, rootPath: string): ReadonlyMap<string, unknown>;
|
|
43
49
|
export declare function previewRtdbValue(value: unknown): string;
|
|
44
50
|
//# sourceMappingURL=values.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/rtdb/values.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElF;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAiBlE;AAED;;;iFAGiF;AACjF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAW3D;AAED;4EAC4E;AAC5E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGvD;AAED;6CAC6C;AAC7C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIpD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASvD"}
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/rtdb/values.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElF;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAiBlE;AAED;;;iFAGiF;AACjF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAW3D;AAED;4EAC4E;AAC5E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGvD;AAED;6CAC6C;AAC7C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAErD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIpD;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAuBzE;AAED;;sCAEsC;AACtC,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,GACf,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAa9B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASvD"}
|
package/dist/rtdb/values.js
CHANGED
|
@@ -127,6 +127,49 @@ export function rtdbValueKind(value) {
|
|
|
127
127
|
return 'array';
|
|
128
128
|
return typeof value;
|
|
129
129
|
}
|
|
130
|
+
/** Structural equality for JSON-shaped RTDB snapshots and row fingerprints. */
|
|
131
|
+
export function rtdbValuesEqual(previous, next) {
|
|
132
|
+
if (Object.is(previous, next))
|
|
133
|
+
return true;
|
|
134
|
+
if (Array.isArray(previous) || Array.isArray(next)) {
|
|
135
|
+
if (!Array.isArray(previous) || !Array.isArray(next))
|
|
136
|
+
return false;
|
|
137
|
+
if (previous.length !== next.length)
|
|
138
|
+
return false;
|
|
139
|
+
return previous.every((value, index) => rtdbValuesEqual(value, next[index]));
|
|
140
|
+
}
|
|
141
|
+
if (previous === null ||
|
|
142
|
+
next === null ||
|
|
143
|
+
typeof previous !== 'object' ||
|
|
144
|
+
typeof next !== 'object') {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
const previousRecord = previous;
|
|
148
|
+
const nextRecord = next;
|
|
149
|
+
const previousKeys = Object.keys(previousRecord);
|
|
150
|
+
const nextKeys = Object.keys(nextRecord);
|
|
151
|
+
if (previousKeys.length !== nextKeys.length)
|
|
152
|
+
return false;
|
|
153
|
+
return previousKeys.every((key) => key in nextRecord && rtdbValuesEqual(previousRecord[key], nextRecord[key]));
|
|
154
|
+
}
|
|
155
|
+
/** One comparison fingerprint per RTDB row. Parent fingerprints contain only
|
|
156
|
+
* direct child keys, so leaf changes remain local while additions/removals
|
|
157
|
+
* also light the immediate parent. */
|
|
158
|
+
export function rtdbUpdateEntries(value, rootPath) {
|
|
159
|
+
const entries = new Map();
|
|
160
|
+
const visit = (current, path) => {
|
|
161
|
+
if (!hasRtdbChildren(current)) {
|
|
162
|
+
entries.set(path, ['leaf', current ?? null]);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const children = rtdbChildEntries(current);
|
|
166
|
+
entries.set(path, ['parent', children.map(([key]) => key)]);
|
|
167
|
+
for (const [key, child] of children)
|
|
168
|
+
visit(child, joinRtdbPath(path, key));
|
|
169
|
+
};
|
|
170
|
+
visit(value, normalizeRtdbPath(rootPath));
|
|
171
|
+
return entries;
|
|
172
|
+
}
|
|
130
173
|
export function previewRtdbValue(value) {
|
|
131
174
|
if (value === null || value === undefined)
|
|
132
175
|
return 'null';
|
package/dist/rtdb/values.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/rtdb/values.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/rtdb/values.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RuleEvaluation, type PathResolutionTrace } from 'pyric/rules';
|
|
1
|
+
import { type RuleEvaluation, type PathResolutionTrace } from 'pyric/rules/internal';
|
|
2
2
|
import type { FirestoreMethod } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* The captured request a host re-runs through the simulator to produce a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDenialTrace.d.ts","sourceRoot":"","sources":["../../../src/rules/hooks/useDenialTrace.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,
|
|
1
|
+
{"version":3,"file":"useDenialTrace.d.ts","sourceRoot":"","sources":["../../../src/rules/hooks/useDenialTrace.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/D,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,8EAA8E;IAC9E,EAAE,EAAE,OAAO,CAAC;IACZ,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GAClB,WAAW,CAyBb"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import { SimulateFirestoreRulesHandler, } from 'pyric/rules';
|
|
2
|
+
import { SimulateFirestoreRulesHandler, } from 'pyric/rules/internal';
|
|
3
3
|
function toTestCase(req) {
|
|
4
4
|
return {
|
|
5
5
|
description: `denial-inspector: ${req.method} ${req.path}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDenialTrace.js","sourceRoot":"","sources":["../../../src/rules/hooks/useDenialTrace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,6BAA6B,GAI9B,MAAM,
|
|
1
|
+
{"version":3,"file":"useDenialTrace.js","sourceRoot":"","sources":["../../../src/rules/hooks/useDenialTrace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,6BAA6B,GAI9B,MAAM,sBAAsB,CAAC;AAkC9B,SAAS,UAAU,CAAC,GAAkB;IACpC,OAAO;QACL,WAAW,EAAE,qBAAqB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;QAC1D,8DAA8D;QAC9D,mEAAmE;QACnE,mEAAmE;QACnE,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,WAAmB;IAEnB,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAc,GAAG,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,6BAA6B,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;QAC9E,CAAC;QACD,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,EAAE,EAAE,IAAI;SACT,CAAC;QACF,oEAAoE;QACpE,sEAAsE;QACtE,gCAAgC;QAChC,uDAAuD;IACzD,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;AACzB,CAAC"}
|
package/dist/rules/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RuleEvaluation, PathResolutionTrace, PathResolutionEntry, ExprTraceEntry, FirestoreMethod } from 'pyric/rules';
|
|
1
|
+
import type { RuleEvaluation, PathResolutionTrace, PathResolutionEntry, ExprTraceEntry, FirestoreMethod } from 'pyric/rules/internal';
|
|
2
2
|
export type { RuleEvaluation, PathResolutionTrace, PathResolutionEntry, ExprTraceEntry, FirestoreMethod, };
|
|
3
3
|
/**
|
|
4
4
|
* The lens a request was issued under, mirroring the Studio's identity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rules/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rules/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAI9B,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAM;IAErB,MAAM,EAAE,eAAe,CAAC;IACxB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,kDAAkD;IAClD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAGX,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sDAAsD;IACtD,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mDAAmD;IACnD,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAC1B,sCAAsC;IACtC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -21,8 +21,6 @@ export interface DeleteSelectionWithConfirmProps {
|
|
|
21
21
|
* `deniedReason`). For folder entries the verdict evaluates the
|
|
22
22
|
* folder path itself — an approximation of the recursive walk
|
|
23
23
|
* (descendants matched by `{allPaths=**}` rules share the verdict).
|
|
24
|
-
* On prod handles verdicts are advisory; the server stays
|
|
25
|
-
* authoritative either way.
|
|
26
24
|
*/
|
|
27
25
|
gate?: Pick<UseStorageRulesGateResult, 'verdictFor'>;
|
|
28
26
|
/** Confirm-dialog title. Default derives from the entry count. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteSelectionWithConfirm.d.ts","sourceRoot":"","sources":["../../../src/storage/components/DeleteSelectionWithConfirm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C;gEAC4D;IAC5D,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,qEAAqE;IACrE,IAAI,CAAC,EAAE,0BAA0B,CAAC;IAClC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC
|
|
1
|
+
{"version":3,"file":"DeleteSelectionWithConfirm.d.ts","sourceRoot":"","sources":["../../../src/storage/components/DeleteSelectionWithConfirm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,+BAA+B;IAC9C,gDAAgD;IAChD,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C;gEAC4D;IAC5D,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,qEAAqE;IACrE,IAAI,CAAC,EAAE,0BAA0B,CAAC;IAClC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IACrD,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;6BACyB;IACzB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACpD,kEAAkE;IAClE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACnD,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,iEAAiE;QACjE,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,KAAK,SAAS,CAAC;IAChB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,YAAuB,EACvB,SAAS,EACT,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,+BAA+B,+BA0GjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteSelectionWithConfirm.js","sourceRoot":"","sources":["../../../src/storage/components/DeleteSelectionWithConfirm.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EACL,gBAAgB,GAIjB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"DeleteSelectionWithConfirm.js","sourceRoot":"","sources":["../../../src/storage/components/DeleteSelectionWithConfirm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -26,8 +26,7 @@ export interface ObjectBrowserProps {
|
|
|
26
26
|
* `data-pyric-denied-reason`). A denied folder row would throw
|
|
27
27
|
* `storage/unauthorized` on `listAll`; the stamp warns BEFORE the
|
|
28
28
|
* click. Rows stay clickable — the affordance is advisory and the
|
|
29
|
-
* enforcement layer remains authoritative
|
|
30
|
-
* themselves are advisory; see the gate's `advisory` flag).
|
|
29
|
+
* sandbox enforcement layer remains authoritative.
|
|
31
30
|
*/
|
|
32
31
|
gate?: Pick<UseStorageRulesGateResult, 'verdictFor'>;
|
|
33
32
|
/**
|
|
@@ -36,6 +35,9 @@ export interface ObjectBrowserProps {
|
|
|
36
35
|
* component — the slot only owns the label content.
|
|
37
36
|
*/
|
|
38
37
|
renderEntry?: (entry: StorageListEntry) => ReactNode;
|
|
38
|
+
/** Optional per-row action rendered as a sibling of the navigation/select
|
|
39
|
+
* button. Use this for independent controls such as selection checkboxes. */
|
|
40
|
+
renderRowAction?: (entry: StorageListEntry) => ReactNode;
|
|
39
41
|
emptyState?: ReactNode;
|
|
40
42
|
className?: string;
|
|
41
43
|
/**
|
|
@@ -70,6 +72,7 @@ export interface ObjectBrowserProps {
|
|
|
70
72
|
* (rules gate; reason on `data-pyric-denied-reason`)
|
|
71
73
|
* - `[data-pyric-entry-select]` — the row button
|
|
72
74
|
* - `[data-pyric-entry-select][data-pyric-selected]` — the selected object
|
|
75
|
+
* - `[data-pyric-storage-action]` — optional sibling row action
|
|
73
76
|
*/
|
|
74
|
-
export declare function ObjectBrowser({ entries, status, error, onNavigate, onSelect, selectedPath, gate, renderEntry, emptyState, className, virtualizeThreshold, rowHeight, virtualizedHeight, }: ObjectBrowserProps): import("react").JSX.Element;
|
|
77
|
+
export declare function ObjectBrowser({ entries, status, error, onNavigate, onSelect, selectedPath, gate, renderEntry, renderRowAction, emptyState, className, virtualizeThreshold, rowHeight, virtualizedHeight, }: ObjectBrowserProps): import("react").JSX.Element;
|
|
75
78
|
//# sourceMappingURL=ObjectBrowser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectBrowser.d.ts","sourceRoot":"","sources":["../../../src/storage/components/ObjectBrowser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B;oEACgE;IAChE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;gEAC4D;IAC5D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;+CAC2C;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C;2BACuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"ObjectBrowser.d.ts","sourceRoot":"","sources":["../../../src/storage/components/ObjectBrowser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B;oEACgE;IAChE,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;gEAC4D;IAC5D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;+CAC2C;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C;2BACuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC;IACrD;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAC;IACrD;kFAC8E;IAC9E,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAC;IACzD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACjD,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAkB,EAClB,KAAK,EACL,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,mBAAyB,EACzB,SAAc,EACd,iBAA0B,GAC3B,EAAE,kBAAkB,+BAwHpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { VirtualList } from '../../primitives/VirtualList.js';
|
|
3
3
|
import { useContainerSize } from '../../primitives/hooks/useContainerSize.js';
|
|
4
4
|
/**
|
|
@@ -20,8 +20,9 @@ import { useContainerSize } from '../../primitives/hooks/useContainerSize.js';
|
|
|
20
20
|
* (rules gate; reason on `data-pyric-denied-reason`)
|
|
21
21
|
* - `[data-pyric-entry-select]` — the row button
|
|
22
22
|
* - `[data-pyric-entry-select][data-pyric-selected]` — the selected object
|
|
23
|
+
* - `[data-pyric-storage-action]` — optional sibling row action
|
|
23
24
|
*/
|
|
24
|
-
export function ObjectBrowser({ entries, status = 'success', error, onNavigate, onSelect, selectedPath, gate, renderEntry, emptyState, className, virtualizeThreshold = 100, rowHeight = 36, virtualizedHeight = '60vh', }) {
|
|
25
|
+
export function ObjectBrowser({ entries, status = 'success', error, onNavigate, onSelect, selectedPath, gate, renderEntry, renderRowAction, emptyState, className, virtualizeThreshold = 100, rowHeight = 36, virtualizedHeight = '60vh', }) {
|
|
25
26
|
const { ref: rootRef, size } = useContainerSize();
|
|
26
27
|
if (error) {
|
|
27
28
|
return (_jsx("div", { className: className, "data-pyric-ui": "object-browser", "data-pyric-error": "", role: "alert", children: error.message }));
|
|
@@ -43,9 +44,9 @@ export function ObjectBrowser({ entries, status = 'success', error, onNavigate,
|
|
|
43
44
|
};
|
|
44
45
|
const renderRow = (entry) => {
|
|
45
46
|
const selected = entry.kind === 'object' && entry.fullPath === selectedPath;
|
|
46
|
-
return (_jsx("button", { type: "button", onClick: () => entry.kind === 'folder'
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => entry.kind === 'folder'
|
|
48
|
+
? onNavigate?.(entry.fullPath)
|
|
49
|
+
: onSelect?.(entry.ref), "data-pyric-entry-select": true, "data-pyric-selected": selected ? '' : undefined, "aria-selected": selected || undefined, children: renderEntry ? renderEntry(entry) : entry.name }), renderRowAction ? (_jsx("span", { "data-pyric-storage-action": true, children: renderRowAction(entry) })) : null] }));
|
|
49
50
|
};
|
|
50
51
|
const virtualized = entries.length > virtualizeThreshold;
|
|
51
52
|
return (_jsx("div", { ref: rootRef, className: className, "data-pyric-ui": "object-browser", "data-size": size, "data-pyric-virtualized": virtualized ? '' : undefined, children: virtualized ? (_jsx(VirtualList, { items: entries, estimateSize: rowHeight, height: virtualizedHeight, getItemKey: (entry) => `${entry.kind}:${entry.fullPath}`, renderItem: (entry) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectBrowser.js","sourceRoot":"","sources":["../../../src/storage/components/ObjectBrowser.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectBrowser.js","sourceRoot":"","sources":["../../../src/storage/components/ObjectBrowser.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
import type { FirebaseStorage, FullMetadata } from 'pyric/storage';
|
|
3
3
|
import { type StoragePreview } from '../previews.js';
|
|
4
4
|
export interface ObjectInspectorProps {
|
|
5
|
-
/** The package's
|
|
5
|
+
/** The package's sandbox Storage handle. */
|
|
6
6
|
storage: FirebaseStorage | null | undefined;
|
|
7
7
|
/** Object path to inspect. `null` renders the idle shell — keep
|
|
8
8
|
* the inspector mounted and swap paths as the user selects rows. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectInspector.d.ts","sourceRoot":"","sources":["../../../src/storage/components/ObjectInspector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACnC,
|
|
1
|
+
{"version":3,"file":"ObjectInspector.d.ts","sourceRoot":"","sources":["../../../src/storage/components/ObjectInspector.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C;yEACqE;IACrE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;iEAC6D;IAC7D,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B;yEACqE;IACrE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,SAAS,CAAC;IACvD;sBACkB;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,+BAgFtB"}
|
|
@@ -6,9 +6,15 @@ import { type FirebaseStorage, type StorageReference } from 'pyric/storage';
|
|
|
6
6
|
* `StorageReference` is a documented structural value object (two
|
|
7
7
|
* refs with the same `(storage, fullPath)` are equal), so a plain
|
|
8
8
|
* object is a legal reference — the only way to express a `<path>/`
|
|
9
|
-
* name past `ref()`'s slash normalization.
|
|
10
|
-
*
|
|
11
|
-
* through the REST `name=<path>/` channel — see the P2 step-00 doc).
|
|
9
|
+
* name past `ref()`'s slash normalization. This helper is specific to
|
|
10
|
+
* the Pyric sandbox mirror.
|
|
12
11
|
*/
|
|
13
12
|
export declare function folderPlaceholderRef(storage: FirebaseStorage, folderPath: string): StorageReference;
|
|
13
|
+
/** Preserve whichever backend identity a reference carries (in-process
|
|
14
|
+
* storage handle or worker MessagePort) while targeting its trailing-slash
|
|
15
|
+
* GCS folder placeholder. */
|
|
16
|
+
export declare function asFolderPlaceholder<T extends {
|
|
17
|
+
fullPath: string;
|
|
18
|
+
name: string;
|
|
19
|
+
}>(folder: T): T;
|
|
14
20
|
//# sourceMappingURL=folderPlaceholder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folderPlaceholder.d.ts","sourceRoot":"","sources":["../../src/storage/folderPlaceholder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE1F
|
|
1
|
+
{"version":3,"file":"folderPlaceholder.d.ts","sourceRoot":"","sources":["../../src/storage/folderPlaceholder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE1F;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,MAAM,GACjB,gBAAgB,CAWlB;AAED;;8BAE8B;AAC9B,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9E,MAAM,EAAE,CAAC,GACR,CAAC,CAMH"}
|
|
@@ -6,9 +6,8 @@ import { ref as refFn } from 'pyric/storage';
|
|
|
6
6
|
* `StorageReference` is a documented structural value object (two
|
|
7
7
|
* refs with the same `(storage, fullPath)` are equal), so a plain
|
|
8
8
|
* object is a legal reference — the only way to express a `<path>/`
|
|
9
|
-
* name past `ref()`'s slash normalization.
|
|
10
|
-
*
|
|
11
|
-
* through the REST `name=<path>/` channel — see the P2 step-00 doc).
|
|
9
|
+
* name past `ref()`'s slash normalization. This helper is specific to
|
|
10
|
+
* the Pyric sandbox mirror.
|
|
12
11
|
*/
|
|
13
12
|
export function folderPlaceholderRef(storage, folderPath) {
|
|
14
13
|
const folder = refFn(storage, folderPath);
|
|
@@ -16,12 +15,20 @@ export function folderPlaceholderRef(storage, folderPath) {
|
|
|
16
15
|
storage,
|
|
17
16
|
bucket: folder.bucket,
|
|
18
17
|
fullPath: `${folder.fullPath}/`,
|
|
19
|
-
// GCS semantics: the segment after the final slash — empty for a
|
|
20
|
-
// placeholder.
|
|
21
18
|
name: '',
|
|
22
19
|
parent: folder,
|
|
23
20
|
root: folder.root,
|
|
24
21
|
toString: () => `${folder.toString()}/`,
|
|
25
22
|
};
|
|
26
23
|
}
|
|
24
|
+
/** Preserve whichever backend identity a reference carries (in-process
|
|
25
|
+
* storage handle or worker MessagePort) while targeting its trailing-slash
|
|
26
|
+
* GCS folder placeholder. */
|
|
27
|
+
export function asFolderPlaceholder(folder) {
|
|
28
|
+
return {
|
|
29
|
+
...folder,
|
|
30
|
+
fullPath: `${folder.fullPath}/`,
|
|
31
|
+
name: '',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
27
34
|
//# sourceMappingURL=folderPlaceholder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folderPlaceholder.js","sourceRoot":"","sources":["../../src/storage/folderPlaceholder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,KAAK,EAA+C,MAAM,eAAe,CAAC;AAE1F
|
|
1
|
+
{"version":3,"file":"folderPlaceholder.js","sourceRoot":"","sources":["../../src/storage/folderPlaceholder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,KAAK,EAA+C,MAAM,eAAe,CAAC;AAE1F;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAwB,EACxB,UAAkB;IAElB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,OAAO;QACL,OAAO;QACP,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,GAAG;QAC/B,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG;KACxC,CAAC;AACJ,CAAC;AAED;;8BAE8B;AAC9B,MAAM,UAAU,mBAAmB,CACjC,MAAS;IAET,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,GAAG;QAC/B,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -23,8 +23,7 @@ export interface UploadTask {
|
|
|
23
23
|
metadata?: FullMetadata;
|
|
24
24
|
/** Populated on `'error'` — a typed `StorageError` from the
|
|
25
25
|
* sandbox (`.code` is `storage/<code>`, e.g.
|
|
26
|
-
* `storage/unauthorized` for a rules-denied write)
|
|
27
|
-
* the prod backend threw. */
|
|
26
|
+
* `storage/unauthorized` for a rules-denied write). */
|
|
28
27
|
error?: Error;
|
|
29
28
|
}
|
|
30
29
|
/** Explicit-path upload input. `path` is relative to the hook's
|
|
@@ -79,13 +78,10 @@ export interface UseObjectUploadResult {
|
|
|
79
78
|
* at every level (it only surfaces as a prefix), so the folder
|
|
80
79
|
* appears in the browser with no phantom file inside.
|
|
81
80
|
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* first-class placeholder API routing prod through the REST
|
|
87
|
-
* `name=<path>/` upload). Throws the underlying error after
|
|
88
|
-
* rolling back the optimistic prefix insert.
|
|
81
|
+
* `ref()` normalizes the trailing slash away, so the placeholder is
|
|
82
|
+
* written through a structural value-object reference the sandbox
|
|
83
|
+
* accepts. Throws the underlying error after rolling back the
|
|
84
|
+
* optimistic prefix insert.
|
|
89
85
|
*
|
|
90
86
|
* ALTERNATIVE: when the store must stay free of placeholder
|
|
91
87
|
* objects (Pyric Studio's choice), use the client-side
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useObjectUpload.d.ts","sourceRoot":"","sources":["../../../src/storage/hooks/useObjectUpload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB;6CACyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB
|
|
1
|
+
{"version":3,"file":"useObjectUpload.d.ts","sourceRoot":"","sources":["../../../src/storage/hooks/useObjectUpload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB;6CACyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;4DAEwD;IACxD,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;8CAC8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;IACtC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,WAAW,CAAC;AAE7C,MAAM,WAAW,sBAAsB;IACrC;uEACmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;IAC/D,8DAA8D;IAC9D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,gDAAgD;IAChD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,2DAA2D;IAC3D,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC3C,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAsHvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useObjectUpload.js","sourceRoot":"","sources":["../../../src/storage/hooks/useObjectUpload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useObjectUpload.js","sourceRoot":"","sources":["../../../src/storage/hooks/useObjectUpload.ts"],"names":[],"mappings":"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"}
|