shutro-erp 0.3.2 → 0.3.4

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 (156) hide show
  1. package/dist/account_portal/.kosh/bindings.js +1 -1
  2. package/dist/account_portal/.kosh/schema.d.ts +156 -1
  3. package/dist/accounting/.kosh/bindings.js +1 -1
  4. package/dist/accounting/.kosh/schema.d.ts +156 -1
  5. package/dist/assistant/index.js +1 -1
  6. package/dist/contacts/.kosh/bindings.js +1 -1
  7. package/dist/contacts/.kosh/schema.d.ts +156 -1
  8. package/dist/integrations/index.js +12 -0
  9. package/dist/integrations/web/OAuthAppsPage.d.ts +9 -0
  10. package/dist/integrations/web/OAuthAppsPage.js +79 -0
  11. package/dist/integrations/web/index.d.ts +1 -0
  12. package/dist/integrations/web/index.js +3 -0
  13. package/dist/integrations/web/messages.js +58 -0
  14. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  15. package/dist/l10n_bd/.kosh/schema.d.ts +156 -1
  16. package/dist/l10n_in/.kosh/bindings.js +1 -1
  17. package/dist/l10n_in/.kosh/schema.d.ts +156 -4
  18. package/dist/l10n_in/module.d.ts +0 -62
  19. package/dist/l10n_in/module.js +2 -4
  20. package/dist/messaging/web/index.js +1 -1
  21. package/dist/notify/web/index.js +1 -1
  22. package/dist/payment/.kosh/bindings.js +1 -1
  23. package/dist/payment/.kosh/schema.d.ts +157 -2
  24. package/dist/payment/bkash.d.ts +28 -0
  25. package/dist/payment/bkash.js +169 -0
  26. package/dist/payment/index.d.ts +4 -0
  27. package/dist/payment/index.js +80 -24
  28. package/dist/payment/module.d.ts +7 -4
  29. package/dist/payment/module.js +3 -0
  30. package/dist/payment/money.d.ts +7 -0
  31. package/dist/payment/money.js +37 -0
  32. package/dist/payment/providers.d.ts +13 -2
  33. package/dist/payment/razorpay.d.ts +12 -0
  34. package/dist/payment/razorpay.js +149 -0
  35. package/dist/payment/sslcommerz.js +1 -1
  36. package/dist/payment/stripe.d.ts +15 -0
  37. package/dist/payment/stripe.js +182 -0
  38. package/dist/permissions/admin.d.ts +3 -0
  39. package/dist/permissions/admin.js +108 -10
  40. package/dist/permissions/index.d.ts +1 -0
  41. package/dist/permissions/index.js +3 -0
  42. package/dist/permissions/roles.d.ts +2 -0
  43. package/dist/permissions/roles.js +236 -0
  44. package/dist/portal/.kosh/bindings.js +1 -1
  45. package/dist/portal/.kosh/schema.d.ts +156 -1
  46. package/dist/product/.kosh/bindings.js +1 -1
  47. package/dist/product/.kosh/schema.d.ts +156 -1
  48. package/dist/project/.kosh/bindings.js +1 -1
  49. package/dist/project/.kosh/schema.d.ts +156 -1
  50. package/dist/project_portal/.kosh/bindings.js +1 -1
  51. package/dist/project_portal/.kosh/schema.d.ts +156 -1
  52. package/dist/purchase/.kosh/bindings.js +1 -1
  53. package/dist/purchase/.kosh/schema.d.ts +156 -1
  54. package/dist/purchase_account/.kosh/bindings.js +1 -1
  55. package/dist/purchase_account/.kosh/schema.d.ts +156 -1
  56. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  57. package/dist/purchase_portal/.kosh/schema.d.ts +156 -1
  58. package/dist/sale_account/.kosh/bindings.js +1 -1
  59. package/dist/sale_account/.kosh/schema.d.ts +156 -1
  60. package/dist/sale_portal/.kosh/bindings.js +1 -1
  61. package/dist/sale_portal/.kosh/schema.d.ts +156 -1
  62. package/dist/sale_project/.kosh/bindings.js +1 -1
  63. package/dist/sale_project/.kosh/schema.d.ts +156 -1
  64. package/dist/sales/.kosh/bindings.js +1 -1
  65. package/dist/sales/.kosh/schema.d.ts +156 -1
  66. package/dist/server/auth/base.js +98 -0
  67. package/dist/server/auth/oauth.d.ts +21 -0
  68. package/dist/server/auth/oauth.js +579 -0
  69. package/dist/server/auth/routes.d.ts +3 -0
  70. package/dist/server/auth/routes.js +29 -0
  71. package/dist/server/auth/service.d.ts +56 -0
  72. package/dist/server/auth/service.js +185 -3
  73. package/dist/server/identity.d.ts +4 -0
  74. package/dist/server/images.d.ts +12 -0
  75. package/dist/server/images.js +139 -0
  76. package/dist/server/index.d.ts +2 -1
  77. package/dist/server/index.js +1 -0
  78. package/dist/server/server.d.ts +4 -0
  79. package/dist/server/server.js +20 -4
  80. package/dist/settings/company.d.ts +34 -0
  81. package/dist/settings/company.js +189 -0
  82. package/dist/settings/index.d.ts +10 -10
  83. package/dist/settings/index.js +159 -30
  84. package/dist/settings/people.d.ts +16 -0
  85. package/dist/settings/people.js +507 -0
  86. package/dist/settings/security.d.ts +13 -0
  87. package/dist/settings/security.js +158 -0
  88. package/dist/settings/web/AuditPage.d.ts +8 -0
  89. package/dist/settings/web/AuditPage.js +74 -0
  90. package/dist/settings/web/CompaniesPage.d.ts +8 -0
  91. package/dist/settings/web/CompaniesPage.js +52 -0
  92. package/dist/settings/web/CompanyPage.d.ts +9 -0
  93. package/dist/settings/web/CompanyPage.js +105 -0
  94. package/dist/settings/web/ConnectedAppsPage.d.ts +7 -0
  95. package/dist/settings/web/ConnectedAppsPage.js +33 -0
  96. package/dist/settings/web/OverviewPage.d.ts +9 -0
  97. package/dist/settings/web/OverviewPage.js +77 -0
  98. package/dist/settings/web/PeoplePage.d.ts +9 -0
  99. package/dist/settings/web/PeoplePage.js +154 -0
  100. package/dist/settings/web/ProfilePage.d.ts +14 -0
  101. package/dist/settings/web/ProfilePage.js +196 -0
  102. package/dist/settings/web/RolesEditor.d.ts +35 -0
  103. package/dist/settings/web/RolesEditor.js +49 -0
  104. package/dist/settings/web/RolesPage.d.ts +9 -0
  105. package/dist/settings/web/RolesPage.js +296 -0
  106. package/dist/settings/web/SecurityPage.d.ts +8 -0
  107. package/dist/settings/web/SecurityPage.js +81 -0
  108. package/dist/settings/web/index.d.ts +10 -0
  109. package/dist/settings/web/index.js +31 -1
  110. package/dist/settings/web/messages.js +594 -0
  111. package/dist/ui/api.d.ts +8 -0
  112. package/dist/ui/app.d.ts +5 -0
  113. package/dist/ui/app.js +143 -33
  114. package/dist/ui/components/AppIcon.js +11 -1
  115. package/dist/ui/components/Avatar.d.ts +21 -0
  116. package/dist/ui/components/Avatar.js +71 -0
  117. package/dist/ui/components/primitives.d.ts +9 -1
  118. package/dist/ui/components/primitives.js +12 -4
  119. package/dist/ui/context.d.ts +10 -1
  120. package/dist/ui/context.js +60 -2
  121. package/dist/ui/i18n/messages.d.ts +76 -0
  122. package/dist/ui/i18n/messages.js +152 -0
  123. package/dist/ui/index.d.ts +3 -1
  124. package/dist/ui/index.js +3 -1
  125. package/dist/ui/lib/accent.d.ts +13 -0
  126. package/dist/ui/lib/accent.js +36 -0
  127. package/dist/ui/registry.d.ts +7 -1
  128. package/dist/ui/registry.js +10 -1
  129. package/dist/ui/search/ViewTabs.d.ts +14 -0
  130. package/dist/ui/search/ViewTabs.js +42 -0
  131. package/dist/ui/shell/Activate.d.ts +6 -0
  132. package/dist/ui/shell/Activate.js +39 -0
  133. package/dist/ui/shell/CommandPalette.d.ts +7 -1
  134. package/dist/ui/shell/CommandPalette.js +16 -2
  135. package/dist/ui/shell/Consent.d.ts +5 -0
  136. package/dist/ui/shell/Consent.js +35 -0
  137. package/dist/ui/shell/Home.js +85 -16
  138. package/dist/ui/shell/Sidebar.d.ts +27 -0
  139. package/dist/ui/shell/Sidebar.js +77 -0
  140. package/dist/ui/shell/TwoFactorSetup.d.ts +5 -0
  141. package/dist/ui/shell/TwoFactorSetup.js +32 -0
  142. package/dist/ui/shell/shortcuts.d.ts +3 -0
  143. package/dist/ui/shell/shortcuts.js +13 -4
  144. package/dist/ui/styles.css +70 -28
  145. package/dist/ui/views/DateField.d.ts +10 -0
  146. package/dist/ui/views/DateField.js +129 -0
  147. package/dist/ui/views/FormView.js +161 -21
  148. package/dist/ui/views/ListView.d.ts +2 -0
  149. package/dist/ui/views/ListView.js +57 -25
  150. package/dist/ui/views/StatusChip.d.ts +10 -0
  151. package/dist/ui/views/StatusChip.js +22 -0
  152. package/dist/ui/views/widgets.d.ts +3 -0
  153. package/dist/ui/views/widgets.js +26 -8
  154. package/dist/views/types.d.ts +7 -0
  155. package/dist/views/validate.js +4 -0
  156. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 64da9b36804c7c1a
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 6fa2eddf8616292c
2
2
  // Schema view of module `purchase_portal` (RFC 0002 §7.7): the models it owns or depends on, with the extensions it can see.
