@iveri/contracts 0.20.0 → 0.21.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 (42) hide show
  1. package/README.md +8 -1
  2. package/dist/cjs/api/realtime/index.d.ts +4 -0
  3. package/dist/cjs/api/realtime/index.d.ts.map +1 -0
  4. package/dist/cjs/api/realtime/index.js +20 -0
  5. package/dist/cjs/api/realtime/index.js.map +1 -0
  6. package/dist/cjs/api/realtime/realtime-event-type.enum.d.ts +14 -0
  7. package/dist/cjs/api/realtime/realtime-event-type.enum.d.ts.map +1 -0
  8. package/dist/cjs/api/realtime/realtime-event-type.enum.js +18 -0
  9. package/dist/cjs/api/realtime/realtime-event-type.enum.js.map +1 -0
  10. package/dist/cjs/api/realtime/realtime-resource-type.enum.d.ts +13 -0
  11. package/dist/cjs/api/realtime/realtime-resource-type.enum.d.ts.map +1 -0
  12. package/dist/cjs/api/realtime/realtime-resource-type.enum.js +17 -0
  13. package/dist/cjs/api/realtime/realtime-resource-type.enum.js.map +1 -0
  14. package/dist/cjs/api/realtime/realtime.type.d.ts +106 -0
  15. package/dist/cjs/api/realtime/realtime.type.d.ts.map +1 -0
  16. package/dist/cjs/api/realtime/realtime.type.js +21 -0
  17. package/dist/cjs/api/realtime/realtime.type.js.map +1 -0
  18. package/dist/cjs/enum/user-permission.enum.d.ts +13 -1
  19. package/dist/cjs/enum/user-permission.enum.d.ts.map +1 -1
  20. package/dist/cjs/enum/user-permission.enum.js +13 -0
  21. package/dist/cjs/enum/user-permission.enum.js.map +1 -1
  22. package/dist/esm/api/realtime/index.d.ts +4 -0
  23. package/dist/esm/api/realtime/index.d.ts.map +1 -0
  24. package/dist/esm/api/realtime/index.js +4 -0
  25. package/dist/esm/api/realtime/index.js.map +1 -0
  26. package/dist/esm/api/realtime/realtime-event-type.enum.d.ts +14 -0
  27. package/dist/esm/api/realtime/realtime-event-type.enum.d.ts.map +1 -0
  28. package/dist/esm/api/realtime/realtime-event-type.enum.js +15 -0
  29. package/dist/esm/api/realtime/realtime-event-type.enum.js.map +1 -0
  30. package/dist/esm/api/realtime/realtime-resource-type.enum.d.ts +13 -0
  31. package/dist/esm/api/realtime/realtime-resource-type.enum.d.ts.map +1 -0
  32. package/dist/esm/api/realtime/realtime-resource-type.enum.js +14 -0
  33. package/dist/esm/api/realtime/realtime-resource-type.enum.js.map +1 -0
  34. package/dist/esm/api/realtime/realtime.type.d.ts +106 -0
  35. package/dist/esm/api/realtime/realtime.type.d.ts.map +1 -0
  36. package/dist/esm/api/realtime/realtime.type.js +18 -0
  37. package/dist/esm/api/realtime/realtime.type.js.map +1 -0
  38. package/dist/esm/enum/user-permission.enum.d.ts +13 -1
  39. package/dist/esm/enum/user-permission.enum.d.ts.map +1 -1
  40. package/dist/esm/enum/user-permission.enum.js +13 -0
  41. package/dist/esm/enum/user-permission.enum.js.map +1 -1
  42. package/package.json +9 -1
package/README.md CHANGED
@@ -3,6 +3,12 @@
3
3
  The wire contract every Iveri service and frontend compiles against: shared types and plain
4
4
  enums, and nothing else.
5
5
 
6
+ Release `0.21.0` adds the shared realtime contract under `@iveri/contracts/realtime`: closed
7
+ resource and event vocabularies, identifier-only publish messages, and short-lived subscription
8
+ grants bound to one tenant, person and resource. It also separates permission to issue a grant
9
+ from permission to publish an event, because authorizing a read and announcing a write are
10
+ different powers.
11
+
6
12
  Release `0.20.0` adds the notification contract under `@iveri/contracts/notification` —
7
13
  `NotificationChannel`, `NotificationDeliveryStatus`, `NotificationTemplate`, `Notification` with
8
14
  its per-channel `NotificationDelivery` list, `InAppNotification` and the submit body — plus six
@@ -49,9 +55,10 @@ import type { AuthSession, Principal } from '@iveri/contracts/identity';
49
55
  import type { Conversation, Message } from '@iveri/contracts/unibox';
50
56
  import type { Namespace, TranslationBundle } from '@iveri/contracts/localization';
51
57
  import type { Notification, NotificationChannel } from '@iveri/contracts/notification';
