@endora-commerce/mod-quote-requests 0.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/dist/admin/index.d.ts +26 -0
  4. package/dist/admin/index.d.ts.map +1 -0
  5. package/dist/admin/index.js +56 -0
  6. package/dist/admin/index.js.map +1 -0
  7. package/dist/admin/pages/RfqCreatePage.d.ts +9 -0
  8. package/dist/admin/pages/RfqCreatePage.d.ts.map +1 -0
  9. package/dist/admin/pages/RfqCreatePage.js +163 -0
  10. package/dist/admin/pages/RfqCreatePage.js.map +1 -0
  11. package/dist/admin/pages/RfqDetail.d.ts +9 -0
  12. package/dist/admin/pages/RfqDetail.d.ts.map +1 -0
  13. package/dist/admin/pages/RfqDetail.js +399 -0
  14. package/dist/admin/pages/RfqDetail.js.map +1 -0
  15. package/dist/admin/pages/RfqList.d.ts +9 -0
  16. package/dist/admin/pages/RfqList.d.ts.map +1 -0
  17. package/dist/admin/pages/RfqList.js +214 -0
  18. package/dist/admin/pages/RfqList.js.map +1 -0
  19. package/dist/admin/validity.d.ts +52 -0
  20. package/dist/admin/validity.d.ts.map +1 -0
  21. package/dist/admin/validity.js +61 -0
  22. package/dist/admin/validity.js.map +1 -0
  23. package/dist/backend/entities/quote-request-event.entity.d.ts +24 -0
  24. package/dist/backend/entities/quote-request-event.entity.d.ts.map +1 -0
  25. package/dist/backend/entities/quote-request-event.entity.js +67 -0
  26. package/dist/backend/entities/quote-request-event.entity.js.map +1 -0
  27. package/dist/backend/entities/quote-request-item.entity.d.ts +34 -0
  28. package/dist/backend/entities/quote-request-item.entity.d.ts.map +1 -0
  29. package/dist/backend/entities/quote-request-item.entity.js +119 -0
  30. package/dist/backend/entities/quote-request-item.entity.js.map +1 -0
  31. package/dist/backend/entities/quote-request-notification-event.entity.d.ts +23 -0
  32. package/dist/backend/entities/quote-request-notification-event.entity.d.ts.map +1 -0
  33. package/dist/backend/entities/quote-request-notification-event.entity.js +72 -0
  34. package/dist/backend/entities/quote-request-notification-event.entity.js.map +1 -0
  35. package/dist/backend/entities/quote-request-revision.entity.d.ts +35 -0
  36. package/dist/backend/entities/quote-request-revision.entity.d.ts.map +1 -0
  37. package/dist/backend/entities/quote-request-revision.entity.js +67 -0
  38. package/dist/backend/entities/quote-request-revision.entity.js.map +1 -0
  39. package/dist/backend/entities/quote-request.entity.d.ts +90 -0
  40. package/dist/backend/entities/quote-request.entity.d.ts.map +1 -0
  41. package/dist/backend/entities/quote-request.entity.js +191 -0
  42. package/dist/backend/entities/quote-request.entity.js.map +1 -0
  43. package/dist/backend/index.d.ts +120 -0
  44. package/dist/backend/index.d.ts.map +1 -0
  45. package/dist/backend/index.js +361 -0
  46. package/dist/backend/index.js.map +1 -0
  47. package/dist/backend/plugin.d.ts +95 -0
  48. package/dist/backend/plugin.d.ts.map +1 -0
  49. package/dist/backend/plugin.js +152 -0
  50. package/dist/backend/plugin.js.map +1 -0
  51. package/dist/backend/routes.admin.d.ts +13 -0
  52. package/dist/backend/routes.admin.d.ts.map +1 -0
  53. package/dist/backend/routes.admin.js +82 -0
  54. package/dist/backend/routes.admin.js.map +1 -0
  55. package/dist/backend/routes.customer.d.ts +18 -0
  56. package/dist/backend/routes.customer.d.ts.map +1 -0
  57. package/dist/backend/routes.customer.js +98 -0
  58. package/dist/backend/routes.customer.js.map +1 -0
  59. package/dist/backend/routes.sales-reps.d.ts +12 -0
  60. package/dist/backend/routes.sales-reps.d.ts.map +1 -0
  61. package/dist/backend/routes.sales-reps.js +57 -0
  62. package/dist/backend/routes.sales-reps.js.map +1 -0
  63. package/dist/backend/services/order-completion-reactor.d.ts +32 -0
  64. package/dist/backend/services/order-completion-reactor.d.ts.map +1 -0
  65. package/dist/backend/services/order-completion-reactor.js +57 -0
  66. package/dist/backend/services/order-completion-reactor.js.map +1 -0
  67. package/dist/backend/services/quote-request-business-id-generator.d.ts +46 -0
  68. package/dist/backend/services/quote-request-business-id-generator.d.ts.map +1 -0
  69. package/dist/backend/services/quote-request-business-id-generator.js +69 -0
  70. package/dist/backend/services/quote-request-business-id-generator.js.map +1 -0
  71. package/dist/backend/services/quote-request-read-port.d.ts +36 -0
  72. package/dist/backend/services/quote-request-read-port.d.ts.map +1 -0
  73. package/dist/backend/services/quote-request-read-port.js +96 -0
  74. package/dist/backend/services/quote-request-read-port.js.map +1 -0
  75. package/dist/backend/services/raised-on-channel.d.ts +23 -0
  76. package/dist/backend/services/raised-on-channel.d.ts.map +1 -0
  77. package/dist/backend/services/raised-on-channel.js +26 -0
  78. package/dist/backend/services/raised-on-channel.js.map +1 -0
  79. package/dist/backend/services/rfq-admin-service.d.ts +75 -0
  80. package/dist/backend/services/rfq-admin-service.d.ts.map +1 -0
  81. package/dist/backend/services/rfq-admin-service.js +487 -0
  82. package/dist/backend/services/rfq-admin-service.js.map +1 -0
  83. package/dist/backend/services/rfq-event-service.d.ts +32 -0
  84. package/dist/backend/services/rfq-event-service.d.ts.map +1 -0
  85. package/dist/backend/services/rfq-event-service.js +28 -0
  86. package/dist/backend/services/rfq-event-service.js.map +1 -0
  87. package/dist/backend/services/rfq-expiry-worker.d.ts +50 -0
  88. package/dist/backend/services/rfq-expiry-worker.d.ts.map +1 -0
  89. package/dist/backend/services/rfq-expiry-worker.js +70 -0
  90. package/dist/backend/services/rfq-expiry-worker.js.map +1 -0
  91. package/dist/backend/services/rfq-notification-service.d.ts +36 -0
  92. package/dist/backend/services/rfq-notification-service.d.ts.map +1 -0
  93. package/dist/backend/services/rfq-notification-service.js +52 -0
  94. package/dist/backend/services/rfq-notification-service.js.map +1 -0
  95. package/dist/backend/services/rfq-revision-service.d.ts +70 -0
  96. package/dist/backend/services/rfq-revision-service.d.ts.map +1 -0
  97. package/dist/backend/services/rfq-revision-service.js +120 -0
  98. package/dist/backend/services/rfq-revision-service.js.map +1 -0
  99. package/dist/backend/services/rfq-service.d.ts +140 -0
  100. package/dist/backend/services/rfq-service.d.ts.map +1 -0
  101. package/dist/backend/services/rfq-service.js +786 -0
  102. package/dist/backend/services/rfq-service.js.map +1 -0
  103. package/dist/backend/services/sales-channel-attributions.d.ts +38 -0
  104. package/dist/backend/services/sales-channel-attributions.d.ts.map +1 -0
  105. package/dist/backend/services/sales-channel-attributions.js +48 -0
  106. package/dist/backend/services/sales-channel-attributions.js.map +1 -0
  107. package/dist/manifest.d.ts +203 -0
  108. package/dist/manifest.d.ts.map +1 -0
  109. package/dist/manifest.js +277 -0
  110. package/dist/manifest.js.map +1 -0
  111. package/dist/migrations/20260424T190112_quote_requests_init.d.ts +19 -0
  112. package/dist/migrations/20260424T190112_quote_requests_init.d.ts.map +1 -0
  113. package/dist/migrations/20260424T190112_quote_requests_init.js +65 -0
  114. package/dist/migrations/20260424T190112_quote_requests_init.js.map +1 -0
  115. package/dist/migrations/20260503T141344_quote_requests_workflow.d.ts +37 -0
  116. package/dist/migrations/20260503T141344_quote_requests_workflow.d.ts.map +1 -0
  117. package/dist/migrations/20260503T141344_quote_requests_workflow.js +251 -0
  118. package/dist/migrations/20260503T141344_quote_requests_workflow.js.map +1 -0
  119. package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.d.ts +10 -0
  120. package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.d.ts.map +1 -0
  121. package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.js +16 -0
  122. package/dist/migrations/20260611T140415_quote_requests_qr_item_packaging.js.map +1 -0
  123. package/dist/migrations/20260611T140417_quote_requests_business_id.d.ts +24 -0
  124. package/dist/migrations/20260611T140417_quote_requests_business_id.d.ts.map +1 -0
  125. package/dist/migrations/20260611T140417_quote_requests_business_id.js +34 -0
  126. package/dist/migrations/20260611T140417_quote_requests_business_id.js.map +1 -0
  127. package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.d.ts +21 -0
  128. package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.d.ts.map +1 -0
  129. package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.js +29 -0
  130. package/dist/migrations/20260617T095510_quote_requests_backfill_admin_created_awaiting.js.map +1 -0
  131. package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.d.ts +12 -0
  132. package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.d.ts.map +1 -0
  133. package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.js +16 -0
  134. package/dist/migrations/20260718T200342_quote_requests_quote_request_custom_field_values.js.map +1 -0
  135. package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.d.ts +34 -0
  136. package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.d.ts.map +1 -0
  137. package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.js +57 -0
  138. package/dist/migrations/20260912T125614_quote_requests_quote_request_channel_attribution.js.map +1 -0
  139. package/dist/migrations/index.d.ts +53 -0
  140. package/dist/migrations/index.d.ts.map +1 -0
  141. package/dist/migrations/index.js +61 -0
  142. package/dist/migrations/index.js.map +1 -0
  143. package/dist/migrations/status-mapping.d.ts +18 -0
  144. package/dist/migrations/status-mapping.d.ts.map +1 -0
  145. package/dist/migrations/status-mapping.js +28 -0
  146. package/dist/migrations/status-mapping.js.map +1 -0
  147. package/docs/quote_requests.md +168 -0
  148. package/i18n/en.json +14 -0
  149. package/i18n/pl.json +14 -0
  150. package/package.json +99 -0
  151. package/tailwind.css +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rfq-service.js","sourceRoot":"","sources":["../../../src/backend/services/rfq-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { SalesChannelAttributionRegistryPort } from '@endora-commerce/contracts';
