@codemem/server 0.42.0 → 0.43.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.
@@ -2,7 +2,8 @@
2
2
  * CORS and cross-origin protection middleware.
3
3
  *
4
4
  * Ports Python's reject_cross_origin() logic from codemem/viewer_http.py.
5
- * GETs are allowed from any origin (viewer is local-only).
5
+ * GETs are allowed from any origin by default (viewer is local-only).
6
+ * Callers can mark side-effecting GET path prefixes as unsafe.
6
7
  * Mutations (POST/DELETE/PATCH/PUT) require an Origin header matching a
7
8
  * loopback address, or are rejected with 403.
8
9
  */
@@ -11,7 +12,8 @@
11
12
  *
12
13
  * Ports Python's `reject_cross_origin(missing_origin_policy="reject_if_unsafe")`:
13
14
  *
14
- * - GET/HEAD/OPTIONS: allowed from any origin (viewer is local-only).
15
+ * - GET/HEAD/OPTIONS: allowed from any origin unless the caller marks a
16
+ * side-effecting GET path prefix as unsafe.
15
17
  * - POST/DELETE/PATCH/PUT:
16
18
  * - Origin present + loopback → allowed (browser on localhost)
17
19
  * - Origin present + non-loopback → rejected 403
@@ -22,7 +24,9 @@
22
24
  * Access-Control-Allow-Origin is set — the browser doesn't need it.
23
25
  * For valid loopback origins, ACAO is echoed back.
24
26
  */
