shutro-erp 0.3.2 → 0.3.3

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 (130) hide show
  1. package/dist/account_portal/.kosh/bindings.js +1 -1
  2. package/dist/account_portal/.kosh/schema.d.ts +29 -1
  3. package/dist/accounting/.kosh/bindings.js +1 -1
  4. package/dist/accounting/.kosh/schema.d.ts +29 -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 +29 -1
  8. package/dist/l10n_bd/.kosh/bindings.js +1 -1
  9. package/dist/l10n_bd/.kosh/schema.d.ts +29 -1
  10. package/dist/l10n_in/.kosh/bindings.js +1 -1
  11. package/dist/l10n_in/.kosh/schema.d.ts +29 -4
  12. package/dist/l10n_in/module.d.ts +0 -62
  13. package/dist/l10n_in/module.js +2 -4
  14. package/dist/payment/.kosh/bindings.js +1 -1
  15. package/dist/payment/.kosh/schema.d.ts +30 -2
  16. package/dist/payment/bkash.d.ts +28 -0
  17. package/dist/payment/bkash.js +169 -0
  18. package/dist/payment/index.d.ts +4 -0
  19. package/dist/payment/index.js +80 -24
  20. package/dist/payment/module.d.ts +7 -4
  21. package/dist/payment/module.js +3 -0
  22. package/dist/payment/money.d.ts +7 -0
  23. package/dist/payment/money.js +37 -0
  24. package/dist/payment/providers.d.ts +13 -2
  25. package/dist/payment/razorpay.d.ts +12 -0
  26. package/dist/payment/razorpay.js +149 -0
  27. package/dist/payment/sslcommerz.js +1 -1
  28. package/dist/payment/stripe.d.ts +15 -0
  29. package/dist/payment/stripe.js +182 -0
  30. package/dist/permissions/admin.d.ts +3 -0
  31. package/dist/permissions/admin.js +108 -10
  32. package/dist/permissions/index.d.ts +1 -0
  33. package/dist/permissions/index.js +3 -0
  34. package/dist/permissions/roles.d.ts +2 -0
  35. package/dist/permissions/roles.js +236 -0
  36. package/dist/portal/.kosh/bindings.js +1 -1
  37. package/dist/portal/.kosh/schema.d.ts +29 -1
  38. package/dist/product/.kosh/bindings.js +1 -1
  39. package/dist/product/.kosh/schema.d.ts +29 -1
  40. package/dist/project/.kosh/bindings.js +1 -1
  41. package/dist/project/.kosh/schema.d.ts +29 -1
  42. package/dist/project_portal/.kosh/bindings.js +1 -1
  43. package/dist/project_portal/.kosh/schema.d.ts +29 -1
  44. package/dist/purchase/.kosh/bindings.js +1 -1
  45. package/dist/purchase/.kosh/schema.d.ts +29 -1
  46. package/dist/purchase_account/.kosh/bindings.js +1 -1
  47. package/dist/purchase_account/.kosh/schema.d.ts +29 -1
  48. package/dist/purchase_portal/.kosh/bindings.js +1 -1
  49. package/dist/purchase_portal/.kosh/schema.d.ts +29 -1
  50. package/dist/sale_account/.kosh/bindings.js +1 -1
  51. package/dist/sale_account/.kosh/schema.d.ts +29 -1
  52. package/dist/sale_portal/.kosh/bindings.js +1 -1
  53. package/dist/sale_portal/.kosh/schema.d.ts +29 -1
  54. package/dist/sale_project/.kosh/bindings.js +1 -1
  55. package/dist/sale_project/.kosh/schema.d.ts +29 -1
  56. package/dist/sales/.kosh/bindings.js +1 -1
  57. package/dist/sales/.kosh/schema.d.ts +29 -1
  58. package/dist/server/auth/base.js +22 -0
  59. package/dist/server/auth/routes.d.ts +3 -0
  60. package/dist/server/auth/routes.js +29 -0
  61. package/dist/server/auth/service.d.ts +52 -0
  62. package/dist/server/auth/service.js +168 -3
  63. package/dist/server/identity.d.ts +2 -0
  64. package/dist/server/index.d.ts +1 -1
  65. package/dist/server/server.js +11 -3
  66. package/dist/settings/company.d.ts +34 -0
  67. package/dist/settings/company.js +187 -0
  68. package/dist/settings/index.d.ts +10 -10
  69. package/dist/settings/index.js +159 -30
  70. package/dist/settings/people.d.ts +16 -0
  71. package/dist/settings/people.js +505 -0
  72. package/dist/settings/security.d.ts +13 -0
  73. package/dist/settings/security.js +158 -0
  74. package/dist/settings/web/AuditPage.d.ts +8 -0
  75. package/dist/settings/web/AuditPage.js +74 -0
  76. package/dist/settings/web/CompaniesPage.d.ts +8 -0
  77. package/dist/settings/web/CompaniesPage.js +52 -0
  78. package/dist/settings/web/CompanyPage.d.ts +9 -0
  79. package/dist/settings/web/CompanyPage.js +94 -0
  80. package/dist/settings/web/OverviewPage.d.ts +9 -0
  81. package/dist/settings/web/OverviewPage.js +66 -0
  82. package/dist/settings/web/PeoplePage.d.ts +9 -0
  83. package/dist/settings/web/PeoplePage.js +163 -0
  84. package/dist/settings/web/ProfilePage.d.ts +14 -0
  85. package/dist/settings/web/ProfilePage.js +194 -0
  86. package/dist/settings/web/RolesEditor.d.ts +35 -0
  87. package/dist/settings/web/RolesEditor.js +49 -0
  88. package/dist/settings/web/RolesPage.d.ts +9 -0
  89. package/dist/settings/web/RolesPage.js +296 -0
  90. package/dist/settings/web/SecurityPage.d.ts +8 -0
  91. package/dist/settings/web/SecurityPage.js +81 -0
  92. package/dist/settings/web/index.d.ts +9 -0
  93. package/dist/settings/web/index.js +26 -1
  94. package/dist/settings/web/messages.js +566 -0
  95. package/dist/ui/api.d.ts +4 -0
  96. package/dist/ui/app.d.ts +5 -0
  97. package/dist/ui/app.js +108 -31
  98. package/dist/ui/components/primitives.d.ts +9 -1
  99. package/dist/ui/components/primitives.js +12 -4
  100. package/dist/ui/context.d.ts +10 -1
  101. package/dist/ui/context.js +60 -2
  102. package/dist/ui/i18n/messages.d.ts +46 -0
  103. package/dist/ui/i18n/messages.js +92 -0
  104. package/dist/ui/index.d.ts +2 -1
  105. package/dist/ui/index.js +2 -1
  106. package/dist/ui/lib/accent.d.ts +13 -0
  107. package/dist/ui/lib/accent.js +36 -0
  108. package/dist/ui/shell/Activate.d.ts +6 -0
  109. package/dist/ui/shell/Activate.js +39 -0
  110. package/dist/ui/shell/CommandPalette.d.ts +7 -1
  111. package/dist/ui/shell/CommandPalette.js +16 -2
  112. package/dist/ui/shell/Sidebar.d.ts +27 -0
  113. package/dist/ui/shell/Sidebar.js +84 -0
  114. package/dist/ui/shell/TwoFactorSetup.d.ts +5 -0
  115. package/dist/ui/shell/TwoFactorSetup.js +32 -0
  116. package/dist/ui/shell/shortcuts.d.ts +3 -0
  117. package/dist/ui/shell/shortcuts.js +13 -4
  118. package/dist/ui/styles.css +70 -28
  119. package/dist/ui/views/DateField.d.ts +10 -0
  120. package/dist/ui/views/DateField.js +129 -0
  121. package/dist/ui/views/FormView.js +161 -21
  122. package/dist/ui/views/ListView.d.ts +2 -0
  123. package/dist/ui/views/ListView.js +8 -3
  124. package/dist/ui/views/StatusChip.d.ts +10 -0
  125. package/dist/ui/views/StatusChip.js +22 -0
  126. package/dist/ui/views/widgets.d.ts +3 -0
  127. package/dist/ui/views/widgets.js +26 -8
  128. package/dist/views/types.d.ts +7 -0
  129. package/dist/views/validate.js +4 -0
  130. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 0ea5d21ac5b24166
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 668898d9db81475e
2
2
  // Bindings of module `account_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: 0ea5d21ac5b24166
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 668898d9db81475e
2
2
  // Schema view of module `account_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
 