3
3
  import type { F } from '../../server/orm.js';
4
4
 
@@ -11,9 +11,11 @@ export interface SchemaView {
11
11
  readonly 'audit.event': AuditEvent;
12
12
  readonly 'auth.api_key': AuthApiKey;
13
13
  readonly 'auth.credential': AuthCredential;
14
+ readonly 'auth.policy': AuthPolicy;
14
15
  readonly 'auth.session': AuthSession;
15
16
  readonly 'auth.user_grant': AuthUserGrant;
16
17
  readonly 'auth.user_group': AuthUserGroup;
18
+ readonly 'kosh.image': KoshImage;
17
19
  readonly 'kosh.saved_view': KoshSavedView;
18
20
  readonly 'mail.activity': MailActivity;
19
21
  readonly 'mail.activity.type': MailActivityType;
@@ -22,6 +24,10 @@ export interface SchemaView {
22
24
  readonly 'mail.follower': MailFollower;
23
25
  readonly 'mail.message': MailMessage;
24
26
  readonly 'mail.message.reaction': MailMessageReaction;
27
+ readonly 'oauth.app': OauthApp;
28
+ readonly 'oauth.code': OauthCode;
29
+ readonly 'oauth.grant': OauthGrant;
30
+ readonly 'oauth.token': OauthToken;
25
31
  readonly 'portal.announcement': PortalAnnouncement;
26
32
  readonly 'portal.invitation': PortalInvitation;
27
33
  readonly 'portal.signature': PortalSignature;
@@ -222,6 +228,26 @@ export interface AuthCredential {
222
228
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
223
229
  }
224
230
 
231
+ /** `auth.policy` (owner: base). */
232
+ export interface AuthPolicy {
233
+ readonly name: 'auth.policy';
234
+ readonly fields: {
235
+ readonly id: F.Id<'auth.policy'>;
236
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
237
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
238
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
239
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
240
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
241
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
242
+ readonly sessionDays: F.Integer;
243
+ };
244
+ readonly methods: AuthPolicyMethods;
245
+ }
246
+
247
+ /** Methods of `auth.policy`: declared ones and transitions. */
248
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
249
+ }
250
+
225
251
  /** `auth.session` (owner: base). */
226
252
  export interface AuthSession {
227
253
  readonly name: 'auth.session';
@@ -294,6 +320,29 @@ export interface AuthUserGroup {
294
320
  export interface AuthUserGroupMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_group'> {
295
321
  }
296
322
 
323
+ /** `kosh.image` (owner: base). */
324
+ export interface KoshImage {
325
+ readonly name: 'kosh.image';
326
+ readonly fields: {
327
+ readonly id: F.Id<'kosh.image'>;
328
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
329
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
330
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
331
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
332
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
333
+ readonly ownerModel: F.Char<{ readonly required: true }>;
334
+ readonly ownerId: F.Integer<{ readonly required: true }>;
335
+ readonly mime: F.Char<{ readonly required: true }>;
336
+ readonly data: F.Text<{ readonly required: true }>;
337
+ readonly hash: F.Char<{ readonly required: true }>;
338
+ };
339
+ readonly methods: KoshImageMethods;
340
+ }
341
+
342
+ /** Methods of `kosh.image`: declared ones and transitions. */
343
+ export interface KoshImageMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.image'> {
344
+ }
345
+
297
346
  /** `kosh.saved_view` (owner: base). */
298
347
  export interface KoshSavedView {
299
348
  readonly name: 'kosh.saved_view';
@@ -496,6 +545,105 @@ export interface MailMessageReaction {
496
545
  export interface MailMessageReactionMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message.reaction'> {
497
546
  }
498
547
 
548
+ /** `oauth.app` (owner: base). */
549
+ export interface OauthApp {
550
+ readonly name: 'oauth.app';
551
+ readonly fields: {
552
+ readonly id: F.Id<'oauth.app'>;
553
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
554
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
555
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
556
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
557
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
558
+ readonly name: F.Char<{ readonly required: true }>;
559
+ readonly clientId: F.Char<{ readonly required: true }>;
560
+ readonly secretHash: F.Char;
561
+ readonly confidential: F.Bool<{ readonly required: true; readonly default: true }>;
562
+ readonly redirectUris: F.Text<{ readonly required: true }>;
563
+ readonly scopes: F.Char<{ readonly required: true }>;
564
+ readonly homepage: F.Char;
565
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
566
+ readonly owner: F.Many2one<'res.users'>;
567
+ };
568
+ readonly methods: OauthAppMethods;
569
+ }
570
+
571
+ /** Methods of `oauth.app`: declared ones and transitions. */
572
+ export interface OauthAppMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.app'> {
573
+ }
574
+
575
+ /** `oauth.code` (owner: base). */
576
+ export interface OauthCode {
577
+ readonly name: 'oauth.code';
578
+ readonly fields: {
579
+ readonly id: F.Id<'oauth.code'>;
580
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
581
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
582
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
583
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
584
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
585
+ readonly codeHash: F.Char<{ readonly required: true }>;
586
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
587
+ readonly redirectUri: F.Char<{ readonly required: true }>;
588
+ readonly challenge: F.Char;
589
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
590
+ readonly used: F.Bool<{ readonly required: true; readonly default: true }>;
591
+ };
592
+ readonly methods: OauthCodeMethods;
593
+ }
594
+
595
+ /** Methods of `oauth.code`: declared ones and transitions. */
596
+ export interface OauthCodeMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.code'> {
597
+ }
598
+
599
+ /** `oauth.grant` (owner: base). */
600
+ export interface OauthGrant {
601
+ readonly name: 'oauth.grant';
602
+ readonly fields: {
603
+ readonly id: F.Id<'oauth.grant'>;
604
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
605
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
606
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
607
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
608
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
609
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
610
+ readonly app: F.Many2one<'oauth.app', { readonly required: true }>;
611
+ readonly scopes: F.Char<{ readonly required: true }>;
612
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
613
+ readonly lastUsedAt: F.Datetime;
614
+ };
615
+ readonly methods: OauthGrantMethods;
616
+ }
617
+
618
+ /** Methods of `oauth.grant`: declared ones and transitions. */
619
+ export interface OauthGrantMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.grant'> {
620
+ }
621
+
622
+ /** `oauth.token` (owner: base). */
623
+ export interface OauthToken {
624
+ readonly name: 'oauth.token';
625
+ readonly fields: {
626
+ readonly id: F.Id<'oauth.token'>;
627
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
628
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
629
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
630
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
631
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
632
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
633
+ readonly accessHash: F.Char<{ readonly required: true }>;
634
+ readonly refreshHash: F.Char<{ readonly required: true }>;
635
+ readonly accessExpiresAt: F.Datetime<{ readonly required: true }>;
636
+ readonly refreshExpiresAt: F.Datetime<{ readonly required: true }>;
637
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
638
+ readonly rotated: F.Bool<{ readonly required: true; readonly default: true }>;
639
+ };
640
+ readonly methods: OauthTokenMethods;
641
+ }
642
+
643
+ /** Methods of `oauth.token`: declared ones and transitions. */
644
+ export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
645
+ }
646
+
499
647
  /** `portal.announcement` (owner: portal). */
