@lssm/module.notifications 0.0.0-canary-20251217062139 → 0.0.0-canary-20251217060834
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/dist/contracts/index.d.ts +160 -160
- package/dist/contracts/index.js +1 -1
- package/dist/entities/index.d.ts +144 -144
- package/dist/entities/index.js +1 -1
- package/package.json +6 -6
- package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -1
- package/dist/libs/contracts/dist/client/index.js +0 -1
- package/dist/libs/contracts/dist/client/react/feature-render.js +0 -1
- package/dist/libs/contracts/dist/client/react/form-render.js +0 -1
- package/dist/libs/contracts/dist/client/react/index.js +0 -1
- package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -1
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -76
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -350
- package/dist/libs/contracts/dist/docs/index.js +0 -1
- package/dist/libs/contracts/dist/docs/presentations.js +0 -1
- package/dist/libs/contracts/dist/docs/registry.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -383
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -68
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -140
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -86
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -58
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -38
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -213
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -289
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -262
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -57
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -63
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -36
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -20
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -65
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -41
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -122
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -68
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -1
- package/dist/libs/contracts/dist/events.js +0 -1
- package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
- package/dist/libs/contracts/dist/index.js +0 -1
- package/dist/libs/contracts/dist/install.js +0 -1
- package/dist/libs/contracts/dist/integrations/contracts.js +0 -1
- package/dist/libs/contracts/dist/integrations/index.js +0 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -1
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -1
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/index.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -1
- package/dist/libs/contracts/dist/jsonschema.js +0 -1
- package/dist/libs/contracts/dist/knowledge/contracts.js +0 -1
- package/dist/libs/contracts/dist/knowledge/index.js +0 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -1
- package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -1
- package/dist/libs/contracts/dist/llm/exporters.js +0 -1
- package/dist/libs/contracts/dist/llm/index.js +0 -1
- package/dist/libs/contracts/dist/llm/prompts.js +0 -1
- package/dist/libs/contracts/dist/onboarding-base.js +0 -1
- package/dist/libs/contracts/dist/openapi.js +0 -1
- package/dist/libs/contracts/dist/ownership.js +0 -1
- package/dist/libs/contracts/dist/presentations.js +0 -1
- package/dist/libs/contracts/dist/presentations.v2.js +0 -1
- package/dist/libs/contracts/dist/prompt.js +0 -1
- package/dist/libs/contracts/dist/promptRegistry.js +0 -1
- package/dist/libs/contracts/dist/regenerator/index.js +0 -1
- package/dist/libs/contracts/dist/regenerator/service.js +0 -1
- package/dist/libs/contracts/dist/registry.js +0 -1
- package/dist/libs/contracts/dist/resources.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/index.js +0 -1
- package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -1
- package/dist/libs/contracts/dist/server/index.js +0 -1
- package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -1
- package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -1
- package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
- package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -1
- package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
- package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
- package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
- package/dist/libs/contracts/dist/server/rest-express.js +0 -1
- package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
- package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
- package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
- package/dist/libs/contracts/dist/spec.js +0 -1
- package/dist/libs/contracts/dist/telemetry/index.js +0 -1
- package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
- package/dist/libs/contracts/dist/tests/index.js +0 -1
- package/dist/libs/contracts/dist/tests/runner.js +0 -1
- package/dist/libs/contracts/dist/workflow/index.js +0 -1
- package/dist/libs/contracts/dist/workflow/runner.js +0 -1
- package/dist/libs/schema/dist/EnumType.js +0 -1
- package/dist/libs/schema/dist/FieldType.js +0 -1
- package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -1
- package/dist/libs/schema/dist/SchemaModel.js +0 -1
- package/dist/libs/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/schema/dist/entity/index.js +0 -1
- package/dist/libs/schema/dist/entity/types.js +0 -1
- package/dist/libs/schema/dist/index.js +0 -1
package/dist/contracts/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ScalarTypeEnum as e,defineEnum as t}from"@lssm/lib.schema";import{defineCommand as n,defineQuery as r,defineSchemaModel as i}from"@lssm/lib.contracts";const a=[`platform.notifications`],o=t(`NotificationStatus`,[`PENDING`,`SENT`,`DELIVERED`,`READ`,`FAILED`,`CANCELLED`]),s=t(`NotificationChannel`,[`EMAIL`,`IN_APP`,`PUSH`,`WEBHOOK`]),c=t(`NotificationFilter`,[`unread`,`read`,`all`]),l=i({name:`Notification`,description:`A notification sent to a user`,fields:{id:{type:e.String_unsecure(),isOptional:!1},userId:{type:e.String_unsecure(),isOptional:!1},title:{type:e.String_unsecure(),isOptional:!1},body:{type:e.String_unsecure(),isOptional:!1},type:{type:e.String_unsecure(),isOptional:!1},status:{type:o,isOptional:!1},channels:{type:s,isArray:!0,isOptional:!1},actionUrl:{type:e.URL(),isOptional:!0},readAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),u=i({name:`NotificationPreference`,description:`User notification preferences`,fields:{userId:{type:e.String_unsecure(),isOptional:!1},globalEnabled:{type:e.Boolean(),isOptional:!1},channelPreferences:{type:e.JSONObject(),isOptional:!1},typePreferences:{type:e.JSONObject(),isOptional:!1},quietHoursStart:{type:e.String_unsecure(),isOptional:!0},quietHoursEnd:{type:e.String_unsecure(),isOptional:!0},timezone:{type:e.String_unsecure(),isOptional:!1},digestEnabled:{type:e.Boolean(),isOptional:!1},digestFrequency:{type:e.String_unsecure(),isOptional:!0}}}),d=i({name:`SendNotificationInput`,description:`Input for sending a notification`,fields:{userId:{type:e.String_unsecure(),isOptional:!1},templateId:{type:e.String_unsecure(),isOptional:!0},title:{type:e.String_unsecure(),isOptional:!0},body:{type:e.String_unsecure(),isOptional:!0},type:{type:e.String_unsecure(),isOptional:!1},channels:{type:s,isArray:!0,isOptional:!0},actionUrl:{type:e.URL(),isOptional:!0},variables:{type:e.JSONObject(),isOptional:!0},metadata:{type:e.JSONObject(),isOptional:!0}}}),f=i({name:`ListNotificationsInput`,description:`Input for listing notifications`,fields:{status:{type:c,isOptional:!0},type:{type:e.String_unsecure(),isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:e.Int_unsecure(),isOptional:!0,defaultValue:0}}}),p=i({name:`ListNotificationsOutput`,description:`Output for listing notifications`,fields:{notifications:{type:l,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1},unreadCount:{type:e.Int_unsecure(),isOptional:!1}}}),m=i({name:`UpdateNotificationPreferencesInput`,description:`Input for updating notification preferences`,fields:{globalEnabled:{type:e.Boolean(),isOptional:!0},channelPreferences:{type:e.JSONObject(),isOptional:!0},typePreferences:{type:e.JSONObject(),isOptional:!0},quietHoursStart:{type:e.String_unsecure(),isOptional:!0},quietHoursEnd:{type:e.String_unsecure(),isOptional:!0},timezone:{type:e.String_unsecure(),isOptional:!0},digestEnabled:{type:e.Boolean(),isOptional:!0},digestFrequency:{type:e.String_unsecure(),isOptional:!0}}}),h=n({meta:{name:`notifications.send`,version:1,stability:`stable`,owners:[...a],tags:[`notifications`,`send`],description:`Send a notification to a user.`,goal:`Deliver notifications across multiple channels.`,context:`Called by services when events require user notification.`},io:{input:d,output:l,errors:{USER_NOT_FOUND:{description:`Target user does not exist`,http:404,gqlCode:`USER_NOT_FOUND`,when:`User ID is invalid`},TEMPLATE_NOT_FOUND:{description:`Notification template does not exist`,http:404,gqlCode:`TEMPLATE_NOT_FOUND`,when:`Template ID is invalid`}}},policy:{auth:`user`},sideEffects:{emits:[{name:`notification.sent`,version:1,when:`Notification is sent`,payload:l}]}}),g=r({meta:{name:`notifications.list`,version:1,stability:`stable`,owners:[...a],tags:[`notifications`,`list`],description:`List notifications for the current user.`,goal:`Show user their notifications.`,context:`Notification center UI.`},io:{input:f,output:p},policy:{auth:`user`}}),_=n({meta:{name:`notifications.markRead`,version:1,stability:`stable`,owners:[...a],tags:[`notifications`,`read`],description:`Mark a notification as read.`,goal:`Track which notifications user has seen.`,context:`User clicks on a notification.`},io:{input:i({name:`MarkNotificationReadInput`,fields:{notificationId:{type:e.String_unsecure(),isOptional:!1}}}),output:l},policy:{auth:`user`}}),v=n({meta:{name:`notifications.markAllRead`,version:1,stability:`stable`,owners:[...a],tags:[`notifications`,`read`],description:`Mark all notifications as read.`,goal:`Clear notification badge.`,context:`User clicks "mark all as read".`},io:{input:null,output:i({name:`MarkAllNotificationsReadOutput`,fields:{markedCount:{type:e.Int_unsecure(),isOptional:!1}}})},policy:{auth:`user`}}),y=r({meta:{name:`notifications.preferences.get`,version:1,stability:`stable`,owners:[...a],tags:[`notifications`,`preferences`,`get`],description:`Get notification preferences for current user.`,goal:`Show user their notification settings.`,context:`Notification settings page.`},io:{input:null,output:u},policy:{auth:`user`}}),b=n({meta:{name:`notifications.preferences.update`,version:1,stability:`stable`,owners:[...a],tags:[`notifications`,`preferences`,`update`],description:`Update notification preferences.`,goal:`Allow user to control notification delivery.`,context:`Notification settings page.`},io:{input:m,output:u},policy:{auth:`user`}}),x=n({meta:{name:`notifications.delete`,version:1,stability:`stable`,owners:[...a],tags:[`notifications`,`delete`],description:`Delete a notification.`,goal:`Allow user to remove unwanted notifications.`,context:`User dismisses a notification.`},io:{input:i({name:`DeleteNotificationInput`,fields:{notificationId:{type:e.String_unsecure(),isOptional:!1}}}),output:i({name:`DeleteNotificationOutput`,fields:{success:{type:e.Boolean(),isOptional:!1}}})},policy:{auth:`user`}});export{x as DeleteNotificationContract,y as GetNotificationPreferencesContract,g as ListNotificationsContract,f as ListNotificationsInputModel,p as ListNotificationsOutputModel,v as MarkAllNotificationsReadContract,_ as MarkNotificationReadContract,c as NotificationFilterEnum,l as NotificationModel,u as NotificationPreferenceModel,h as SendNotificationContract,d as SendNotificationInputModel,b as UpdateNotificationPreferencesContract,m as UpdatePreferencesInputModel};
|
package/dist/entities/index.d.ts
CHANGED
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema160 from "@lssm/lib.schema";
|
|
2
2
|
import { ModuleSchemaContribution } from "@lssm/lib.schema";
|
|
3
3
|
|
|
4
4
|
//#region src/entities/index.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Notification status enum.
|
|
7
7
|
*/
|
|
8
|
-
declare const NotificationStatusEnum:
|
|
8
|
+
declare const NotificationStatusEnum: _lssm_lib_schema160.EntityEnumDef;
|
|
9
9
|
/**
|
|
10
10
|
* Notification channel enum.
|
|
11
11
|
*/
|
|
12
|
-
declare const NotificationChannelEnum:
|
|
12
|
+
declare const NotificationChannelEnum: _lssm_lib_schema160.EntityEnumDef;
|
|
13
13
|
/**
|
|
14
14
|
* Notification entity - individual notification instance.
|
|
15
15
|
*/
|
|
16
|
-
declare const NotificationEntity:
|
|
17
|
-
id:
|
|
18
|
-
userId:
|
|
19
|
-
orgId:
|
|
20
|
-
templateId:
|
|
21
|
-
title:
|
|
22
|
-
body:
|
|
23
|
-
actionUrl:
|
|
24
|
-
imageUrl:
|
|
25
|
-
type:
|
|
26
|
-
category:
|
|
27
|
-
priority:
|
|
28
|
-
channels:
|
|
29
|
-
status:
|
|
30
|
-
sentAt:
|
|
31
|
-
deliveredAt:
|
|
32
|
-
readAt:
|
|
33
|
-
metadata:
|
|
34
|
-
variables:
|
|
35
|
-
triggeredBy:
|
|
36
|
-
sourceId:
|
|
37
|
-
sourceType:
|
|
38
|
-
createdAt:
|
|
39
|
-
updatedAt:
|
|
40
|
-
expiresAt:
|
|
41
|
-
deliveryLogs:
|
|
16
|
+
declare const NotificationEntity: _lssm_lib_schema160.EntitySpec<{
|
|
17
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
18
|
+
userId: _lssm_lib_schema160.EntityScalarField;
|
|
19
|
+
orgId: _lssm_lib_schema160.EntityScalarField;
|
|
20
|
+
templateId: _lssm_lib_schema160.EntityScalarField;
|
|
21
|
+
title: _lssm_lib_schema160.EntityScalarField;
|
|
22
|
+
body: _lssm_lib_schema160.EntityScalarField;
|
|
23
|
+
actionUrl: _lssm_lib_schema160.EntityScalarField;
|
|
24
|
+
imageUrl: _lssm_lib_schema160.EntityScalarField;
|
|
25
|
+
type: _lssm_lib_schema160.EntityScalarField;
|
|
26
|
+
category: _lssm_lib_schema160.EntityScalarField;
|
|
27
|
+
priority: _lssm_lib_schema160.EntityEnumField;
|
|
28
|
+
channels: _lssm_lib_schema160.EntityScalarField;
|
|
29
|
+
status: _lssm_lib_schema160.EntityEnumField;
|
|
30
|
+
sentAt: _lssm_lib_schema160.EntityScalarField;
|
|
31
|
+
deliveredAt: _lssm_lib_schema160.EntityScalarField;
|
|
32
|
+
readAt: _lssm_lib_schema160.EntityScalarField;
|
|
33
|
+
metadata: _lssm_lib_schema160.EntityScalarField;
|
|
34
|
+
variables: _lssm_lib_schema160.EntityScalarField;
|
|
35
|
+
triggeredBy: _lssm_lib_schema160.EntityScalarField;
|
|
36
|
+
sourceId: _lssm_lib_schema160.EntityScalarField;
|
|
37
|
+
sourceType: _lssm_lib_schema160.EntityScalarField;
|
|
38
|
+
createdAt: _lssm_lib_schema160.EntityScalarField;
|
|
39
|
+
updatedAt: _lssm_lib_schema160.EntityScalarField;
|
|
40
|
+
expiresAt: _lssm_lib_schema160.EntityScalarField;
|
|
41
|
+
deliveryLogs: _lssm_lib_schema160.EntityRelationField;
|
|
42
42
|
}>;
|
|
43
43
|
/**
|
|
44
44
|
* Notification priority enum.
|
|
45
45
|
*/
|
|
46
|
-
declare const NotificationPriorityEnum:
|
|
46
|
+
declare const NotificationPriorityEnum: _lssm_lib_schema160.EntityEnumDef;
|
|
47
47
|
/**
|
|
48
48
|
* NotificationTemplate entity - reusable notification templates.
|
|
49
49
|
*/
|
|
50
|
-
declare const NotificationTemplateEntity:
|
|
51
|
-
id:
|
|
52
|
-
templateId:
|
|
53
|
-
name:
|
|
54
|
-
description:
|
|
55
|
-
emailSubject:
|
|
56
|
-
emailBody:
|
|
57
|
-
inAppTitle:
|
|
58
|
-
inAppBody:
|
|
59
|
-
pushTitle:
|
|
60
|
-
pushBody:
|
|
61
|
-
defaultChannels:
|
|
62
|
-
category:
|
|
63
|
-
priority:
|
|
64
|
-
variablesSchema:
|
|
65
|
-
enabled:
|
|
66
|
-
createdAt:
|
|
67
|
-
updatedAt:
|
|
50
|
+
declare const NotificationTemplateEntity: _lssm_lib_schema160.EntitySpec<{
|
|
51
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
52
|
+
templateId: _lssm_lib_schema160.EntityScalarField;
|
|
53
|
+
name: _lssm_lib_schema160.EntityScalarField;
|
|
54
|
+
description: _lssm_lib_schema160.EntityScalarField;
|
|
55
|
+
emailSubject: _lssm_lib_schema160.EntityScalarField;
|
|
56
|
+
emailBody: _lssm_lib_schema160.EntityScalarField;
|
|
57
|
+
inAppTitle: _lssm_lib_schema160.EntityScalarField;
|
|
58
|
+
inAppBody: _lssm_lib_schema160.EntityScalarField;
|
|
59
|
+
pushTitle: _lssm_lib_schema160.EntityScalarField;
|
|
60
|
+
pushBody: _lssm_lib_schema160.EntityScalarField;
|
|
61
|
+
defaultChannels: _lssm_lib_schema160.EntityScalarField;
|
|
62
|
+
category: _lssm_lib_schema160.EntityScalarField;
|
|
63
|
+
priority: _lssm_lib_schema160.EntityEnumField;
|
|
64
|
+
variablesSchema: _lssm_lib_schema160.EntityScalarField;
|
|
65
|
+
enabled: _lssm_lib_schema160.EntityScalarField;
|
|
66
|
+
createdAt: _lssm_lib_schema160.EntityScalarField;
|
|
67
|
+
updatedAt: _lssm_lib_schema160.EntityScalarField;
|
|
68
68
|
}>;
|
|
69
69
|
/**
|
|
70
70
|
* NotificationPreference entity - user notification preferences.
|
|
71
71
|
*/
|
|
72
|
-
declare const NotificationPreferenceEntity:
|
|
73
|
-
id:
|
|
74
|
-
userId:
|
|
75
|
-
globalEnabled:
|
|
76
|
-
quietHoursStart:
|
|
77
|
-
quietHoursEnd:
|
|
78
|
-
timezone:
|
|
79
|
-
channelPreferences:
|
|
80
|
-
typePreferences:
|
|
81
|
-
digestEnabled:
|
|
82
|
-
digestFrequency:
|
|
83
|
-
digestTime:
|
|
84
|
-
createdAt:
|
|
85
|
-
updatedAt:
|
|
72
|
+
declare const NotificationPreferenceEntity: _lssm_lib_schema160.EntitySpec<{
|
|
73
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
74
|
+
userId: _lssm_lib_schema160.EntityScalarField;
|
|
75
|
+
globalEnabled: _lssm_lib_schema160.EntityScalarField;
|
|
76
|
+
quietHoursStart: _lssm_lib_schema160.EntityScalarField;
|
|
77
|
+
quietHoursEnd: _lssm_lib_schema160.EntityScalarField;
|
|
78
|
+
timezone: _lssm_lib_schema160.EntityScalarField;
|
|
79
|
+
channelPreferences: _lssm_lib_schema160.EntityScalarField;
|
|
80
|
+
typePreferences: _lssm_lib_schema160.EntityScalarField;
|
|
81
|
+
digestEnabled: _lssm_lib_schema160.EntityScalarField;
|
|
82
|
+
digestFrequency: _lssm_lib_schema160.EntityScalarField;
|
|
83
|
+
digestTime: _lssm_lib_schema160.EntityScalarField;
|
|
84
|
+
createdAt: _lssm_lib_schema160.EntityScalarField;
|
|
85
|
+
updatedAt: _lssm_lib_schema160.EntityScalarField;
|
|
86
86
|
}>;
|
|
87
87
|
/**
|
|
88
88
|
* DeliveryLog entity - track delivery attempts per channel.
|
|
89
89
|
*/
|
|
90
|
-
declare const DeliveryLogEntity:
|
|
91
|
-
id:
|
|
92
|
-
notificationId:
|
|
93
|
-
channel:
|
|
94
|
-
status:
|
|
95
|
-
attemptedAt:
|
|
96
|
-
deliveredAt:
|
|
97
|
-
responseCode:
|
|
98
|
-
responseMessage:
|
|
99
|
-
externalId:
|
|
100
|
-
metadata:
|
|
101
|
-
notification:
|
|
90
|
+
declare const DeliveryLogEntity: _lssm_lib_schema160.EntitySpec<{
|
|
91
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
92
|
+
notificationId: _lssm_lib_schema160.EntityScalarField;
|
|
93
|
+
channel: _lssm_lib_schema160.EntityEnumField;
|
|
94
|
+
status: _lssm_lib_schema160.EntityEnumField;
|
|
95
|
+
attemptedAt: _lssm_lib_schema160.EntityScalarField;
|
|
96
|
+
deliveredAt: _lssm_lib_schema160.EntityScalarField;
|
|
97
|
+
responseCode: _lssm_lib_schema160.EntityScalarField;
|
|
98
|
+
responseMessage: _lssm_lib_schema160.EntityScalarField;
|
|
99
|
+
externalId: _lssm_lib_schema160.EntityScalarField;
|
|
100
|
+
metadata: _lssm_lib_schema160.EntityScalarField;
|
|
101
|
+
notification: _lssm_lib_schema160.EntityRelationField;
|
|
102
102
|
}>;
|
|
103
103
|
/**
|
|
104
104
|
* All notification entities for schema composition.
|
|
105
105
|
*/
|
|
106
|
-
declare const notificationEntities: (
|
|
107
|
-
id:
|
|
108
|
-
userId:
|
|
109
|
-
orgId:
|
|
110
|
-
templateId:
|
|
111
|
-
title:
|
|
112
|
-
body:
|
|
113
|
-
actionUrl:
|
|
114
|
-
imageUrl:
|
|
115
|
-
type:
|
|
116
|
-
category:
|
|
117
|
-
priority:
|
|
118
|
-
channels:
|
|
119
|
-
status:
|
|
120
|
-
sentAt:
|
|
121
|
-
deliveredAt:
|
|
122
|
-
readAt:
|
|
123
|
-
metadata:
|
|
124
|
-
variables:
|
|
125
|
-
triggeredBy:
|
|
126
|
-
sourceId:
|
|
127
|
-
sourceType:
|
|
128
|
-
createdAt:
|
|
129
|
-
updatedAt:
|
|
130
|
-
expiresAt:
|
|
131
|
-
deliveryLogs:
|
|
132
|
-
}> |
|
|
133
|
-
id:
|
|
134
|
-
templateId:
|
|
135
|
-
name:
|
|
136
|
-
description:
|
|
137
|
-
emailSubject:
|
|
138
|
-
emailBody:
|
|
139
|
-
inAppTitle:
|
|
140
|
-
inAppBody:
|
|
141
|
-
pushTitle:
|
|
142
|
-
pushBody:
|
|
143
|
-
defaultChannels:
|
|
144
|
-
category:
|
|
145
|
-
priority:
|
|
146
|
-
variablesSchema:
|
|
147
|
-
enabled:
|
|
148
|
-
createdAt:
|
|
149
|
-
updatedAt:
|
|
150
|
-
}> |
|
|
151
|
-
id:
|
|
152
|
-
userId:
|
|
153
|
-
globalEnabled:
|
|
154
|
-
quietHoursStart:
|
|
155
|
-
quietHoursEnd:
|
|
156
|
-
timezone:
|
|
157
|
-
channelPreferences:
|
|
158
|
-
typePreferences:
|
|
159
|
-
digestEnabled:
|
|
160
|
-
digestFrequency:
|
|
161
|
-
digestTime:
|
|
162
|
-
createdAt:
|
|
163
|
-
updatedAt:
|
|
164
|
-
}> |
|
|
165
|
-
id:
|
|
166
|
-
notificationId:
|
|
167
|
-
channel:
|
|
168
|
-
status:
|
|
169
|
-
attemptedAt:
|
|
170
|
-
deliveredAt:
|
|
171
|
-
responseCode:
|
|
172
|
-
responseMessage:
|
|
173
|
-
externalId:
|
|
174
|
-
metadata:
|
|
175
|
-
notification:
|
|
106
|
+
declare const notificationEntities: (_lssm_lib_schema160.EntitySpec<{
|
|
107
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
108
|
+
userId: _lssm_lib_schema160.EntityScalarField;
|
|
109
|
+
orgId: _lssm_lib_schema160.EntityScalarField;
|
|
110
|
+
templateId: _lssm_lib_schema160.EntityScalarField;
|
|
111
|
+
title: _lssm_lib_schema160.EntityScalarField;
|
|
112
|
+
body: _lssm_lib_schema160.EntityScalarField;
|
|
113
|
+
actionUrl: _lssm_lib_schema160.EntityScalarField;
|
|
114
|
+
imageUrl: _lssm_lib_schema160.EntityScalarField;
|
|
115
|
+
type: _lssm_lib_schema160.EntityScalarField;
|
|
116
|
+
category: _lssm_lib_schema160.EntityScalarField;
|
|
117
|
+
priority: _lssm_lib_schema160.EntityEnumField;
|
|
118
|
+
channels: _lssm_lib_schema160.EntityScalarField;
|
|
119
|
+
status: _lssm_lib_schema160.EntityEnumField;
|
|
120
|
+
sentAt: _lssm_lib_schema160.EntityScalarField;
|
|
121
|
+
deliveredAt: _lssm_lib_schema160.EntityScalarField;
|
|
122
|
+
readAt: _lssm_lib_schema160.EntityScalarField;
|
|
123
|
+
metadata: _lssm_lib_schema160.EntityScalarField;
|
|
124
|
+
variables: _lssm_lib_schema160.EntityScalarField;
|
|
125
|
+
triggeredBy: _lssm_lib_schema160.EntityScalarField;
|
|
126
|
+
sourceId: _lssm_lib_schema160.EntityScalarField;
|
|
127
|
+
sourceType: _lssm_lib_schema160.EntityScalarField;
|
|
128
|
+
createdAt: _lssm_lib_schema160.EntityScalarField;
|
|
129
|
+
updatedAt: _lssm_lib_schema160.EntityScalarField;
|
|
130
|
+
expiresAt: _lssm_lib_schema160.EntityScalarField;
|
|
131
|
+
deliveryLogs: _lssm_lib_schema160.EntityRelationField;
|
|
132
|
+
}> | _lssm_lib_schema160.EntitySpec<{
|
|
133
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
134
|
+
templateId: _lssm_lib_schema160.EntityScalarField;
|
|
135
|
+
name: _lssm_lib_schema160.EntityScalarField;
|
|
136
|
+
description: _lssm_lib_schema160.EntityScalarField;
|
|
137
|
+
emailSubject: _lssm_lib_schema160.EntityScalarField;
|
|
138
|
+
emailBody: _lssm_lib_schema160.EntityScalarField;
|
|
139
|
+
inAppTitle: _lssm_lib_schema160.EntityScalarField;
|
|
140
|
+
inAppBody: _lssm_lib_schema160.EntityScalarField;
|
|
141
|
+
pushTitle: _lssm_lib_schema160.EntityScalarField;
|
|
142
|
+
pushBody: _lssm_lib_schema160.EntityScalarField;
|
|
143
|
+
defaultChannels: _lssm_lib_schema160.EntityScalarField;
|
|
144
|
+
category: _lssm_lib_schema160.EntityScalarField;
|
|
145
|
+
priority: _lssm_lib_schema160.EntityEnumField;
|
|
146
|
+
variablesSchema: _lssm_lib_schema160.EntityScalarField;
|
|
147
|
+
enabled: _lssm_lib_schema160.EntityScalarField;
|
|
148
|
+
createdAt: _lssm_lib_schema160.EntityScalarField;
|
|
149
|
+
updatedAt: _lssm_lib_schema160.EntityScalarField;
|
|
150
|
+
}> | _lssm_lib_schema160.EntitySpec<{
|
|
151
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
152
|
+
userId: _lssm_lib_schema160.EntityScalarField;
|
|
153
|
+
globalEnabled: _lssm_lib_schema160.EntityScalarField;
|
|
154
|
+
quietHoursStart: _lssm_lib_schema160.EntityScalarField;
|
|
155
|
+
quietHoursEnd: _lssm_lib_schema160.EntityScalarField;
|
|
156
|
+
timezone: _lssm_lib_schema160.EntityScalarField;
|
|
157
|
+
channelPreferences: _lssm_lib_schema160.EntityScalarField;
|
|
158
|
+
typePreferences: _lssm_lib_schema160.EntityScalarField;
|
|
159
|
+
digestEnabled: _lssm_lib_schema160.EntityScalarField;
|
|
160
|
+
digestFrequency: _lssm_lib_schema160.EntityScalarField;
|
|
161
|
+
digestTime: _lssm_lib_schema160.EntityScalarField;
|
|
162
|
+
createdAt: _lssm_lib_schema160.EntityScalarField;
|
|
163
|
+
updatedAt: _lssm_lib_schema160.EntityScalarField;
|
|
164
|
+
}> | _lssm_lib_schema160.EntitySpec<{
|
|
165
|
+
id: _lssm_lib_schema160.EntityScalarField;
|
|
166
|
+
notificationId: _lssm_lib_schema160.EntityScalarField;
|
|
167
|
+
channel: _lssm_lib_schema160.EntityEnumField;
|
|
168
|
+
status: _lssm_lib_schema160.EntityEnumField;
|
|
169
|
+
attemptedAt: _lssm_lib_schema160.EntityScalarField;
|
|
170
|
+
deliveredAt: _lssm_lib_schema160.EntityScalarField;
|
|
171
|
+
responseCode: _lssm_lib_schema160.EntityScalarField;
|
|
172
|
+
responseMessage: _lssm_lib_schema160.EntityScalarField;
|
|
173
|
+
externalId: _lssm_lib_schema160.EntityScalarField;
|
|
174
|
+
metadata: _lssm_lib_schema160.EntityScalarField;
|
|
175
|
+
notification: _lssm_lib_schema160.EntityRelationField;
|
|
176
176
|
}>)[];
|
|
177
177
|
/**
|
|
178
178
|
* Module schema contribution for notifications.
|
package/dist/entities/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{defineEntity as e,defineEntityEnum as t,field as n,index as r}from"@lssm/lib.schema";const i=t({name:`NotificationStatus`,values:[`PENDING`,`SENT`,`DELIVERED`,`READ`,`FAILED`,`CANCELLED`],schema:`lssm_notifications`,description:`Status of a notification.`}),a=t({name:`NotificationChannel`,values:[`EMAIL`,`IN_APP`,`PUSH`,`WEBHOOK`,`SMS`],schema:`lssm_notifications`,description:`Delivery channel for notifications.`}),o=e({name:`Notification`,description:`An individual notification to be delivered to a user.`,schema:`lssm_notifications`,map:`notification`,fields:{id:n.id({description:`Unique notification ID`}),userId:n.foreignKey({description:`Target user ID`}),orgId:n.string({isOptional:!0,description:`Organization context`}),templateId:n.string({isOptional:!0,description:`Template used`}),title:n.string({description:`Notification title`}),body:n.string({description:`Notification body`}),actionUrl:n.string({isOptional:!0,description:`Action URL`}),imageUrl:n.string({isOptional:!0,description:`Image URL`}),type:n.string({description:`Notification type (e.g., mention, update)`}),category:n.string({isOptional:!0,description:`Notification category`}),priority:n.enum(`NotificationPriority`,{default:`NORMAL`}),channels:n.string({isArray:!0,description:`Target delivery channels`}),status:n.enum(`NotificationStatus`,{default:`PENDING`}),sentAt:n.dateTime({isOptional:!0}),deliveredAt:n.dateTime({isOptional:!0}),readAt:n.dateTime({isOptional:!0}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),variables:n.json({isOptional:!0,description:`Template variables used`}),triggeredBy:n.string({isOptional:!0,description:`Event/action that triggered`}),sourceId:n.string({isOptional:!0,description:`Source entity ID`}),sourceType:n.string({isOptional:!0,description:`Source entity type`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),expiresAt:n.dateTime({isOptional:!0,description:`Notification expiry`}),deliveryLogs:n.hasMany(`DeliveryLog`)},indexes:[r.on([`userId`,`status`,`createdAt`]),r.on([`userId`,`readAt`]),r.on([`orgId`,`createdAt`]),r.on([`type`,`createdAt`])],enums:[i,a]}),s=t({name:`NotificationPriority`,values:[`LOW`,`NORMAL`,`HIGH`,`URGENT`],schema:`lssm_notifications`,description:`Priority level of a notification.`}),c=e({name:`NotificationTemplate`,description:`Reusable notification template.`,schema:`lssm_notifications`,map:`notification_template`,fields:{id:n.id(),templateId:n.string({isUnique:!0,description:`Template identifier`}),name:n.string({description:`Template display name`}),description:n.string({isOptional:!0}),emailSubject:n.string({isOptional:!0}),emailBody:n.string({isOptional:!0}),inAppTitle:n.string({isOptional:!0}),inAppBody:n.string({isOptional:!0}),pushTitle:n.string({isOptional:!0}),pushBody:n.string({isOptional:!0}),defaultChannels:n.string({isArray:!0}),category:n.string({isOptional:!0}),priority:n.enum(`NotificationPriority`,{default:`NORMAL`}),variablesSchema:n.json({isOptional:!0,description:`JSON schema for variables`}),enabled:n.boolean({default:!0}),createdAt:n.createdAt(),updatedAt:n.updatedAt()},enums:[s]}),l=e({name:`NotificationPreference`,description:`User notification preferences by type and channel.`,schema:`lssm_notifications`,map:`notification_preference`,fields:{id:n.id(),userId:n.foreignKey(),globalEnabled:n.boolean({default:!0}),quietHoursStart:n.string({isOptional:!0,description:`Quiet hours start (HH:MM)`}),quietHoursEnd:n.string({isOptional:!0,description:`Quiet hours end (HH:MM)`}),timezone:n.string({default:`"UTC"`}),channelPreferences:n.json({description:`Channel-level preferences`}),typePreferences:n.json({description:`Type-level preferences`}),digestEnabled:n.boolean({default:!1}),digestFrequency:n.string({isOptional:!0,description:`daily, weekly, etc.`}),digestTime:n.string({isOptional:!0,description:`Digest send time (HH:MM)`}),createdAt:n.createdAt(),updatedAt:n.updatedAt()},indexes:[r.unique([`userId`])]}),u=e({name:`DeliveryLog`,description:`Log of notification delivery attempts.`,schema:`lssm_notifications`,map:`delivery_log`,fields:{id:n.id(),notificationId:n.foreignKey(),channel:n.enum(`NotificationChannel`),status:n.enum(`NotificationStatus`),attemptedAt:n.dateTime(),deliveredAt:n.dateTime({isOptional:!0}),responseCode:n.string({isOptional:!0}),responseMessage:n.string({isOptional:!0}),externalId:n.string({isOptional:!0,description:`Provider message ID`}),metadata:n.json({isOptional:!0}),notification:n.belongsTo(`Notification`,[`notificationId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`notificationId`,`channel`])]}),d=[o,c,l,u],f={moduleId:`@lssm/module.notifications`,entities:d,enums:[i,a,s]};export{u as DeliveryLogEntity,a as NotificationChannelEnum,o as NotificationEntity,l as NotificationPreferenceEntity,s as NotificationPriorityEnum,i as NotificationStatusEnum,c as NotificationTemplateEntity,d as notificationEntities,f as notificationsSchemaContribution};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/module.notifications",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20251217060834",
|
|
4
4
|
"description": "Notification center module for ContractSpec applications",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
"lint:check": "eslint src"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@lssm/lib.schema": "0.0.0-canary-
|
|
22
|
-
"@lssm/lib.contracts": "0.0.0-canary-
|
|
23
|
-
"@lssm/lib.bus": "0.0.0-canary-
|
|
21
|
+
"@lssm/lib.schema": "0.0.0-canary-20251217060834",
|
|
22
|
+
"@lssm/lib.contracts": "0.0.0-canary-20251217060834",
|
|
23
|
+
"@lssm/lib.bus": "0.0.0-canary-20251217060834",
|
|
24
24
|
"zod": "^4.1.13"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@lssm/tool.typescript": "0.0.0-canary-
|
|
28
|
-
"@lssm/tool.tsdown": "0.0.0-canary-
|
|
27
|
+
"@lssm/tool.typescript": "0.0.0-canary-20251217060834",
|
|
28
|
+
"@lssm/tool.tsdown": "0.0.0-canary-20251217060834",
|
|
29
29
|
"typescript": "^5.9.3"
|
|
30
30
|
},
|
|
31
31
|
"exports": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../ownership.js";const t=[`platform.finance`],n=[`open-banking`,`finance`];[...t],[...n],e.Experimental,[...t],[...n],e.Experimental,[...t],[...n],e.Experimental;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import"./react/feature-render.js";import"./react/form-render.js";import"./react/index.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../../presentations.v2.js";import"react";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"react";import"react-hook-form";import"@hookform/resolvers/zod";import"react/jsx-runtime";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";import"./feature-render.js";import"./form-render.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t,r as n}from"./schemas.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"../ownership.js";import t from"zod";const n=t.enum([`contractspec:operation`,`contractspec:event`,`contractspec:presentation`,`contractspec:form`,`contractspec:feature`,`contractspec:workflow`,`contractspec:template`,`contractspec:integration`,`contractspec:data-view`,`contractspec:migration`,`contractspec:telemetry`,`contractspec:experiment`,`contractspec:app-config`,`contractspec:knowledge`]),r=t.object({path:t.string().min(1),type:t.string().min(1),content:t.string().optional()}),i=t.object({name:t.string().min(1),type:n,version:t.number().int().nonnegative(),title:t.string().min(1),description:t.string().min(1),meta:t.object({stability:t.enum([e.Idea,e.InCreation,e.Experimental,e.Beta,e.Stable,e.Deprecated]),owners:t.array(t.string().min(1)).default([]),tags:t.array(t.string().min(1)).default([])}),dependencies:t.array(t.string().min(1)).optional(),registryDependencies:t.array(t.string().min(1)).optional(),files:t.array(r).min(1),schema:t.object({input:t.unknown().optional(),output:t.unknown().optional()}).optional()});t.object({$schema:t.string().min(1).optional(),name:t.string().min(1),homepage:t.string().min(1).optional(),items:t.array(i)});export{i,n,r};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./registry.js";e([{id:`docs.PUBLISHING`,title:`Publishing ContractSpec Libraries`,summary:`This guide describes how we release the ContractSpec libraries to npm. We use a dual-track release system: **Stable** (manual) and **Canary** (automatic).`,kind:`reference`,visibility:`public`,route:`/docs/PUBLISHING`,tags:[`PUBLISHING`],body:`# Publishing ContractSpec Libraries
|
|
2
|
-
|
|
3
|
-
This guide describes how we release the ContractSpec libraries to npm. We use a dual-track release system: **Stable** (manual) and **Canary** (automatic).
|
|
4
|
-
|
|
5
|
-
## Release Tracks
|
|
6
|
-
|
|
7
|
-
| Track | Branch | npm Tag | Frequency | Versioning | Use Case |
|
|
8
|
-
|-------|--------|---------|-----------|------------|----------|
|
|
9
|
-
| **Stable** | \`release\` | \`latest\` | Manual | SemVer (e.g., \`1.7.4\`) | Production, external users |
|
|
10
|
-
| **Canary** | \`main\` | \`canary\` | Every Push | Snapshot (e.g., \`1.7.4-canary...\`) | Dev, internal testing |
|
|
11
|
-
|
|
12
|
-
## Prerequisites
|
|
13
|
-
|
|
14
|
-
- ✅ \`NPM_TOKEN\` secret is configured in GitHub (owner or automation token with _publish_ scope).
|
|
15
|
-
- ✅ \`GITHUB_TOKEN\` (built-in) has permissions to create PRs (enabled by default in new repos).
|
|
16
|
-
- ✅ For stable releases: \`release\` branch exists and is protected.
|
|
17
|
-
|
|
18
|
-
## Canary Workflow (Automatic)
|
|
19
|
-
|
|
20
|
-
Every commit pushed to \`main\` triggers the \`.github/workflows/publish-canary.yml\` workflow.
|
|
21
|
-
|
|
22
|
-
1. **Trigger**: Push to \`main\`.
|
|
23
|
-
2. **Versioning**: Runs \`changeset version --snapshot canary\` to generate a temporary snapshot version.
|
|
24
|
-
3. **Publish**: Packages are published to npm with the \`canary\` tag using \`changeset publish --tag canary\`.
|
|
25
|
-
|
|
26
|
-
### Consuming Canary Builds
|
|
27
|
-
|
|
28
|
-
To install the latest bleeding-edge version:
|
|
29
|
-
|
|
30
|
-
\`\`\`bash
|
|
31
|
-
npm install @lssm/lib.contracts@canary
|
|
32
|
-
# or
|
|
33
|
-
bun add @lssm/lib.contracts@canary
|
|
34
|
-
\`\`\`
|
|
35
|
-
|
|
36
|
-
## Stable Release Workflow (Manual)
|
|
37
|
-
|
|
38
|
-
Stable releases are managed via the \`release\` branch using the standard [Changesets Action](https://github.com/changesets/action).
|
|
39
|
-
|
|
40
|
-
1. **Develop on \`main\`**: Create features and fixes.
|
|
41
|
-
2. **Add Changesets**: Run \`bun changeset\` to document changes and impact (major/minor/patch).
|
|
42
|
-
3. **Merge to \`release\`**: When ready to ship, open a PR from \`main\` to \`release\` or merge manually.
|
|
43
|
-
4. **"Version Packages" PR**:
|
|
44
|
-
- The GitHub Action detects new changesets and automatically creates a Pull Request titled **"Version Packages"**.
|
|
45
|
-
- This PR contains the version bumps and updated \`CHANGELOG.md\` files.
|
|
46
|
-
5. **Merge & Publish**:
|
|
47
|
-
- Review and merge the "Version Packages" PR.
|
|
48
|
-
- The Action runs again, detects the versions have been bumped, builds the libraries, and publishes them to npm with the \`latest\` tag.
|
|
49
|
-
|
|
50
|
-
### Publishing Steps
|
|
51
|
-
|
|
52
|
-
1. Ensure all changesets are present on \`main\`.
|
|
53
|
-
2. Merge \`main\` into \`release\`:
|
|
54
|
-
\`\`\`bash
|
|
55
|
-
git checkout release
|
|
56
|
-
git pull origin release
|
|
57
|
-
git merge main
|
|
58
|
-
git push origin release
|
|
59
|
-
\`\`\`
|
|
60
|
-
3. Go to GitHub Pull Requests. You will see a **"Version Packages"** PR created by the bot.
|
|
61
|
-
4. Merge that PR.
|
|
62
|
-
5. The release is now live on npm!
|
|
63
|
-
|
|
64
|
-
## Manual Verification (Optional)
|
|
65
|
-
|
|
66
|
-
Before publishing a new version you can run:
|
|
67
|
-
|
|
68
|
-
\`\`\`bash
|
|
69
|
-
bun run build:not-apps
|
|
70
|
-
npx npm-packlist --json packages/libs/contracts
|
|
71
|
-
\`\`\`
|
|
72
|
-
|
|
73
|
-
## Rollback
|
|
74
|
-
|
|
75
|
-
If a publish fails mid-way, re-run the workflow once the issue is fixed. Already published packages are skipped automatically. Use \`npm deprecate <package>@<version>\` if we need to warn consumers about a broken release.
|
|
76
|
-
`}]);
|