@deveye/types 0.15.0 → 0.15.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 +6 -6
- package/package.json +1 -1
- package/src/domain/audience.ts +1 -1
- package/src/domain/sharing.ts +2 -2
- package/src/features/workspace.ts +0 -29
- package/src/index.ts +1 -3
- package/src/sdk/client-ambient.d.ts +2 -2
- package/src/sdk/index.ts +2 -2
- package/src/sdk/manifest.ts +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# deveye
|
|
1
|
+
# @deveye/types
|
|
2
2
|
|
|
3
3
|
Les contrats partagés de [DevEye](https://github.com/Gerem66/DevEye) : types
|
|
4
4
|
TypeScript et schémas zod, consommés par le serveur, le client et les modules
|
|
@@ -6,14 +6,14 @@ de features.
|
|
|
6
6
|
|
|
7
7
|
Le package sert ses sources directement (`src/*.ts`, aucun build) :
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- **`@deveye/types`** — le domaine transverse (espaces, rôles, live, partage…),
|
|
10
10
|
les protocoles (enveloppe WS, agent), le registre d'identité des features.
|
|
11
|
-
-
|
|
11
|
+
- **`@deveye/types/sdk`** — le contrat des modules de features : `FeatureManifest`,
|
|
12
12
|
`validateManifest`, ids `x-<slug>`.
|
|
13
|
-
-
|
|
13
|
+
- **`@deveye/types/sdk/server`** — le contexte serveur d'un module (handlers,
|
|
14
14
|
store, façade, service).
|
|
15
|
-
-
|
|
16
|
-
-
|
|
15
|
+
- **`@deveye/types/sdk/client`** — les contrats de l'entrée client d'un module.
|
|
16
|
+
- **`@deveye/types/sdk/testing`** — le harnais de test en mémoire des handlers.
|
|
17
17
|
|
|
18
18
|
Le portrait typé du barrel `deveye-sdk-client` (le runtime que l'app fournit
|
|
19
19
|
aux modules) est publié ici aussi (`src/sdk/client-ambient.d.ts`) ; la CI de
|
package/package.json
CHANGED
package/src/domain/audience.ts
CHANGED
|
@@ -283,7 +283,7 @@ export const audienceOverviewSchema = z.object({
|
|
|
283
283
|
export type AudienceOverview = z.infer<typeof audienceOverviewSchema>;
|
|
284
284
|
|
|
285
285
|
export const audienceBreakdownItemSchema = z.object({
|
|
286
|
-
/** Le libellé déchiffr
|
|
286
|
+
/** Le libellé déchiffré, vide si le blob est illisible. */
|
|
287
287
|
label: z.string(),
|
|
288
288
|
views: z.number().int().nonnegative(),
|
|
289
289
|
visitors: z.number().int().nonnegative()
|
package/src/domain/sharing.ts
CHANGED
|
@@ -10,8 +10,8 @@ import { featureAccessSchema, workspaceFeatureIdSchema } from './workspaceRole';
|
|
|
10
10
|
* Un élément partagé **ne change jamais de clé**. Il reste chiffré sous celle de
|
|
11
11
|
* son espace d'origine ; servi ailleurs, il est déchiffré avec le codec ouvert
|
|
12
12
|
* de cet espace-là. C'est le prolongement direct du levier L3 de
|
|
13
|
-
* `WORKSPACES.md
|
|
14
|
-
* raison pour laquelle ce chantier ne re-chiffre rien.
|
|
13
|
+
* `WORKSPACES.md`, « chaque espace a sa clé, et un blob n'en change jamais »,
|
|
14
|
+
* et la raison pour laquelle ce chantier ne re-chiffre rien.
|
|
15
15
|
*
|
|
16
16
|
* `WORKSPACES.md` §10 range **déplacer** un élément hors périmètre, précisément
|
|
17
17
|
* parce que ce serait la seule opération à exiger un déchiffrement clé A puis un
|
|
@@ -89,33 +89,6 @@ export const workspaceAddMember = {
|
|
|
89
89
|
output: z.object({ workspace: workspaceSchema })
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
-
/**
|
|
93
|
-
* État de la clé d'espace : déjà active, applicable, et ce qui l'empêcherait.
|
|
94
|
-
*/
|
|
95
|
-
export const workspaceSharedKeyStatus = {
|
|
96
|
-
command: 'workspace.sharedKeyStatus' as const,
|
|
97
|
-
input: z.object({}),
|
|
98
|
-
output: z.object({
|
|
99
|
-
/** L'espace utilise déjà sa propre clé. */
|
|
100
|
-
enabled: z.boolean(),
|
|
101
|
-
/** Faux pour un espace personnel, qui garde la clé de son propriétaire. */
|
|
102
|
-
applicable: z.boolean(),
|
|
103
|
-
/** Obstacles à lever avant conversion, rédigés pour l'utilisateur. */
|
|
104
|
-
blockers: z.array(z.string())
|
|
105
|
-
})
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Convertit l'espace vers sa propre clé. Exige le propriétaire, session
|
|
110
|
-
* déverrouillée : le contenu existant doit être relu avec sa clé avant d'être
|
|
111
|
-
* réécrit sous celle de l'espace.
|
|
112
|
-
*/
|
|
113
|
-
export const workspaceEnableSharedKey = {
|
|
114
|
-
command: 'workspace.enableSharedKey' as const,
|
|
115
|
-
input: z.object({}),
|
|
116
|
-
output: z.object({ converted: z.number().int().nonnegative() })
|
|
117
|
-
};
|
|
118
|
-
|
|
119
92
|
/** Le contenu modifiable d'un rôle. */
|
|
120
93
|
const roleDraftSchema = z.object({
|
|
121
94
|
name: z.string().min(1).max(WORKSPACE_ROLE_NAME_MAX),
|
|
@@ -187,8 +160,6 @@ export const workspaceCommands = [
|
|
|
187
160
|
workspaceRoleDelete,
|
|
188
161
|
workspaceRoleSetDefault,
|
|
189
162
|
workspaceAssignRole,
|
|
190
|
-
workspaceSharedKeyStatus,
|
|
191
|
-
workspaceEnableSharedKey,
|
|
192
163
|
workspaceRename,
|
|
193
164
|
workspaceLeave,
|
|
194
165
|
workspaceRemoveMember,
|
package/src/index.ts
CHANGED
|
@@ -1449,7 +1449,6 @@ export {
|
|
|
1449
1449
|
workspaceAdd,
|
|
1450
1450
|
workspaceCommands,
|
|
1451
1451
|
workspaceDelete,
|
|
1452
|
-
workspaceEnableSharedKey,
|
|
1453
1452
|
workspaceLeave,
|
|
1454
1453
|
workspaceRemoveMember,
|
|
1455
1454
|
workspaceAddMember,
|
|
@@ -1460,8 +1459,7 @@ export {
|
|
|
1460
1459
|
workspaceRoleList,
|
|
1461
1460
|
workspaceRoleSetDefault,
|
|
1462
1461
|
workspaceRoleUpdate,
|
|
1463
|
-
workspaceSetFavorite
|
|
1464
|
-
workspaceSharedKeyStatus
|
|
1462
|
+
workspaceSetFavorite
|
|
1465
1463
|
} from './features/workspace';
|
|
1466
1464
|
export {
|
|
1467
1465
|
AVATAR_MAX_LENGTH,
|
|
@@ -25,8 +25,8 @@ declare module 'deveye-sdk-client' {
|
|
|
25
25
|
SelectHTMLAttributes
|
|
26
26
|
} from 'react';
|
|
27
27
|
import type { z, ZodType } from 'zod';
|
|
28
|
-
import type { FeatureAccess, FeatureId, WorkspaceCapability } from 'deveye
|
|
29
|
-
import type { FeatureManifest } from 'deveye
|
|
28
|
+
import type { FeatureAccess, FeatureId, WorkspaceCapability } from '@deveye/types';
|
|
29
|
+
import type { FeatureManifest } from '@deveye/types/sdk';
|
|
30
30
|
|
|
31
31
|
// ── UI kit ─────────────────────────────────────────────────────────────
|
|
32
32
|
export const Button: ComponentType<
|
package/src/sdk/index.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* The DevEye feature SDK, shared surface: ids and the manifest contract.
|
|
3
3
|
*
|
|
4
4
|
* Side-specific surfaces live in their own entries so neither bundle drags the
|
|
5
|
-
* other's world in:
|
|
6
|
-
*
|
|
5
|
+
* other's world in: `@deveye/types/sdk/server` (handlers, storage, facade),
|
|
6
|
+
* `@deveye/types/sdk/client` (component contracts), `@deveye/types/sdk/testing`
|
|
7
7
|
* (handler test harness).
|
|
8
8
|
*/
|
|
9
9
|
export * from './ids';
|
package/src/sdk/manifest.ts
CHANGED
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* One WebSocket command contract. Identical in shape to the descriptors native
|
|
21
|
-
* features declare in
|
|
21
|
+
* features declare in `@deveye/types/src/features/*`: the server validates the
|
|
22
22
|
* input before your handler runs and the output after it returns, both ways,
|
|
23
23
|
* so a payload that does not match a schema never crosses the wire.
|
|
24
24
|
*/
|