500
648
  export interface PortalAnnouncement {
501
649
  readonly name: 'portal.announcement';
@@ -706,6 +854,13 @@ export interface ResCompany {
706
854
  readonly name: F.Char<{ readonly required: true }>;
707
855
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
708
856
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
857
+ readonly accentColor: F.Char;
858
+ readonly street: F.Char;
859
+ readonly city: F.Char;
860
+ readonly zip: F.Char;
861
+ readonly email: F.Char;
862
+ readonly phone: F.Char;
863
+ readonly website: F.Char;
709
864
  };
710
865
  readonly methods: ResCompanyMethods;
711
866
  }
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: e1b93f7adda98b39
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: f361b5260d093aaf
2
2
  // Bindings of module `sale_account`: import the definition API from here to get types scoped to what it can see.
3
3
  export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
4
4
  import { definitions } from '../../server/orm.js';
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: e1b93f7adda98b39
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: f361b5260d093aaf
2
2
  // Schema view of module `sale_account` (RFC 0002 §7.7): the models it owns or depends on, with the extensions it can see.
3
3
  import type { F } from '../../server/orm.js';
4
4
 
@@ -24,9 +24,11 @@ export interface SchemaView {
24
24
  readonly 'audit.event': AuditEvent;
25
25
  readonly 'auth.api_key': AuthApiKey;
26
26
  readonly 'auth.credential': AuthCredential;
27
+ readonly 'auth.policy': AuthPolicy;
27
28
  readonly 'auth.session': AuthSession;
28
29
  readonly 'auth.user_grant': AuthUserGrant;
29
30
  readonly 'auth.user_group': AuthUserGroup;
31
+ readonly 'kosh.image': KoshImage;
30
32
  readonly 'kosh.saved_view': KoshSavedView;
31
33
  readonly 'mail.activity': MailActivity;
32
34
  readonly 'mail.activity.type': MailActivityType;
@@ -35,6 +37,10 @@ export interface SchemaView {
35
37
  readonly 'mail.follower': MailFollower;
36
38
  readonly 'mail.message': MailMessage;
37
39
  readonly 'mail.message.reaction': MailMessageReaction;
40
+ readonly 'oauth.app': OauthApp;
41
+ readonly 'oauth.code': OauthCode;
42
+ readonly 'oauth.grant': OauthGrant;
43
+ readonly 'oauth.token': OauthToken;
38
44
  readonly 'product.category': ProductCategory;
39
45
  readonly 'product.product': ProductProduct;
40
46
  readonly 'report.dashboard': ReportDashboard;
@@ -634,6 +640,26 @@ export interface AuthCredential {
634
640
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
635
641
  }
636
642
 
643
+ /** `auth.policy` (owner: base). */
644
+ export interface AuthPolicy {
645
+ readonly name: 'auth.policy';
646
+ readonly fields: {
647
+ readonly id: F.Id<'auth.policy'>;
648
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
649
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
650
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
651
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
652
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
653
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
654
+ readonly sessionDays: F.Integer;
655
+ };
656
+ readonly methods: AuthPolicyMethods;
657
+ }
658
+
659
+ /** Methods of `auth.policy`: declared ones and transitions. */
660
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
661
+ }
662
+
637
663
  /** `auth.session` (owner: base). */
638
664
  export interface AuthSession {
639
665
  readonly name: 'auth.session';
@@ -706,6 +732,29 @@ export interface AuthUserGroup {
706
732
  export interface AuthUserGroupMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_group'> {
707
733
  }
708
734
 
735
+ /** `kosh.image` (owner: base). */
736
+ export interface KoshImage {
737
+ readonly name: 'kosh.image';
738
+ readonly fields: {
739
+ readonly id: F.Id<'kosh.image'>;
740
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
741
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
742
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
743
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
744
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
745
+ readonly ownerModel: F.Char<{ readonly required: true }>;
746
+ readonly ownerId: F.Integer<{ readonly required: true }>;
747
+ readonly mime: F.Char<{ readonly required: true }>;
748
+ readonly data: F.Text<{ readonly required: true }>;
749
+ readonly hash: F.Char<{ readonly required: true }>;
750
+ };
751
+ readonly methods: KoshImageMethods;
752
+ }
753
+
754
+ /** Methods of `kosh.image`: declared ones and transitions. */
755
+ export interface KoshImageMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.image'> {
756
+ }
757
+
709
758
  /** `kosh.saved_view` (owner: base). */
710
759
  export interface KoshSavedView {
711
760
  readonly name: 'kosh.saved_view';
@@ -908,6 +957,105 @@ export interface MailMessageReaction {
908
957
  export interface MailMessageReactionMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message.reaction'> {
909
958
  }
910
959
 
960
+ /** `oauth.app` (owner: base). */
961
+ export interface OauthApp {
962
+ readonly name: 'oauth.app';
963
+ readonly fields: {
964
+ readonly id: F.Id<'oauth.app'>;
965
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
966
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
967
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
968
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
969
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
970
+ readonly name: F.Char<{ readonly required: true }>;
971
+ readonly clientId: F.Char<{ readonly required: true }>;
972
+ readonly secretHash: F.Char;
973
+ readonly confidential: F.Bool<{ readonly required: true; readonly default: true }>;
974
+ readonly redirectUris: F.Text<{ readonly required: true }>;
975
+ readonly scopes: F.Char<{ readonly required: true }>;
976
+ readonly homepage: F.Char;
977
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
978
+ readonly owner: F.Many2one<'res.users'>;
979
+ };
980
+ readonly methods: OauthAppMethods;
981
+ }
982
+
983
+ /** Methods of `oauth.app`: declared ones and transitions. */
984
+ export interface OauthAppMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.app'> {
985
+ }
986
+
987
+ /** `oauth.code` (owner: base). */
988
+ export interface OauthCode {
989
+ readonly name: 'oauth.code';
990
+ readonly fields: {
991
+ readonly id: F.Id<'oauth.code'>;
992
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
993
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
994
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
995
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
996
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
997
+ readonly codeHash: F.Char<{ readonly required: true }>;
998
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
999
+ readonly redirectUri: F.Char<{ readonly required: true }>;
1000
+ readonly challenge: F.Char;
1001
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
1002
+ readonly used: F.Bool<{ readonly required: true; readonly default: true }>;
1003
+ };
1004
+ readonly methods: OauthCodeMethods;
1005
+ }
1006
+
1007
+ /** Methods of `oauth.code`: declared ones and transitions. */
1008
+ export interface OauthCodeMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.code'> {
1009
+ }
1010
+
1011
+ /** `oauth.grant` (owner: base). */
1012
+ export interface OauthGrant {
1013
+ readonly name: 'oauth.grant';
1014
+ readonly fields: {
1015
+ readonly id: F.Id<'oauth.grant'>;
1016
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1017
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1018
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1019
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1020
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1021
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
1022
+ readonly app: F.Many2one<'oauth.app', { readonly required: true }>;
1023
+ readonly scopes: F.Char<{ readonly required: true }>;
1024
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
1025
+ readonly lastUsedAt: F.Datetime;
1026
+ };
1027
+ readonly methods: OauthGrantMethods;
1028
+ }
1029
+
1030
+ /** Methods of `oauth.grant`: declared ones and transitions. */
1031
+ export interface OauthGrantMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.grant'> {
1032
+ }
1033
+
1034
+ /** `oauth.token` (owner: base). */
1035
+ export interface OauthToken {
1036
+ readonly name: 'oauth.token';
1037
+ readonly fields: {
1038
+ readonly id: F.Id<'oauth.token'>;
1039
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1040
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
1041
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
1042
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
1043
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
1044
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
1045
+ readonly accessHash: F.Char<{ readonly required: true }>;
1046
+ readonly refreshHash: F.Char<{ readonly required: true }>;
1047
+ readonly accessExpiresAt: F.Datetime<{ readonly required: true }>;
1048
+ readonly refreshExpiresAt: F.Datetime<{ readonly required: true }>;
1049
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
1050
+ readonly rotated: F.Bool<{ readonly required: true; readonly default: true }>;
1051
+ };
1052
+ readonly methods: OauthTokenMethods;
1053
+ }
1054
+
1055
+ /** Methods of `oauth.token`: declared ones and transitions. */
1056
+ export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
1057
+ }
1058
+
911
1059
  /** `product.category` (owner: product). */
