@starci/eslint-canon-be 3.4.39 → 3.4.41
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/CHANGELOG.md +10 -0
- package/README.md +2 -2
- package/boundary-schema.mjs +32 -4
- package/idempotency.mjs +3 -0
- package/index.mjs +2 -0
- package/infra-owner.mjs +4 -3
- package/lib/client-idempotency.mjs +403 -0
- package/lib/persistence.mjs +1 -1
- package/lib/schema-values.mjs +90 -0
- package/lib/unit-spec.mjs +6 -0
- package/operations.mjs +197 -32
- package/package.json +1 -1
- package/runtime/knowledge/hfs/canon-pins.yaml +65 -9
- package/runtime/knowledge/hfs/fe-stack.yaml +23 -5
- package/runtime/knowledge/hfs/rules.yaml +168 -47
- package/runtime/knowledge/hfs/slots.yaml +110 -52
- package/runtime/knowledge/sonar-gate.yaml +1 -1
- package/runtime/modules/kernel/removed-vocabulary.yaml +62 -0
- package/runtime/modules/models/registry.yaml +3 -1
- package/runtime/modules/models/runtimes.yaml +2 -0
- package/runtime/scripts/api/git/ls-tree.mjs +5 -0
- package/runtime/scripts/api/git/show.mjs +6 -0
- package/runtime/scripts/hfs/architecture/dead-exports.mjs +10 -10
- package/runtime/scripts/hfs/architecture/function-spec-providers.mjs +1 -1
- package/runtime/scripts/hfs/architecture/operation-contract-roots.mjs +53 -0
- package/runtime/scripts/hfs/architecture/reachability.mjs +1 -1
- package/runtime/scripts/hfs/architecture/sql-owner.mjs +17 -6
- package/runtime/scripts/hfs/architecture/sql-token-forms.mjs +105 -0
- package/runtime/scripts/hfs/architecture/sql-tokens.mjs +38 -52
- package/runtime/scripts/hfs/architecture/supabase-keys.mjs +261 -0
- package/runtime/scripts/hfs/architecture/transport-owner.mjs +49 -3
- package/runtime/scripts/hfs/declaration-shape.mjs +4 -4
- package/runtime/scripts/hfs/declaration-slots.mjs +12 -3
- package/runtime/scripts/hfs/manifest-shape.mjs +10 -6
- package/runtime/scripts/hfs/rule-params-shape.mjs +16 -6
- package/runtime/scripts/hfs/rules/database-constants.mjs +26 -0
- package/runtime/scripts/hfs/rules/database-migrations.mjs +489 -0
- package/runtime/scripts/hfs/slot-side-problems.mjs +2 -2
- package/runtime/scripts/hfs/slots.mjs +1 -0
- package/runtime/scripts/hfs/view.mjs +2 -1
- package/runtime/scripts/lib/in-order.mjs +71 -0
- package/runtime/scripts/lib/language.mjs +94 -1
- package/runtime/scripts/lib/package-at.mjs +62 -0
- package/runtime/scripts/lib/same-text.mjs +5 -0
- package/runtime/scripts/lib/ts-analysis.mjs +10 -0
- package/suppression.mjs +1 -1
- package/unit-spec.mjs +66 -6
- package/uploads.mjs +112 -0
|
@@ -19,7 +19,14 @@ concerns:
|
|
|
19
19
|
home: [fe.modules.api, fe.transport.client, fe.transport.outcome]
|
|
20
20
|
pattern: FE-API-GRAPHQL
|
|
21
21
|
forbids: [urql, graphql-request, '@urql/core', graphql-hooks, apollo-boost]
|
|
22
|
-
why: one file per operation under modules/api/graphql/{queries,mutations}, run by the auth or no-auth Apollo client with the link chain.
|
|
22
|
+
why: one file per operation under modules/api/graphql/{queries,mutations,subscriptions}, run by the auth or no-auth Apollo client with the link chain.
|
|
23
|
+
- id: graphql-subscriptions
|
|
24
|
+
tier: opt
|
|
25
|
+
packages: [graphql-ws]
|
|
26
|
+
home: [fe.transport.client, fe.package.api.client]
|
|
27
|
+
pattern: FE-REALTIME
|
|
28
|
+
forbids: []
|
|
29
|
+
why: the subscription transport of a GraphQL subscription door (be.feature.realtime.graphql); only the Apollo clients folder imports it (GraphQLWsLink of @apollo/client/link/subscriptions), a subscription operation runs on that client and a useSubscribe hook of hooks/swr reads it.
|
|
23
30
|
- id: codegen
|
|
24
31
|
tier: core
|
|
25
32
|
packages: ['@graphql-codegen/cli', '@graphql-codegen/client-preset']
|
|
@@ -74,8 +81,8 @@ concerns:
|
|
|
74
81
|
packages: [socket.io-client, eventemitter2]
|
|
75
82
|
home: [fe.hooks.socketio]
|
|
76
83
|
pattern: FE-REALTIME
|
|
77
|
-
forbids: [
|
|
78
|
-
why: one socket.io-client singleton per namespace and one side-effect component that dispatches to redux and SWR;
|
|
84
|
+
forbids: [subscriptions-transport-ws, '@supabase/realtime-js', pusher-js, ably]
|
|
85
|
+
why: one socket.io-client singleton per namespace and one side-effect component that dispatches to redux and SWR; both editions run the gateway in the be api process. A one-way channel served as server-sent events needs no package, only a stream reader in modules/api/sse/clients, a stream operation in modules/api/sse and a useSubscribe<Channel>Swr hook (FE-REALTIME).
|
|
79
86
|
- id: auth
|
|
80
87
|
tier: core
|
|
81
88
|
packages: []
|
|
@@ -89,7 +96,7 @@ concerns:
|
|
|
89
96
|
home: [fe.modules.i18n]
|
|
90
97
|
pattern: FE-I18N
|
|
91
98
|
forbids: [i18next, react-i18next, next-i18next, react-intl, '@lingui/react']
|
|
92
|
-
why: useTranslations for copy and the next-intl formatter for numbers, dates and currency.
|
|
99
|
+
why: useTranslations for copy and the next-intl formatter for numbers, fixed dates and currency; FE-DATE owns live time display.
|
|
93
100
|
- id: ui
|
|
94
101
|
tier: core
|
|
95
102
|
packages: ['@heroui/react', '@heroui/styles', tailwindcss, '@starci/grammar']
|
|
@@ -107,6 +114,17 @@ concerns:
|
|
|
107
114
|
one application icon set, the heroicons family (owner ruling 2026-10-13), on the 24/outline and 16/solid cuts. @heroicons/react
|
|
108
115
|
is the base set and is used first; @starci/heroicons holds only the glyphs heroicons lacks (brand or domain glyphs drawn in
|
|
109
116
|
heroicons style), never duplicates a heroicons glyph, and a missing glyph is added to it.
|
|
117
|
+
- id: avatar-illustration
|
|
118
|
+
tier: opt
|
|
119
|
+
packages: ['@starci/grammar']
|
|
120
|
+
home: [fe.components]
|
|
121
|
+
pattern: FE-UI
|
|
122
|
+
forbids: ['@dicebear/*', boring-avatars, 'react-nice-avatar', multiavatar]
|
|
123
|
+
why: >-
|
|
124
|
+
Grammar owns circle avatars: pass the uploaded avatar as src, otherwise pass the user or identity id as seed on
|
|
125
|
+
Avatar, AvatarButton or AvatarGroup members. Grammar renders deterministic DiceBear images with its fixed DNA style;
|
|
126
|
+
@dicebear/core and @dicebear/styles are Grammar runtime dependencies pinned in canon-pins.yaml. Apps declare and
|
|
127
|
+
import @starci/grammar, never @dicebear/*, and draw no avatar visuals. With neither src nor seed, initials remain.
|
|
110
128
|
- id: theme
|
|
111
129
|
tier: core
|
|
112
130
|
packages: [next-themes]
|
|
@@ -127,7 +145,7 @@ concerns:
|
|
|
127
145
|
home: [fe.modules]
|
|
128
146
|
pattern: FE-DATE
|
|
129
147
|
forbids: [moment, moment-timezone, date-fns, luxon]
|
|
130
|
-
why:
|
|
148
|
+
why: FE-DATE owns application date math, fixed date formatting and Grammar's live time display.
|
|
131
149
|
- id: numbers
|
|
132
150
|
tier: opt
|
|
133
151
|
packages: [decimal.js]
|