@@ -24,6 +24,7 @@ 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;
@@ -634,6 +635,26 @@ export interface AuthCredential {
634
635
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
635
636
  }
636
637
 
638
+ /** `auth.policy` (owner: base). */
639
+ export interface AuthPolicy {
640
+ readonly name: 'auth.policy';
641
+ readonly fields: {
642
+ readonly id: F.Id<'auth.policy'>;
643
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
644
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
645
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
646
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
647
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
648
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
649
+ readonly sessionDays: F.Integer;
650
+ };
651
+ readonly methods: AuthPolicyMethods;
652
+ }
653
+
654
+ /** Methods of `auth.policy`: declared ones and transitions. */
655
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
656
+ }
657
+
637
658
  /** `auth.session` (owner: base). */
638
659
  export interface AuthSession {
639
660
  readonly name: 'auth.session';
@@ -1200,6 +1221,13 @@ export interface ResCompany {
1200
1221
  readonly name: F.Char<{ readonly required: true }>;
1201
1222
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1202
1223
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
1224
+ readonly accentColor: F.Char;
1225
+ readonly street: F.Char;
1226
+ readonly city: F.Char;
1227
+ readonly zip: F.Char;
1228
+ readonly email: F.Char;
1229
+ readonly phone: F.Char;
1230
+ readonly website: F.Char;
1203
1231
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1204
1232
  readonly chartTemplate: F.Char; // accounting
1205
1233
  readonly country: F.Char; // accounting
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: c83d584195f8dd43
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: e7d2cbddec9ade69
2
2
  // Bindings of module `accounting`: 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: c83d584195f8dd43
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: e7d2cbddec9ade69
2
2
  // Schema view of module `accounting` (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,6 +24,7 @@ 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;
@@ -631,6 +632,26 @@ export interface AuthCredential {
631
632
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
632
633
  }
633
634
 
635
+ /** `auth.policy` (owner: base). */
636
+ export interface AuthPolicy {
637
+ readonly name: 'auth.policy';
638
+ readonly fields: {
639
+ readonly id: F.Id<'auth.policy'>;
640
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
641
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
642
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
643
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
644
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
645
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
646
+ readonly sessionDays: F.Integer;
647
+ };
648
+ readonly methods: AuthPolicyMethods;
649
+ }
650
+
651
+ /** Methods of `auth.policy`: declared ones and transitions. */
652
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
653
+ }
654
+
634
655
  /** `auth.session` (owner: base). */
635
656
  export interface AuthSession {
636
657
  readonly name: 'auth.session';
@@ -1125,6 +1146,13 @@ export interface ResCompany {
1125
1146
  readonly name: F.Char<{ readonly required: true }>;
1126
1147
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1127
1148
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
1149
+ readonly accentColor: F.Char;
1150
+ readonly street: F.Char;
1151
+ readonly city: F.Char;
1152
+ readonly zip: F.Char;
1153
+ readonly email: F.Char;
1154
+ readonly phone: F.Char;
1155
+ readonly website: F.Char;
1128
1156
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1129
1157
  readonly chartTemplate: F.Char; // accounting
1130
1158
  readonly country: F.Char; // accounting
@@ -42,7 +42,7 @@ export function createAssistant(options = {}) {
42
42
  menus: [
43
43
  {
44
44
  id: 'assistant.settings',
45
- parent: 'settings.root',
45
+ parent: 'settings.group_apps',
46
46
  label: 'AI assistant',
47
47
  action: 'assistant.action_settings',
48
48
  sequence: 50,
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 2271aaa68e1a18a5
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 31cf57953410c779
2
2
  // Bindings of module `contacts`: 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: 2271aaa68e1a18a5
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 31cf57953410c779
2
2
  // Schema view of module `contacts` (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
 
@@ -7,6 +7,7 @@ export interface SchemaView {
7
7
  readonly 'audit.event': AuditEvent;
8
8
  readonly 'auth.api_key': AuthApiKey;
9
9
  readonly 'auth.credential': AuthCredential;
10
+ readonly 'auth.policy': AuthPolicy;
10
11
  readonly 'auth.session': AuthSession;
11
12
  readonly 'auth.user_grant': AuthUserGrant;
12
13
  readonly 'auth.user_group': AuthUserGroup;
@@ -94,6 +95,26 @@ export interface AuthCredential {
94
95
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
95
96
  }
96
97
 
98
+ /** `auth.policy` (owner: base). */
99
+ export interface AuthPolicy {
100
+ readonly name: 'auth.policy';
101
+ readonly fields: {
102
+ readonly id: F.Id<'auth.policy'>;
103
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
104
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
105
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
106
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
107
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
108
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
109
+ readonly sessionDays: F.Integer;
110
+ };
111
+ readonly methods: AuthPolicyMethods;
112
+ }
113
+
114
+ /** Methods of `auth.policy`: declared ones and transitions. */
115
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
116
+ }
117
+
97
118
  /** `auth.session` (owner: base). */
98
119
  export interface AuthSession {
99
120
  readonly name: 'auth.session';
@@ -203,6 +224,13 @@ export interface ResCompany {
203
224
  readonly name: F.Char<{ readonly required: true }>;
204
225
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
205
226
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
227
+ readonly accentColor: F.Char;
228
+ readonly street: F.Char;
229
+ readonly city: F.Char;
230
+ readonly zip: F.Char;
231
+ readonly email: F.Char;
232
+ readonly phone: F.Char;
233
+ readonly website: F.Char;
206
234
  };
207
235
  readonly methods: ResCompanyMethods;
208
236
  }
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 52fb4c0464f10e60
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 679842f099351542
2
2
  // Bindings of module `l10n_bd`: 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: 52fb4c0464f10e60
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 679842f099351542
2
2
  // Schema view of module `l10n_bd` (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,6 +24,7 @@ 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;
@@ -635,6 +636,26 @@ export interface AuthCredential {
635
636
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
636
637
  }
637
638
 
639
+ /** `auth.policy` (owner: base). */
640
+ export interface AuthPolicy {
641
+ readonly name: 'auth.policy';
642
+ readonly fields: {
643
+ readonly id: F.Id<'auth.policy'>;
644
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
645
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
646
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
647
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
648
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
649
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
650
+ readonly sessionDays: F.Integer;
651
+ };
652
+ readonly methods: AuthPolicyMethods;
653
+ }
654
+
655
+ /** Methods of `auth.policy`: declared ones and transitions. */
656
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
657
+ }
658
+
638
659
  /** `auth.session` (owner: base). */
639
660
  export interface AuthSession {
640
661
  readonly name: 'auth.session';
@@ -1129,6 +1150,13 @@ export interface ResCompany {
1129
1150
  readonly name: F.Char<{ readonly required: true }>;
1130
1151
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1131
1152
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
1153
+ readonly accentColor: F.Char;
1154
+ readonly street: F.Char;
1155
+ readonly city: F.Char;
1156
+ readonly zip: F.Char;
1157
+ readonly email: F.Char;
1158
+ readonly phone: F.Char;
1159
+ readonly website: F.Char;
1132
1160
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1133
1161
  readonly chartTemplate: F.Char; // accounting
1134
1162
  readonly country: F.Char; // accounting
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 3a48057268d9c891
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 8a0fa1636d2ec016
2
2
  // Bindings of module `l10n_in`: 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: 3a48057268d9c891
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 8a0fa1636d2ec016
2
2
  // Schema view of module `l10n_in` (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,6 +24,7 @@ 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;
@@ -657,6 +658,26 @@ export interface AuthCredential {
657
658
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
658
659
  }
659
660
 
661
+ /** `auth.policy` (owner: base). */
662
+ export interface AuthPolicy {
663
+ readonly name: 'auth.policy';
664
+ readonly fields: {
665
+ readonly id: F.Id<'auth.policy'>;
666
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
667
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
668
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
669
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
670
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
671
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
672
+ readonly sessionDays: F.Integer;
673
+ };
674
+ readonly methods: AuthPolicyMethods;
675
+ }
676
+
677
+ /** Methods of `auth.policy`: declared ones and transitions. */
678
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
679
+ }
680
+
660
681
  /** `auth.session` (owner: base). */
661
682
  export interface AuthSession {
662
683
  readonly name: 'auth.session';
@@ -1187,6 +1208,13 @@ export interface ResCompany {
1187
1208
  readonly name: F.Char<{ readonly required: true }>;
1188
1209
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1189
1210
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
1211
+ readonly accentColor: F.Char;
1212
+ readonly street: F.Char;
1213
+ readonly city: F.Char;
1214
+ readonly zip: F.Char;
1215
+ readonly email: F.Char;
1216
+ readonly phone: F.Char;
1217
+ readonly website: F.Char;
1190
1218
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1191
1219
  readonly chartTemplate: F.Char; // accounting
1192
1220
  readonly country: F.Char; // accounting
@@ -1200,9 +1228,6 @@ export interface ResCompany {
1200
1228
  readonly accountRetainedEarnings: F.Many2one<'account.account'>; // accounting
1201
1229
  readonly gstin: F.Char; // l10n_in
1202
1230
  readonly pan: F.Char; // l10n_in
1203
- readonly street: F.Char; // l10n_in
1204
- readonly city: F.Char; // l10n_in
1205
- readonly zip: F.Char; // l10n_in
1206
1231
  readonly einvoiceEnabled: F.Bool<{ readonly required: true; readonly default: true }>; // l10n_in
1207
1232
  };
1208
1233
  readonly methods: ResCompanyMethods;
@@ -51,37 +51,6 @@ export declare const CompanyGst: import("../server/orm.js").Extension<"res.compa
51
51
  readonly hasDefault: false;
52
52
  readonly readonly: false;
53
53
  }, string>;
54
- /** Its principal place of business: the seller's address on e-invoices and e-way bills. */
55
- readonly street: import("../server/orm.js").CharField<{
56
- readonly required: false;
57
- readonly computed: false;
58
- readonly inverse: false;
59
- readonly sequence: false;
60
- readonly computeName: undefined;
61
- readonly store: true;
62
- readonly hasDefault: false;
63
- readonly readonly: false;
64
- }, string>;
65
- readonly city: import("../server/orm.js").CharField<{
66
- readonly required: false;
67
- readonly computed: false;
68
- readonly inverse: false;
69
- readonly sequence: false;
70
- readonly computeName: undefined;
71
- readonly store: true;
72
- readonly hasDefault: false;
73
- readonly readonly: false;
74
- }, string>;
75
- readonly zip: import("../server/orm.js").CharField<{
76
- readonly required: false;
77
- readonly computed: false;
78
- readonly inverse: false;
79
- readonly sequence: false;
80
- readonly computeName: undefined;
81
- readonly store: true;
82
- readonly hasDefault: false;
83
- readonly readonly: false;
84
- }, string>;
85
54
  /** Customer invoices and notes are registered with the IRP when posted (turnover above the threshold). */
86
55
  readonly einvoiceEnabled: import("../server/orm.js").ScalarField<"boolean", boolean, boolean, {
87
56
  readonly required: true;
@@ -7506,37 +7475,6 @@ export declare const l10nInShutro: import("../server/orm.js").Module<readonly [i
7506
7475
  readonly hasDefault: false;
7507
7476
  readonly readonly: false;
7508
7477
  }, string>;
7509
- /** Its principal place of business: the seller's address on e-invoices and e-way bills. */
7510
- readonly street: import("../server/orm.js").CharField<{
7511
- readonly required: false;
7512
- readonly computed: false;
7513
- readonly inverse: false;
7514
- readonly sequence: false;
7515
- readonly computeName: undefined;
7516
- readonly store: true;
7517
- readonly hasDefault: false;
7518
- readonly readonly: false;
7519
- }, string>;
7520
- readonly city: import("../server/orm.js").CharField<{
7521
- readonly required: false;
7522
- readonly computed: false;
7523
- readonly inverse: false;
7524
- readonly sequence: false;
7525
- readonly computeName: undefined;
7526
- readonly store: true;
7527
- readonly hasDefault: false;
7528
- readonly readonly: false;
7529
- }, string>;
7530
- readonly zip: import("../server/orm.js").CharField<{
7531
- readonly required: false;
7532
- readonly computed: false;
7533
- readonly inverse: false;
7534
- readonly sequence: false;
7535
- readonly computeName: undefined;
7536
- readonly store: true;
7537
- readonly hasDefault: false;
7538
- readonly readonly: false;
7539
- }, string>;
7540
7478
  /** Customer invoices and notes are registered with the IRP when posted (turnover above the threshold). */
7541
7479
  readonly einvoiceEnabled: import("../server/orm.js").ScalarField<"boolean", boolean, boolean, {
7542
7480
  readonly required: true;
@@ -101,10 +101,8 @@ export const CompanyGst = extendModel('res.company', {
101
101
  fields: {
102
102
  gstin: f.char({ size: 15, label: 'GSTIN' }),
103
103
  pan: f.char({ size: 10, label: 'PAN' }),
104
- /** Its principal place of business: the seller's address on e-invoices and e-way bills. */
105
- street: f.char({ label: 'Address' }),
106
- city: f.char({ label: 'City' }),
107
- zip: f.char({ size: 6, label: 'PIN code' }),
104
+ // Its principal place of business (`street`, `city`, `zip`: the base's company address) is the seller's
105
+ // address on e-invoices and e-way bills.
108
106
  /** Customer invoices and notes are registered with the IRP when posted (turnover above the threshold). */
109
107
  einvoiceEnabled: f.boolean({ required: true, default: false, label: 'E-invoicing' }),
110
108
  },
@@ -1,4 +1,4 @@
1
- // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 51b637962c6e5497
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 3191ec61b2e1ad7f
2
2
  // Bindings of module `payment`: 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: 51b637962c6e5497
1
+ // GENERATED by `pnpm generate:models` (Shutro’s generator). Do not edit. definitions-hash: 3191ec61b2e1ad7f
2
2
  // Schema view of module `payment` (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,6 +24,7 @@ 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;
@@ -640,6 +641,26 @@ export interface AuthCredential {
640
641
  export interface AuthCredentialMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.credential'> {
641
642
  }
642
643
 
644
+ /** `auth.policy` (owner: base). */
645
+ export interface AuthPolicy {
646
+ readonly name: 'auth.policy';
647
+ readonly fields: {
648
+ readonly id: F.Id<'auth.policy'>;
649
+ readonly createdAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
650
+ readonly updatedAt: F.Datetime<{ readonly required: true; readonly readonly: true }>;
651
+ readonly createdBy: F.Many2one<'res.users', { readonly readonly: true }>;
652
+ readonly updatedBy: F.Many2one<'res.users', { readonly readonly: true }>;
653
+ readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
654
+ readonly twoFactor: F.Selection<'administrators' | 'everyone', { readonly required: true; readonly default: true }>;
655
+ readonly sessionDays: F.Integer;
656
+ };
657
+ readonly methods: AuthPolicyMethods;
658
+ }
659
+
660
+ /** Methods of `auth.policy`: declared ones and transitions. */
661
+ export interface AuthPolicyMethods extends F.Methods<typeof import('../../server/index.js').baseShutro, 'auth.policy'> {
662
+ }
663
+
643
664
  /** `auth.session` (owner: base). */
644
665
  export interface AuthSession {
645
666
  readonly name: 'auth.session';
@@ -926,7 +947,7 @@ export interface PaymentProvider {
926
947
  readonly displayName: F.Char<{ readonly required: true; readonly readonly: true; readonly compute: true }>;
927
948
  readonly company: F.Many2one<'res.company', { readonly required: true; readonly default: true }>;
928
949
  readonly name: F.Char<{ readonly required: true }>;
929
- readonly code: F.Selection<'fake' | 'sslcommerz', { readonly required: true; readonly default: true }>;
950
+ readonly code: F.Selection<'fake' | 'sslcommerz' | 'bkash' | 'razorpay' | 'stripe', { readonly required: true; readonly default: true }>;
930
951
  readonly state: F.Selection<'disabled' | 'test' | 'live', { readonly required: true; readonly default: true }>;
931
952
  readonly journal: F.Many2one<'account.journal', { readonly required: true }>;
932
953
  readonly endpoint: F.Many2one<'webhook.endpoint'>;
@@ -1261,6 +1282,13 @@ export interface ResCompany {
1261
1282
  readonly name: F.Char<{ readonly required: true }>;
1262
1283
  readonly currency: F.Many2one<'res.currency', { readonly required: true }>;
1263
1284
  readonly numberGrouping: F.Selection<'international' | 'lakh', { readonly required: true; readonly default: true }>;
1285
+ readonly accentColor: F.Char;
1286
+ readonly street: F.Char;
1287
+ readonly city: F.Char;
1288
+ readonly zip: F.Char;
1289
+ readonly email: F.Char;
1290
+ readonly phone: F.Char;
1291
+ readonly website: F.Char;
1264
1292
  readonly fiscalYearStart: F.Integer<{ readonly required: true; readonly default: true }>; // accounting
1265
1293
  readonly chartTemplate: F.Char; // accounting
1266
1294
  readonly country: F.Char; // accounting
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The bKash adapter (Tokenized Checkout v2; RFC 0017 §5.5). Grant a token (cached for its hour), create a payment
3
+ * (its `paymentId` kept as the transaction's provider reference) and send the customer to `bkashURL`. bKash has no
4
+ * server-to-server callback here: it sends the customer back to the return URL with `paymentID` and
5
+ * `status=success|failure|cancel`, and the payment completes only when the merchant **executes** it. The browser's
6
+ * status is a hint, never proof: on any return the adapter executes the transaction's own `paymentId` (never the
7
+ * one in the URL) and believes only bKash's answer — `Completed`, for this invoice number, amount and currency — or,
8
+ * when execute refuses, bKash's query.
9
+ *
10
+ * Credentials come from the environment, never from records: `SHUTRO_ERP_BKASH_USERNAME`, `…_PASSWORD`,
11
+ * `…_APP_KEY`, `…_APP_SECRET`, `…_SANDBOX` (`true` unless `false`) and, optionally, `…_BASE_URL`.
12
+ */
13
+ import type { PaymentAdapter } from './providers.js';
14
+ export interface BkashOptions {
15
+ readonly username?: string | undefined;
16
+ readonly password?: string | undefined;
17
+ readonly appKey?: string | undefined;
18
+ readonly appSecret?: string | undefined;
19
+ /** The sandbox (default) or the live system. */
20
+ readonly sandbox?: boolean;
21
+ /** The API's base, up to `/tokenized-checkout` (default: bKash's sandbox or live address). */
22
+ readonly baseUrl?: string | undefined;
23
+ /** The HTTP client (tests). */
24
+ readonly fetch?: typeof fetch;
25
+ }
26
+ export declare function bkashAdapter(options?: BkashOptions): PaymentAdapter;
27
+ /** bKash with its credentials from the environment, read on first use. */
28
+ export declare function bkashFromEnvironment(env?: NodeJS.ProcessEnv): PaymentAdapter;