2
+ import type { EntityManager } from '@mikro-orm/postgresql';
3
+ /**
4
+ * How many quote requests are attributed to a sales channel (feature 075, D-87
5
+ * drain).
6
+ *
7
+ * `SalesChannelsService.delete` used to count them itself, with
8
+ * `select count(*) from "quote_requests" where "sales_channel_id" = ?` — this
9
+ * module's table and this module's column name, spelled in another module's
10
+ * service and invisible to the import-level boundary check because raw SQL
11
+ * names no specifier. It is answered here now.
12
+ *
13
+ * **The column this counts is populated since issue #266.** Feature 005 /
14
+ * FR-012 added `quote_requests.sales_channel_id` nullable in
15
+ * `20260430T170044_core_sales_channels_promote`, with an `on delete restrict`
16
+ * foreign key, and neither half of what was supposed to follow ever landed: no
17
+ * property on `QuoteRequest`, so nothing on the request path wrote the column,
18
+ * and no migration flipping it `not null`. This counter therefore answered `0`
19
+ * for every request ever raised and the FR-006 delete guard had never seen an
20
+ * RFQ attribution. `QuoteRequest.salesChannelId` now carries the resolved
21
+ * request channel, so the guard reads real evidence.
22
+ *
23
+ * **The count stays a raw statement, and not because the property is missing.**
24
+ * `QuoteRequest` is `@OrgScoped`, so an `em.count` would take the always-on
25
+ * tenant filter and answer "how many of *this tenant's* requests point at the
26
+ * channel". The delete guard is platform-wide — a channel is deleted for
27
+ * everyone — so the question it asks has to be too, and a filtered count would
28
+ * silently under-report and let an operator delete a channel other tenants'
29
+ * requests still point at. The statement names this module's own table, so the
30
+ * boundary check has nothing to object to.
31
+ *
32
+ * **Rows raised before #266 stay `null` on the owner's ruling** and are counted
33
+ * by nobody; they are developer data, and projecting them onto the system
34
+ * default would have this guard refuse a delete on an attribution the platform
35
+ * invented rather than observed.
36
+ */
37
+ export declare function registerQuoteRequestSalesChannelAttributions(registry: SalesChannelAttributionRegistryPort, emFactory: () => EntityManager): void;
38
+ //# sourceMappingURL=sales-channel-attributions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-channel-attributions.d.ts","sourceRoot":"","sources":["../../../src/backend/services/sales-channel-attributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,4CAA4C,CAC1D,QAAQ,EAAE,mCAAmC,EAC7C,SAAS,EAAE,MAAM,aAAa,GAC7B,IAAI,CAiBN"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * How many quote requests are attributed to a sales channel (feature 075, D-87
3
+ * drain).
4
+ *
5
+ * `SalesChannelsService.delete` used to count them itself, with
6
+ * `select count(*) from "quote_requests" where "sales_channel_id" = ?` — this
7
+ * module's table and this module's column name, spelled in another module's
8
+ * service and invisible to the import-level boundary check because raw SQL
9
+ * names no specifier. It is answered here now.
10
+ *
11
+ * **The column this counts is populated since issue #266.** Feature 005 /
12
+ * FR-012 added `quote_requests.sales_channel_id` nullable in
13
+ * `20260430T170044_core_sales_channels_promote`, with an `on delete restrict`
14
+ * foreign key, and neither half of what was supposed to follow ever landed: no
15
+ * property on `QuoteRequest`, so nothing on the request path wrote the column,
16
+ * and no migration flipping it `not null`. This counter therefore answered `0`
17
+ * for every request ever raised and the FR-006 delete guard had never seen an
18
+ * RFQ attribution. `QuoteRequest.salesChannelId` now carries the resolved
19
+ * request channel, so the guard reads real evidence.
20
+ *
21
+ * **The count stays a raw statement, and not because the property is missing.**
22
+ * `QuoteRequest` is `@OrgScoped`, so an `em.count` would take the always-on
23
+ * tenant filter and answer "how many of *this tenant's* requests point at the
24
+ * channel". The delete guard is platform-wide — a channel is deleted for
25
+ * everyone — so the question it asks has to be too, and a filtered count would
26
+ * silently under-report and let an operator delete a channel other tenants'
27
+ * requests still point at. The statement names this module's own table, so the
28
+ * boundary check has nothing to object to.
29
+ *
30
+ * **Rows raised before #266 stay `null` on the owner's ruling** and are counted
31
+ * by nobody; they are developer data, and projecting them onto the system
32
+ * default would have this guard refuse a delete on an attribution the platform
33
+ * invented rather than observed.
34
+ */
35
+ export function registerQuoteRequestSalesChannelAttributions(registry, emFactory) {
36
+ registry.register({
37
+ ownerModuleId: 'quote_requests',
38
+ consumer: 'quote request(s)',
39
+ tableName: 'quote_requests',
40
+ columnName: 'sales_channel_id',
41
+ countForChannel: async (salesChannelId) => {
42
+ const em = emFactory();
43
+ const rows = await em.getConnection().execute('select count(*)::text as n from "quote_requests" where "sales_channel_id" = ?', [salesChannelId], 'all', em.getTransactionContext());
44
+ return Number(rows[0]?.n ?? '0');
45
+ },
46
+ });
47
+ }
48
+ //# sourceMappingURL=sales-channel-attributions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sales-channel-attributions.js","sourceRoot":"","sources":["../../../src/backend/services/sales-channel-attributions.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,4CAA4C,CAC1D,QAA6C,EAC7C,SAA8B;IAE9B,QAAQ,CAAC,QAAQ,CAAC;QAChB,aAAa,EAAE,gBAAgB;QAC/B,QAAQ,EAAE,kBAAkB;QAC5B,SAAS,EAAE,gBAAgB;QAC3B,UAAU,EAAE,kBAAkB;QAC9B,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACxC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,CAC3C,+EAA+E,EAC/E,CAAC,cAAc,CAAC,EAChB,KAAK,EACL,EAAE,CAAC,qBAAqB,EAAE,CAC3B,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Settings manifest for the Quote Requests module — feature 008.
3
+ *
4
+ * Settings keys:
5
+ * - quote_requests.expiryDays (integer, default 0 = never)
6
+ * - quote_requests.showAddToQuoteOnCard (boolean, default true)
7
+ * - quote_requests.showAddToQuoteOnPdp (boolean, default true)
8
+ * - quote_requests.business_id.prefix (string, default '')
9
+ * - quote_requests.business_id.suffix (string, default '')
10
+ */
11
+ export declare const QUOTE_REQUESTS_SETTING_CODES: {
12
+ readonly EXPIRY_DAYS: "quote_requests.expiry_days";
13
+ readonly SHOW_ADD_TO_QUOTE_ON_CARD: "quote_requests.show_add_to_quote_on_card";
14
+ readonly SHOW_ADD_TO_QUOTE_ON_PDP: "quote_requests.show_add_to_quote_on_pdp";
15
+ readonly BUSINESS_ID_PREFIX: "quote_requests.business_id.prefix";
16
+ readonly BUSINESS_ID_SUFFIX: "quote_requests.business_id.suffix";
17
+ };
18
+ export declare const DEFAULT_QUOTE_REQUESTS_EXPIRY_DAYS = 0;
19
+ /** Module-lifecycle manifest (feature 018). */
20
+ export declare const manifest: {
21
+ id: string;
22
+ name: string;
23
+ version: string;
24
+ dependencies: string[];
25
+ description?: string | undefined;
26
+ acknowledgedDependencies?: {
27
+ moduleId: string;
28
+ port: string;
29
+ reason: string;
30
+ }[] | undefined;
31
+ nonBindingDependencies?: {
32
+ moduleId: string;
33
+ name: string;
34
+ kind: "contributes-to" | "degrades-without" | "refuses-without";
35
+ reason: string;
36
+ whenAbsent?: string | undefined;
37
+ }[] | undefined;
38
+ activation?: {
39
+ settingCode: string;
40
+ default: boolean;
41
+ } | {
42
+ nonDeactivatable: true;
43
+ reason: string;
44
+ } | undefined;
45
+ settings?: {
46
+ moduleCode: string;
47
+ groups: {
48
+ code: string;
49
+ name: string;
50
+ salesChannelCodes?: string[] | undefined;
51
+ isSystemProtected?: boolean | undefined;
52
+ }[];
53
+ settings: {
54
+ code: string;
55
+ name: string;
56
+ valueType: "string" | "number" | "boolean" | "json" | "string_list" | "secret" | "credential_ref";
57
+ defaultValue: unknown;
58
+ description?: string | undefined;
59
+ groupCode?: string | undefined;
60
+ previousDefaultValues?: unknown[] | undefined;
61
+ salesChannelCodes?: string[] | undefined;
62
+ enumOptions?: string[] | undefined;
63
+ configurationType?: string | undefined;
64
+ hidden?: boolean | undefined;
65
+ }[];
66
+ } | undefined;
67
+ i18n?: {
68
+ bundlesDir: string;
69
+ } | undefined;
70
+ docs?: false | {
71
+ dir: string;
72
+ } | undefined;
73
+ demo?: false | {
74
+ summary: string;
75
+ seed: (context: import("@endora-commerce/contracts").ModuleDemoContext<never>) => Promise<import("@endora-commerce/contracts").DemoSeedResult>;
76
+ reset: (context: import("@endora-commerce/contracts").ModuleDemoContext<never>) => Promise<import("@endora-commerce/contracts").DemoResetResult>;
77
+ after?: readonly string[] | undefined;
78
+ package?: string | undefined;
79
+ } | undefined;
80
+ actions?: {
81
+ id: string;
82
+ labelKey: string;
83
+ icon: "Plus" | "Sparkles" | "Settings" | "Search" | "Boxes" | "Layers" | "Menu" | "PlusCircle" | "PlusSquare" | "FilePlus" | "FolderPlus" | "Upload" | "FileUp" | "CloudUpload" | "Download" | "FileDown" | "FileText" | "BookOpen" | "Rss" | "Package" | "Tag" | "ShoppingCart" | "Receipt" | "CreditCard" | "Users" | "UserPlus" | "Inbox" | "ListChecks" | "ClipboardList" | "Image" | "Video" | "LayoutDashboard" | "PanelLeft" | "KeyRound" | "ShieldCheck" | "Edit" | "Archive" | "Box" | "Truck" | "CircleDollarSign" | "Activity" | "LineChart" | "Smartphone" | "Webhook" | "Scale" | "PlugZap" | "PercentDiamond" | "Newspaper" | "Languages" | "Eraser" | "Warehouse" | "TrendingDown" | "Bell" | "PackageOpen" | "Building2" | "Store" | "ClipboardCheck";
84
+ targetRoute: string;
85
+ keywords: string[];
86
+ weight: number;
87
+ descriptionKey?: string | undefined;
88
+ requiredPermission?: string | undefined;
89
+ }[] | undefined;
90
+ permissions?: {
91
+ code: string;
92
+ label: string;
93
+ module?: string | undefined;
94
+ description?: string | undefined;
95
+ requires?: string[] | undefined;
96
+ }[] | undefined;
97
+ transactionalEmails?: {
98
+ code: string;
99
+ name: string;
100
+ variables: {
101
+ key: string;
102
+ label: string;
103
+ sampleValue?: string | undefined;
104
+ description?: string | undefined;
105
+ }[];
106
+ description?: string | undefined;
107
+ group?: string | undefined;
108
+ }[] | undefined;
109
+ capabilities?: string[] | undefined;
110
+ exclusiveCapabilities?: {
111
+ key: string;
112
+ errorCode: string;
113
+ }[] | undefined;
114
+ errorCodes?: {
115
+ code: string;
116
+ tokens?: string[] | undefined;
117
+ }[] | undefined;
118
+ blocks?: {
119
+ name: string;
120
+ labelKey: string;
121
+ category: string;
122
+ contexts: ("email" | "invoice" | "cms" | "newsletter")[];
123
+ fields: Record<string, {
124
+ type: "number" | "object" | "array" | "text" | "textarea" | "select" | "radio" | "external" | "uuid" | "richtext";
125
+ label?: string | undefined;
126
+ required?: boolean | undefined;
127
+ options?: {
128
+ label: string;
129
+ value: string | number;
130
+ }[] | undefined;
131
+ refKind?: string | undefined;
132
+ }>;
133
+ descriptionKey?: string | undefined;
134
+ defaultProps?: Record<string, unknown> | undefined;
135
+ responsiveFields?: string[] | undefined;
136
+ previewIcon?: string | undefined;
137
+ weight?: number | undefined;
138
+ }[] | undefined;
139
+ blockCategories?: {
140
+ key: string;
141
+ titleKey: string;
142
+ contexts: ("email" | "invoice" | "cms" | "newsletter")[];
143
+ weight?: number | undefined;
144
+ visible?: boolean | undefined;
145
+ }[] | undefined;
146
+ env?: {
147
+ name: string;
148
+ describes: {
149
+ en: string;
150
+ pl: string;
151
+ };
152
+ requirement: {
153
+ kind: "required";
154
+ } | {
155
+ kind: "requiredWhen";
156
+ input: string;
157
+ equals: string;
158
+ } | {
159
+ kind: "optional";
160
+ without: {
161
+ en: string;
162
+ pl: string;
163
+ };
164
+ };
165
+ secret: boolean;
166
+ generable: boolean;
167
+ owner: {
168
+ kind: "platform";
169
+ } | {
170
+ kind: "application";
171
+ application: "admin" | "backend" | "storefront";
172
+ } | {
173
+ kind: "module";
174
+ moduleId: string;
175
+ };
176
+ consumers: ("admin" | "backend" | "storefront")[];
177
+ addressOf: "admin" | "backend" | "storefront" | null;
178
+ }[] | undefined;
179
+ };
180
+ /** Legacy export retained for backward compatibility. */
181
+ export declare const quoteRequestsManifest: {
182
+ moduleCode: string;
183
+ groups: {
184
+ code: string;
185
+ name: string;
186
+ salesChannelCodes?: string[] | undefined;
187
+ isSystemProtected?: boolean | undefined;
188
+ }[];
189
+ settings: {
190
+ code: string;
191
+ name: string;
192
+ valueType: "string" | "number" | "boolean" | "json" | "string_list" | "secret" | "credential_ref";
193
+ defaultValue: unknown;
194
+ description?: string | undefined;
195
+ groupCode?: string | undefined;
196
+ previousDefaultValues?: unknown[] | undefined;
197
+ salesChannelCodes?: string[] | undefined;
198
+ enumOptions?: string[] | undefined;
199
+ configurationType?: string | undefined;
200
+ hidden?: boolean | undefined;
201
+ }[];
202
+ };
203
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AAEH,eAAO,MAAM,4BAA4B;;;;;;CAM/B,CAAC;AAEX,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAmEpD,+CAA+C;AAC/C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoMnB,CAAC;AAEH,yDAAyD;AACzD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAAW,CAAC"}
@@ -0,0 +1,277 @@
1
+ import { defineModuleManifest, defineModuleSettingsManifest, } from '@endora-commerce/contracts';
2
+ /**
3
+ * Settings manifest for the Quote Requests module — feature 008.
4
+ *
5
+ * Settings keys:
6
+ * - quote_requests.expiryDays (integer, default 0 = never)
7
+ * - quote_requests.showAddToQuoteOnCard (boolean, default true)
8
+ * - quote_requests.showAddToQuoteOnPdp (boolean, default true)
9
+ * - quote_requests.business_id.prefix (string, default '')
10
+ * - quote_requests.business_id.suffix (string, default '')
11
+ */
12
+ export const QUOTE_REQUESTS_SETTING_CODES = {
13
+ EXPIRY_DAYS: 'quote_requests.expiry_days',
14
+ SHOW_ADD_TO_QUOTE_ON_CARD: 'quote_requests.show_add_to_quote_on_card',
15
+ SHOW_ADD_TO_QUOTE_ON_PDP: 'quote_requests.show_add_to_quote_on_pdp',
16
+ BUSINESS_ID_PREFIX: 'quote_requests.business_id.prefix',
17
+ BUSINESS_ID_SUFFIX: 'quote_requests.business_id.suffix',
18
+ };
19
+ export const DEFAULT_QUOTE_REQUESTS_EXPIRY_DAYS = 0;
20
+ const settings = defineModuleSettingsManifest({
21
+ moduleCode: 'quote_requests',
22
+ groups: [
23
+ {
24
+ code: 'quote_requests',
25
+ name: 'Quote Requests',
26
+ },
27
+ ],
28
+ settings: [
29
+ {
30
+ // Feature 073 — the operator's activation control. Platform-wide.
31
+ code: 'quote_requests.enabled',
32
+ name: 'Quote requests enabled',
33
+ description: 'Switches the RFQ flow on or off: the customer request surfaces, the add-to-quote controls on the product card and PDP, the admin quote desk, and the worker that expires pending requests. Nothing is dropped — every request, its revisions and its messages stay in the database and resume where they were.',
34
+ groupCode: 'quote_requests',
35
+ valueType: 'boolean',
36
+ defaultValue: true,
37
+ },
38
+ {
39
+ code: QUOTE_REQUESTS_SETTING_CODES.EXPIRY_DAYS,
40
+ name: 'Auto-expire pending after (days)',
41
+ description: 'Number of days a Pending or Created from admin Quote Request lives before the expiry worker flips it to Expired. 0 disables auto-expiry entirely.',
42
+ groupCode: 'quote_requests',
43
+ valueType: 'number',
44
+ defaultValue: DEFAULT_QUOTE_REQUESTS_EXPIRY_DAYS,
45
+ },
46
+ {
47
+ code: QUOTE_REQUESTS_SETTING_CODES.SHOW_ADD_TO_QUOTE_ON_CARD,
48
+ name: 'Show "Add to quote" on product card',
49
+ description: 'Toggles the "Add to quote" button on storefront product card listings.',
50
+ groupCode: 'quote_requests',
51
+ valueType: 'boolean',
52
+ defaultValue: true,
53
+ },
54
+ {
55
+ code: QUOTE_REQUESTS_SETTING_CODES.SHOW_ADD_TO_QUOTE_ON_PDP,
56
+ name: 'Show "Add to quote" on product detail',
57
+ description: 'Toggles the "Add to quote" button on storefront product detail pages.',
58
+ groupCode: 'quote_requests',
59
+ valueType: 'boolean',
60
+ defaultValue: true,
61
+ },
62
+ {
63
+ code: QUOTE_REQUESTS_SETTING_CODES.BUSINESS_ID_PREFIX,
64
+ name: 'Business Quote Request ID prefix',
65
+ description: 'Text prepended to the generated business Quote Request ID shown to the Customer (e.g. "QR-"). Empty = no prefix.',
66
+ groupCode: 'quote_requests',
67
+ valueType: 'string',
68
+ defaultValue: '',
69
+ },
70
+ {
71
+ code: QUOTE_REQUESTS_SETTING_CODES.BUSINESS_ID_SUFFIX,
72
+ name: 'Business Quote Request ID suffix',
73
+ description: 'Text appended to the generated business Quote Request ID shown to the Customer (e.g. "-2026"). Empty = no suffix.',
74
+ groupCode: 'quote_requests',
75
+ valueType: 'string',
76
+ defaultValue: '',
77
+ },
78
+ ],
79
+ });
80
+ /** Module-lifecycle manifest (feature 018). */
81
+ export const manifest = defineModuleManifest({
82
+ id: 'quote_requests',
83
+ name: 'Quote Requests',
84
+ description: 'Customer-initiated RFQ workflow with admin pricing, approvals, and expiry.',
85
+ version: '1.0.0',
86
+ // `admin_roles` since feature 072 (T138): the sales-rep roll-up scope reads
87
+ // `permissionService` directly now, rather than through a root-built bundle.
88
+ // It was already satisfied transitively via `auth`; the edge is declared
89
+ // because a manifest is what an operator reads.
90
+ // Feature 075, Phase C — `admin_users` and `customer_accounts` join the seven
91
+ // that were already here. Both are ordinary declarations: neither reaches
92
+ // back to this module, so the edges close no cycle. `carts` and `orders` do
93
+ // reach back and are acknowledged below.
94
+ //
95
+ // `sales_channels` owns `salesChannelAttributionRegistry`, the registry this
96
+ // module pushes its own "how many of my rows are attributed to this channel?"
97
+ // counter into (feature 075, D-87). The registry is ungated and its owner is
98
+ // non-deactivatable, so the declaration buys install and migration order
99
+ // rather than a flip-time refusal.
100
+ dependencies: [
101
+ 'admin_roles',
102
+ 'admin_users',
103
+ 'auth',
104
+ 'catalog',
105
+ 'custom_fields',
106
+ 'customer_accounts',
107
+ 'organizations',
108
+ 'sales_channels',
109
+ 'settings',
110
+ 'taxes',
111
+ ],
112
+ /**
113
+ * Feature 075, Phase C — the two edges this module genuinely has and cannot
114
+ * declare above, because `carts/manifest.ts` declares **this** module and
115
+ * `orders` declares `carts`. An ordinary declaration would close a cycle,
116
+ * which `backend/test/unit/db/module-graph.test.ts` fails the build on.
117
+ *
118
+ * Neither is a schema edge, so nothing is lost by keeping them out of the
119
+ * install and migration order: `cartWritePort` is the quote-to-cart
120
+ * conversion (the write that used to be `em.create(Cart, …)` from inside this
121
+ * module), and `orderReadPort` is the `order.created.v1` reactor reading the
122
+ * order that names the quote request it completes. Both fail closed, and both
123
+ * owners are the ones that would have to be off for the path to be reachable
124
+ * at all — a conversion with no cart module has nowhere to convert to.
125
+ */
126
+ acknowledgedDependencies: [
127
+ {
128
+ moduleId: 'carts',
129
+ port: 'cartWritePort',
130
+ reason: 'Converting an approved quote seeds the customer’s active cart at the agreed unit ' +
131
+ 'prices, which is a write into carts’ own tables and belongs to carts. Declaring it ' +
132
+ 'as a dependency closes a cycle, because carts declares this module for the ' +
133
+ '"add to quote" surface. The seam fails closed: a conversion that cannot reach the ' +
134
+ 'cart must refuse rather than report a checkout URL for a cart nobody wrote.',
135
+ },
136
+ {
137
+ moduleId: 'orders',
138
+ port: 'orderReadPort',
139
+ reason: 'The order.created.v1 reactor reads the order that names the quote request it ' +
140
+ 'completes. Declaring it closes a cycle through carts. The seam fails closed, and ' +
141
+ 'the event that triggers it cannot be emitted by an absent orders module, so the ' +
142
+ 'acknowledged edge adds no refusal that was reachable before.',
143
+ },
144
+ ],
145
+ settings,
146
+ // Feature 073 (Constitution XVII) — the operator's activation control.
147
+ activation: { settingCode: 'quote_requests.enabled', default: true },
148
+ /**
149
+ * The nine error codes this module owns — feature 090 Phase 3
150
+ * (`specs/090-module-owned-error-codes/contracts/error-code-declaration.md`
151
+ * §1.1). This is where the sentence for each is looked up from: `errors.<CODE>`
152
+ * in this module's own `i18n/{en,pl}.json`, which holds all nine in both
153
+ * languages and no tenth. None of them is a `check-error-translations.ts`
154
+ * `UNTRANSLATED_ERROR_CODES` entry.
155
+ *
156
+ * The list is answer-preserving, not a judgement (§6.2 and §6.5), and it was
157
+ * not written by hand: it is the verbatim output of the runbook's step-1
158
+ * derivation over the frozen capture at
159
+ * `backend/test/fixtures/error-code-routing/chain-answers.ts`, which records
160
+ * what the prefix chain in `@endora-commerce/mod-i18n` answered at
161
+ * `49f3c6817`. Re-routing a code to a better owner is
162
+ * `specs/082-error-code-ownership/rulings.md` §9's remaining work and is
163
+ * deliberately not done here.
164
+ *
165
+ * **No code here is a shadow, and none of this module's is shadowed away.**
166
+ * Trap T1 exists because the chain is an ordered `if`: an earlier rule can
167
+ * claim a code a later one names, which cost `inventory` two codes and gave
168
+ * `catalog` four. This module has a single rule — `RFQ_` or `QUOTE_`, no misc
169
+ * set — and the three rules above it (`SETTING_`, the generic set, `catalog`'s
170
+ * prefixes and misc set) name no `RFQ_` or `QUOTE_` code, so the nine the
171
+ * chain answers with are exactly the nine `RFQ_`/`QUOTE_`-prefixed members of
172
+ * `ERROR_CODES`. The derivation was still run from the answer, because "no
173
+ * shadow reaches me" is a conclusion of reading the whole chain and not a
174
+ * premise a migrating author is entitled to.
175
+ *
176
+ * **Four of the nine are raised by nothing** — `QUOTE_INCOMPLETE`,
177
+ * `RFQ_ALREADY_CLAIMED`, `RFQ_NOT_ACCEPTED` and `RFQ_NOT_NEW`. Each is a
178
+ * member of `ERROR_CODES` with a sentence in both languages that no `throw`
179
+ * in `backend/src` or `packages` can produce. They are declared anyway,
180
+ * because ownership follows the capture and not the raise sites (trap T10):
181
+ * dropping one reds the progress test as `[undeclared]` and moves an answer
182
+ * the migrating merge request was not allowed to move. Whether a code nothing
183
+ * raises should exist is a separate question, filed in
184
+ * `specs/deferred-defects.md` § *Roughly 29 error codes have translated
185
+ * sentences no client can ever receive*, and measured for this module in that
186
+ * merge request's description.
187
+ *
188
+ * **It said six until 2026-08-29, and the two it lost are the reason that
189
+ * register entry is worth keeping.** `RFQ_EXPIRED` and
190
+ * `QUOTE_VALIDITY_ENDED` were unraised because a rule had been *removed*, not
191
+ * because nobody ever wrote one: the feature-008 workflow rewrite
192
+ * (`4f24dc948`) dropped `accept()`'s live `expiresAt` check and nothing
193
+ * replaced it, so the per-request validity deadline an operator sets with
194
+ * `expiresInDays` bound nothing while both parties were shown its date. Both
195
+ * are raised now — `RFQ_EXPIRED` on `accept-revision`,
196
+ * `QUOTE_VALIDITY_ENDED` on `convert-to-order`, in
197
+ * `services/rfq-service.ts` — which is the split
198
+ * `specs/001-b2b-platform-foundation/contracts/quote_requests.contract.md`
199
+ * assigned them. That is T11's distinction reaching its conclusion: for these
200
+ * two the sentences were the last surviving evidence of the rule, and the
201
+ * repair was to restore the rule rather than to retire the codes. The other
202
+ * four have no such history, and the count here is a fact about the tree that
203
+ * moves with it — re-derive it, never carry it forward.
204
+ *
205
+ * The inverse is also true and is T2's shape: this module raises five codes it
206
+ * does not own — `CUSTOM_FIELD_VALUE_INVALID`, `FORBIDDEN`, `NOT_FOUND` and
207
+ * `VERSION_CONFLICT`, which the chain routes to `core`, and
208
+ * `PRODUCT_NOT_FOUND`, which is `catalog`'s and is declared there. None is
209
+ * declared here and every one of those sentences stays where it is.
210
+ *
211
+ * **No `tokens`, and it is derived rather than assumed.** The envelope's
212
+ * `refusalToken` (`packages/platform/src/http/error-envelope.ts`) reads
213
+ * exactly one member of `details` — `code`, and only when `details` is an
214
+ * object — as the tail of `errors.<CODE>.<token>`. All ten raises of these
215
+ * codes were enumerated over `packages` and `backend/src` rather than over
216
+ * this package alone (runbook §5), and not one passes a fourth argument at
217
+ * all; the six codes nothing raises reach no token by construction. The
218
+ * bundle agrees from the other direction: nine `errors.<CODE>` keys in each
219
+ * language and not one `errors.<CODE>.<token>`.
220
+ */
221
+ errorCodes: [
222
+ { code: 'QUOTE_INCOMPLETE' },
223
+ { code: 'QUOTE_VALIDITY_ENDED' },
224
+ { code: 'RFQ_ALREADY_CLAIMED' },
225
+ { code: 'RFQ_EMPTY' },
226
+ { code: 'RFQ_EXPIRED' },
227
+ { code: 'RFQ_NOT_ACCEPTED' },
228
+ { code: 'RFQ_NOT_DRAFT' },
229
+ { code: 'RFQ_NOT_NEW' },
230
+ { code: 'RFQ_NOT_QUOTED' },
231
+ ],
232
+ /**
233
+ * `rfqs:handle` is declared in the core `PERMISSION_CATALOGUE`, which carries
234
+ * its label and names this module as its owner. Re-declaring it here adds no
235
+ * owner and no label — it adds the one thing only this module can state
236
+ * (D-175, feature 080 T057).
237
+ *
238
+ * `RfqCreatePage` prefills an agreed price from
239
+ * `GET /api/v1/admin/products/:id/resolved-price`, which `price_lists` gates
240
+ * with `price_lists:read`. D-173 made that gate deliberately: the route used
241
+ * to enforce `rfqs:handle`, a code its own switchable owner could take off
242
+ * `/admin-roles` while `price_lists` — `nonDeactivatable` — went on demanding
243
+ * it, and !956's repair was for the consumer to gate on a code it owns. The
244
+ * ruling recorded the operator-visible consequence in the same breath: *"a
245
+ * role holding only `rfqs:handle` loses the RFQ create screen's price prefill
246
+ * until granted it; the screen degrades to manual entry rather than
247
+ * erroring"*, and the dev seed gives `sales_representative` both codes for
248
+ * that reason.
249
+ *
250
+ * That sentence was in a ruling, a route comment and a seed, and in nothing
251
+ * an operator could read. It is here now. It is advisory only: the screen's
252
+ * fallback stays, no upsert is refused, and this is **not** a `dependencies`
253
+ * entry — `price_lists` is not this module's lifecycle dependency and making
254
+ * it one would put a locked module's schema in the way of switching quote
255
+ * requests off.
256
+ */
257
+ permissions: [
258
+ { code: 'rfqs:handle', label: 'Handle quote requests', requires: ['price_lists:read'] },
259
+ ],
260
+ i18n: { bundlesDir: 'i18n' },
261
+ docs: { dir: 'docs' },
262
+ actions: [
263
+ {
264
+ id: 'open-rfq-inbox',
265
+ labelKey: 'actions.openInbox.label',
266
+ descriptionKey: 'actions.openInbox.description',
267
+ icon: 'Inbox',
268
+ targetRoute: '/quote-requests',
269
+ requiredPermission: 'rfqs:handle',
270
+ keywords: ['rfq', 'quote', 'inbox', 'zapytanie', 'oferta'],
271
+ weight: 310,
272
+ },
273
+ ],
274
+ });
275
+ /** Legacy export retained for backward compatibility. */
276
+ export const quoteRequestsManifest = settings;
277
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}