sinfactura-types 1.6.71 → 1.6.73
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/dist/cjs/account.js +2 -0
- package/dist/cjs/afip.js +2 -0
- package/dist/cjs/ai.js +3 -0
- package/dist/cjs/api.js +2 -0
- package/dist/cjs/audit.js +2 -0
- package/dist/cjs/auth.js +2 -0
- package/dist/cjs/basket.js +2 -0
- package/dist/cjs/brands.js +2 -0
- package/dist/cjs/cash.js +2 -0
- package/dist/cjs/categories.js +2 -0
- package/dist/cjs/currency.js +2 -0
- package/dist/cjs/customer.js +2 -0
- package/dist/cjs/demo.js +10 -0
- package/dist/cjs/impersonation.js +2 -0
- package/dist/cjs/imports.js +2 -0
- package/dist/cjs/index.js +56 -0
- package/dist/cjs/invoice.js +2 -0
- package/dist/cjs/log.js +2 -0
- package/dist/cjs/maintenance.js +2 -0
- package/dist/cjs/mercadolibre.js +2 -0
- package/dist/cjs/mercadopago.js +2 -0
- package/dist/cjs/notification.js +34 -0
- package/dist/cjs/order.js +2 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/payment.js +2 -0
- package/dist/cjs/platform.js +6 -0
- package/dist/cjs/pricing.js +2 -0
- package/dist/cjs/print.js +2 -0
- package/dist/cjs/product.js +2 -0
- package/dist/cjs/provinces.js +30 -0
- package/dist/cjs/return.js +2 -0
- package/dist/cjs/seeder.js +18 -0
- package/dist/cjs/serviceOrder.js +14 -0
- package/dist/cjs/serviceTemplate.js +11 -0
- package/dist/cjs/stock.js +2 -0
- package/dist/cjs/store.js +2 -0
- package/dist/cjs/storefrontEvent.js +17 -0
- package/dist/cjs/subscription.js +26 -0
- package/dist/cjs/supplier.js +2 -0
- package/dist/cjs/user.js +2 -0
- package/dist/cjs/userActivity.js +64 -0
- package/dist/cjs/whatsapp.js +2 -0
- package/dist/subscription.d.ts +4 -3
- package/dist/subscription.js +3 -2
- package/package.json +5 -4
package/dist/cjs/afip.js
ADDED
package/dist/cjs/ai.js
ADDED
package/dist/cjs/api.js
ADDED
package/dist/cjs/auth.js
ADDED
package/dist/cjs/cash.js
ADDED
package/dist/cjs/demo.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Demo environment types (sinfactura/types#33, part of sinfactura/app#1054).
|
|
4
|
+
*
|
|
5
|
+
* Custom JWT claims minted for anonymous public demo sessions
|
|
6
|
+
* (test.sinfactura.com) and in-app demo tenants. The `readOnly` flag is
|
|
7
|
+
* enforced server-side via the `requireWritable` gate (ADR-0010 / api#870);
|
|
8
|
+
* see also `Store.type === 'demo'` in store.ts.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./account"), exports);
|
|
18
|
+
__exportStar(require("./afip"), exports);
|
|
19
|
+
__exportStar(require("./ai"), exports);
|
|
20
|
+
__exportStar(require("./api"), exports);
|
|
21
|
+
__exportStar(require("./audit"), exports);
|
|
22
|
+
__exportStar(require("./auth"), exports);
|
|
23
|
+
__exportStar(require("./basket"), exports);
|
|
24
|
+
__exportStar(require("./brands"), exports);
|
|
25
|
+
__exportStar(require("./cash"), exports);
|
|
26
|
+
__exportStar(require("./categories"), exports);
|
|
27
|
+
__exportStar(require("./currency"), exports);
|
|
28
|
+
__exportStar(require("./customer"), exports);
|
|
29
|
+
__exportStar(require("./demo"), exports);
|
|
30
|
+
__exportStar(require("./impersonation"), exports);
|
|
31
|
+
__exportStar(require("./imports"), exports);
|
|
32
|
+
__exportStar(require("./invoice"), exports);
|
|
33
|
+
__exportStar(require("./log"), exports);
|
|
34
|
+
__exportStar(require("./maintenance"), exports);
|
|
35
|
+
__exportStar(require("./mercadolibre"), exports);
|
|
36
|
+
__exportStar(require("./mercadopago"), exports);
|
|
37
|
+
__exportStar(require("./notification"), exports);
|
|
38
|
+
__exportStar(require("./order"), exports);
|
|
39
|
+
__exportStar(require("./payment"), exports);
|
|
40
|
+
__exportStar(require("./platform"), exports);
|
|
41
|
+
__exportStar(require("./pricing"), exports);
|
|
42
|
+
__exportStar(require("./print"), exports);
|
|
43
|
+
__exportStar(require("./product"), exports);
|
|
44
|
+
__exportStar(require("./return"), exports);
|
|
45
|
+
__exportStar(require("./seeder"), exports);
|
|
46
|
+
__exportStar(require("./serviceOrder"), exports);
|
|
47
|
+
__exportStar(require("./serviceTemplate"), exports);
|
|
48
|
+
__exportStar(require("./stock"), exports);
|
|
49
|
+
__exportStar(require("./store"), exports);
|
|
50
|
+
__exportStar(require("./storefrontEvent"), exports);
|
|
51
|
+
__exportStar(require("./subscription"), exports);
|
|
52
|
+
__exportStar(require("./supplier"), exports);
|
|
53
|
+
__exportStar(require("./user"), exports);
|
|
54
|
+
__exportStar(require("./userActivity"), exports);
|
|
55
|
+
__exportStar(require("./whatsapp"), exports);
|
|
56
|
+
__exportStar(require("./provinces"), exports);
|
package/dist/cjs/log.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NotificationTypeEnum = void 0;
|
|
4
|
+
// Canonical notification taxonomy (#78). These are the exact attribute
|
|
5
|
+
// names the BE filter-reads on User rows (`notifications.<KEY> = true`
|
|
6
|
+
// DynamoDB FilterExpressions — new-order fanout, MP hook/poller/recover,
|
|
7
|
+
// Stripe hook, propagate-fx). Exported as a real enum so `api`
|
|
8
|
+
// (stacks/helpers/notificationType.ts) and `app`
|
|
9
|
+
// (src/domain/notificationType.ts) can drop their hand-mirrored copies
|
|
10
|
+
// in follow-ups. DOLARBNA / ERROR / AFIP_CERT_EXPIRY have no User-row
|
|
11
|
+
// read path — enum members only (AFIP_CERT_EXPIRY = the cert-expiry
|
|
12
|
+
// alert type, api#1382).
|
|
13
|
+
var NotificationTypeEnum;
|
|
14
|
+
(function (NotificationTypeEnum) {
|
|
15
|
+
NotificationTypeEnum["ORDER"] = "ORDER";
|
|
16
|
+
NotificationTypeEnum["MERCADOPAGO"] = "MERCADOPAGO";
|
|
17
|
+
NotificationTypeEnum["STRIPE"] = "STRIPE";
|
|
18
|
+
NotificationTypeEnum["DOLAROFICIAL"] = "DOLAROFICIAL";
|
|
19
|
+
NotificationTypeEnum["DOLARINFORMAL"] = "DOLARINFORMAL";
|
|
20
|
+
NotificationTypeEnum["DOLARBNA"] = "DOLARBNA";
|
|
21
|
+
NotificationTypeEnum["ERROR"] = "ERROR";
|
|
22
|
+
NotificationTypeEnum["AFIP_CERT_EXPIRY"] = "AFIP_CERT_EXPIRY";
|
|
23
|
+
// ML order-ingestion fanout (app#797 / api#1574) — User-row read path
|
|
24
|
+
// added by the orders_v2 worker.
|
|
25
|
+
NotificationTypeEnum["MERCADOLIBRE"] = "MERCADOLIBRE";
|
|
26
|
+
// Stock alerts (api#1806) — fired when a sale crosses a product's stock
|
|
27
|
+
// threshold. LOW_STOCK at stock <= `Product.minStock`; OUT_OF_STOCK at
|
|
28
|
+
// stock <= 0. Both have User-row opt-in read paths.
|
|
29
|
+
NotificationTypeEnum["LOW_STOCK"] = "LOW_STOCK";
|
|
30
|
+
NotificationTypeEnum["OUT_OF_STOCK"] = "OUT_OF_STOCK";
|
|
31
|
+
// Support ticket bell (api#1806) — fired on ticket create / status change.
|
|
32
|
+
// User-row opt-in read path.
|
|
33
|
+
NotificationTypeEnum["SUPPORT"] = "SUPPORT";
|
|
34
|
+
})(NotificationTypeEnum || (exports.NotificationTypeEnum = NotificationTypeEnum = {}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Platform-wide config/feature-flag contracts (api#1108). Single fixed
|
|
3
|
+
// GLOBALS/PLATFORM scope, unlike Literals' multi-scope override chain — no
|
|
4
|
+
// per-tenant override use case identified for globals/flags (deliberate
|
|
5
|
+
// divergence from api#1484/#1485's Literals model).
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ARGENTINE_PROVINCES = void 0;
|
|
4
|
+
exports.ARGENTINE_PROVINCES = [
|
|
5
|
+
'',
|
|
6
|
+
'CIUDAD AUTONOMA BUENOS AIRES',
|
|
7
|
+
'BUENOS AIRES',
|
|
8
|
+
'CATAMARCA',
|
|
9
|
+
'CHACO',
|
|
10
|
+
'CHUBUT',
|
|
11
|
+
'CORDOBA',
|
|
12
|
+
'CORRIENTES',
|
|
13
|
+
'ENTRE RIOS',
|
|
14
|
+
'FORMOSA',
|
|
15
|
+
'JUJUY',
|
|
16
|
+
'LA PAMPA',
|
|
17
|
+
'LA RIOJA',
|
|
18
|
+
'MENDOZA',
|
|
19
|
+
'MISIONES',
|
|
20
|
+
'NEUQUEN',
|
|
21
|
+
'RIO NEGRO',
|
|
22
|
+
'SALTA',
|
|
23
|
+
'SAN JUAN',
|
|
24
|
+
'SAN LUIS',
|
|
25
|
+
'SANTA CRUZ',
|
|
26
|
+
'SANTA FE',
|
|
27
|
+
'SANTIAGO DEL ESTERO',
|
|
28
|
+
'TIERRA DEL FUEGO',
|
|
29
|
+
'TUCUMAN',
|
|
30
|
+
];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// AI Tenant Seeder types (sinfactura/app#1054; sinfactura/api#1073-#1082, #1758, #1759).
|
|
3
|
+
//
|
|
4
|
+
// `SeedProfile` / `SeedJobHandle` / `SeedSampleCard` / `SeedProgressEvent` / `SeedPhase`
|
|
5
|
+
// mirror the ALREADY-SHIPPED FE contract verbatim — `app/src/features/seeder/validation/
|
|
6
|
+
// seederSchema.ts`, `app/src/app/slices/seederProgress.ts`, `app/src/features/seeder/
|
|
7
|
+
// constants.ts`. FE shipped first (scaffold PRs #1940/#1942/#1952/#1943), so these are the
|
|
8
|
+
// frozen ground truth; the original research blueprint's shapes are superseded where they
|
|
9
|
+
// differ. See the 2026-07-14 audit decision recorded on app#1054.
|
|
10
|
+
//
|
|
11
|
+
// Two distinct HTTP entry points share the pipeline (api#1079 start-job lib, imported by
|
|
12
|
+
// both, not Lambda-to-Lambda invoke):
|
|
13
|
+
// - `POST /seeder/run` (api#1758, tenant wizard, adminToken) sends `SeedJobStartRequest`.
|
|
14
|
+
// - `POST /platform/operations` mode `seed-ai-tenant` (api#1079, MANAGER SuperOp,
|
|
15
|
+
// app#1464) sends `SeedAiTenantOpRequest` — coarser params; the handler expands
|
|
16
|
+
// `scale` into `SeedProfile.targetCounts` and constructs the rest of the profile
|
|
17
|
+
// server-side (the SuperOp caller doesn't know the tenant's brands/categories/etc).
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Service order types — repair / installation / maintenance / diagnosis
|
|
4
|
+
* workflows ("Órdenes de Servicio").
|
|
5
|
+
*
|
|
6
|
+
* Phase 1 Foundation for the Services Feature (sinfactura/app#758,
|
|
7
|
+
* sinfactura/types#30). A ServiceOrder is a parallel entity to the
|
|
8
|
+
* product-sales Order pipeline: multi-stage workflow, technician assignment,
|
|
9
|
+
* equipment intake, parts consumption, and AFIP concept=2 service invoicing.
|
|
10
|
+
*
|
|
11
|
+
* Companion: ServiceTemplate (serviceTemplate.ts, sinfactura/types#31) defines
|
|
12
|
+
* per-type default configuration that seeds new orders.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Service template types — pre-defined per-service-type configuration for the
|
|
4
|
+
* Services Feature (sinfactura/app#758, sinfactura/types#31).
|
|
5
|
+
*
|
|
6
|
+
* A ServiceTemplate seeds defaults onto a new ServiceOrder: which workflow
|
|
7
|
+
* stages are mandatory, default pricing model / rates, QA checklists, and
|
|
8
|
+
* common parts auto-populated on intake. Shares the ServiceType / ServiceStatus
|
|
9
|
+
* / PricingModel unions defined in serviceOrder.ts.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Typed storefront events pipeline (types#69, api#1239/#1240,
|
|
3
|
+
// storefront#425/#429, app#1638). Schema-validated discriminated union
|
|
4
|
+
// emitted by `sinfactura/storefront` (via the `track()` wrapper in
|
|
5
|
+
// `src/utils/track.ts`), validated and persisted by `sinfactura/api`
|
|
6
|
+
// (Zod mirror in `stacks/helpers/storefrontEvents/schema.ts`), rendered
|
|
7
|
+
// by `sinfactura/app` (typed activity feed in `<ActivityFeed>`).
|
|
8
|
+
//
|
|
9
|
+
// Naming follows Segment Spec: Title Case Object + Past-Tense Action
|
|
10
|
+
// for event names; snake_case for properties so the GA4 / Segment
|
|
11
|
+
// vocabulary on the wire maps without translation.
|
|
12
|
+
//
|
|
13
|
+
// 14 variants — the 4 storefront-only events (`Page Viewed`,
|
|
14
|
+
// `Favorite Toggled`, `Whatsapp Clicked`, `Error Captured`) currently
|
|
15
|
+
// emitted by storefront are NOT in this taxonomy yet; they ride the
|
|
16
|
+
// legacy `Log` path and are tracked for a follow-up types release.
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Subscription types — plan tiers, entitlements, feature matrix, subscription state.
|
|
4
|
+
*
|
|
5
|
+
* Ships app#710 (Chunk 1). Canonical decisions live in
|
|
6
|
+
* sinfactura/app/docs/plans/SUBSCRIPTION_BUSINESS_DECISIONS.md and
|
|
7
|
+
* sinfactura/app/docs/adr/0010-launch-trial-policy.md.
|
|
8
|
+
*
|
|
9
|
+
* Notes:
|
|
10
|
+
* - Tier names are the 4 locked Spanish tiers (per SUBSCRIPTION_TIERS_BEST_PRACTICES §0
|
|
11
|
+
* and api#802): BÁSICO, EMPRENDEDOR, PROFESIONAL, AVANZADO. The launch policy
|
|
12
|
+
* (ADR-0010) gives every new paid subscription a 30-day Stripe trial; courtesy
|
|
13
|
+
* gifts (formerly the Founders cohort) are now a one-off ops action via
|
|
14
|
+
* `gift-subscription` that sets `freeUntil` on the SUBSCRIPTION row.
|
|
15
|
+
* - `freeUntil` lives on every Subscription independent of status. It is the
|
|
16
|
+
* courtesy-gift cutoff; while `freeUntil > now` the BE suppresses billing.
|
|
17
|
+
* - `FeatureKey` uses flat camelCase (not the dotted `reports.advanced` from the design kit).
|
|
18
|
+
* - Monetary amounts are integers in minor units (ARS cents) to avoid float issues.
|
|
19
|
+
* - Feature keys now match the BE wire format directly (renamed afip→afipInvoicing,
|
|
20
|
+
* cash→cashManagement, reportsAdvanced→advancedReports as of 2026-04-26). The interim
|
|
21
|
+
* paymentIntegrations key was split into domesticPayments + stripePayments (api#1823).
|
|
22
|
+
* New keys whatsappCommerce/aiFeatures/mobileApp/customDomain are
|
|
23
|
+
* declared here even when their epics haven't shipped — the matrix can set
|
|
24
|
+
* enabled:false until they do.
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/cjs/user.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Typed user activity audit pipeline (types#70, api#1244).
|
|
3
|
+
//
|
|
4
|
+
// Actor-centric audit trail companion to the entity-centric `AUDIT#{entity}#{entityId}`
|
|
5
|
+
// rows authored in `sinfactura/api/stacks/services/audit.ts`. Schema mirrored in
|
|
6
|
+
// `sinfactura/api/stacks/helpers/userActivity/schema.ts`; emitted via the
|
|
7
|
+
// `recordUserActivity` synchronous helper at the end of mutating REST handlers.
|
|
8
|
+
//
|
|
9
|
+
// Naming follows the same convention as `StorefrontEvent` (types#69): Title Case
|
|
10
|
+
// Object + Past-Tense Action for event names, snake_case for properties.
|
|
11
|
+
//
|
|
12
|
+
// Distinct from `StorefrontEvent` (types#69):
|
|
13
|
+
// - Subject: internal staff (USER/ADMIN/SUPERVISOR/MANAGER), never anonymous
|
|
14
|
+
// - Retention: 90d hot + multi-year archive (vs 30d hot + 90d archive)
|
|
15
|
+
// - Erasure: append-only / anti-erasure per Ley 25.326 audit-trail exemption
|
|
16
|
+
// - Ingest: synchronous REST-handler helper (WS ingest explicitly disallowed)
|
|
17
|
+
//
|
|
18
|
+
// 61 variants:
|
|
19
|
+
// - 1.6.11 (Phase 1, 17 variants) — MVP wire-ins covering the hot paths
|
|
20
|
+
// - 1.6.12 (Phase 2, +32 variants) — full mutating admin-handler coverage
|
|
21
|
+
// - 1.6.13 (Phase 3, +8 UI-only variants) — FE companion (app#1642, api#1247)
|
|
22
|
+
// - 1.6.18 (+2 variants) — TOTP 2FA enroll/disable lifecycle (types#68, api#636)
|
|
23
|
+
// - 1.6.20 (+1 variant) — operator 2FA reset, target_user_id (api#1335)
|
|
24
|
+
// - 1.6.21 (+1 variant) — TOTP recovery codes generated (api#1336); method += 'recovery'
|
|
25
|
+
// - 1.6.34 (+field) — LiteralUpdatedEvent gains `scope`; new `LiteralScope` contract (api#1484)
|
|
26
|
+
// - (+1 variant) — IntegrationTokenRefreshedEvent (types#91, api#1540)
|
|
27
|
+
// - 1.6.39 (+1 variant) — WaitlistConvertedEvent (types#92, api#1567)
|
|
28
|
+
// - 1.6.43 (+1 variant) — PlatformConfigUpdatedEvent (api#1108)
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.UI_ONLY_USER_ACTIVITY_VARIANTS = void 0;
|
|
31
|
+
/**
|
|
32
|
+
* Canonical whitelist of UI-only `UserActivityEvent` variant names — the 8
|
|
33
|
+
* Phase 3 verbs shipped in 1.6.13 (types#74). Imported by the api side
|
|
34
|
+
* (`POST /audit/user-activity`, api#1247) to gate the FE-ingest endpoint:
|
|
35
|
+
* any `event` value NOT in this set originates from a BE mutating handler
|
|
36
|
+
* and must be rejected to prevent the FE from spoofing audit emissions.
|
|
37
|
+
*
|
|
38
|
+
* Source of truth lives here so the api whitelist can't drift from the
|
|
39
|
+
* actual UI-only variant taxonomy.
|
|
40
|
+
*/
|
|
41
|
+
exports.UI_ONLY_USER_ACTIVITY_VARIANTS = [
|
|
42
|
+
'Audit Trail Viewed',
|
|
43
|
+
'Report Viewed',
|
|
44
|
+
'Customer PII Viewed',
|
|
45
|
+
'Cash Drawer UI Opened',
|
|
46
|
+
'Cash Drawer UI Closed',
|
|
47
|
+
'Export Initiated',
|
|
48
|
+
'Impersonation UI Started',
|
|
49
|
+
'Impersonation UI Ended',
|
|
50
|
+
// Phase 4 (api#1266) — FE emits each through the ingest gate. `Action Denied`
|
|
51
|
+
// is whitelisted for the FE-gate path (pre-roundtrip maintenance/subscription/
|
|
52
|
+
// permission denials); the real BE 403 row is written server-side, not POSTed.
|
|
53
|
+
'Payment Viewed',
|
|
54
|
+
'Invoice Viewed',
|
|
55
|
+
'Customer Detail Viewed',
|
|
56
|
+
'Supplier Account Viewed',
|
|
57
|
+
'Search Performed',
|
|
58
|
+
'Action Denied',
|
|
59
|
+
'Two-Factor Challenge Shown',
|
|
60
|
+
'Two-Factor Code Validation Failed',
|
|
61
|
+
'Two-Factor Enrollment Started',
|
|
62
|
+
'Two-Factor Recovery Codes Revealed',
|
|
63
|
+
'Two-Factor Reset Initiated',
|
|
64
|
+
];
|
package/dist/subscription.d.ts
CHANGED
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
* - `FeatureKey` uses flat camelCase (not the dotted `reports.advanced` from the design kit).
|
|
17
17
|
* - Monetary amounts are integers in minor units (ARS cents) to avoid float issues.
|
|
18
18
|
* - Feature keys now match the BE wire format directly (renamed afip→afipInvoicing,
|
|
19
|
-
* cash→cashManagement,
|
|
20
|
-
*
|
|
19
|
+
* cash→cashManagement, reportsAdvanced→advancedReports as of 2026-04-26). The interim
|
|
20
|
+
* paymentIntegrations key was split into domesticPayments + stripePayments (api#1823).
|
|
21
|
+
* New keys whatsappCommerce/aiFeatures/mobileApp/customDomain are
|
|
21
22
|
* declared here even when their epics haven't shipped — the matrix can set
|
|
22
23
|
* enabled:false until they do.
|
|
23
24
|
*/
|
|
@@ -63,7 +64,7 @@ declare global {
|
|
|
63
64
|
* every existing plan in `FEATURE_MATRIX` must then declare the new key
|
|
64
65
|
* (TypeScript enforces this via `Record<FeatureKey, Entitlement>`).
|
|
65
66
|
*/
|
|
66
|
-
type FeatureKey = 'maxOrdersMonth' | 'maxInvoicesMonth' | 'maxProducts' | 'maxUsers' | 'maxCustomers' | 'maxStores' | 'priceListsMax' | 'afipInvoicing' | '
|
|
67
|
+
type FeatureKey = 'maxOrdersMonth' | 'maxInvoicesMonth' | 'maxProducts' | 'maxUsers' | 'maxCustomers' | 'maxStores' | 'priceListsMax' | 'afipInvoicing' | 'suppliers' | 'domesticPayments' | 'stripePayments' | 'cashManagement' | 'multiStore' | 'importExport' | 'advancedReports' | 'customBranding' | 'apiAccess' | 'prioritySupport' | 'whatsappCommerce' | 'aiFeatures' | 'mobileApp' | 'customDomain' | 'advancedPricing' | 'marketplaceChannels';
|
|
67
68
|
/** Full feature matrix — every tier declares every feature. */
|
|
68
69
|
type FeatureMatrix = Record<PlanTier, Record<FeatureKey, Entitlement>>;
|
|
69
70
|
/** Resolved entitlements for a specific tenant (matrix + overrides applied). */
|
package/dist/subscription.js
CHANGED
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
* - `FeatureKey` uses flat camelCase (not the dotted `reports.advanced` from the design kit).
|
|
17
17
|
* - Monetary amounts are integers in minor units (ARS cents) to avoid float issues.
|
|
18
18
|
* - Feature keys now match the BE wire format directly (renamed afip→afipInvoicing,
|
|
19
|
-
* cash→cashManagement,
|
|
20
|
-
*
|
|
19
|
+
* cash→cashManagement, reportsAdvanced→advancedReports as of 2026-04-26). The interim
|
|
20
|
+
* paymentIntegrations key was split into domesticPayments + stripePayments (api#1823).
|
|
21
|
+
* New keys whatsappCommerce/aiFeatures/mobileApp/customDomain are
|
|
21
22
|
* declared here even when their epics haven't shipped — the matrix can set
|
|
22
23
|
* enabled:false until they do.
|
|
23
24
|
*/
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sinfactura-types",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.73",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
10
|
-
"import": "./dist/index.js"
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/cjs/index.js"
|
|
11
12
|
}
|
|
12
13
|
},
|
|
13
14
|
"scripts": {
|
|
14
|
-
"build": "tsc",
|
|
15
|
-
"prepublishOnly": "
|
|
15
|
+
"build": "tsc && tsc -p tsconfig.cjs.json && node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({ type: 'commonjs' }) + '\\n')\"",
|
|
16
|
+
"prepublishOnly": "npm run build",
|
|
16
17
|
"login": "npm login",
|
|
17
18
|
"release": "npm version patch --no-git-tag-version"
|
|
18
19
|
},
|