ofpos-shared-core 1.1.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 (143) hide show
  1. package/README.md +37 -0
  2. package/dist/AdapterRegistry.d.ts +83 -0
  3. package/dist/DomainServices.d.ts +151 -0
  4. package/dist/IntegrationServices.d.ts +75 -0
  5. package/dist/PosCore.d.ts +216 -0
  6. package/dist/contracts/contractVersioning.d.ts +6 -0
  7. package/dist/contracts/crossDomainPrimitives.d.ts +5 -0
  8. package/dist/contracts/responseEnvelope.d.ts +6 -0
  9. package/dist/contracts/syncProtocol.d.ts +8 -0
  10. package/dist/data/DbAdapter.d.ts +7 -0
  11. package/dist/data/applyPendingMigrations.d.ts +18 -0
  12. package/dist/data/inMemoryDbAdapter.d.ts +65 -0
  13. package/dist/data/migrations.d.ts +12 -0
  14. package/dist/data/relations.d.ts +3 -0
  15. package/dist/data/schema.d.ts +9 -0
  16. package/dist/data/seed.d.ts +370 -0
  17. package/dist/index.browser.mjs +18 -0
  18. package/dist/index.browser.mjs.LEGAL.txt +46 -0
  19. package/dist/index.cjs.js +18 -0
  20. package/dist/index.cjs.js.LEGAL.txt +46 -0
  21. package/dist/index.d.ts +116 -0
  22. package/dist/index.esm.js +18 -0
  23. package/dist/index.esm.js.LEGAL.txt +46 -0
  24. package/dist/index.umd.js +18 -0
  25. package/dist/index.umd.js.LEGAL.txt +46 -0
  26. package/dist/integration/NotificationAdapter.d.ts +69 -0
  27. package/dist/integration/activityLogger.d.ts +44 -0
  28. package/dist/integration/activitySink.d.ts +8 -0
  29. package/dist/integration/apiService.d.ts +255 -0
  30. package/dist/integration/authorizationService.d.ts +225 -0
  31. package/dist/integration/backupScheduler.d.ts +75 -0
  32. package/dist/integration/checksum.d.ts +9 -0
  33. package/dist/integration/checksumAdapter.d.ts +8 -0
  34. package/dist/integration/configService.d.ts +431 -0
  35. package/dist/integration/defaultChecksumAdapter.d.ts +6 -0
  36. package/dist/integration/defaultEncryptionAdapter.d.ts +9 -0
  37. package/dist/integration/encryption.d.ts +95 -0
  38. package/dist/integration/encryptionAdapter.d.ts +8 -0
  39. package/dist/integration/httpAdapter.d.ts +9 -0
  40. package/dist/integration/loggerAdapter.d.ts +45 -0
  41. package/dist/integration/notificationService.d.ts +45 -0
  42. package/dist/integration/ofauthBridge.d.ts +29 -0
  43. package/dist/integration/ofauthCoreBridge.d.ts +19 -0
  44. package/dist/integration/platformAdapter.d.ts +8 -0
  45. package/dist/integration/roleAdapter.d.ts +61 -0
  46. package/dist/integration/socket.d.ts +60 -0
  47. package/dist/integration/socketAdapter.d.ts +8 -0
  48. package/dist/integration/userService.d.ts +126 -0
  49. package/dist/models/Bom.d.ts +17 -0
  50. package/dist/models/Category.d.ts +13 -0
  51. package/dist/models/Customer.d.ts +17 -0
  52. package/dist/models/CustomerGroup.d.ts +11 -0
  53. package/dist/models/Expense.d.ts +19 -0
  54. package/dist/models/FinancialSetting.d.ts +14 -0
  55. package/dist/models/History.d.ts +18 -0
  56. package/dist/models/InventoryLog.d.ts +23 -0
  57. package/dist/models/InventoryLot.d.ts +34 -0
  58. package/dist/models/KitchenTicket.d.ts +13 -0
  59. package/dist/models/KitchenTicketItem.d.ts +12 -0
  60. package/dist/models/LoyaltyAccount.d.ts +12 -0
  61. package/dist/models/LoyaltyLedger.d.ts +17 -0
  62. package/dist/models/Order.d.ts +45 -0
  63. package/dist/models/OrderItem.d.ts +19 -0
  64. package/dist/models/Payable.d.ts +23 -0
  65. package/dist/models/PriceHistory.d.ts +17 -0
  66. package/dist/models/PriceTier.d.ts +19 -0
  67. package/dist/models/Product.d.ts +25 -0
  68. package/dist/models/Promotion.d.ts +25 -0
  69. package/dist/models/Purchase.d.ts +29 -0
  70. package/dist/models/PurchaseItem.d.ts +21 -0
  71. package/dist/models/PurchaseOrder.d.ts +23 -0
  72. package/dist/models/PurchaseOrderItem.d.ts +19 -0
  73. package/dist/models/Receivable.d.ts +23 -0
  74. package/dist/models/ReportSchedule.d.ts +21 -0
  75. package/dist/models/Return.d.ts +57 -0
  76. package/dist/models/ReturnItem.d.ts +31 -0
  77. package/dist/models/Role.d.ts +13 -0
  78. package/dist/models/Sale.d.ts +43 -0
  79. package/dist/models/SaleItem.d.ts +19 -0
  80. package/dist/models/Settlement.d.ts +23 -0
  81. package/dist/models/Shift.d.ts +41 -0
  82. package/dist/models/StockAdjustment.d.ts +21 -0
  83. package/dist/models/StockOpname.d.ts +22 -0
  84. package/dist/models/StockOpnameItem.d.ts +27 -0
  85. package/dist/models/Supplier.d.ts +19 -0
  86. package/dist/models/TaxRate.d.ts +13 -0
  87. package/dist/models/Transaction.d.ts +32 -0
  88. package/dist/models/Uom.d.ts +15 -0
  89. package/dist/models/User.d.ts +21 -0
  90. package/dist/services/bomService.d.ts +71 -0
  91. package/dist/services/cartService.d.ts +65 -0
  92. package/dist/services/categoryService.d.ts +54 -0
  93. package/dist/services/customerGroupService.d.ts +47 -0
  94. package/dist/services/customerService.d.ts +133 -0
  95. package/dist/services/documentNumberPolicy.d.ts +15 -0
  96. package/dist/services/expenseService.d.ts +47 -0
  97. package/dist/services/exportAdapter.d.ts +48 -0
  98. package/dist/services/exportService.d.ts +263 -0
  99. package/dist/services/financialSettingService.d.ts +47 -0
  100. package/dist/services/historyService.d.ts +60 -0
  101. package/dist/services/inventoryLogService.d.ts +47 -0
  102. package/dist/services/inventoryService.d.ts +43 -0
  103. package/dist/services/orderItemService.d.ts +47 -0
  104. package/dist/services/orderService.d.ts +161 -0
  105. package/dist/services/payableService.d.ts +51 -0
  106. package/dist/services/priceHistoryService.d.ts +61 -0
  107. package/dist/services/priceTierService.d.ts +47 -0
  108. package/dist/services/pricingService.d.ts +192 -0
  109. package/dist/services/productService.d.ts +59 -0
  110. package/dist/services/promotionService.d.ts +47 -0
  111. package/dist/services/purchaseItemService.d.ts +47 -0
  112. package/dist/services/purchaseOrderItemService.d.ts +47 -0
  113. package/dist/services/purchaseOrderService.d.ts +47 -0
  114. package/dist/services/purchaseService.d.ts +130 -0
  115. package/dist/services/receivableService.d.ts +47 -0
  116. package/dist/services/reportScheduleService.d.ts +47 -0
  117. package/dist/services/reportingService.d.ts +251 -0
  118. package/dist/services/returnItemService.d.ts +47 -0
  119. package/dist/services/returnService.d.ts +123 -0
  120. package/dist/services/roleService.d.ts +47 -0
  121. package/dist/services/saleItemService.d.ts +47 -0
  122. package/dist/services/saleService.d.ts +154 -0
  123. package/dist/services/settlementService.d.ts +68 -0
  124. package/dist/services/shiftService.d.ts +92 -0
  125. package/dist/services/stockAdjustmentService.d.ts +47 -0
  126. package/dist/services/stockOpnameItemService.d.ts +47 -0
  127. package/dist/services/stockOpnameService.d.ts +51 -0
  128. package/dist/services/stockTransferService.d.ts +67 -0
  129. package/dist/services/supplierService.d.ts +51 -0
  130. package/dist/services/taxRateService.d.ts +47 -0
  131. package/dist/services/taxService.d.ts +63 -0
  132. package/dist/services/transactionService.d.ts +109 -0
  133. package/dist/services/uiProductService.d.ts +102 -0
  134. package/dist/services/uiTransactionService.d.ts +68 -0
  135. package/dist/services/uomService.d.ts +53 -0
  136. package/dist/services/userService.d.ts +47 -0
  137. package/dist/stores/cartStore.d.ts +109 -0
  138. package/dist/stores/eventBus.d.ts +55 -0
  139. package/dist/stores/sessionStore.d.ts +108 -0
  140. package/dist/stores/storageAdapter.d.ts +44 -0
  141. package/dist/stores/syncService.d.ts +90 -0
  142. package/dist/stores/syncStore.d.ts +163 -0
  143. package/package.json +82 -0
