atmn 1.1.3 → 1.1.5
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/cli.js +33240 -28906
- package/dist/src/compose/models/planModels.d.ts +27 -47
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +17 -2
- package/dist/index.js +0 -104
|
@@ -149,81 +149,61 @@ type PriceWithAmount = PriceBaseFields & {
|
|
|
149
149
|
/** Cannot have tiers when using flat amount */
|
|
150
150
|
tiers?: never;
|
|
151
151
|
};
|
|
152
|
-
type
|
|
152
|
+
type PriceWithTiers = PriceBaseFields & {
|
|
153
153
|
/** Cannot have flat amount when using tiers */
|
|
154
154
|
amount?: never;
|
|
155
|
-
/**
|
|
155
|
+
/** Tiered pricing structure based on usage ranges */
|
|
156
156
|
tiers: Array<{
|
|
157
157
|
to: number | "inf";
|
|
158
158
|
amount: number;
|
|
159
159
|
}>;
|
|
160
|
-
/**
|
|
161
|
-
|
|
160
|
+
/** Required when tiers is defined: how tiers are applied */
|
|
161
|
+
tierBehaviour: "graduated" | "volume";
|
|
162
162
|
};
|
|
163
|
-
type PriceWithVolumeTiers = Omit<PriceBaseFields, "billingMethod"> & {
|
|
164
|
-
/** Volume pricing does not support usage_based billing — use 'prepaid' */
|
|
165
|
-
billingMethod: Exclude<BillingMethod, "usage_based">;
|
|
166
|
-
/** Cannot have flat amount when using tiers */
|
|
167
|
-
amount?: never;
|
|
168
|
-
/** Volume tiered pricing: the tier the total usage falls into applies to all units */
|
|
169
|
-
tiers: Array<{
|
|
170
|
-
to: number | "inf";
|
|
171
|
-
amount: number;
|
|
172
|
-
flatAmount?: number;
|
|
173
|
-
}>;
|
|
174
|
-
/** Volume: the rate of the tier the total usage falls into applies to all units */
|
|
175
|
-
tierBehavior: "volume";
|
|
176
|
-
};
|
|
177
|
-
type PriceWithTiers = PriceWithGraduatedTiers | PriceWithVolumeTiers;
|
|
178
163
|
type PriceAmountOrTiers = PriceWithAmount | PriceWithTiers;
|
|
179
|
-
type
|
|
180
|
-
/**
|
|
181
|
-
interval?:
|
|
182
|
-
intervalCount?: never;
|
|
183
|
-
};
|
|
184
|
-
type PriceWithInterval = PriceAmountOrTiers & {
|
|
185
|
-
/** Billing interval - required when no top-level reset */
|
|
186
|
-
interval: BillingInterval;
|
|
164
|
+
type Price = PriceAmountOrTiers & {
|
|
165
|
+
/** Billing interval - omit for one-off pricing */
|
|
166
|
+
interval?: BillingInterval;
|
|
187
167
|
/** Number of intervals between billing cycles (default: 1) */
|
|
188
168
|
intervalCount?: number;
|
|
189
169
|
};
|
|
190
170
|
/**
|
|
191
|
-
* Plan item with
|
|
192
|
-
*
|
|
171
|
+
* Plan item with a reset cycle (e.g. 100 messages per month).
|
|
172
|
+
* Cannot have price — reset and price are mutually exclusive.
|
|
193
173
|
*/
|
|
194
174
|
export type PlanItemWithReset = PlanItemBaseFields & {
|
|
195
|
-
/** Reset configuration for
|
|
175
|
+
/** Reset configuration for the included allowance */
|
|
196
176
|
reset: ResetConfig;
|
|
197
|
-
/**
|
|
198
|
-
price?:
|
|
177
|
+
/** Cannot have price when using reset — use price.interval instead */
|
|
178
|
+
price?: never;
|
|
199
179
|
};
|
|
200
180
|
/**
|
|
201
|
-
* Plan item with pricing
|
|
202
|
-
*
|
|
181
|
+
* Plan item with usage-based pricing (e.g. $0.10/message, billed monthly).
|
|
182
|
+
* price.interval encodes the billing cycle, so reset is not allowed.
|
|
203
183
|
*/
|
|
204
|
-
export type
|
|
205
|
-
/** Cannot have
|
|
184
|
+
export type PlanItemWithPrice = PlanItemBaseFields & {
|
|
185
|
+
/** Cannot have reset when using price — price.interval encodes the billing cycle */
|
|
206
186
|
reset?: never;
|
|
207
|
-
/** Pricing configuration
|
|
208
|
-
price:
|
|
187
|
+
/** Pricing configuration */
|
|
188
|
+
price: Price;
|
|
209
189
|
};
|
|
210
190
|
/**
|
|
211
|
-
* Plan item
|
|
212
|
-
* Use
|
|
191
|
+
* Plan item with no reset and no price.
|
|
192
|
+
* Use for continuous-use or boolean features (e.g. seats, feature flags).
|
|
213
193
|
*/
|
|
214
194
|
export type PlanItemNoReset = PlanItemBaseFields & {
|
|
215
195
|
/** No reset for continuous-use features */
|
|
216
196
|
reset?: never;
|
|
217
|
-
/**
|
|
218
|
-
price?:
|
|
197
|
+
/** No price for free/boolean features */
|
|
198
|
+
price?: never;
|
|
219
199
|
};
|
|
220
200
|
/**
|
|
221
|
-
* Plan item configuration
|
|
222
|
-
* - PlanItemWithReset:
|
|
223
|
-
* -
|
|
224
|
-
* - PlanItemNoReset:
|
|
201
|
+
* Plan item configuration. reset and price are mutually exclusive:
|
|
202
|
+
* - PlanItemWithReset: included allowance that resets on an interval (e.g. 100/month free)
|
|
203
|
+
* - PlanItemWithPrice: usage-based pricing with its own billing cycle
|
|
204
|
+
* - PlanItemNoReset: no reset, no price (continuous-use or boolean features)
|
|
225
205
|
*/
|
|
226
|
-
export type PlanItem = PlanItemWithReset |
|
|
206
|
+
export type PlanItem = PlanItemWithReset | PlanItemWithPrice | PlanItemNoReset;
|
|
227
207
|
export type FreeTrial = z.infer<typeof FreeTrialSchema>;
|
|
228
208
|
export type Plan = {
|
|
229
209
|
/** Unique identifier for the plan. */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"7.0.0-dev.20260318.1","root":["../src/cli.tsx","../src/constants.ts","../src/commands/auth/command.ts","../src/commands/auth/constants.ts","../src/commands/auth/oauth.ts","../src/commands/config/command.ts","../src/commands/customers/command.tsx","../src/commands/customers/headless.ts","../src/commands/customers/index.ts","../src/commands/events/command.tsx","../src/commands/events/headless.ts","../src/commands/events/index.ts","../src/commands/events-aggregate-test/command.ts","../src/commands/events-aggregate-test/index.ts","../src/commands/features/command.tsx","../src/commands/features/headless.ts","../src/commands/features/index.ts","../src/commands/nuke/backup.ts","../src/commands/nuke/deletions.ts","../src/commands/nuke/legacynuke.ts","../src/commands/nuke/types.ts","../src/commands/nuke/validation.ts","../src/commands/preview/displayutils.ts","../src/commands/preview/index.ts","../src/commands/preview/loadconfig.ts","../src/commands/preview/planitemtoitem.ts","../src/commands/preview/previewplan.ts","../src/commands/products/command.tsx","../src/commands/products/headless.ts","../src/commands/products/index.ts","../src/commands/pull/index.ts","../src/commands/pull/mergeenvironments.ts","../src/commands/pull/pull.ts","../src/commands/pull/pullfromenvironment.ts","../src/commands/pull/sdktypes.ts","../src/commands/pull/types.ts","../src/commands/pull/writeconfig.ts","../src/commands/push/headless.ts","../src/commands/push/index.ts","../src/commands/push/prompts.ts","../src/commands/push/push.ts","../src/commands/push/types.ts","../src/commands/push/validate.ts","../src/commands/test-diff/command.ts","../src/commands/test-diff/index.ts","../src/commands/test-template/command.tsx","../src/compose/index.ts","../src/compose/builders/builderfunctions.ts","../src/compose/models/featuremodels.ts","../src/compose/models/index.ts","../src/compose/models/planmodels.ts","../src/lib/utils.ts","../src/lib/version.ts","../src/lib/writeemptyconfig.ts","../src/lib/animation/explosion.ts","../src/lib/api/client.ts","../src/lib/api/endpoints/customers.ts","../src/lib/api/endpoints/events.ts","../src/lib/api/endpoints/features.ts","../src/lib/api/endpoints/index.ts","../src/lib/api/endpoints/organization.ts","../src/lib/api/endpoints/plans.ts","../src/lib/api/types/feature.ts","../src/lib/api/types/index.ts","../src/lib/api/types/organization.ts","../src/lib/api/types/plan.ts","../src/lib/api/types/planitem.ts","../src/lib/auth/headlessauthrecovery.ts","../src/lib/constants/templates.ts","../src/lib/constants/templates/index.ts","../src/lib/constants/templates/linear.config.ts","../src/lib/constants/templates/openai.config.ts","../src/lib/constants/templates/railway.config.ts","../src/lib/constants/templates/t3chat.config.ts","../src/lib/env/clicontext.ts","../src/lib/env/detect.ts","../src/lib/env/dotenv.ts","../src/lib/env/index.ts","../src/lib/env/keys.ts","../src/lib/headless/customerscontroller.ts","../src/lib/headless/featurescontroller.ts","../src/lib/headless/planscontroller.ts","../src/lib/headless/index.ts","../src/lib/headless/types.ts","../src/lib/hooks/index.ts","../src/lib/hooks/useagentsetup.ts","../src/lib/hooks/useauthrecovery.ts","../src/lib/hooks/useclipboard.ts","../src/lib/hooks/useconfigcounts.ts","../src/lib/hooks/usecreateguides.ts","../src/lib/hooks/usecreateskills.ts","../src/lib/hooks/usecustomerexpanded.ts","../src/lib/hooks/usecustomernavigation.ts","../src/lib/hooks/usecustomers.ts","../src/lib/hooks/useenvironmentstore.ts","../src/lib/hooks/useevents.ts","../src/lib/hooks/useeventsaggregate.ts","../src/lib/hooks/useeventsaggregateapi.ts","../src/lib/hooks/useeventsfilter.ts","../src/lib/hooks/usefeatures.ts","../src/lib/hooks/usehascustomers.ts","../src/lib/hooks/useheadlessauth.ts","../src/lib/hooks/uselistnavigation.ts","../src/lib/hooks/uselogin.ts","../src/lib/hooks/usenuke.ts","../src/lib/hooks/usenukedata.ts","../src/lib/hooks/useorganization.ts","../src/lib/hooks/useplans.ts","../src/lib/hooks/usepull.ts","../src/lib/hooks/usepush.ts","../src/lib/hooks/useterminalsize.ts","../src/lib/hooks/usevisiblerowcount.ts","../src/lib/hooks/usewritetemplateconfig.ts","../src/lib/transforms/index.ts","../src/lib/transforms/apitosdk/transformer.test.ts","../src/lib/transforms/apitosdk/transformer.ts","../src/lib/transforms/apitosdk/feature.ts","../src/lib/transforms/apitosdk/helpers.ts","../src/lib/transforms/apitosdk/index.ts","../src/lib/transforms/apitosdk/plan.ts","../src/lib/transforms/apitosdk/planitem.ts","../src/lib/transforms/inplaceupdate/index.ts","../src/lib/transforms/inplaceupdate/parseconfig.ts","../src/lib/transforms/inplaceupdate/updateconfig.ts","../src/lib/transforms/sdktoapi/feature.ts","../src/lib/transforms/sdktoapi/index.ts","../src/lib/transforms/sdktoapi/plan.ts","../src/lib/transforms/sdktocode/configfile.ts","../src/lib/transforms/sdktocode/feature.ts","../src/lib/transforms/sdktocode/helpers.ts","../src/lib/transforms/sdktocode/imports.ts","../src/lib/transforms/sdktocode/index.ts","../src/lib/transforms/sdktocode/plan.ts","../src/lib/transforms/sdktocode/planitem.ts","../src/lib/utils/index.ts","../src/lib/utils/monorepo.ts","../src/prompts/skills/autumn-billing-page.ts","../src/prompts/skills/autumn-gating.ts","../src/prompts/skills/autumn-modelling-pricing-plans.ts","../src/prompts/skills/autumn-setup.ts","../src/prompts/skills/index.ts","../src/views/app.tsx","../src/views/html/oauth-callback.ts","../src/views/react/test-agent.tsx","../src/views/react/components/authrecoveryboundary.tsx","../src/views/react/components/card.tsx","../src/views/react/components/keyvalue.tsx","../src/views/react/components/loadingtext.tsx","../src/views/react/components/promptcard.tsx","../src/views/react/components/selectmenu.tsx","../src/views/react/components/statusline.tsx","../src/views/react/components/statusrow.tsx","../src/views/react/components/stepheader.tsx","../src/views/react/components/index.ts","../src/views/react/components/providers/cardwidthcontext.tsx","../src/views/react/components/providers/queryprovider.tsx","../src/views/react/components/providers/index.ts","../src/views/react/customers/customersview.tsx","../src/views/react/customers/types.ts","../src/views/react/customers/components/customerrow.tsx","../src/views/react/customers/components/customersheet.tsx","../src/views/react/customers/components/customerstable.tsx","../src/views/react/customers/components/emptystate.tsx","../src/views/react/customers/components/errorstate.tsx","../src/views/react/customers/components/keybindhints.tsx","../src/views/react/customers/components/loadingstate.tsx","../src/views/react/customers/components/searchinput.tsx","../src/views/react/customers/components/titlebar.tsx","../src/views/react/customers/components/index.ts","../src/views/react/customers/components/sections/balancessection.tsx","../src/views/react/customers/components/sections/entitiessection.tsx","../src/views/react/customers/components/sections/invoicessection.tsx","../src/views/react/customers/components/sections/referralssection.tsx","../src/views/react/customers/components/sections/rewardssection.tsx","../src/views/react/customers/components/sections/subscriptionssection.tsx","../src/views/react/customers/components/sections/index.ts","../src/views/react/events/eventsview.tsx","../src/views/react/events/index.ts","../src/views/react/events/components/eventsheet.tsx","../src/views/react/events/components/eventsaggregateview.tsx","../src/views/react/events/components/eventsfiltersheet.tsx","../src/views/react/events/components/index.ts","../src/views/react/features/featuresview.tsx","../src/views/react/features/index.ts","../src/views/react/features/components/featuresheet.tsx","../src/views/react/features/components/index.ts","../src/views/react/init/headlessinitflow.tsx","../src/views/react/init/initflow.tsx","../src/views/react/init/steps/agentstep.tsx","../src/views/react/init/steps/authstep.tsx","../src/views/react/init/steps/configstep.tsx","../src/views/react/init/steps/handoffstep.tsx","../src/views/react/init/steps/pathinputstep.tsx","../src/views/react/init/steps/stripestep.tsx","../src/views/react/login/loginview.tsx","../src/views/react/nuke/inlinenukeflow.tsx","../src/views/react/nuke/nukeanimation.tsx","../src/views/react/nuke/nukeview.tsx","../src/views/react/nuke/components/backupprompt.tsx","../src/views/react/nuke/components/confirmscreen.tsx","../src/views/react/nuke/components/deletionprogress.tsx","../src/views/react/nuke/components/finalsummary.tsx","../src/views/react/nuke/components/successscreen.tsx","../src/views/react/nuke/components/warningscreen.tsx","../src/views/react/preview/planpreviewcard.tsx","../src/views/react/preview/previewview.tsx","../src/views/react/preview/index.ts","../src/views/react/primitives/index.ts","../src/views/react/primitives/input/searchinput.tsx","../src/views/react/primitives/input/index.ts","../src/views/react/primitives/layout/bottombar.tsx","../src/views/react/primitives/layout/listviewlayout.tsx","../src/views/react/primitives/layout/splitpane.tsx","../src/views/react/primitives/layout/titlebar.tsx","../src/views/react/primitives/layout/index.ts","../src/views/react/primitives/sheet/detailsheet.tsx","../src/views/react/primitives/sheet/sheetsection.tsx","../src/views/react/primitives/sheet/index.ts","../src/views/react/primitives/states/emptystate.tsx","../src/views/react/primitives/states/errorstate.tsx","../src/views/react/primitives/states/loadingstate.tsx","../src/views/react/primitives/states/index.ts","../src/views/react/primitives/table/datatable.tsx","../src/views/react/primitives/table/tablerow.tsx","../src/views/react/primitives/table/index.ts","../src/views/react/primitives/utils/formatdate.ts","../src/views/react/primitives/utils/index.ts","../src/views/react/primitives/utils/pagination.ts","../src/views/react/primitives/utils/truncate.ts","../src/views/react/products/productsview.tsx","../src/views/react/products/index.ts","../src/views/react/products/components/productsheet.tsx","../src/views/react/products/components/index.ts","../src/views/react/pull/pull.tsx","../src/views/react/pull/components/featurerow.tsx","../src/views/react/pull/components/filerow.tsx","../src/views/react/pull/components/planrow.tsx","../src/views/react/pull/components/index.ts","../src/views/react/push/push.tsx","../src/views/react/push/index.ts","../src/views/react/push/components/completionmessage.tsx","../src/views/react/push/components/errorcard.tsx","../src/views/react/push/components/featurescard.tsx","../src/views/react/push/components/nochangescard.tsx","../src/views/react/push/components/orgcard.tsx","../src/views/react/push/components/overviewcard.tsx","../src/views/react/push/components/planscard.tsx","../src/views/react/push/components/pushpromptcard.tsx","../src/views/react/push/components/index.ts","../src/views/react/template/templateselector.tsx","../src/views/react/template2/badge.tsx","../src/views/react/template2/plancard.tsx","../src/views/react/template2/templaterow.tsx","../src/views/react/template2/templateselector2.tsx","../src/views/react/template2/data.ts","../src/views/react/template2/index.ts"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atmn",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"bin": {
|
|
6
6
|
"atmn": "dist/cli.js"
|
|
@@ -12,11 +12,24 @@
|
|
|
12
12
|
"homepage": "https://docs.useautumn.com/api-reference/cli/getting-started",
|
|
13
13
|
"main": "dist/compose/index.js",
|
|
14
14
|
"types": "dist/src/compose/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/src/compose/index.d.ts",
|
|
18
|
+
"import": "./dist/compose/index.js",
|
|
19
|
+
"default": "./dist/compose/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./skills": {
|
|
22
|
+
"types": "./src/prompts/skills/index.ts",
|
|
23
|
+
"import": "./src/prompts/skills/index.ts",
|
|
24
|
+
"default": "./src/prompts/skills/index.ts"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
15
27
|
"type": "module",
|
|
16
28
|
"engines": {
|
|
17
29
|
"node": ">=16"
|
|
18
30
|
},
|
|
19
31
|
"scripts": {
|
|
32
|
+
"ts": "bunx tsgo --build --noEmit",
|
|
20
33
|
"build": "bun run bun.config.ts",
|
|
21
34
|
"dev": "nodemon -e ts,tsx --watch src --ignore dist --exec \"bun run bun.config.ts\"",
|
|
22
35
|
"dev:bun": "bun run dev.ts",
|
|
@@ -64,10 +77,12 @@
|
|
|
64
77
|
"conf": "^13.0.1"
|
|
65
78
|
},
|
|
66
79
|
"devDependencies": {
|
|
80
|
+
"@autumn/shared": "1.0.0",
|
|
67
81
|
"@sindresorhus/tsconfig": "^3.0.1",
|
|
68
|
-
"@types/bun": "^1.
|
|
82
|
+
"@types/bun": "^1.3.10",
|
|
69
83
|
"@types/node": "^24.0.10",
|
|
70
84
|
"@types/react": "^19.0.0",
|
|
85
|
+
"@typescript/native-preview": "^7.0.0-dev.20260316.1",
|
|
71
86
|
"@vdemedes/prettier-config": "^2.0.1",
|
|
72
87
|
"ava": "^5.2.0",
|
|
73
88
|
"cli-testing-library": "^3.0.1",
|
package/dist/index.js
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { createRequire } from "node:module";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
function __accessProp(key) {
|
|
8
|
-
return this[key];
|
|
9
|
-
}
|
|
10
|
-
var __toESMCache_node;
|
|
11
|
-
var __toESMCache_esm;
|
|
12
|
-
var __toESM = (mod, isNodeMode, target) => {
|
|
13
|
-
var canCache = mod != null && typeof mod === "object";
|
|
14
|
-
if (canCache) {
|
|
15
|
-
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
16
|
-
var cached = cache.get(mod);
|
|
17
|
-
if (cached)
|
|
18
|
-
return cached;
|
|
19
|
-
}
|
|
20
|
-
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
21
|
-
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
22
|
-
for (let key of __getOwnPropNames(mod))
|
|
23
|
-
if (!__hasOwnProp.call(to, key))
|
|
24
|
-
__defProp(to, key, {
|
|
25
|
-
get: __accessProp.bind(mod, key),
|
|
26
|
-
enumerable: true
|
|
27
|
-
});
|
|
28
|
-
if (canCache)
|
|
29
|
-
cache.set(mod, to);
|
|
30
|
-
return to;
|
|
31
|
-
};
|
|
32
|
-
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
33
|
-
var __returnValue = (v) => v;
|
|
34
|
-
function __exportSetter(name, newValue) {
|
|
35
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
36
|
-
}
|
|
37
|
-
var __export = (target, all) => {
|
|
38
|
-
for (var name in all)
|
|
39
|
-
__defProp(target, name, {
|
|
40
|
-
get: all[name],
|
|
41
|
-
enumerable: true,
|
|
42
|
-
configurable: true,
|
|
43
|
-
set: __exportSetter.bind(all, name)
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
47
|
-
|
|
48
|
-
// source/compose/builders/builderFunctions.ts
|
|
49
|
-
var product = (p) => p;
|
|
50
|
-
var feature = (f) => f;
|
|
51
|
-
var featureItem = ({
|
|
52
|
-
feature_id,
|
|
53
|
-
included_usage,
|
|
54
|
-
interval,
|
|
55
|
-
reset_usage_when_enabled,
|
|
56
|
-
entity_feature_id
|
|
57
|
-
}) => {
|
|
58
|
-
return {
|
|
59
|
-
included_usage,
|
|
60
|
-
feature_id,
|
|
61
|
-
interval,
|
|
62
|
-
reset_usage_when_enabled,
|
|
63
|
-
entity_feature_id
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
var pricedFeatureItem = ({
|
|
67
|
-
feature_id,
|
|
68
|
-
price,
|
|
69
|
-
tiers,
|
|
70
|
-
interval,
|
|
71
|
-
included_usage = undefined,
|
|
72
|
-
billing_units = 1,
|
|
73
|
-
usage_model = "pay_per_use",
|
|
74
|
-
reset_usage_when_enabled,
|
|
75
|
-
entity_feature_id
|
|
76
|
-
}) => {
|
|
77
|
-
return {
|
|
78
|
-
price,
|
|
79
|
-
tiers,
|
|
80
|
-
interval,
|
|
81
|
-
billing_units,
|
|
82
|
-
feature_id,
|
|
83
|
-
usage_model,
|
|
84
|
-
included_usage,
|
|
85
|
-
reset_usage_when_enabled,
|
|
86
|
-
entity_feature_id
|
|
87
|
-
};
|
|
88
|
-
};
|
|
89
|
-
var priceItem = ({
|
|
90
|
-
price,
|
|
91
|
-
interval
|
|
92
|
-
}) => {
|
|
93
|
-
return {
|
|
94
|
-
price,
|
|
95
|
-
interval
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
export {
|
|
99
|
-
product,
|
|
100
|
-
pricedFeatureItem,
|
|
101
|
-
priceItem,
|
|
102
|
-
featureItem,
|
|
103
|
-
feature
|
|
104
|
-
};
|