912
1060
  export interface ProductCategory {
913
1061
  readonly name: 'product.category';
@@ -1128,6 +1276,13 @@ export interface ResCompany {
1128
1276
  readonly name: F.Char<{ readonly required: true }>;
1129
1277
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1130
1278
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
1279
+ readonly accentColor: F.Char;
1280
+ readonly street: F.Char;
1281
+ readonly city: F.Char;
1282
+ readonly zip: F.Char;
1283
+ readonly email: F.Char;
1284
+ readonly phone: F.Char;
1285
+ readonly website: F.Char;
1131
1286
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1132
1287
  readonly chartTemplate: F.Char; // accounting
1133
1288
  readonly country: F.Char; // accounting
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 5a5c7561d67ef3cf
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 8041dee6bf9e07ba
2
2
  // Bindings of module `sale_portal`: import the definition API from here to get types scoped to what it can see.
3
3
  export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
4
4
  import { definitions } from '../../server/orm.js';
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 5a5c7561d67ef3cf
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 8041dee6bf9e07ba
2
2
  // Schema view of module `sale_portal` (RFC 0002 §7.7): the models it owns or depends on, with the extensions it can see.
3
3
  import type { F } from '../../server/orm.js';
4
4
 
@@ -8,9 +8,11 @@ export interface SchemaView {
8
8
  readonly 'audit.event': AuditEvent;
9
9
  readonly 'auth.api_key': AuthApiKey;
10
10
  readonly 'auth.credential': AuthCredential;
11
+ readonly 'auth.policy': AuthPolicy;
11
12
  readonly 'auth.session': AuthSession;
12
13
  readonly 'auth.user_grant': AuthUserGrant;
13
14
  readonly 'auth.user_group': AuthUserGroup;
15
+ readonly 'kosh.image': KoshImage;
14
16
  readonly 'kosh.saved_view': KoshSavedView;
15
17
  readonly 'mail.activity': MailActivity;
16
18
  readonly 'mail.activity.type': MailActivityType;
@@ -19,6 +21,10 @@ export interface SchemaView {
19
21
  readonly 'mail.follower': MailFollower;
20
22
  readonly 'mail.message': MailMessage;
21
23
  readonly 'mail.message.reaction': MailMessageReaction;
24
+ readonly 'oauth.app': OauthApp;
25
+ readonly 'oauth.code': OauthCode;
26
+ readonly 'oauth.grant': OauthGrant;
27
+ readonly 'oauth.token': OauthToken;
22
28
  readonly 'portal.announcement': PortalAnnouncement;
23
29
  readonly 'portal.invitation': PortalInvitation;
24
30
  readonly 'portal.signature': PortalSignature;
@@ -139,6 +145,26 @@ export interface AuthCredential {
139
145
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
140
146
  }
141
147
 
148
+ /** `auth.policy` (owner: base). */
149
+ export interface AuthPolicy {
150
+ readonly name: 'auth.policy';
151
+ readonly fields: {
152
+ readonly id: F.Id<'auth.policy'>;
153
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
154
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
155
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
156
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
157
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
158
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
159
+ readonly sessionDays: F.Integer;
160
+ };
161
+ readonly methods: AuthPolicyMethods;
162
+ }
163
+
164
+ /** Methods of `auth.policy`: declared ones and transitions. */
165
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
166
+ }
167
+
142
168
  /** `auth.session` (owner: base). */
143
169
  export interface AuthSession {
144
170
  readonly name: 'auth.session';
@@ -211,6 +237,29 @@ export interface AuthUserGroup {
211
237
  export interface AuthUserGroupMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.user_group'> {
212
238
  }
213
239
 
240
+ /** `kosh.image` (owner: base). */
241
+ export interface KoshImage {
242
+ readonly name: 'kosh.image';
243
+ readonly fields: {
244
+ readonly id: F.Id<'kosh.image'>;
245
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
246
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
247
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
248
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
249
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
250
+ readonly ownerModel: F.Char<{ readonly required: true }>;
251
+ readonly ownerId: F.Integer<{ readonly required: true }>;
252
+ readonly mime: F.Char<{ readonly required: true }>;
253
+ readonly data: F.Text<{ readonly required: true }>;
254
+ readonly hash: F.Char<{ readonly required: true }>;
255
+ };
256
+ readonly methods: KoshImageMethods;
257
+ }
258
+
259
+ /** Methods of `kosh.image`: declared ones and transitions. */
260
+ export interface KoshImageMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'kosh.image'> {
261
+ }
262
+
214
263
  /** `kosh.saved_view` (owner: base). */
215
264
  export interface KoshSavedView {
216
265
  readonly name: 'kosh.saved_view';
@@ -413,6 +462,105 @@ export interface MailMessageReaction {
413
462
  export interface MailMessageReactionMethods extends F.Methods<typeof import('../../messaging/index.js').messagingShutro, 'mail.message.reaction'> {
414
463
  }
415
464
 
465
+ /** `oauth.app` (owner: base). */
466
+ export interface OauthApp {
467
+ readonly name: 'oauth.app';
468
+ readonly fields: {
469
+ readonly id: F.Id<'oauth.app'>;
470
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
471
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
472
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
473
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
474
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
475
+ readonly name: F.Char<{ readonly required: true }>;
476
+ readonly clientId: F.Char<{ readonly required: true }>;
477
+ readonly secretHash: F.Char;
478
+ readonly confidential: F.Bool<{ readonly required: true; readonly default: true }>;
479
+ readonly redirectUris: F.Text<{ readonly required: true }>;
480
+ readonly scopes: F.Char<{ readonly required: true }>;
481
+ readonly homepage: F.Char;
482
+ readonly active: F.Bool<{ readonly required: true; readonly default: true }>;
483
+ readonly owner: F.Many2one<'res.users'>;
484
+ };
485
+ readonly methods: OauthAppMethods;
486
+ }
487
+
488
+ /** Methods of `oauth.app`: declared ones and transitions. */
489
+ export interface OauthAppMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.app'> {
490
+ }
491
+
492
+ /** `oauth.code` (owner: base). */
493
+ export interface OauthCode {
494
+ readonly name: 'oauth.code';
495
+ readonly fields: {
496
+ readonly id: F.Id<'oauth.code'>;
497
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
498
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
499
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
500
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
501
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
502
+ readonly codeHash: F.Char<{ readonly required: true }>;
503
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
504
+ readonly redirectUri: F.Char<{ readonly required: true }>;
505
+ readonly challenge: F.Char;
506
+ readonly expiresAt: F.Datetime<{ readonly required: true }>;
507
+ readonly used: F.Bool<{ readonly required: true; readonly default: true }>;
508
+ };
509
+ readonly methods: OauthCodeMethods;
510
+ }
511
+
512
+ /** Methods of `oauth.code`: declared ones and transitions. */
513
+ export interface OauthCodeMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.code'> {
514
+ }
515
+
516
+ /** `oauth.grant` (owner: base). */
517
+ export interface OauthGrant {
518
+ readonly name: 'oauth.grant';
519
+ readonly fields: {
520
+ readonly id: F.Id<'oauth.grant'>;
521
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
522
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
523
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
524
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
525
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
526
+ readonly user: F.Many2one<'res.users', { readonly required: true }>;
527
+ readonly app: F.Many2one<'oauth.app', { readonly required: true }>;
528
+ readonly scopes: F.Char<{ readonly required: true }>;
529
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
530
+ readonly lastUsedAt: F.Datetime;
531
+ };
532
+ readonly methods: OauthGrantMethods;
533
+ }
534
+
535
+ /** Methods of `oauth.grant`: declared ones and transitions. */
536
+ export interface OauthGrantMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.grant'> {
537
+ }
538
+
539
+ /** `oauth.token` (owner: base). */
540
+ export interface OauthToken {
541
+ readonly name: 'oauth.token';
542
+ readonly fields: {
543
+ readonly id: F.Id<'oauth.token'>;
544
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
545
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
546
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
547
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
548
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
549
+ readonly grant: F.Many2one<'oauth.grant', { readonly required: true }>;
550
+ readonly accessHash: F.Char<{ readonly required: true }>;
551
+ readonly refreshHash: F.Char<{ readonly required: true }>;
552
+ readonly accessExpiresAt: F.Datetime<{ readonly required: true }>;
553
+ readonly refreshExpiresAt: F.Datetime<{ readonly required: true }>;
554
+ readonly revoked: F.Bool<{ readonly required: true; readonly default: true }>;
555
+ readonly rotated: F.Bool<{ readonly required: true; readonly default: true }>;
556
+ };
557
+ readonly methods: OauthTokenMethods;
558
+ }
559
+
560
+ /** Methods of `oauth.token`: declared ones and transitions. */
561
+ export interface OauthTokenMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'oauth.token'> {
562
+ }
563
+
416
564
  /** `portal.announcement` (owner: portal). */
417
565
  export interface PortalAnnouncement {
418
566
  readonly name: 'portal.announcement';
@@ -552,6 +700,13 @@ export interface ResCompany {
552
700
  readonly name: F.Char<{ readonly required: true }>;
553
701
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
554
702
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
703
+ readonly accentColor: F.Char;
704
+ readonly street: F.Char;
705
+ readonly city: F.Char;
706
+ readonly zip: F.Char;
707
+ readonly email: F.Char;
708
+ readonly phone: F.Char;
709
+ readonly website: F.Char;
555
710
  };
556
711
  readonly methods: ResCompanyMethods;
557
712
  }
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 698d6a45d2c40df8
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 7dbe00f1ac846381
2
2
  // Bindings of module `sale_project`: import the definition API from here to get types scoped to what it can see.
3
3
  export { defineModel, defineModule, extendModel, f, replace } from '../../server/orm.js';
4
4
  import { definitions } from '../../server/orm.js';