58
+ import type { RealtimeSubscription, RealtimeResourceUpdatedMessage } from '@iveri/contracts/realtime';
52
59
  ```
53
60
 
54
- Seven entry points, and no others — never `@iveri/contracts/dist/...`.
61
+ Eight entry points, and no others — never `@iveri/contracts/dist/...`.
55
62
 
56
63
  The per-service surfaces are **not** re-exported from the root, deliberately. Conduit owns a
57
64
  `Provider`, a `Connection` and an `Endpoint`; Unibox owns a `Channel` and a `Contact` and would
@@ -0,0 +1,4 @@
1
+ export * from './realtime-event-type.enum.js';
2
+ export * from './realtime-resource-type.enum.js';
3
+ export * from './realtime.type.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./realtime-event-type.enum.js"), exports);
18
+ __exportStar(require("./realtime-resource-type.enum.js"), exports);
19
+ __exportStar(require("./realtime.type.js"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/realtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,mEAAiD;AACjD,qDAAmC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Identifier-only change notifications delivered over the shared gateway.
3
+ *
4
+ * These are prompts to refetch from an owning API, never domain state. Keeping the set closed
5
+ * prevents a typo from becoming a silently ignored update or forcing clients to refetch every
6
+ * resource for an event they do not understand.
7
+ */
8
+ export declare enum RealtimeEventType {
9
+ TAXI_RIDE_UPDATED = "taxi.ride.updated",
10
+ DELIVERY_JOB_UPDATED = "delivery.job.updated",
11
+ MOBILITY_WORKER_LOCATION_UPDATED = "mobility.worker-location.updated",
12
+ MOBILITY_ASSIGNMENT_UPDATED = "mobility.assignment.updated"
13
+ }
14
+ //# sourceMappingURL=realtime-event-type.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-event-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-event-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,iBAAiB;IACzB,iBAAiB,sBAAsB;IACvC,oBAAoB,yBAAyB;IAC7C,gCAAgC,qCAAqC;IACrE,2BAA2B,gCAAgC;CAC9D"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RealtimeEventType = void 0;
4
+ /**
5
+ * Identifier-only change notifications delivered over the shared gateway.
6
+ *
7
+ * These are prompts to refetch from an owning API, never domain state. Keeping the set closed
8
+ * prevents a typo from becoming a silently ignored update or forcing clients to refetch every
9
+ * resource for an event they do not understand.
10
+ */
11
+ var RealtimeEventType;
12
+ (function (RealtimeEventType) {
13
+ RealtimeEventType["TAXI_RIDE_UPDATED"] = "taxi.ride.updated";
14
+ RealtimeEventType["DELIVERY_JOB_UPDATED"] = "delivery.job.updated";
15
+ RealtimeEventType["MOBILITY_WORKER_LOCATION_UPDATED"] = "mobility.worker-location.updated";
16
+ RealtimeEventType["MOBILITY_ASSIGNMENT_UPDATED"] = "mobility.assignment.updated";
17
+ })(RealtimeEventType || (exports.RealtimeEventType = RealtimeEventType = {}));
18
+ //# sourceMappingURL=realtime-event-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-event-type.enum.js","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-event-type.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,4DAAuC,CAAA;IACvC,kEAA6C,CAAA;IAC7C,0FAAqE,CAAA;IACrE,gFAA2D,CAAA;AAC/D,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resource classes the shared realtime gateway can address.
3
+ *
4
+ * Closed by design. A publisher cannot invent a room namespace, and the gateway can map every
5
+ * resource type to the one owning service allowed to issue subscription grants for it.
6
+ */
7
+ export declare enum RealtimeResourceType {
8
+ TAXI_RIDE = "taxi.ride",
9
+ DELIVERY_JOB = "delivery.job",
10
+ MOBILITY_WORKER = "mobility.worker",
11
+ MOBILITY_DISPATCH = "mobility.dispatch"
12
+ }
13
+ //# sourceMappingURL=realtime-resource-type.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-resource-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-resource-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,oBAAoB;IAC5B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;CAC1C"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RealtimeResourceType = void 0;
4
+ /**
5
+ * Resource classes the shared realtime gateway can address.
6
+ *
7
+ * Closed by design. A publisher cannot invent a room namespace, and the gateway can map every
8
+ * resource type to the one owning service allowed to issue subscription grants for it.
9
+ */
10
+ var RealtimeResourceType;
11
+ (function (RealtimeResourceType) {
12
+ RealtimeResourceType["TAXI_RIDE"] = "taxi.ride";
13
+ RealtimeResourceType["DELIVERY_JOB"] = "delivery.job";
14
+ RealtimeResourceType["MOBILITY_WORKER"] = "mobility.worker";
15
+ RealtimeResourceType["MOBILITY_DISPATCH"] = "mobility.dispatch";
16
+ })(RealtimeResourceType || (exports.RealtimeResourceType = RealtimeResourceType = {}));
17
+ //# sourceMappingURL=realtime-resource-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-resource-type.enum.js","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-resource-type.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,+CAAuB,CAAA;IACvB,qDAA6B,CAAA;IAC7B,2DAAmC,CAAA;IACnC,+DAAuC,CAAA;AAC3C,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B"}
@@ -0,0 +1,106 @@
1
+ import type { IsoDateTime } from '../../type/iso-date-time.type.js';
2
+ import type { UUID } from '../../type/uuid.type.js';
3
+ import type { RealtimeEventType } from './realtime-event-type.enum.js';
4
+ import type { RealtimeResourceType } from './realtime-resource-type.enum.js';
5
+ export declare const REALTIME_CLIENT_EVENT: {
6
+ readonly SUBSCRIBE: "realtime.subscribe";
7
+ readonly UNSUBSCRIBE: "realtime.unsubscribe";
8
+ };
9
+ export declare const REALTIME_SERVER_EVENT: {
10
+ readonly READY: "realtime.ready";
11
+ readonly SUBSCRIBED: "realtime.subscribed";
12
+ readonly RESOURCE_UPDATED: "realtime.resource-updated";
13
+ readonly ERROR: "realtime.error";
14
+ };
15
+ export declare const REALTIME_PROTOCOL_VERSION = 1;
16
+ export declare const MAX_REALTIME_SUBSCRIPTIONS_PER_SOCKET = 100;
17
+ export declare const MAX_REALTIME_EVENT_BYTES: number;
18
+ export declare const DEFAULT_REALTIME_GRANT_TTL_SECONDS = 120;
19
+ export declare const MAX_REALTIME_GRANT_TTL_SECONDS = 300;
20
+ export declare const REALTIME_GRANT_AUDIENCE = "iveri-realtime-subscription";
21
+ export declare const REALTIME_GRANT_ISSUER = "iveri-realtime";
22
+ /**
23
+ * Requested by an owning API only after it has authorized a person to read the resource.
24
+ *
25
+ * `tenantId` is absent: it comes from the API's service token. The grant is bound to
26
+ * `subjectId`, so copying one to another authenticated socket does not authorize that socket.
27
+ */
28
+ export interface IssueRealtimeSubscriptionGrantBody {
29
+ subjectId: UUID;
30
+ resourceType: RealtimeResourceType;
31
+ resourceId: UUID;
32
+ ttlSeconds?: number;
33
+ }
34
+ export interface RealtimeSubscriptionGrantResponse {
35
+ grant: string;
36
+ expiresAt: IsoDateTime;
37
+ }
38
+ /** Claims inside a subscription grant signed and verified only by `iveri-realtime`. */
39
+ export interface RealtimeSubscriptionGrantClaims {
40
+ jti: UUID;
41
+ sub: UUID;
42
+ tid: UUID;
43
+ azp: UUID;
44
+ resourceType: RealtimeResourceType;
45
+ resourceId: UUID;
46
+ purpose: 'subscription';
47
+ iat: number;
48
+ exp: number;
49
+ iss: typeof REALTIME_GRANT_ISSUER;
50
+ aud: typeof REALTIME_GRANT_AUDIENCE;
51
+ }
52
+ /**
53
+ * A product service's best-effort change notification.
54
+ *
55
+ * The tenant comes from the authenticated service principal and is intentionally absent here.
56
+ * `idempotencyKey` makes an HTTP retry harmless; no domain data or location coordinates travel
57
+ * over this channel.
58
+ */
59
+ export interface PublishRealtimeEventBody {
60
+ idempotencyKey: UUID;
61
+ resourceType: RealtimeResourceType;
62
+ resourceId: UUID;
63
+ event: RealtimeEventType;
64
+ version: number;
65
+ occurredAt: IsoDateTime;
66
+ }
67
+ export interface PublishRealtimeEventResponse {
68
+ accepted: boolean;
69
+ duplicate: boolean;
70
+ }
71
+ /** A socket subscribes with grants, never with client-chosen room names or bare resource ids. */
72
+ export interface RealtimeSubscribeRequest {
73
+ grants: string[];
74
+ }
75
+ export interface RealtimeUnsubscribeRequest {
76
+ subscriptions: RealtimeSubscription[];
77
+ }
78
+ export interface RealtimeSubscription {
79
+ resourceType: RealtimeResourceType;
80
+ resourceId: UUID;
81
+ }
82
+ export interface RealtimeReadyMessage {
83
+ protocolVersion: typeof REALTIME_PROTOCOL_VERSION;
84
+ }
85
+ export interface RealtimeSubscribedMessage {
86
+ subscriptions: RealtimeSubscription[];
87
+ }
88
+ export interface RealtimeResourceUpdatedMessage {
89
+ resourceType: RealtimeResourceType;
90
+ resourceId: UUID;
91
+ event: RealtimeEventType;
92
+ version: number;
93
+ occurredAt: IsoDateTime;
94
+ }
95
+ export interface RealtimeErrorMessage {
96
+ code: 'UNAUTHENTICATED' | 'FORBIDDEN' | 'INVALID_GRANT' | 'INVALID_SUBSCRIPTION' | 'SUBSCRIPTION_LIMIT_REACHED';
97
+ message: string;
98
+ }
99
+ export type RealtimeSubscriptionAck = {
100
+ ok: true;
101
+ message: RealtimeSubscribedMessage;
102
+ } | {
103
+ ok: false;
104
+ message: RealtimeErrorMessage;
105
+ };
106
+ //# sourceMappingURL=realtime.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.type.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/realtime.type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REALTIME_GRANT_ISSUER = exports.REALTIME_GRANT_AUDIENCE = exports.MAX_REALTIME_GRANT_TTL_SECONDS = exports.DEFAULT_REALTIME_GRANT_TTL_SECONDS = exports.MAX_REALTIME_EVENT_BYTES = exports.MAX_REALTIME_SUBSCRIPTIONS_PER_SOCKET = exports.REALTIME_PROTOCOL_VERSION = exports.REALTIME_SERVER_EVENT = exports.REALTIME_CLIENT_EVENT = void 0;
4
+ exports.REALTIME_CLIENT_EVENT = {
5
+ SUBSCRIBE: 'realtime.subscribe',
6
+ UNSUBSCRIBE: 'realtime.unsubscribe',
7
+ };
8
+ exports.REALTIME_SERVER_EVENT = {
9
+ READY: 'realtime.ready',
10
+ SUBSCRIBED: 'realtime.subscribed',
11
+ RESOURCE_UPDATED: 'realtime.resource-updated',
12
+ ERROR: 'realtime.error',
13
+ };
14
+ exports.REALTIME_PROTOCOL_VERSION = 1;
15
+ exports.MAX_REALTIME_SUBSCRIPTIONS_PER_SOCKET = 100;
16
+ exports.MAX_REALTIME_EVENT_BYTES = 4 * 1024;
17
+ exports.DEFAULT_REALTIME_GRANT_TTL_SECONDS = 120;
18
+ exports.MAX_REALTIME_GRANT_TTL_SECONDS = 300;
19
+ exports.REALTIME_GRANT_AUDIENCE = 'iveri-realtime-subscription';
20
+ exports.REALTIME_GRANT_ISSUER = 'iveri-realtime';
21
+ //# sourceMappingURL=realtime.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.type.js","sourceRoot":"","sources":["../../../../src/api/realtime/realtime.type.ts"],"names":[],"mappings":";;;AAMa,QAAA,qBAAqB,GAAG;IACjC,SAAS,EAAE,oBAAoB;IAC/B,WAAW,EAAE,sBAAsB;CAC7B,CAAC;AAEE,QAAA,qBAAqB,GAAG;IACjC,KAAK,EAAE,gBAAgB;IACvB,UAAU,EAAE,qBAAqB;IACjC,gBAAgB,EAAE,2BAA2B;IAC7C,KAAK,EAAE,gBAAgB;CACjB,CAAC;AAEE,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,qCAAqC,GAAG,GAAG,CAAC;AAC5C,QAAA,wBAAwB,GAAG,CAAC,GAAG,IAAI,CAAC;AACpC,QAAA,kCAAkC,GAAG,GAAG,CAAC;AACzC,QAAA,8BAA8B,GAAG,GAAG,CAAC;AACrC,QAAA,uBAAuB,GAAG,6BAA6B,CAAC;AACxD,QAAA,qBAAqB,GAAG,gBAAgB,CAAC"}
@@ -324,7 +324,19 @@ export declare enum UserPermission {
324
324
  * returning a row — and because redriving a backlog is a way to mail somebody the same thing
325
325
  * fifty times an hour after an outage.
326
326
  */
327
- NOTIFICATION_DELIVERY_OPERATE = "notification:delivery:operate"
327
+ NOTIFICATION_DELIVERY_OPERATE = "notification:delivery:operate",
328
+ /**
329
+ * Ask the shared gateway to issue a short-lived subscription grant after the owning API has
330
+ * authorized a person to read one resource. Service-only: a human may consume a grant but
331
+ * must never mint one.
332
+ */
333
+ REALTIME_SUBSCRIPTION_GRANT_ISSUE = "realtime:subscription-grant:issue",
334
+ /**
335
+ * Publish an identifier-only resource change. Separate from grant issue because announcing a
336
+ * write and authorizing a read are distinct powers and a service may legitimately need one
337
+ * without the other.
338
+ */
339
+ REALTIME_EVENT_PUBLISH = "realtime:event:publish"
328
340
  }
329
341
  /**
330
342
  * Every member, for seeding the owner role and validating custom-role input.
@@ -1 +1 @@
1
- {"version":3,"file":"user-permission.enum.d.ts","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-permission.enum.d.ts","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":"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"}
@@ -373,6 +373,19 @@ var UserPermission;
373
373
  * fifty times an hour after an outage.
374
374
  */
375
375
  UserPermission["NOTIFICATION_DELIVERY_OPERATE"] = "notification:delivery:operate";
376
+ // ══ iveri-realtime ══════════════════════════════════════════════════════
377
+ /**
378
+ * Ask the shared gateway to issue a short-lived subscription grant after the owning API has
379
+ * authorized a person to read one resource. Service-only: a human may consume a grant but
380
+ * must never mint one.
381
+ */
382
+ UserPermission["REALTIME_SUBSCRIPTION_GRANT_ISSUE"] = "realtime:subscription-grant:issue";
383
+ /**
384
+ * Publish an identifier-only resource change. Separate from grant issue because announcing a
385
+ * write and authorizing a read are distinct powers and a service may legitimately need one
386
+ * without the other.
387
+ */
388
+ UserPermission["REALTIME_EVENT_PUBLISH"] = "realtime:event:publish";
376
389
  })(UserPermission || (exports.UserPermission = UserPermission = {}));
377
390
  /**
378
391
  * Every member, for seeding the owner role and validating custom-role input.
@@ -1 +1 @@
1
- {"version":3,"file":"user-permission.enum.js","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-permission.enum.js","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,IAAY,cAkaX;AAlaD,WAAY,cAAc;IACtB,4EAA4E;IAE5E,2EAA2E;IAC3E,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;IAC/B,sFAAsF;IACtF,iDAA+B,CAAA;IAE/B,2EAA2E;IAC3E,yCAAuB,CAAA;IACvB,6CAA2B,CAAA;IAC3B,6CAA2B,CAAA;IAC3B,6CAA2B,CAAA;IAE3B,2EAA2E;IAC3E,qDAAmC,CAAA;IACnC,6EAA6E;IAC7E,yDAAuC,CAAA;IACvC;;;OAGG;IACH,mEAAiD,CAAA;IAEjD,2EAA2E;IAC3E,yCAAuB,CAAA;IACvB,6CAA2B,CAAA;IAC3B,6CAA2B,CAAA;IAC3B,6CAA2B,CAAA;IAE3B,2EAA2E;IAC3E,+CAA6B,CAAA;IAC7B,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;IAEjC,4EAA4E;IAE5E,2EAA2E;IAC3E,qEAAqE;IACrE,iEAA+C,CAAA;IAC/C,qEAAmD,CAAA;IACnD,qEAAmD,CAAA;IACnD,qEAAmD,CAAA;IAEnD,2EAA2E;IAC3E;;;;OAIG;IACH,+DAA6C,CAAA;IAC7C,mEAAiD,CAAA;IAEjD,2EAA2E;IAC3E;;;;OAIG;IACH,mEAAiD,CAAA;IAEjD,2EAA2E;IAC3E,iEAA+C,CAAA;IAC/C,yFAAyF;IACzF,qEAAmD,CAAA;IAEnD,2EAA2E;IAC3E,mEAAmE;IACnE,uEAAqD,CAAA;IACrD;;;;;;;OAOG;IACH,2EAAyD,CAAA;IAEzD,2EAA2E;IAC3E,2DAAyC,CAAA;IACzC,2DAA2D;IAC3D,+DAA6C,CAAA;IAE7C,2EAA2E;IAC3E;;;;;OAKG;IACH,iEAA+C,CAAA;IAC/C;;;;;;OAMG;IACH,uEAAqD,CAAA;IAErD,2EAA2E;IAC3E,wFAAwF;IACxF,mEAAiD,CAAA;IACjD;;;;;;;;OAQG;IACH,uEAAqD,CAAA;IAErD,2EAA2E;IAC3E,sEAAsE;IACtE,qEAAmD,CAAA;IACnD;;;;;OAKG;IACH,yEAAuD,CAAA;IAEvD,2EAA2E;IAC3E;;;;;OAKG;IACH,iEAA+C,CAAA;IAC/C;;;;;;;OAOG;IACH,iEAA+C,CAAA;IAC/C,qEAAqE;IACrE,uEAAqD,CAAA;IAErD,4EAA4E;IAE5E,2EAA2E;IAC3E,4EAA4E;IAC5E,iEAA+C,CAAA;IAC/C,yEAAyE;IACzE,qEAAmD,CAAA;IAEnD,2EAA2E;IAE3E,iEAAiE;IACjE,mEAAiD,CAAA;IACjD,mDAAmD;IACnD,mEAAiD,CAAA;IACjD,qEAAqE;IACrE,2DAAyC,CAAA;IACzC,uEAAuE;IACvE,iEAA+C,CAAA;IAC/C,yFAAyF;IACzF,qEAAmD,CAAA;IAEnD,4EAA4E;IAE5E,2EAA2E;IAC3E,kFAAkF;IAClF,6DAA2C,CAAA;IAC3C;;;;;;OAMG;IACH,iEAA+C,CAAA;IAE/C,2EAA2E;IAC3E,2FAA2F;IAC3F,6DAA2C,CAAA;IAC3C,gDAAgD;IAChD,iEAA+C,CAAA;IAE/C,2EAA2E;IAC3E;;;;;;;OAOG;IACH,uEAAqD,CAAA;IACrD,yFAAyF;IACzF,2EAAyD,CAAA;IACzD;;;;;;OAMG;IACH,2EAAyD,CAAA;IAEzD,2EAA2E;IAC3E;;;;;;OAMG;IACH,6DAA2C,CAAA;IAE3C,2EAA2E;IAC3E,uDAAqC,CAAA;IACrC,8FAA8F;IAC9F,2DAAyC,CAAA;IAEzC,2EAA2E;IAC3E,uEAAqD,CAAA;IACrD,oEAAoE;IACpE,2EAAyD,CAAA;IAEzD,2EAA2E;IAC3E;;;;;;;;;;;OAWG;IACH,qEAAmD,CAAA;IAEnD,2EAA2E;IAC3E,gGAAgG;IAChG,iDAA+B,CAAA;IAE/B,2EAA2E;IAC3E,6EAA6E;IAC7E,qDAAmC,CAAA;IACnC,wDAAwD;IACxD,yDAAuC,CAAA;IAEvC,2EAA2E;IAE3E,0EAA0E;IAC1E,8CAA8C;IAC9C,yDAAuC,CAAA;IACvC,sDAAsD;IACtD,6DAA2C,CAAA;IAE3C,yEAAyE;IACzE,6DAA6D;IAC7D,yEAAuD,CAAA;IACvD,qDAAqD;IACrD,6EAA2D,CAAA;IAE3D,0EAA0E;IAC1E,yCAAyC;IACzC,2DAAyC,CAAA;IACzC,2DAA2D;IAC3D,+DAA6C,CAAA;IAE7C,0EAA0E;IAC1E,+DAA+D;IAC/D,+DAA6C,CAAA;IAC7C,+EAA+E;IAC/E,mEAAiD,CAAA;IAEjD,0EAA0E;IAC1E,2DAA2D;IAC3D,+DAA6C,CAAA;IAC7C,gDAAgD;IAChD,mEAAiD,CAAA;IAEjD,2EAA2E;IAC3E,EAAE;IACF,sFAAsF;IACtF,wFAAwF;IACxF,6FAA6F;IAC7F,0FAA0F;IAC1F,mEAAmE;IAEnE;;;;;;;OAOG;IACH,yDAAuC,CAAA;IAEvC;;;;;;;OAOG;IACH,6EAA2D,CAAA;IAE3D;;;;;;;OAOG;IACH,mEAAiD,CAAA;IAEjD;;;;;;OAMG;IACH,+DAA6C,CAAA;IAE7C;;;;;;OAMG;IACH,6DAA2C,CAAA;IAE3C,2EAA2E;IAE3E;;;;;;;;;;;;;;;OAeG;IACH,yDAAuC,CAAA;IAEvC;;;;;;;;OAQG;IACH,yDAAuC,CAAA;IAEvC,iFAAiF;IACjF,2EAAyD,CAAA;IAEzD;;;;;;;OAOG;IACH,+EAA6D,CAAA;IAE7D;;;;;OAKG;IACH,2EAAyD,CAAA;IAEzD;;;;;;OAMG;IACH,iFAA+D,CAAA;IAE/D,2EAA2E;IAE3E;;;;OAIG;IACH,yFAAuE,CAAA;IAEvE;;;;OAIG;IACH,mEAAiD,CAAA;AACrD,CAAC,EAlaW,cAAc,8BAAd,cAAc,QAkazB;AAED;;;;;GAKG;AACU,QAAA,oBAAoB,GAA8B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './realtime-event-type.enum.js';
2
+ export * from './realtime-resource-type.enum.js';
3
+ export * from './realtime.type.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './realtime-event-type.enum.js';
2
+ export * from './realtime-resource-type.enum.js';
3
+ export * from './realtime.type.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/realtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Identifier-only change notifications delivered over the shared gateway.
3
+ *
4
+ * These are prompts to refetch from an owning API, never domain state. Keeping the set closed
5
+ * prevents a typo from becoming a silently ignored update or forcing clients to refetch every
6
+ * resource for an event they do not understand.
7
+ */
8
+ export declare enum RealtimeEventType {
9
+ TAXI_RIDE_UPDATED = "taxi.ride.updated",
10
+ DELIVERY_JOB_UPDATED = "delivery.job.updated",
11
+ MOBILITY_WORKER_LOCATION_UPDATED = "mobility.worker-location.updated",
12
+ MOBILITY_ASSIGNMENT_UPDATED = "mobility.assignment.updated"
13
+ }
14
+ //# sourceMappingURL=realtime-event-type.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-event-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-event-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oBAAY,iBAAiB;IACzB,iBAAiB,sBAAsB;IACvC,oBAAoB,yBAAyB;IAC7C,gCAAgC,qCAAqC;IACrE,2BAA2B,gCAAgC;CAC9D"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Identifier-only change notifications delivered over the shared gateway.
3
+ *
4
+ * These are prompts to refetch from an owning API, never domain state. Keeping the set closed
5
+ * prevents a typo from becoming a silently ignored update or forcing clients to refetch every
6
+ * resource for an event they do not understand.
7
+ */
8
+ export var RealtimeEventType;
9
+ (function (RealtimeEventType) {
10
+ RealtimeEventType["TAXI_RIDE_UPDATED"] = "taxi.ride.updated";
11
+ RealtimeEventType["DELIVERY_JOB_UPDATED"] = "delivery.job.updated";
12
+ RealtimeEventType["MOBILITY_WORKER_LOCATION_UPDATED"] = "mobility.worker-location.updated";
13
+ RealtimeEventType["MOBILITY_ASSIGNMENT_UPDATED"] = "mobility.assignment.updated";
14
+ })(RealtimeEventType || (RealtimeEventType = {}));
15
+ //# sourceMappingURL=realtime-event-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-event-type.enum.js","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-event-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,4DAAuC,CAAA;IACvC,kEAA6C,CAAA;IAC7C,0FAAqE,CAAA;IACrE,gFAA2D,CAAA;AAC/D,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resource classes the shared realtime gateway can address.
3
+ *
4
+ * Closed by design. A publisher cannot invent a room namespace, and the gateway can map every
5
+ * resource type to the one owning service allowed to issue subscription grants for it.
6
+ */
7
+ export declare enum RealtimeResourceType {
8
+ TAXI_RIDE = "taxi.ride",
9
+ DELIVERY_JOB = "delivery.job",
10
+ MOBILITY_WORKER = "mobility.worker",
11
+ MOBILITY_DISPATCH = "mobility.dispatch"
12
+ }
13
+ //# sourceMappingURL=realtime-resource-type.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-resource-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-resource-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,oBAAoB;IAC5B,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;CAC1C"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Resource classes the shared realtime gateway can address.
3
+ *
4
+ * Closed by design. A publisher cannot invent a room namespace, and the gateway can map every
5
+ * resource type to the one owning service allowed to issue subscription grants for it.
6
+ */
7
+ export var RealtimeResourceType;
8
+ (function (RealtimeResourceType) {
9
+ RealtimeResourceType["TAXI_RIDE"] = "taxi.ride";
10
+ RealtimeResourceType["DELIVERY_JOB"] = "delivery.job";
11
+ RealtimeResourceType["MOBILITY_WORKER"] = "mobility.worker";
12
+ RealtimeResourceType["MOBILITY_DISPATCH"] = "mobility.dispatch";
13
+ })(RealtimeResourceType || (RealtimeResourceType = {}));
14
+ //# sourceMappingURL=realtime-resource-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-resource-type.enum.js","sourceRoot":"","sources":["../../../../src/api/realtime/realtime-resource-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,+CAAuB,CAAA;IACvB,qDAA6B,CAAA;IAC7B,2DAAmC,CAAA;IACnC,+DAAuC,CAAA;AAC3C,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B"}
@@ -0,0 +1,106 @@
1
+ import type { IsoDateTime } from '../../type/iso-date-time.type.js';
2
+ import type { UUID } from '../../type/uuid.type.js';
3
+ import type { RealtimeEventType } from './realtime-event-type.enum.js';
4
+ import type { RealtimeResourceType } from './realtime-resource-type.enum.js';
5
+ export declare const REALTIME_CLIENT_EVENT: {
6
+ readonly SUBSCRIBE: "realtime.subscribe";
7
+ readonly UNSUBSCRIBE: "realtime.unsubscribe";
8
+ };
9
+ export declare const REALTIME_SERVER_EVENT: {
10
+ readonly READY: "realtime.ready";
11
+ readonly SUBSCRIBED: "realtime.subscribed";
12
+ readonly RESOURCE_UPDATED: "realtime.resource-updated";
13
+ readonly ERROR: "realtime.error";
14
+ };
15
+ export declare const REALTIME_PROTOCOL_VERSION = 1;
16
+ export declare const MAX_REALTIME_SUBSCRIPTIONS_PER_SOCKET = 100;
17
+ export declare const MAX_REALTIME_EVENT_BYTES: number;
18
+ export declare const DEFAULT_REALTIME_GRANT_TTL_SECONDS = 120;
19
+ export declare const MAX_REALTIME_GRANT_TTL_SECONDS = 300;
20
+ export declare const REALTIME_GRANT_AUDIENCE = "iveri-realtime-subscription";
21
+ export declare const REALTIME_GRANT_ISSUER = "iveri-realtime";
22
+ /**
23
+ * Requested by an owning API only after it has authorized a person to read the resource.
24
+ *
25
+ * `tenantId` is absent: it comes from the API's service token. The grant is bound to
26
+ * `subjectId`, so copying one to another authenticated socket does not authorize that socket.
27
+ */
28
+ export interface IssueRealtimeSubscriptionGrantBody {
29
+ subjectId: UUID;
30
+ resourceType: RealtimeResourceType;
31
+ resourceId: UUID;
32
+ ttlSeconds?: number;
33
+ }
34
+ export interface RealtimeSubscriptionGrantResponse {
35
+ grant: string;
36
+ expiresAt: IsoDateTime;
37
+ }
38
+ /** Claims inside a subscription grant signed and verified only by `iveri-realtime`. */
39
+ export interface RealtimeSubscriptionGrantClaims {
40
+ jti: UUID;
41
+ sub: UUID;
42
+ tid: UUID;
43
+ azp: UUID;
44
+ resourceType: RealtimeResourceType;
45
+ resourceId: UUID;
46
+ purpose: 'subscription';
47
+ iat: number;
48
+ exp: number;
49
+ iss: typeof REALTIME_GRANT_ISSUER;
50
+ aud: typeof REALTIME_GRANT_AUDIENCE;
51
+ }
52
+ /**
53
+ * A product service's best-effort change notification.
54
+ *
55
+ * The tenant comes from the authenticated service principal and is intentionally absent here.
56
+ * `idempotencyKey` makes an HTTP retry harmless; no domain data or location coordinates travel
57
+ * over this channel.
58
+ */
59
+ export interface PublishRealtimeEventBody {
60
+ idempotencyKey: UUID;
61
+ resourceType: RealtimeResourceType;
62
+ resourceId: UUID;
63
+ event: RealtimeEventType;
64
+ version: number;
65
+ occurredAt: IsoDateTime;
66
+ }
67
+ export interface PublishRealtimeEventResponse {
68
+ accepted: boolean;
69
+ duplicate: boolean;
70
+ }
71
+ /** A socket subscribes with grants, never with client-chosen room names or bare resource ids. */
72
+ export interface RealtimeSubscribeRequest {
73
+ grants: string[];
74
+ }
75
+ export interface RealtimeUnsubscribeRequest {
76
+ subscriptions: RealtimeSubscription[];
77
+ }
78
+ export interface RealtimeSubscription {
79
+ resourceType: RealtimeResourceType;
80
+ resourceId: UUID;
81
+ }
82
+ export interface RealtimeReadyMessage {
83
+ protocolVersion: typeof REALTIME_PROTOCOL_VERSION;
84
+ }
85
+ export interface RealtimeSubscribedMessage {
86
+ subscriptions: RealtimeSubscription[];
87
+ }
88
+ export interface RealtimeResourceUpdatedMessage {
89
+ resourceType: RealtimeResourceType;
90
+ resourceId: UUID;
91
+ event: RealtimeEventType;
92
+ version: number;
93
+ occurredAt: IsoDateTime;
94
+ }
95
+ export interface RealtimeErrorMessage {
96
+ code: 'UNAUTHENTICATED' | 'FORBIDDEN' | 'INVALID_GRANT' | 'INVALID_SUBSCRIPTION' | 'SUBSCRIPTION_LIMIT_REACHED';
97
+ message: string;
98
+ }
99
+ export type RealtimeSubscriptionAck = {
100
+ ok: true;
101
+ message: RealtimeSubscribedMessage;
102
+ } | {
103
+ ok: false;
104
+ message: RealtimeErrorMessage;
105
+ };
106
+ //# sourceMappingURL=realtime.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.type.d.ts","sourceRoot":"","sources":["../../../../src/api/realtime/realtime.type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export const REALTIME_CLIENT_EVENT = {
2
+ SUBSCRIBE: 'realtime.subscribe',
3
+ UNSUBSCRIBE: 'realtime.unsubscribe',
4
+ };
5
+ export const REALTIME_SERVER_EVENT = {
6
+ READY: 'realtime.ready',
7
+ SUBSCRIBED: 'realtime.subscribed',
8
+ RESOURCE_UPDATED: 'realtime.resource-updated',
9
+ ERROR: 'realtime.error',
10
+ };
11
+ export const REALTIME_PROTOCOL_VERSION = 1;
12
+ export const MAX_REALTIME_SUBSCRIPTIONS_PER_SOCKET = 100;
13
+ export const MAX_REALTIME_EVENT_BYTES = 4 * 1024;
14
+ export const DEFAULT_REALTIME_GRANT_TTL_SECONDS = 120;
15
+ export const MAX_REALTIME_GRANT_TTL_SECONDS = 300;
16
+ export const REALTIME_GRANT_AUDIENCE = 'iveri-realtime-subscription';
17
+ export const REALTIME_GRANT_ISSUER = 'iveri-realtime';
18
+ //# sourceMappingURL=realtime.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime.type.js","sourceRoot":"","sources":["../../../../src/api/realtime/realtime.type.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,SAAS,EAAE,oBAAoB;IAC/B,WAAW,EAAE,sBAAsB;CAC7B,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,KAAK,EAAE,gBAAgB;IACvB,UAAU,EAAE,qBAAqB;IACjC,gBAAgB,EAAE,2BAA2B;IAC7C,KAAK,EAAE,gBAAgB;CACjB,CAAC;AAEX,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,CAAC;AACzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AACtD,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC"}
@@ -324,7 +324,19 @@ export declare enum UserPermission {
324
324
  * returning a row — and because redriving a backlog is a way to mail somebody the same thing
325
325
  * fifty times an hour after an outage.
326
326
  */
327
- NOTIFICATION_DELIVERY_OPERATE = "notification:delivery:operate"
327
+ NOTIFICATION_DELIVERY_OPERATE = "notification:delivery:operate",
328
+ /**
329
+ * Ask the shared gateway to issue a short-lived subscription grant after the owning API has
330
+ * authorized a person to read one resource. Service-only: a human may consume a grant but
331
+ * must never mint one.
332
+ */
333
+ REALTIME_SUBSCRIPTION_GRANT_ISSUE = "realtime:subscription-grant:issue",
334
+ /**
335
+ * Publish an identifier-only resource change. Separate from grant issue because announcing a
336
+ * write and authorizing a read are distinct powers and a service may legitimately need one
337
+ * without the other.
338
+ */
339
+ REALTIME_EVENT_PUBLISH = "realtime:event:publish"
328
340
  }
329
341
  /**
330
342
  * Every member, for seeding the owner role and validating custom-role input.
@@ -1 +1 @@
1
- {"version":3,"file":"user-permission.enum.d.ts","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-permission.enum.d.ts","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":"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"}
@@ -370,6 +370,19 @@ export var UserPermission;
370
370
  * fifty times an hour after an outage.
371
371
  */
372
372
  UserPermission["NOTIFICATION_DELIVERY_OPERATE"] = "notification:delivery:operate";
373
+ // ══ iveri-realtime ══════════════════════════════════════════════════════
374
+ /**
375
+ * Ask the shared gateway to issue a short-lived subscription grant after the owning API has
376
+ * authorized a person to read one resource. Service-only: a human may consume a grant but
377
+ * must never mint one.
378
+ */
379
+ UserPermission["REALTIME_SUBSCRIPTION_GRANT_ISSUE"] = "realtime:subscription-grant:issue";
380
+ /**
381
+ * Publish an identifier-only resource change. Separate from grant issue because announcing a
382
+ * write and authorizing a read are distinct powers and a service may legitimately need one
383
+ * without the other.
384
+ */
385
+ UserPermission["REALTIME_EVENT_PUBLISH"] = "realtime:event:publish";
373
386
  })(UserPermission || (UserPermission = {}));
374
387
  /**
375
388
  * Every member, for seeding the owner role and validating custom-role input.
@@ -1 +1 @@
1
- {"version":3,"file":"user-permission.enum.js","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-permission.enum.js","sourceRoot":"","sources":["../../../src/enum/user-permission.enum.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iveri/contracts",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "description": "Wire contracts shared by every Iveri backend and frontend. Zero runtime dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -54,6 +54,11 @@
54
54
  "import": "./dist/esm/api/notification/index.js",
55
55
  "require": "./dist/cjs/api/notification/index.js"
56
56
  },
57
+ "./realtime": {
58
+ "types": "./dist/cjs/api/realtime/index.d.ts",
59
+ "import": "./dist/esm/api/realtime/index.js",
60
+ "require": "./dist/cjs/api/realtime/index.js"
61
+ },
57
62
  "./package.json": "./package.json"
58
63
  },
59
64
  "typesVersions": {
@@ -70,6 +75,9 @@
70
75
  "notification": [
71
76
  "./dist/cjs/api/notification/index.d.ts"
72
77
  ],
78
+ "realtime": [
79
+ "./dist/cjs/api/realtime/index.d.ts"
80
+ ],
73
81
  "unibox": [
74
82
  "./dist/cjs/api/unibox/index.d.ts"
75
83
  ],