@mepuka/skygent 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +269 -31
- package/index.ts +18 -3
- package/package.json +1 -1
- package/src/cli/app.ts +4 -2
- package/src/cli/compact-output.ts +52 -0
- package/src/cli/config.ts +46 -4
- package/src/cli/doc/table-renderers.ts +29 -0
- package/src/cli/doc/thread.ts +2 -4
- package/src/cli/exit-codes.ts +2 -0
- package/src/cli/feed.ts +78 -61
- package/src/cli/filter-dsl.ts +146 -11
- package/src/cli/filter-errors.ts +13 -11
- package/src/cli/filter-help.ts +7 -0
- package/src/cli/filter-input.ts +3 -2
- package/src/cli/filter.ts +83 -5
- package/src/cli/graph.ts +297 -169
- package/src/cli/input.ts +45 -0
- package/src/cli/interval.ts +4 -33
- package/src/cli/jetstream.ts +2 -0
- package/src/cli/layers.ts +10 -0
- package/src/cli/logging.ts +8 -0
- package/src/cli/option-schemas.ts +22 -0
- package/src/cli/output-format.ts +11 -0
- package/src/cli/output-render.ts +14 -0
- package/src/cli/pagination.ts +17 -0
- package/src/cli/parse-errors.ts +30 -0
- package/src/cli/parse.ts +1 -47
- package/src/cli/pipe-input.ts +18 -0
- package/src/cli/pipe.ts +154 -0
- package/src/cli/post.ts +88 -66
- package/src/cli/query-fields.ts +13 -3
- package/src/cli/query.ts +354 -100
- package/src/cli/search.ts +93 -136
- package/src/cli/shared-options.ts +11 -63
- package/src/cli/shared.ts +1 -20
- package/src/cli/store-errors.ts +28 -21
- package/src/cli/store-tree.ts +6 -4
- package/src/cli/store.ts +41 -2
- package/src/cli/stream-merge.ts +105 -0
- package/src/cli/sync-factory.ts +24 -7
- package/src/cli/sync.ts +46 -67
- package/src/cli/thread-options.ts +25 -0
- package/src/cli/time.ts +171 -0
- package/src/cli/view-thread.ts +29 -32
- package/src/cli/watch.ts +55 -26
- package/src/domain/errors.ts +6 -1
- package/src/domain/format.ts +21 -0
- package/src/domain/order.ts +24 -0
- package/src/domain/primitives.ts +20 -3
- package/src/graph/relationships.ts +129 -0
- package/src/services/bsky-client.ts +11 -5
- package/src/services/jetstream-sync.ts +4 -4
- package/src/services/lineage-store.ts +15 -1
- package/src/services/shared.ts +48 -1
- package/src/services/store-cleaner.ts +5 -2
- package/src/services/store-commit.ts +60 -0
- package/src/services/store-manager.ts +69 -2
- package/src/services/store-renamer.ts +288 -0
- package/src/services/store-stats.ts +7 -5
- package/src/services/sync-engine.ts +149 -89
- package/src/services/sync-reporter.ts +3 -1
- package/src/services/sync-settings.ts +24 -0
package/src/cli/query-fields.ts
CHANGED
|
@@ -7,6 +7,11 @@ type FieldSelector = {
|
|
|
7
7
|
readonly raw: string;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
+
export type FieldSelectorsResolution = {
|
|
11
|
+
readonly selectors: Option.Option<ReadonlyArray<FieldSelector>>;
|
|
12
|
+
readonly source: "implicit" | "explicit";
|
|
13
|
+
};
|
|
14
|
+
|
|
10
15
|
const fieldPresets: Record<string, ReadonlyArray<string>> = {
|
|
11
16
|
minimal: ["uri", "author", "text", "createdAt"],
|
|
12
17
|
social: ["uri", "author", "text", "metrics", "hashtags"],
|
|
@@ -162,11 +167,16 @@ export const parseFieldSelectors = (
|
|
|
162
167
|
export const resolveFieldSelectors = (
|
|
163
168
|
fields: Option.Option<string>,
|
|
164
169
|
compact: boolean
|
|
165
|
-
): Effect.Effect<
|
|
170
|
+
): Effect.Effect<FieldSelectorsResolution, CliInputError> =>
|
|
166
171
|
Option.match(fields, {
|
|
167
172
|
onNone: () =>
|
|
168
|
-
compact ? parseFieldSelectors("@minimal") : Effect.succeed(Option.none())
|
|
169
|
-
|
|
173
|
+
(compact ? parseFieldSelectors("@minimal") : Effect.succeed(Option.none())).pipe(
|
|
174
|
+
Effect.map((selectors) => ({ selectors, source: "implicit" as const }))
|
|
175
|
+
),
|
|
176
|
+
onSome: (raw) =>
|
|
177
|
+
parseFieldSelectors(raw).pipe(
|
|
178
|
+
Effect.map((selectors) => ({ selectors, source: "explicit" as const }))
|
|
179
|
+
)
|
|
170
180
|
});
|
|
171
181
|
|
|
172
182
|
const getPathValue = (source: unknown, path: ReadonlyArray<string>): unknown => {
|