package/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # ofpos-shared-core
2
+
3
+ Offline-first POS shared core untuk host app berbasis web, desktop, atau mobile.
4
+
5
+ Package ini menyediakan domain logic inti POS yang terpisah dari framework UI dan transport, dengan output distribusi:
6
+ - `dist/index.cjs.js` (CommonJS)
7
+ - `dist/index.esm.js` (ESM)
8
+ - `dist/index.d.ts` (TypeScript types)
9
+
10
+ ## Install
11
+ ```bash
12
+ npm install ofpos-shared-core
13
+ ```
14
+
15
+ ## Development
16
+ ```bash
17
+ npm install --no-audit --no-fund
18
+ npm run ci:check
19
+ ```
20
+
21
+ ## Build
22
+ ```bash
23
+ npm run build
24
+ ```
25
+
26
+ ## Publish Check
27
+ ```bash
28
+ npm pack --dry-run
29
+ ```
30
+
31
+ Pastikan tarball berisi artefak runtime (`.js`) dan type declarations (`.d.ts`) di folder `dist/`.
32
+
33
+ ## Referensi Dokumen
34
+ - Domain overview: `docs/Overview.md`
35
+ - Arsitektur domain: `docs/DOMAIN-CANONICAL-SPECS.md`
36
+ - Panduan development: `docs/DEVELOPMENT.md`
37
+ - Alur release: `docs/release/`
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Modul registri adapter untuk PosCore,
3
+ * mengatur instansiasi adapter platform, database, logger,
4
+ * notifikasi, export, dan storage dengan simple DI.
5
+ */
6
+ import 'reflect-metadata';
7
+ import { PosCore } from "./PosCore";
8
+ import { DbAdapter } from "ofcore";
9
+ import { ExportAdapter } from "./services/exportAdapter";
10
+ import { LoggerAdapter } from "./integration/loggerAdapter";
11
+ import { HttpAdapter } from "./integration/httpAdapter";
12
+ import { ActivitySink } from "./integration/activitySink";
13
+ import { HttpRetryPolicy } from "./integration/httpAdapter";
14
+ import { EncryptionAdapter } from "./integration/encryptionAdapter";
15
+ import { ChecksumAdapter } from "./integration/checksumAdapter";
16
+ import { NotificationAdapter } from "./integration/NotificationAdapter";
17
+ import { PlatformAdapter } from "ofcore";
18
+ import { SocketAdapter } from "./integration/socketAdapter";
19
+ import { StorageAdapter } from "./stores/storageAdapter";
20
+ /**
21
+ * Factory untuk membuat adapter berdasarkan PosCore.
22
+ */
23
+ export type AdapterFactory<T> = (ctx: PosCore) => T;
24
+ /**
25
+ * Constructor adapter dengan metadata injeksi parameter.
26
+ */
27
+ export type AdapterConstructor<T> = new (...args: any[]) => T;
28
+ /**
29
+ * Opsi konfigurasi registry adapter.
30
+ */
31
+ export type AdapterRegistryOptions = {
32
+ platformAdapter?: AdapterFactory<PlatformAdapter> | AdapterConstructor<PlatformAdapter> | PlatformAdapter;
33
+ dbAdapter?: AdapterFactory<DbAdapter> | AdapterConstructor<DbAdapter>;
34
+ loggerAdapter?: AdapterFactory<LoggerAdapter> | AdapterConstructor<LoggerAdapter>;
35
+ httpAdapter?: AdapterFactory<HttpAdapter> | AdapterConstructor<HttpAdapter>;
36
+ httpRetryPolicy?: AdapterFactory<HttpRetryPolicy> | AdapterConstructor<HttpRetryPolicy>;
37
+ socketAdapter?: AdapterFactory<SocketAdapter> | AdapterConstructor<SocketAdapter>;
38
+ activitySink?: AdapterFactory<ActivitySink> | AdapterConstructor<ActivitySink>;
39
+ encryptionAdapter?: AdapterFactory<EncryptionAdapter> | AdapterConstructor<EncryptionAdapter>;
40
+ checksumAdapter?: AdapterFactory<ChecksumAdapter> | AdapterConstructor<ChecksumAdapter>;
41
+ notificationAdapter?: AdapterFactory<NotificationAdapter> | AdapterConstructor<NotificationAdapter>;
42
+ exportAdapter?: AdapterFactory<ExportAdapter> | AdapterConstructor<ExportAdapter>;
43
+ storageAdapter?: AdapterFactory<StorageAdapter> | AdapterConstructor<StorageAdapter> | StorageAdapter;
44
+ };
45
+ /**
46
+ * Registri yang menyimpan dan menyediakan instansi adapter untuk PosCore.
47
+ */
48
+ export declare class AdapterRegistry {
49
+ private readonly context;
50
+ private opts;
51
+ /** Adapter platform (UI/environment). */
52
+ readonly platformAdapter: PlatformAdapter;
53
+ /** Adapter database. */
54
+ readonly dbAdapter: DbAdapter;
55
+ /** Adapter untuk logging. */
56
+ readonly loggerAdapter: LoggerAdapter;
57
+ /** Adapter untuk HTTP transport. */
58
+ readonly httpAdapter: HttpAdapter;
59
+ /** Policy retry HTTP generik. */
60
+ readonly httpRetryPolicy: HttpRetryPolicy;
61
+ /** Adapter untuk realtime socket transport. */
62
+ readonly socketAdapter: SocketAdapter;
63
+ /** Sink aktivitas/audit generik untuk host override. */
64
+ readonly activitySink: ActivitySink;
65
+ /** Adapter enkripsi generik untuk kebutuhan lintas domain. */
66
+ readonly encryptionAdapter: EncryptionAdapter;
67
+ /** Adapter checksum generik untuk kebutuhan lintas domain. */
68
+ readonly checksumAdapter: ChecksumAdapter;
69
+ /** Adapter untuk notifikasi. */
70
+ readonly notificationAdapter: NotificationAdapter;
71
+ /** Adapter untuk export data. */
72
+ readonly exportAdapter: ExportAdapter;
73
+ /** Adapter untuk penyimpanan lokal. */
74
+ readonly storageAdapter: StorageAdapter;
75
+ constructor(context: PosCore, opts?: AdapterRegistryOptions);
76
+ /**
77
+ * Resolve provider ke instansi adapter,
78
+ * bisa instance langsung, factory, atau constructor dengan metadata injeksi.
79
+ * @param provider Instance/factory/constructor adapter.
80
+ * @param DefaultImpl Default constructor jika tidak ada provider.
81
+ */
82
+ private resolveAdapter;
83
+ }
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Domain Services Registry
3
+ * This file is auto-generated. Do not edit manually.
4
+ */
5
+ import { PosCore } from './PosCore';
6
+ import { IBomService } from './services/bomService';
7
+ import { ICategoryService } from './services/categoryService';
8
+ import { ICustomerService } from './services/customerService';
9
+ import { ICustomerGroupService } from './services/customerGroupService';
10
+ import { IHistoryService } from './services/historyService';
11
+ import { IOrderService } from './services/orderService';
12
+ import { IOrderItemService } from './services/orderItemService';
13
+ import { IPriceTierService } from './services/priceTierService';
14
+ import { IProductService } from './services/productService';
15
+ import { IPromotionService } from './services/promotionService';
16
+ import { IReturnService } from './services/returnService';
17
+ import { IReturnItemService } from './services/returnItemService';
18
+ import { IRoleService } from './services/roleService';
19
+ import { ISaleService } from './services/saleService';
20
+ import { ISaleItemService } from './services/saleItemService';
21
+ import { IShiftService } from './services/shiftService';
22
+ import { ITaxRateService } from './services/taxRateService';
23
+ import { ITransactionService } from './services/transactionService';
24
+ import { IUomService } from './services/uomService';
25
+ import { IUserService } from './services/userService';
26
+ import { ISupplierService } from './services/supplierService';
27
+ import { IPurchaseOrderService } from './services/purchaseOrderService';
28
+ import { IPurchaseOrderItemService } from './services/purchaseOrderItemService';
29
+ import { IPurchaseService } from './services/purchaseService';
30
+ import { IPurchaseItemService } from './services/purchaseItemService';
31
+ import { IInventoryLogService } from './services/inventoryLogService';
32
+ import { IPriceHistoryService } from './services/priceHistoryService';
33
+ import { IStockOpnameService } from './services/stockOpnameService';
34
+ import { IStockOpnameItemService } from './services/stockOpnameItemService';
35
+ import { IStockAdjustmentService } from './services/stockAdjustmentService';
36
+ import { IReportScheduleService } from './services/reportScheduleService';
37
+ import { IFinancialSettingService } from './services/financialSettingService';
38
+ import { IExpenseService } from './services/expenseService';
39
+ import { IReceivableService } from './services/receivableService';
40
+ import { IPayableService } from './services/payableService';
41
+ import { ISettlementService } from './services/settlementService';
42
+ import { IInventoryService } from './services/inventoryService';
43
+ import { IExportService } from './services/exportService';
44
+ import { IPricingService } from './services/pricingService';
45
+ import { IReportingService } from './services/reportingService';
46
+ import { ICartService } from './services/cartService';
47
+ import { ITaxService } from './services/taxService';
48
+ import { IStockTransferService } from './services/stockTransferService';
49
+ /**
50
+ * Override type for domain services, allowing custom implementations.
51
+ */
52
+ export type DomainServicesOverride = {
53
+ bomService: IBomService;
54
+ categoryService: ICategoryService;
55
+ customerService: ICustomerService;
56
+ customerGroupService: ICustomerGroupService;
57
+ historyService: IHistoryService;
58
+ orderService: IOrderService;
59
+ orderItemService: IOrderItemService;
60
+ priceTierService: IPriceTierService;
61
+ productService: IProductService;
62
+ promotionService: IPromotionService;
63
+ returnService: IReturnService;
64
+ returnItemService: IReturnItemService;
65
+ roleService: IRoleService;
66
+ saleService: ISaleService;
67
+ saleItemService: ISaleItemService;
68
+ shiftService: IShiftService;
69
+ taxRateService: ITaxRateService;
70
+ transactionService: ITransactionService;
71
+ uomService: IUomService;
72
+ userService: IUserService;
73
+ supplierService: ISupplierService;
74
+ purchaseOrderService: IPurchaseOrderService;
75
+ purchaseOrderItemService: IPurchaseOrderItemService;
76
+ purchaseService: IPurchaseService;
77
+ purchaseItemService: IPurchaseItemService;
78
+ inventoryLogService: IInventoryLogService;
79
+ priceHistoryService: IPriceHistoryService;
80
+ stockOpnameService: IStockOpnameService;
81
+ stockOpnameItemService: IStockOpnameItemService;
82
+ stockAdjustmentService: IStockAdjustmentService;
83
+ reportScheduleService: IReportScheduleService;
84
+ financialSettingService: IFinancialSettingService;
85
+ expenseService: IExpenseService;
86
+ receivableService: IReceivableService;
87
+ payableService: IPayableService;
88
+ settlementService: ISettlementService;
89
+ inventoryService: IInventoryService;
90
+ exportService: IExportService;
91
+ pricingService: IPricingService;
92
+ reportingService: IReportingService;
93
+ cartService: ICartService;
94
+ taxService: ITaxService;
95
+ stockTransferService: IStockTransferService;
96
+ };
97
+ /**
98
+ * Domain Services Registry
99
+ */
100
+ export declare class DomainServices {
101
+ private context;
102
+ bom: IBomService;
103
+ category: ICategoryService;
104
+ customer: ICustomerService;
105
+ customerGroup: ICustomerGroupService;
106
+ history: IHistoryService;
107
+ order: IOrderService;
108
+ orderItem: IOrderItemService;
109
+ priceTier: IPriceTierService;
110
+ product: IProductService;
111
+ promotion: IPromotionService;
112
+ returnService: IReturnService;
113
+ returnItem: IReturnItemService;
114
+ role: IRoleService;
115
+ sale: ISaleService;
116
+ saleItem: ISaleItemService;
117
+ shift: IShiftService;
118
+ taxRate: ITaxRateService;
119
+ transaction: ITransactionService;
120
+ uom: IUomService;
121
+ user: IUserService;
122
+ supplier: ISupplierService;
123
+ purchaseOrder: IPurchaseOrderService;
124
+ purchaseOrderItem: IPurchaseOrderItemService;
125
+ purchase: IPurchaseService;
126
+ purchaseItem: IPurchaseItemService;
127
+ inventoryLog: IInventoryLogService;
128
+ priceHistory: IPriceHistoryService;
129
+ stockOpname: IStockOpnameService;
130
+ stockOpnameItem: IStockOpnameItemService;
131
+ stockAdjustment: IStockAdjustmentService;
132
+ reportSchedule: IReportScheduleService;
133
+ financialSetting: IFinancialSettingService;
134
+ expense: IExpenseService;
135
+ receivable: IReceivableService;
136
+ payable: IPayableService;
137
+ settlement: ISettlementService;
138
+ inventory: IInventoryService;
139
+ exportService: IExportService;
140
+ pricing: IPricingService;
141
+ reporting: IReportingService;
142
+ cart: ICartService;
143
+ tax: ITaxService;
144
+ stockTransfer: IStockTransferService;
145
+ /**
146
+ * Creates an instance of DomainServices.
147
+ * @param context The PosCore context.
148
+ * @param overrides Optional overrides for domain services.
149
+ */
150
+ constructor(context: PosCore, overrides?: Partial<DomainServicesOverride>);
151
+ }
@@ -0,0 +1,75 @@
1
+ import { IActivityLogger } from './integration/activityLogger';
2
+ import { PosCore } from './PosCore';
3
+ import { IAuthorizationService } from './integration/authorizationService';
4
+ import { IEncryptionService } from './integration/encryption';
5
+ import { IUserService } from './integration/userService';
6
+ import { IApiService } from './integration/apiService';
7
+ import { ISyncService } from './stores/syncService';
8
+ import { ISocketService } from './integration/socket';
9
+ import { INotificationService } from './integration/notificationService';
10
+ import { IConfigService } from './integration/configService';
11
+ import { IBackupScheduler } from './integration/backupScheduler';
12
+ import { IOfauthBridge } from './integration/ofauthBridge';
13
+ /**
14
+ * Override layanan integrasi untuk menginisialisasi IntegrationServices dengan implementasi kustom.
15
+ */
16
+ export type IntegrationServicesOverride = {
17
+ /** Layanan konfigurasi. */
18
+ configService: IConfigService;
19
+ /** Layanan otorisasi. */
20
+ authorizationService: IAuthorizationService;
21
+ /** Layanan enkripsi data. */
22
+ encryptionService: IEncryptionService;
23
+ /** Layanan API eksternal. */
24
+ apiService: IApiService;
25
+ /** Layanan sinkronisasi data. */
26
+ syncService: ISyncService;
27
+ /** Layanan socket untuk komunikasi realtime. */
28
+ socketService: ISocketService;
29
+ /** Layanan notifikasi. */
30
+ notificationService: INotificationService;
31
+ /** Layanan pengguna. */
32
+ userService: IUserService;
33
+ /** Layanan pencatatan aktivitas. */
34
+ activityLogger: IActivityLogger;
35
+ backupScheduler: IBackupScheduler;
36
+ ofauthBridge: IOfauthBridge;
37
+ };
38
+ /**
39
+ * Penyedia seluruh layanan integrasi yang digunakan oleh PosCore.
40
+ *
41
+ * @remarks
42
+ * Mengelola instansiasi default sekaligus memungkinkan penggantian implementasi via overrides.
43
+ */
44
+ export declare class IntegrationServices {
45
+ private context;
46
+ /** Layanan konfigurasi. */
47
+ config: IConfigService;
48
+ /** Layanan otorisasi. */
49
+ authorization: IAuthorizationService;
50
+ /** Layanan enkripsi data. */
51
+ encryption: IEncryptionService;
52
+ /** Layanan API eksternal. */
53
+ api: IApiService;
54
+ /** Layanan sinkronisasi data. */
55
+ sync: ISyncService;
56
+ /** Layanan socket untuk komunikasi realtime. */
57
+ socket: ISocketService;
58
+ /** Layanan notifikasi. */
59
+ notification: INotificationService;
60
+ /** Layanan pengguna. */
61
+ user: IUserService;
62
+ /** Layanan pencatatan aktivitas. */
63
+ activityLogger: IActivityLogger;
64
+ backupScheduler: IBackupScheduler;
65
+ /** Bridge auth compatibility (opsional) untuk adopsi ofauth-shared-core bertahap. */
66
+ ofauthBridge: IOfauthBridge;
67
+ /**
68
+ * Membuat instance IntegrationServices.
69
+ * @param context - Instans PosCore yang menggunakan layanan ini.
70
+ * @param overrides - Opsi untuk mengganti implementasi layanan integrasi default.
71
+ */
72
+ constructor(context: PosCore, overrides?: Partial<IntegrationServicesOverride>);
73
+ static create(context: PosCore, overrides?: Partial<IntegrationServicesOverride>): Promise<IntegrationServices>;
74
+ shutdown(): Promise<void>;
75
+ }
@@ -0,0 +1,216 @@
1
+ import type { ReadonlyStore } from 'ofcore';
2
+ import { DomainServices, DomainServicesOverride } from './DomainServices';
3
+ import { SyncStore } from './stores/syncStore';
4
+ import { ConfigService } from './integration/configService';
5
+ import { AdapterRegistry, AdapterRegistryOptions } from './AdapterRegistry';
6
+ import { IntegrationServices, IntegrationServicesOverride } from './IntegrationServices';
7
+ import { DbAdapter } from 'ofcore';
8
+ import { SessionStore } from './stores/sessionStore';
9
+ /**
10
+ * Opsi untuk memulai PosCore.
11
+ * @property runMigrations Jika true, jalankan migrasi database sebelum inisialisasi plugin.
12
+ */
13
+ export interface StartOptions {
14
+ runMigrations?: boolean;
15
+ useSeedData?: boolean;
16
+ }
17
+ export interface PosRuntimeState {
18
+ phase: 'idle' | 'starting' | 'started' | 'stopping' | 'stopped' | 'error';
19
+ started: boolean;
20
+ startCount: number;
21
+ stopCount: number;
22
+ lastError: string | null;
23
+ lastTransitionAt: string;
24
+ }
25
+ /**
26
+ * Kelas utama PosCore yang mengatur lifecycle, registri adapter,
27
+ * domain services, integration services, dan plugin.
28
+ */
29
+ export declare class PosCore {
30
+ /** Event bus global aplikasi. */
31
+ eventBus: import("mitt").Emitter<import("./stores/eventBus").PosCoreEvents>;
32
+ /** Registri adapter saat ini. */
33
+ registry?: AdapterRegistry;
34
+ /** Layanan domain yang tersedia. */
35
+ domainServices?: DomainServices;
36
+ /** Layanan integrasi yang tersedia. */
37
+ integrationServices?: IntegrationServices;
38
+ readonly runtimeStore: ReadonlyStore<PosRuntimeState>;
39
+ private syncStore?;
40
+ private sessionStore?;
41
+ private runtimeStateStore;
42
+ /** Override untuk domain services sebelum inisialisasi. */
43
+ domainServiceOverrides: Partial<DomainServicesOverride>;
44
+ /** Override untuk integration services sebelum inisialisasi. */
45
+ integrationServiceOverrides: Partial<IntegrationServicesOverride>;
46
+ private runtime;
47
+ private pluginSpecs;
48
+ constructor();
49
+ /**
50
+ * Dapatkan instansi SyncStore.
51
+ */
52
+ getSyncStore(): SyncStore | undefined;
53
+ /**
54
+ * Dapatkan instansi SessionStore untuk update status login.
55
+ */
56
+ getSessionStore(): SessionStore | undefined;
57
+ /**
58
+ * Akses state sesi (userId, token, dll).
59
+ */
60
+ get session(): import("./stores/sessionStore").SessionState | undefined;
61
+ /**
62
+ * Mulai builder chain untuk PosCore.
63
+ */
64
+ static builder(): PosCoreBuilder;
65
+ /**
66
+ * Daftarkan plugin dengan nama unik, fungsi init, dan daftar dependency.
67
+ * @param name Nama unik plugin.
68
+ * @param init Fungsi inisialisasi plugin.
69
+ * @param deps Plugin lain yang harus diinisialisasi dulu.
70
+ */
71
+ use(name: string, init: (core: PosCore) => Promise<void>, deps?: string[]): PosCore;
72
+ /**
73
+ * Hentikan PosCore, hentikan scheduler, layanan, dan bersihkan registry.
74
+ */
75
+ stop(): Promise<void>;
76
+ /**
77
+ * Reset PosCore ke kondisi sebelum start, tanpa merombak registri.
78
+ */
79
+ reset(): Promise<void>;
80
+ /**
81
+ * Restart PosCore dengan mempertahankan plugins dan override.
82
+ */
83
+ restart(): Promise<void>;
84
+ /**
85
+ * Inisialisasi internal SyncStore dan SessionStore.
86
+ */
87
+ init(opts?: StartOptions): Promise<void>;
88
+ /**
89
+ * Mulai PosCore: inisialisasi services, migrasi, dan plugin.
90
+ * @param opts Opsi untuk start.
91
+ */
92
+ start(opts?: StartOptions): Promise<void>;
93
+ /**
94
+ * Hitung checksum dari data teks.
95
+ * @param data Teks yang akan dihitung checksum.
96
+ */
97
+ checksum(data: string): string;
98
+ /**
99
+ * Log pesan informasi ke logger.
100
+ * @param msg Pesan informasi.
101
+ * @param ctx Konteks tambahan.
102
+ */
103
+ logInfo(msg: string, ctx?: Record<string, any>): void;
104
+ /**
105
+ * Log error ke logger.
106
+ * @param err Objek error atau pesan.
107
+ * @param ctx Konteks tambahan.
108
+ */
109
+ logError(err: any, ctx?: Record<string, any>): void;
110
+ /**
111
+ * Inisialisasi layanan notifikasi.
112
+ */
113
+ initNotifications(): void;
114
+ /**
115
+ * Tampilkan notifikasi kepada pengguna.
116
+ * @param title Judul notifikasi.
117
+ * @param message Isi pesan notifikasi.
118
+ */
119
+ notify(title: string, message: string): void;
120
+ /**
121
+ * Akses service konfigurasi.
122
+ */
123
+ get config(): ConfigService;
124
+ isOnline(): boolean | undefined;
125
+ /**
126
+ * Generate correlation id untuk tracing lintas request/log.
127
+ */
128
+ createCorrelationId(prefix?: string): string;
129
+ /**
130
+ * Catat aktivitas ke action logger.
131
+ * @param action Deskripsi aktivitas.
132
+ * @param extraContext Konteks tambahan.
133
+ */
134
+ logActivity(action: string, extraContext?: Record<string, any>, tx?: DbAdapter): Promise<void>;
135
+ private createRuntime;
136
+ private resolveUseSeedData;
137
+ }
138
+ /**
139
+ * Builder untuk PosCore: menyediakan cara configurasi adapter dan override sebelum build.
140
+ */
141
+ export declare class PosCoreBuilder {
142
+ private core;
143
+ private adapterOpts;
144
+ /**
145
+ * Set platform adapter.
146
+ */
147
+ withPlatformAdapter(factory: AdapterRegistryOptions['platformAdapter']): this;
148
+ /**
149
+ * Set database adapter.
150
+ */
151
+ withDbAdapter(factory: AdapterRegistryOptions['dbAdapter']): this;
152
+ /**
153
+ * Set logger adapter.
154
+ */
155
+ withLoggerAdapter(factory: AdapterRegistryOptions['loggerAdapter']): this;
156
+ /**
157
+ * Set HTTP adapter.
158
+ */
159
+ withHttpAdapter(factory: AdapterRegistryOptions['httpAdapter']): this;
160
+ /**
161
+ * Set HTTP retry policy adapter.
162
+ */
163
+ withHttpRetryPolicy(factory: AdapterRegistryOptions['httpRetryPolicy']): this;
164
+ /**
165
+ * Set socket adapter.
166
+ */
167
+ withSocketAdapter(factory: AdapterRegistryOptions['socketAdapter']): this;
168
+ /**
169
+ * Set encryption adapter.
170
+ */
171
+ withEncryptionAdapter(factory: AdapterRegistryOptions['encryptionAdapter']): this;
172
+ /**
173
+ * Set checksum adapter.
174
+ */
175
+ withChecksumAdapter(factory: AdapterRegistryOptions['checksumAdapter']): this;
176
+ /**
177
+ * Set generic activity sink adapter.
178
+ */
179
+ withActivitySink(factory: AdapterRegistryOptions['activitySink']): this;
180
+ /**
181
+ * Set notification adapter.
182
+ */
183
+ withNotificationAdapter(factory: AdapterRegistryOptions['notificationAdapter']): this;
184
+ /**
185
+ * Set export adapter.
186
+ */
187
+ withExportAdapter(factory: AdapterRegistryOptions['exportAdapter']): this;
188
+ /**
189
+ * Set storage adapter.
190
+ */
191
+ withStorageAdapter(factory: AdapterRegistryOptions['storageAdapter']): this;
192
+ /**
193
+ * Override default domain services.
194
+ */
195
+ overrideDomainServices(overrides?: Partial<DomainServicesOverride>): this;
196
+ /**
197
+ * Override default integration services.
198
+ */
199
+ overrideIntegrationServices(overrides?: Partial<IntegrationServicesOverride>): this;
200
+ /**
201
+ * Build PosCore: inisialisasi registry dan stores, lalu kembalikan instansi.
202
+ */
203
+ build(_opts?: StartOptions): PosCore;
204
+ }
205
+ /**
206
+ * Pengunaan :
207
+ * const core = PosCore.builder()
208
+ * .withLoggerAdapter(ctx => new MyLogger(ctx))
209
+ * .withDbAdapter(ctx => new MyDb(ctx))
210
+ * .withNotificationAdapter(() => myNotif)
211
+ * .build();
212
+ *
213
+ * core.start();
214
+ * core.initNotificationService();
215
+ * core.showNotification('Hello','World');
216
+ */
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Bridge file for RFC 001 extraction phase.
3
+ * Source of truth for generic contract versioning policy is `ofcore`.
4
+ */
5
+ export type { ContractVersionInfo, ContractChangeNote, } from 'ofcore';
6
+ export { isContractVersionCompatible } from 'ofcore';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Bridge file for RFC 005 extraction phase.
3
+ * Source of truth for generic cross-domain policy/compliance primitives is `ofcore`.
4
+ */
5
+ export type { ScopeRef, DomainAuditActor, DomainAuditEntityRef, DomainAuditEvent, WorklistUrgency, WorklistItem, PolicyVersionedConfig, ComplianceEvaluationResult, } from 'ofcore';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Bridge file for RFC 001 extraction phase.
3
+ * Source of truth for generic response envelope contract is `ofcore`.
4
+ */
5
+ export type { ErrorDetail, ErrorEnvelope, MetaEnvelope, SuccessEnvelope, FailureEnvelope, ResponseEnvelope, } from 'ofcore';
6
+ export { isFailureEnvelope } from 'ofcore';
@@ -0,0 +1,8 @@
1
+ export declare const CURRENT_SYNC_PROTOCOL_VERSION = 1;
2
+ export declare const DEFAULT_SYNC_COMPATIBLE_SERVER_VERSIONS: number[];
3
+ export type SyncProtocolContract = {
4
+ currentVersion: number;
5
+ compatibleServerVersions: number[];
6
+ };
7
+ export declare function getSyncProtocolContract(): SyncProtocolContract;
8
+ export declare function isServerProtocolCompatible(serverVersion: number, compatibleServerVersions: number[]): boolean;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bridge file for RFC 001 extraction phase.
3
+ *
4
+ * Source of truth for DB contract is `ofcore`.
5
+ * Shared-core keeps this path for backward import compatibility.
6
+ */
7
+ export type { AggregateFunction, AggregateSpec, GroupBySpec, HavingExpression, ColumnType, LiteralValue, ValueExpression, Operator, ExplicitFieldCondition, SimpleFieldCondition, BetweenCondition, FieldCondition, ShorthandCondition, AndNode, OrNode, FilterExpression, JoinType, JoinCondition, JoinDefinition, SortSpec, IncludeSpec, QueryOptions, ColumnRelation, PolymorphicRelation, ColumnDefinition, TableSchema, DbSchema, DbAdapter, } from 'ofcore';
@@ -0,0 +1,18 @@
1
+ /**
2
+ * POS migration runtime gate.
3
+ *
4
+ * Strategy RFC 001 Batch-2:
5
+ * - `ofcore` menyediakan helper migrasi generik (domain-agnostic).
6
+ * - `shared-core` mempertahankan wrapper runtime ini karena daftar migration
7
+ * untuk schema POS tetap menjadi otoritas `shared-core/src/data/migrations.ts`.
8
+ * - Dengan strategi ini, boundary tetap bersih: `ofcore` tidak memuat domain POS.
9
+ */
10
+ import { DbAdapter } from './DbAdapter';
11
+ import { LoggerAdapter } from '../integration/loggerAdapter';
12
+ /**
13
+ * Apply pending migrations to bring the database up to the latest POS schema version.
14
+ * @param adapter - Partial DbAdapter instance with schema versioning support.
15
+ * @param logger - LoggerAdapter for logging migration progress and errors.
16
+ * @throws Error if adapter does not support schema versioning or migration fails.
17
+ */
18
+ export declare function applyPendingMigrations(adapter: Partial<DbAdapter>, logger: LoggerAdapter): Promise<void>;