25
- export declare function originGuard(): import("hono").MiddlewareHandler<any, any, {}, Response | (Response & import("hono").TypedResponse<{
27
+ export declare function originGuard(options?: {
28
+ unsafeGetPathPrefixes?: readonly string[];
29
+ }): import("hono").MiddlewareHandler<any, any, {}, Response | (Response & import("hono").TypedResponse<{
26
30
  error: string;
27
31
  }, 403, "json">)>;
28
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4CH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW;;kBAkC1B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,4HAgB/B"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6CH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IAAE,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;;kBAqClF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,4HAgB/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ import type { LegacyTeamConfiguredGroupSnapshot, LegacyTeamSetupAccessDeltaV1, LegacyTeamSetupActivationErrorCode, LegacyTeamSetupDraftView, MemoryStore } from "@codemem/core";
2
+ import { coordinatorListDevicesAction, coordinatorListGroupsAction, readCoordinatorSyncConfig } from "@codemem/core";
3
+ import { Hono } from "hono";
4
+ export declare const TEAM_SETUP_ROUTE_PREFIX = "/api/sync/team-setup/v1";
5
+ interface LegacyTeamConfiguredGroupSnapshotLoadOptions {
6
+ candidateRef?: string;
7
+ }
8
+ export type LegacyTeamConfiguredGroupSnapshotLoader = (options?: LegacyTeamConfiguredGroupSnapshotLoadOptions) => Promise<LegacyTeamConfiguredGroupSnapshot[]>;
9
+ export interface LegacyTeamSetupCandidateSummaryV1 {
10
+ candidateRef: string;
11
+ displayName: string;
12
+ status: "needs_setup" | "in_progress" | "stale" | "ready";
13
+ deviceCount: number;
14
+ projectCount: number;
15
+ unresolvedDeviceCount: number;
16
+ unresolvedProjectCount: number;
17
+ }
18
+ export interface LegacyTeamSetupSummaryResponseV1 {
19
+ version: 1;
20
+ candidates: LegacyTeamSetupCandidateSummaryV1[];
21
+ }
22
+ export interface LegacyTeamSetupDeviceV1 {
23
+ deviceRef: string;
24
+ displayName: string;
25
+ enabled: boolean;
26
+ existingIdentityRef: string | null;
27
+ suggestedIdentityRef: string | null;
28
+ verifiedEvidenceKind: "active_assignment" | null;
29
+ decision: "unresolved" | "included" | "excluded" | "removed";
30
+ targetIdentityRef: string | null;
31
+ expectation: {
32
+ kind: "absent";
33
+ } | {
34
+ kind: "existing";
35
+ assignmentVersion: number;
36
+ identityRef: string;
37
+ };
38
+ }
39
+ export interface LegacyTeamSetupProjectV1 {
40
+ projectRef: string;
41
+ displayName: string;
42
+ resolution: "unresolved" | "deterministic" | "explicit";
43
+ canonicalProjectRef: string | null;
44
+ resolvedProjectRef: string | null;
45
+ mappingChoices: Array<{
46
+ resolvedProjectRef: string;
47
+ displayName: string;
48
+ }>;
49
+ }
50
+ export interface LegacyTeamSetupIdentityChoiceV1 {
51
+ identityRef: string;
52
+ displayName: string;
53
+ }
54
+ export interface LegacyTeamSetupViewerAccessDeltaV1 {
55
+ teamChanges: Array<{
56
+ teamRef: string;
57
+ teamDisplayName: string;
58
+ change: "add" | "update" | "remove";
59
+ fromDeviceEligibilityMode: "person_all_devices" | "reviewed_allowlist" | null;
60
+ toDeviceEligibilityMode: "reviewed_allowlist";
61
+ }>;
62
+ membershipChanges: Array<{
63
+ teamRef: string;
64
+ teamDisplayName: string;
65
+ identityRef: string;
66
+ identityDisplayName: string;
67
+ change: "add" | "update" | "remove";
68
+ }>;
69
+ projectChanges: Array<{
70
+ projectRef: string;
71
+ projectDisplayName: string;
72
+ fromResolvedProjectRef: string | null;
73
+ fromResolvedProjectDisplayName: string | null;
74
+ toResolvedProjectRef: string | null;
75
+ toResolvedProjectDisplayName: string | null;
76
+ change: "add" | "update" | "remove";
77
+ }>;
78
+ recipientChanges: Array<{
79
+ canonicalProjectRef: string;
80
+ canonicalProjectDisplayName: string;
81
+ recipientKind: "team";
82
+ recipientRef: string;
83
+ recipientDisplayName: string;
84
+ change: "add" | "update" | "remove";
85
+ }>;
86
+ deviceAccessChanges: Array<{
87
+ canonicalProjectRef: string;
88
+ canonicalProjectDisplayName: string;
89
+ deviceRef: string;
90
+ deviceDisplayName: string;
91
+ change: "add" | "remove";
92
+ }>;
93
+ }
94
+ interface LegacyTeamSetupDetailBaseV1 {
95
+ version: 1;
96
+ candidate: LegacyTeamSetupCandidateSummaryV1;
97
+ attemptId: string;
98
+ draftState: "needs_setup" | "in_progress" | "stale" | "completed";
99
+ unresolvedDeviceCount: number;
100
+ unresolvedProjectCount: number;
101
+ devices: LegacyTeamSetupDeviceV1[];
102
+ projects: LegacyTeamSetupProjectV1[];
103
+ identityChoices: LegacyTeamSetupIdentityChoiceV1[];
104
+ }
105
+ export type LegacyTeamSetupDetailResponseV1 = LegacyTeamSetupDetailBaseV1 & ({
106
+ canFinish: true;
107
+ conflictState: null;
108
+ finishDigest: string;
109
+ accessDeltaDigest: string;
110
+ viewerAccessDeltaDigest: string;
111
+ accessDelta: LegacyTeamSetupViewerAccessDeltaV1;
112
+ } | {
113
+ canFinish: false;
114
+ conflictState: LegacyTeamSetupActivationErrorCode | null;
115
+ });
116
+ export interface LegacyTeamSetupErrorResponseV1 {
117
+ error: LegacyTeamSetupActivationErrorCode;
118
+ }
119
+ export interface LegacyTeamSetupMutationResponseV1 {
120
+ version: 1;
121
+ candidateRef: string;
122
+ attemptId: string;
123
+ draftState: LegacyTeamSetupDraftView["state"];
124
+ canFinish: boolean;
125
+ unresolvedDeviceCount: number;
126
+ unresolvedProjectCount: number;
127
+ }
128
+ export interface LegacyTeamSetupFinishResponseV1 {
129
+ version: 1;
130
+ status: "completed";
131
+ teamRef: string;
132
+ attemptId: string;
133
+ accessDeltaDigest: string;
134
+ completedAt: string;
135
+ }
136
+ interface TeamSetupRoutesOptions {
137
+ getStore: () => MemoryStore;
138
+ loadLegacyTeamConfiguredGroupSnapshots?: LegacyTeamConfiguredGroupSnapshotLoader;
139
+ }
140
+ interface LegacyTeamSnapshotLoaderDependencies {
141
+ readConfig: typeof readCoordinatorSyncConfig;
142
+ listGroups: typeof coordinatorListGroupsAction;
143
+ listDevices: typeof coordinatorListDevicesAction;
144
+ }
145
+ declare function loadConfiguredLegacyTeamGroupSnapshotsWith(dependencies: LegacyTeamSnapshotLoaderDependencies, options?: LegacyTeamConfiguredGroupSnapshotLoadOptions): Promise<LegacyTeamConfiguredGroupSnapshot[]>;
146
+ export declare function loadConfiguredLegacyTeamGroupSnapshots(options?: LegacyTeamConfiguredGroupSnapshotLoadOptions): Promise<LegacyTeamConfiguredGroupSnapshot[]>;
147
+ declare function viewerSafeAccessDelta(candidateRef: string, delta: LegacyTeamSetupAccessDeltaV1, labels?: {
148
+ teamDisplayName: string;
149
+ devices: LegacyTeamSetupDeviceV1[];
150
+ projects: LegacyTeamSetupProjectV1[];
151
+ identityChoices: LegacyTeamSetupIdentityChoiceV1[];
152
+ }): LegacyTeamSetupViewerAccessDeltaV1;
153
+ declare function safeChoiceLabel(value: string, fallback: string, forbiddenIds: readonly string[], opaqueRef?: string): string;
154
+ declare function disambiguateChoiceLabels<T extends {
155
+ displayName: string;
156
+ }>(choices: readonly T[], choiceRef: (choice: T) => string): T[];
157
+ declare function requireCompleteMappingChoices(projectCount: number, choiceCount: number): void;
158
+ declare function createCachedSnapshotLoader(load: () => Promise<LegacyTeamConfiguredGroupSnapshot[]>, ttlMs: number, now?: () => number): (() => Promise<LegacyTeamConfiguredGroupSnapshot[]>) & {
159
+ invalidate: () => void;
160
+ };
161
+ export declare const __teamSetupTestHooks: {
162
+ createCachedSnapshotLoader: typeof createCachedSnapshotLoader;
163
+ loadConfiguredLegacyTeamGroupSnapshotsWith: typeof loadConfiguredLegacyTeamGroupSnapshotsWith;
164
+ requireCompleteMappingChoices: typeof requireCompleteMappingChoices;
165
+ disambiguateChoiceLabels: typeof disambiguateChoiceLabels;
166
+ safeChoiceLabel: typeof safeChoiceLabel;
167
+ viewerSafeAccessDelta: typeof viewerSafeAccessDelta;
168
+ };
169
+ export declare function teamSetupRoutes(options: TeamSetupRoutesOptions): Hono;
170
+ export {};
171
+ //# sourceMappingURL=team-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-setup.d.ts","sourceRoot":"","sources":["../../src/routes/team-setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codemem/server",
3
- "version": "0.42.0",
3
+ "version": "0.43.0",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "exports": {
@@ -19,7 +19,7 @@
19
19
  "drizzle-orm": "^0.45.2",
20
20
  "hono": "^4.12.25",
21
21
  "limiter": "^3.0.0",
22
- "@codemem/core": "^0.42.0"
22
+ "@codemem/core": "^0.43.0"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/better-sqlite3": "^7.6.13",