@atomm-developer/generator-workbench 0.1.0 → 0.1.1
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 +9 -2
- package/dist/index.d.ts +31 -6
- package/dist/index.es.js +805 -290
- package/dist/index.umd.js +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -6,8 +6,9 @@ V1 provides:
|
|
|
6
6
|
|
|
7
7
|
- Web Component shell
|
|
8
8
|
- login / avatar / logout entry
|
|
9
|
+
- credits badge and export credit hint
|
|
9
10
|
- local template import / export entry
|
|
10
|
-
-
|
|
11
|
+
- billing-backed export actions
|
|
11
12
|
- runtime panel / canvas mounting
|
|
12
13
|
|
|
13
14
|
## Install
|
|
@@ -21,7 +22,7 @@ pnpm add @atomm-developer/generator-workbench
|
|
|
21
22
|
|
|
22
23
|
```html
|
|
23
24
|
<script src="https://static-res.atomm.com/scripts/js/generator-sdk/index.umd.js"></script>
|
|
24
|
-
<script src="https://static-res.atomm.com/scripts/js/generator-workbench/index.umd.js"></script>
|
|
25
|
+
<script src="https://static-res.atomm.com/scripts/js/generator-sdk/generator-workbench/index.umd.js"></script>
|
|
25
26
|
```
|
|
26
27
|
|
|
27
28
|
## Usage
|
|
@@ -46,6 +47,12 @@ workbench.config = {
|
|
|
46
47
|
await workbench.mount()
|
|
47
48
|
```
|
|
48
49
|
|
|
50
|
+
## Billing Behavior
|
|
51
|
+
|
|
52
|
+
- When `sdk.credits` and `sdk.billing` are available, the top bar shows the current credits balance after login.
|
|
53
|
+
- The export trigger shows the current `creditsPerUse` hint from `sdk.billing.getUsage()`.
|
|
54
|
+
- `exportSvg()` and `openInStudio()` now follow the standard generator flow: ensure login first, then call `sdk.billing.consume()`, then perform the export action.
|
|
55
|
+
|
|
49
56
|
## Local Preview
|
|
50
57
|
|
|
51
58
|
```bash
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { AuthStatus } from '@atomm-developer/generator-sdk';
|
|
2
|
+
import { BillingChangeCallback } from '@atomm-developer/generator-sdk';
|
|
3
|
+
import { BillingCheckResult } from '@atomm-developer/generator-sdk';
|
|
4
|
+
import { BillingConsumeOptions } from '@atomm-developer/generator-sdk';
|
|
5
|
+
import { BillingConsumeResult } from '@atomm-developer/generator-sdk';
|
|
2
6
|
import { ExportDownloadResult } from '@atomm-developer/generator-sdk';
|
|
3
7
|
import { ExportOpenInStudioResult } from '@atomm-developer/generator-sdk';
|
|
4
8
|
import { GeneratorTemplateDefinition } from '@atomm-developer/generator-sdk';
|
|
5
9
|
import { PanelFilter } from '@atomm-developer/generator-sdk';
|
|
6
10
|
import { PanelSchema } from '@atomm-developer/generator-sdk';
|
|
7
11
|
import { TemplateBuildOptions } from '@atomm-developer/generator-sdk';
|
|
12
|
+
import { UsageInfo } from '@atomm-developer/generator-sdk';
|
|
8
13
|
import { UserInfo } from '@atomm-developer/generator-sdk';
|
|
9
14
|
|
|
10
15
|
export declare function defineGeneratorWorkbench(tagName?: string): typeof GeneratorWorkbenchElement;
|
|
@@ -39,6 +44,21 @@ export declare interface GeneratorSDKLike {
|
|
|
39
44
|
logout(): Promise<void>;
|
|
40
45
|
onChange(callback: (status: AuthStatus) => void): () => void;
|
|
41
46
|
};
|
|
47
|
+
credits?: {
|
|
48
|
+
getBalance(): Promise<{
|
|
49
|
+
quota: number;
|
|
50
|
+
}>;
|
|
51
|
+
getCachedBalance?(): number;
|
|
52
|
+
onChange?(callback: (balance: number) => void): () => void;
|
|
53
|
+
};
|
|
54
|
+
billing?: {
|
|
55
|
+
getUsage(): Promise<UsageInfo>;
|
|
56
|
+
getCachedUsage?(): UsageInfo | null;
|
|
57
|
+
check?(): BillingCheckResult;
|
|
58
|
+
consume(options?: BillingConsumeOptions): Promise<BillingConsumeResult>;
|
|
59
|
+
refreshCredits?(): Promise<void>;
|
|
60
|
+
onChange?(callback: BillingChangeCallback): () => void;
|
|
61
|
+
};
|
|
42
62
|
template: {
|
|
43
63
|
build(args: TemplateBuildOptions): GeneratorTemplateDefinition;
|
|
44
64
|
parse(text: string): GeneratorTemplateDefinition;
|
|
@@ -78,6 +98,8 @@ export declare interface GeneratorWorkbenchConfig {
|
|
|
78
98
|
autoMount?: boolean;
|
|
79
99
|
panelTarget?: 'left' | 'right';
|
|
80
100
|
avatarMenuTrigger?: 'hover' | 'click';
|
|
101
|
+
/** Override the default atomm-ui CDN CSS URL injected into Shadow DOM */
|
|
102
|
+
atommUiCssUrl?: string;
|
|
81
103
|
runtimePanelFilter?: PanelFilter;
|
|
82
104
|
getTemplateMeta?: () => Record<string, unknown>;
|
|
83
105
|
getTemplateFieldPaths?: (panelSchema: PanelSchema) => string[];
|
|
@@ -90,14 +112,16 @@ export declare class GeneratorWorkbenchElement extends HTMLElement {
|
|
|
90
112
|
private _sdk;
|
|
91
113
|
private _runtime;
|
|
92
114
|
private _config;
|
|
93
|
-
private _refs;
|
|
94
115
|
private _mounted;
|
|
95
116
|
private _state;
|
|
96
117
|
private _cleanupAuth?;
|
|
118
|
+
private _cleanupCredits?;
|
|
119
|
+
private _cleanupBilling?;
|
|
97
120
|
private _authController?;
|
|
98
121
|
private _templateController?;
|
|
99
122
|
private _exportController?;
|
|
100
123
|
private _runtimeController?;
|
|
124
|
+
private _shellContext?;
|
|
101
125
|
constructor();
|
|
102
126
|
get sdk(): GeneratorSDKLike | null;
|
|
103
127
|
set sdk(value: GeneratorSDKLike | null);
|
|
@@ -116,13 +140,14 @@ export declare class GeneratorWorkbenchElement extends HTMLElement {
|
|
|
116
140
|
openInStudio(): Promise<void>;
|
|
117
141
|
private render;
|
|
118
142
|
private bindControllers;
|
|
119
|
-
private
|
|
143
|
+
private bindShellCallbacks;
|
|
120
144
|
private bindAuthState;
|
|
145
|
+
private bindBillingSubscriptions;
|
|
121
146
|
private syncAuthUI;
|
|
122
|
-
private
|
|
123
|
-
private
|
|
124
|
-
private
|
|
125
|
-
private
|
|
147
|
+
private syncBillingUI;
|
|
148
|
+
private applyBillingUsage;
|
|
149
|
+
private resetBillingState;
|
|
150
|
+
private syncBillingState;
|
|
126
151
|
private handleLogin;
|
|
127
152
|
private handleLogout;
|
|
128
153
|
private handleError;
|