@fayz-ai/plugin-inventory 0.16.2 → 0.18.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.
- package/README.md +2 -0
- package/dist/components/InventorySettings.d.ts.map +1 -1
- package/dist/context.d.ts +3 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/index.d.ts +25 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1298 -4204
- package/dist/index.js.map +1 -1
- package/dist/locales/en.d.ts.map +1 -1
- package/dist/locales/pt-BR.d.ts.map +1 -1
- package/dist/views/InventoryPage.d.ts +2 -2
- package/dist/views/InventoryPage.d.ts.map +1 -1
- package/dist/views/MovementHistoryView.d.ts.map +1 -1
- package/dist/views/ProductBarcodesTab.d.ts +1 -1
- package/dist/views/ProductBarcodesTab.d.ts.map +1 -1
- package/dist/views/ProductComplementsTab.d.ts +1 -1
- package/dist/views/ProductComplementsTab.d.ts.map +1 -1
- package/dist/views/ProductCrudForm.d.ts.map +1 -1
- package/dist/views/ProductRecipeTab.d.ts +1 -1
- package/dist/views/ProductRecipeTab.d.ts.map +1 -1
- package/dist/views/ProductStockTab.d.ts +1 -1
- package/dist/views/ProductStockTab.d.ts.map +1 -1
- package/dist/views/ProductVariantsTab.d.ts +1 -1
- package/dist/views/ProductVariantsTab.d.ts.map +1 -1
- package/dist/views/StockCountFormView.d.ts.map +1 -1
- package/dist/views/StockCountSessionView.d.ts.map +1 -1
- package/dist/views/StockMovementView.d.ts +1 -1
- package/dist/views/StockMovementView.d.ts.map +1 -1
- package/dist/views/StockPanelView.d.ts.map +1 -1
- package/dist/views/dashboardWidgets.d.ts +2 -2
- package/dist/views/dashboardWidgets.d.ts.map +1 -1
- package/dist/views/productEntity.d.ts +2 -2
- package/dist/views/productEntity.d.ts.map +1 -1
- package/dist/views/recipe/GenerateImageDialog.d.ts +1 -1
- package/dist/views/recipe/GenerateImageDialog.d.ts.map +1 -1
- package/dist/views/recipe/IngredientCostDialog.d.ts +1 -1
- package/dist/views/recipe/IngredientCostDialog.d.ts.map +1 -1
- package/dist/views/recipe/QuickIngredientDialog.d.ts +2 -1
- package/dist/views/recipe/QuickIngredientDialog.d.ts.map +1 -1
- package/dist/views/recipe/RecipeAiDialog.d.ts +2 -1
- package/dist/views/recipe/RecipeAiDialog.d.ts.map +1 -1
- package/dist/views/recipe/RecipeEditor.d.ts +1 -1
- package/dist/views/recipe/RecipeEditor.d.ts.map +1 -1
- package/dist/views/recipe/TransformIntermediateDialog.d.ts +2 -1
- package/dist/views/recipe/TransformIntermediateDialog.d.ts.map +1 -1
- package/dist/views/recipe/exportRecipesXlsx.d.ts +1 -1
- package/dist/views/recipe/exportRecipesXlsx.d.ts.map +1 -1
- package/dist/views/recipe/printRecipe.d.ts +2 -2
- package/dist/views/recipe/printRecipe.d.ts.map +1 -1
- package/dist/views/recipe/shared.d.ts.map +1 -1
- package/package.json +5 -4
- package/dist/data/index.d.ts +0 -3
- package/dist/data/index.d.ts.map +0 -1
- package/dist/data/mock.d.ts +0 -3
- package/dist/data/mock.d.ts.map +0 -1
- package/dist/data/reference-data.d.ts +0 -37
- package/dist/data/reference-data.d.ts.map +0 -1
- package/dist/data/supabase.d.ts +0 -3
- package/dist/data/supabase.d.ts.map +0 -1
- package/dist/data/tables.d.ts +0 -27
- package/dist/data/tables.d.ts.map +0 -1
- package/dist/data/types.d.ts +0 -150
- package/dist/data/types.d.ts.map +0 -1
- package/dist/lib/idempotency.d.ts +0 -2
- package/dist/lib/idempotency.d.ts.map +0 -1
- package/dist/lib/movement-vocabulary.d.ts +0 -30
- package/dist/lib/movement-vocabulary.d.ts.map +0 -1
- package/dist/lib/recipe-cost.d.ts +0 -28
- package/dist/lib/recipe-cost.d.ts.map +0 -1
- package/dist/lib/stock-count.d.ts +0 -22
- package/dist/lib/stock-count.d.ts.map +0 -1
- package/dist/lib/stock-health.d.ts +0 -14
- package/dist/lib/stock-health.d.ts.map +0 -1
- package/dist/lib/tenant.d.ts +0 -3
- package/dist/lib/tenant.d.ts.map +0 -1
- package/dist/store.d.ts +0 -55
- package/dist/store.d.ts.map +0 -1
- package/dist/types.d.ts +0 -825
- package/dist/types.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -19,6 +19,8 @@ It ships real data out of the box: a Supabase provider with an automatic mock fa
|
|
|
19
19
|
- **AI tool** — `getLowStock` (products below minimum threshold), with vertical-aware prompt suggestions
|
|
20
20
|
- **Declared features, settings + i18n** — registers `inventory` (and `inventory.recipes`) features, a general settings tab, and bundled locales
|
|
21
21
|
|
|
22
|
+
The domain, the data provider and the store live in [`@fayz-ai/inventory`](../../packages/inventory/README.md); this plugin is the screens that compose them.
|
|
23
|
+
|
|
22
24
|
## Install
|
|
23
25
|
```bash
|
|
24
26
|
npm install @fayz-ai/plugin-inventory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InventorySettings.d.ts","sourceRoot":"","sources":["../../src/components/InventorySettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"InventorySettings.d.ts","sourceRoot":"","sources":["../../src/components/InventorySettings.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAItD,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IACpE,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,qBAgBA"}
|
package/dist/context.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import type React from 'react';
|
|
|
2
2
|
import type { DetailTab } from '@fayz-ai/core';
|
|
3
3
|
import { formatCurrency, type CurrencyConfig } from '@fayz-ai/admin';
|
|
4
4
|
import type { InventoryPluginLabels } from './index';
|
|
5
|
-
import type { InventoryDataProvider } from '
|
|
6
|
-
import type { InventoryUIState } from '
|
|
7
|
-
import type { StockMovement } from '
|
|
5
|
+
import type { InventoryDataProvider } from '@fayz-ai/inventory/data/provider';
|
|
6
|
+
import type { InventoryUIState } from '@fayz-ai/inventory/store';
|
|
7
|
+
import type { StockMovement } from '@fayz-ai/inventory/domain/movement';
|
|
8
8
|
export interface InventoryModules {
|
|
9
9
|
/** Product catalogue screens. Off when the host registers products elsewhere. */
|
|
10
10
|
products: boolean;
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAuB,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAuB,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE9C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACvC,OAAO,EAAE,gBAAgB,CAAA;IACzB,MAAM,EAAE,qBAAqB,CAAA;IAC7B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,YAAY,EAAE,iBAAiB,EAAE,CAAA;IACjC,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,8FAA8F;IAC9F,iBAAiB,EAAE,SAAS,EAAE,CAAA;IAC9B,mFAAmF;IACnF,UAAU,EAAE,KAAK,CAAC;QAChB,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,KAAK,CAAC,SAAS,CAAA;QAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,KAAK,CAAC,SAAS,CAAA;SAAE,CAAC,CAAA;QAC9E,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAC,CAAA;IACF;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAA;CAChF;AAID,eAAO,MAAM,wBAAwB;;;;;EAAsB,CAAA;AAC3D,eAAO,MAAM,kBAAkB,+BAAgB,CAAA;AAC/C,eAAO,MAAM,oBAAoB,6BAAkB,CAAA;AACnD,eAAO,MAAM,iBAAiB,oDAAe,CAAA;AAE7C,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { DetailTab, PluginManifest, PluginScope, VerticalId } from '@fayz-ai/core';
|
|
3
|
-
import type { InventoryDataProvider } from '
|
|
4
|
-
import type { StockMovement } from '
|
|
3
|
+
import type { InventoryDataProvider } from '@fayz-ai/inventory/data/provider';
|
|
4
|
+
import type { StockMovement } from '@fayz-ai/inventory/domain/movement';
|
|
5
|
+
import { createInventoryDataProvider } from '@fayz-ai/inventory/store';
|
|
5
6
|
export interface InventoryPluginLabels {
|
|
6
7
|
pageTitle: string;
|
|
7
8
|
pageSubtitle: string;
|
|
@@ -41,6 +42,17 @@ export interface InventoryExtraView {
|
|
|
41
42
|
*/
|
|
42
43
|
defaultChildLabel?: string;
|
|
43
44
|
}
|
|
45
|
+
export interface InventoryNavShortcut {
|
|
46
|
+
/** The inner view id; the entry routes to `/inventory/<view>`. */
|
|
47
|
+
view: string;
|
|
48
|
+
label: string;
|
|
49
|
+
icon?: string;
|
|
50
|
+
/** Defaults to inventory read. A borrowed view (fiscal notes) passes its own. */
|
|
51
|
+
permission?: {
|
|
52
|
+
feature: string;
|
|
53
|
+
action: 'read';
|
|
54
|
+
};
|
|
55
|
+
}
|
|
44
56
|
export interface InventoryPluginOptions {
|
|
45
57
|
modules?: {
|
|
46
58
|
recipes?: boolean;
|
|
@@ -81,6 +93,12 @@ export interface InventoryPluginOptions {
|
|
|
81
93
|
* A ordem na faixa é a ordem deste array, depois das abas próprias.
|
|
82
94
|
*/
|
|
83
95
|
extraViews?: InventoryExtraView[];
|
|
96
|
+
/**
|
|
97
|
+
* Inner views the app also wants as direct rail entries under Estoque
|
|
98
|
+
* (e.g. `products-list`, `inbound-notes`). Opt-in: without it the module is
|
|
99
|
+
* one rail row and every screen lives in its own tab strip.
|
|
100
|
+
*/
|
|
101
|
+
navShortcuts?: InventoryNavShortcut[];
|
|
84
102
|
/**
|
|
85
103
|
* Tabs another plugin contributes to the product record — the shop's photos,
|
|
86
104
|
* say. The catalog product is this plugin's; what else is known about it is
|
|
@@ -114,13 +132,11 @@ export interface InventoryPluginOptions {
|
|
|
114
132
|
isHQ?: boolean;
|
|
115
133
|
}>;
|
|
116
134
|
}
|
|
117
|
-
/** The same lazy provider selection used by the plugin, reusable by app composition. */
|
|
118
|
-
export declare function createInventoryDataProvider(): InventoryDataProvider;
|
|
119
135
|
export declare function createInventoryPlugin(options?: InventoryPluginOptions): PluginManifest;
|
|
120
|
-
export
|
|
136
|
+
export { createInventoryDataProvider };
|
|
137
|
+
export type { InventoryDataProvider } from '@fayz-ai/inventory/data/provider';
|
|
121
138
|
export type { ResolvedInventoryConfig } from './context';
|
|
122
|
-
export { MOVEMENT_TYPES, MOVEMENT_TYPE_VALUES, LEGACY_PT_MOVEMENT_TYPE, movementTypeSpec, normalizeMovementType, } from '
|
|
123
|
-
export type { MovementTypeSpec } from '
|
|
124
|
-
export type {
|
|
125
|
-
export type { ConsumeRecipeForSourceInput, ReverseRecipeConsumptionInput, InventoryConsumptionResult, InventoryConsumptionStatus, InventoryConsumptionSkipReason, } from './types';
|
|
139
|
+
export { MOVEMENT_TYPES, MOVEMENT_TYPE_VALUES, LEGACY_PT_MOVEMENT_TYPE, movementTypeSpec, normalizeMovementType, } from '@fayz-ai/inventory/domain/movement';
|
|
140
|
+
export type { MovementType, MovementTypeSpec } from '@fayz-ai/inventory/domain/movement';
|
|
141
|
+
export type { ConsumeRecipeForSourceInput, ReverseRecipeConsumptionInput, InventoryConsumptionResult, InventoryConsumptionStatus, InventoryConsumptionSkipReason, } from '@fayz-ai/inventory/domain/consumption';
|
|
126
142
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAMvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|