@rainnworks/indy 0.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.
- package/dist/api.d.ts +25 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +142 -0
- package/dist/api.js.map +1 -0
- package/dist/auth.d.ts +4 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +40 -0
- package/dist/auth.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +242 -0
- package/dist/index.js.map +1 -0
- package/dist/setup.d.ts +4 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +42 -0
- package/dist/setup.js.map +1 -0
- package/dist/tools.d.ts +5 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +230 -0
- package/dist/tools.js.map +1 -0
- package/dist/types.d.ts +190 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/openclaw.plugin.json +43 -0
- package/package.json +27 -0
- package/skills/indy/SKILL.md +38 -0
- package/src/api.ts +235 -0
- package/src/auth.ts +59 -0
- package/src/index.ts +268 -0
- package/src/setup.ts +44 -0
- package/src/tools.ts +265 -0
- package/src/types.ts +236 -0
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { IndyPluginConfig, TransactionListParams, TransactionListResponse, TransactionFilters, User, Invoice, InvoiceListParams, Document, DashboardPeriod, BankAccount, BankAuth, VatConfiguration, PaymentInfo, Subscription, Activity } from "./types";
|
|
2
|
+
export declare function getMe(cfg: IndyPluginConfig): Promise<User>;
|
|
3
|
+
export declare function listTransactions(cfg: IndyPluginConfig, params?: TransactionListParams): Promise<TransactionListResponse>;
|
|
4
|
+
export declare function listPendingTransactions(cfg: IndyPluginConfig): Promise<unknown>;
|
|
5
|
+
export declare function getTransactionFilters(cfg: IndyPluginConfig): Promise<TransactionFilters>;
|
|
6
|
+
export declare function getCategorizeCount(cfg: IndyPluginConfig): Promise<unknown>;
|
|
7
|
+
export declare function getCategoryGroups(cfg: IndyPluginConfig): Promise<unknown>;
|
|
8
|
+
export declare function annotateTransaction(cfg: IndyPluginConfig, id: string, annotation: string): Promise<unknown>;
|
|
9
|
+
export declare function getMatchingReceipts(cfg: IndyPluginConfig, transactionId: string): Promise<unknown>;
|
|
10
|
+
export declare function listInvoices(cfg: IndyPluginConfig, params?: InvoiceListParams): Promise<Invoice[]>;
|
|
11
|
+
export declare function listDocuments(cfg: IndyPluginConfig): Promise<Document[]>;
|
|
12
|
+
export declare function getReceiptsForTransaction(cfg: IndyPluginConfig, transactionId: string): Promise<unknown>;
|
|
13
|
+
export declare function getDashboardPeriods(cfg: IndyPluginConfig, year: string | number): Promise<DashboardPeriod>;
|
|
14
|
+
export declare function listBankAccounts(cfg: IndyPluginConfig): Promise<BankAccount[]>;
|
|
15
|
+
export declare function listBankAuths(cfg: IndyPluginConfig): Promise<BankAuth[]>;
|
|
16
|
+
export declare function getVatConfiguration(cfg: IndyPluginConfig, date?: string): Promise<VatConfiguration>;
|
|
17
|
+
export declare function getPayment(cfg: IndyPluginConfig): Promise<PaymentInfo>;
|
|
18
|
+
export declare function getSubscription(cfg: IndyPluginConfig): Promise<Subscription>;
|
|
19
|
+
export declare function listActivities(cfg: IndyPluginConfig): Promise<Activity[]>;
|
|
20
|
+
export declare function refreshClosing(cfg: IndyPluginConfig, params?: {
|
|
21
|
+
declaration?: string;
|
|
22
|
+
fiscalPeriodId?: string;
|
|
23
|
+
}): Promise<unknown>;
|
|
24
|
+
export declare function genericFetch(cfg: IndyPluginConfig, path: string, method?: string, body?: string): Promise<unknown>;
|
|
25
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { getValidToken } from "./auth";
|
|
2
|
+
const DEFAULT_BASE = "https://app.indy.fr/api";
|
|
3
|
+
function getBase(config) {
|
|
4
|
+
return config.baseUrl || DEFAULT_BASE;
|
|
5
|
+
}
|
|
6
|
+
async function request(config, path, options = {}) {
|
|
7
|
+
const token = await getValidToken(config);
|
|
8
|
+
const base = getBase(config);
|
|
9
|
+
const url = path.startsWith("http") ? path : `${base}${path}`;
|
|
10
|
+
const res = await fetch(url, {
|
|
11
|
+
...options,
|
|
12
|
+
headers: {
|
|
13
|
+
Authorization: `Bearer ${token}`,
|
|
14
|
+
Accept: "application/json",
|
|
15
|
+
"Content-Type": "application/json",
|
|
16
|
+
"x-client-app-type": "openclaw-plugin",
|
|
17
|
+
...options.headers,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
if (!res.ok) {
|
|
21
|
+
const body = await res.text();
|
|
22
|
+
throw new Error(`Indy API ${res.status} ${path}: ${body}`);
|
|
23
|
+
}
|
|
24
|
+
const contentType = res.headers.get("content-type") ?? "";
|
|
25
|
+
if (contentType.includes("application/json")) {
|
|
26
|
+
return res.json();
|
|
27
|
+
}
|
|
28
|
+
return res.text();
|
|
29
|
+
}
|
|
30
|
+
function toQuery(params) {
|
|
31
|
+
const qs = new URLSearchParams();
|
|
32
|
+
for (const [k, v] of Object.entries(params)) {
|
|
33
|
+
if (v !== undefined && v !== null && v !== "") {
|
|
34
|
+
qs.set(k, String(v));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const str = qs.toString();
|
|
38
|
+
return str ? `?${str}` : "";
|
|
39
|
+
}
|
|
40
|
+
// ── User ──
|
|
41
|
+
export async function getMe(cfg) {
|
|
42
|
+
return request(cfg, "/users/me");
|
|
43
|
+
}
|
|
44
|
+
// ── Transactions ──
|
|
45
|
+
export async function listTransactions(cfg, params = {}) {
|
|
46
|
+
const qs = toQuery({
|
|
47
|
+
search: params.search,
|
|
48
|
+
page: params.page,
|
|
49
|
+
accountId: params.accountId,
|
|
50
|
+
categoryId: params.categoryId,
|
|
51
|
+
startDate: params.startDate,
|
|
52
|
+
endDate: params.endDate,
|
|
53
|
+
hasReceipt: params.hasReceipt,
|
|
54
|
+
isVerified: params.isVerified,
|
|
55
|
+
});
|
|
56
|
+
return request(cfg, `/transactions/transactions-list${qs}`);
|
|
57
|
+
}
|
|
58
|
+
export async function listPendingTransactions(cfg) {
|
|
59
|
+
return request(cfg, "/transactions/transactions-pending-list");
|
|
60
|
+
}
|
|
61
|
+
export async function getTransactionFilters(cfg) {
|
|
62
|
+
return request(cfg, "/transactions/transactions-list-filters");
|
|
63
|
+
}
|
|
64
|
+
export async function getCategorizeCount(cfg) {
|
|
65
|
+
return request(cfg, "/transactions/to-categorize-count");
|
|
66
|
+
}
|
|
67
|
+
export async function getCategoryGroups(cfg) {
|
|
68
|
+
return request(cfg, "/transactions/category-groups-with-decorations");
|
|
69
|
+
}
|
|
70
|
+
export async function annotateTransaction(cfg, id, annotation) {
|
|
71
|
+
return request(cfg, `/transactions/${id}/annotation`, {
|
|
72
|
+
method: "POST",
|
|
73
|
+
body: JSON.stringify({ annotation }),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
export async function getMatchingReceipts(cfg, transactionId) {
|
|
77
|
+
return request(cfg, `/transactions/matching-receipts?transactionId=${encodeURIComponent(transactionId)}`);
|
|
78
|
+
}
|
|
79
|
+
// ── Invoices ──
|
|
80
|
+
export async function listInvoices(cfg, params = {}) {
|
|
81
|
+
return request(cfg, `/invoices${toQuery({ ...params })}`);
|
|
82
|
+
}
|
|
83
|
+
// ── Documents ──
|
|
84
|
+
export async function listDocuments(cfg) {
|
|
85
|
+
return request(cfg, "/documents");
|
|
86
|
+
}
|
|
87
|
+
// ── Receipts ──
|
|
88
|
+
export async function getReceiptsForTransaction(cfg, transactionId) {
|
|
89
|
+
return request(cfg, `/receipts/transaction?transactionId=${encodeURIComponent(transactionId)}`);
|
|
90
|
+
}
|
|
91
|
+
// ── Dashboard ──
|
|
92
|
+
export async function getDashboardPeriods(cfg, year) {
|
|
93
|
+
return request(cfg, `/dashboard/periods/${year}`);
|
|
94
|
+
}
|
|
95
|
+
// ── Bank ──
|
|
96
|
+
export async function listBankAccounts(cfg) {
|
|
97
|
+
return request(cfg, "/bank-connector/bank-accounts");
|
|
98
|
+
}
|
|
99
|
+
export async function listBankAuths(cfg) {
|
|
100
|
+
return request(cfg, "/bank-connector/bank-auths");
|
|
101
|
+
}
|
|
102
|
+
// ── VAT ──
|
|
103
|
+
export async function getVatConfiguration(cfg, date) {
|
|
104
|
+
const d = date || new Date().toISOString();
|
|
105
|
+
return request(cfg, `/vat/configuration?date=${encodeURIComponent(d)}`);
|
|
106
|
+
}
|
|
107
|
+
// ── Payment ──
|
|
108
|
+
export async function getPayment(cfg) {
|
|
109
|
+
return request(cfg, "/payment");
|
|
110
|
+
}
|
|
111
|
+
export async function getSubscription(cfg) {
|
|
112
|
+
return request(cfg, "/payment/subscription");
|
|
113
|
+
}
|
|
114
|
+
// ── Activities ──
|
|
115
|
+
export async function listActivities(cfg) {
|
|
116
|
+
return request(cfg, "/activities");
|
|
117
|
+
}
|
|
118
|
+
// ── Closing ──
|
|
119
|
+
export async function refreshClosing(cfg, params = {}) {
|
|
120
|
+
return request(cfg, `/closing/all/refresh${toQuery(params)}`);
|
|
121
|
+
}
|
|
122
|
+
// ── Generic fetch (escape hatch) ──
|
|
123
|
+
export async function genericFetch(cfg, path, method = "GET", body) {
|
|
124
|
+
const token = await getValidToken(cfg);
|
|
125
|
+
const base = getBase(cfg);
|
|
126
|
+
const url = path.startsWith("http") ? path : `${base}${path.startsWith("/") ? path : "/" + path}`;
|
|
127
|
+
const fetchOpts = {
|
|
128
|
+
method,
|
|
129
|
+
headers: {
|
|
130
|
+
Authorization: `Bearer ${token}`,
|
|
131
|
+
Accept: "application/json",
|
|
132
|
+
"Content-Type": "application/json",
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
if (body) {
|
|
136
|
+
fetchOpts.body = body;
|
|
137
|
+
}
|
|
138
|
+
const res = await fetch(url, fetchOpts);
|
|
139
|
+
const contentType = res.headers.get("content-type") ?? "";
|
|
140
|
+
return contentType.includes("json") ? res.json() : res.text();
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAoBvC,MAAM,YAAY,GAAG,yBAAyB,CAAC;AAE/C,SAAS,OAAO,CAAC,MAAwB;IACvC,OAAO,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,MAAwB,EACxB,IAAY,EACZ,UAAuB,EAAE;IAEzB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IAE9D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,GAAG,OAAO;QACV,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,mBAAmB,EAAE,iBAAiB;YACtC,GAAG,OAAO,CAAC,OAAO;SACnB;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC7C,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAkB,CAAC;AACpC,CAAC;AAED,SAAS,OAAO,CAAC,MAA+B;IAC9C,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9C,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC1B,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,aAAa;AAEb,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAqB;IAC/C,OAAO,OAAO,CAAO,GAAG,EAAE,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,qBAAqB;AAErB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAqB,EACrB,SAAgC,EAAE;IAElC,MAAM,EAAE,GAAG,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC,CAAC;IACH,OAAO,OAAO,CAA0B,GAAG,EAAE,kCAAkC,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAAqB;IACjE,OAAO,OAAO,CAAC,GAAG,EAAE,yCAAyC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAqB;IAC/D,OAAO,OAAO,CAAqB,GAAG,EAAE,yCAAyC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAqB;IAC5D,OAAO,OAAO,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAqB;IAC3D,OAAO,OAAO,CAAC,GAAG,EAAE,gDAAgD,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAqB,EACrB,EAAU,EACV,UAAkB;IAElB,OAAO,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAqB,EACrB,aAAqB;IAErB,OAAO,OAAO,CAAC,GAAG,EAAE,iDAAiD,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAC5G,CAAC;AAED,iBAAiB;AAEjB,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAqB,EACrB,SAA4B,EAAE;IAE9B,OAAO,OAAO,CAAY,GAAG,EAAE,YAAY,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,kBAAkB;AAElB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAqB;IACvD,OAAO,OAAO,CAAa,GAAG,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,iBAAiB;AAEjB,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAqB,EACrB,aAAqB;IAErB,OAAO,OAAO,CAAC,GAAG,EAAE,uCAAuC,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,kBAAkB;AAElB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAqB,EACrB,IAAqB;IAErB,OAAO,OAAO,CAAkB,GAAG,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,aAAa;AAEb,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAqB;IAC1D,OAAO,OAAO,CAAgB,GAAG,EAAE,+BAA+B,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAqB;IACvD,OAAO,OAAO,CAAa,GAAG,EAAE,4BAA4B,CAAC,CAAC;AAChE,CAAC;AAED,YAAY;AAEZ,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAqB,EACrB,IAAa;IAEb,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,OAAO,CAAmB,GAAG,EAAE,2BAA2B,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,gBAAgB;AAEhB,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAqB;IACpD,OAAO,OAAO,CAAc,GAAG,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAqB;IACzD,OAAO,OAAO,CAAe,GAAG,EAAE,uBAAuB,CAAC,CAAC;AAC7D,CAAC;AAED,mBAAmB;AAEnB,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAqB;IACxD,OAAO,OAAO,CAAa,GAAG,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAED,gBAAgB;AAEhB,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAqB,EACrB,SAA4D,EAAE;IAE9D,OAAO,OAAO,CAAC,GAAG,EAAE,uBAAuB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,qCAAqC;AAErC,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAqB,EACrB,IAAY,EACZ,SAAiB,KAAK,EACtB,IAAa;IAEb,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;IAElG,MAAM,SAAS,GAAgB;QAC7B,MAAM;QACN,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;YAChC,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC"}
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuC,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA4CrF,wBAAsB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7E;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const DEFAULT_FIREBASE_API_KEY = "AIzaSyAVJ8xwjy0uG-zgPKQKUADa2-c-4KKHryI";
|
|
2
|
+
// ── In-memory token cache ──
|
|
3
|
+
let cachedToken = null;
|
|
4
|
+
function isExpired(state) {
|
|
5
|
+
return Date.now() >= state.expiresAt - 60_000; // 1 min buffer
|
|
6
|
+
}
|
|
7
|
+
// ── Refresh token → id token ──
|
|
8
|
+
async function refreshIdToken(refreshToken, firebaseApiKey) {
|
|
9
|
+
const res = await fetch(`https://securetoken.googleapis.com/v1/token?key=${firebaseApiKey}`, {
|
|
10
|
+
method: "POST",
|
|
11
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
12
|
+
body: new URLSearchParams({
|
|
13
|
+
grant_type: "refresh_token",
|
|
14
|
+
refresh_token: refreshToken,
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
17
|
+
if (!res.ok) {
|
|
18
|
+
throw new Error(`Token refresh failed (${res.status}): ${await res.text()}`);
|
|
19
|
+
}
|
|
20
|
+
const data = (await res.json());
|
|
21
|
+
return {
|
|
22
|
+
idToken: data.id_token,
|
|
23
|
+
refreshToken: data.refresh_token,
|
|
24
|
+
expiresAt: Date.now() + parseInt(data.expires_in) * 1000,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// ── Public: get a valid bearer token (auto-refreshes) ──
|
|
28
|
+
export async function getValidToken(config) {
|
|
29
|
+
const apiKey = config.firebaseApiKey || DEFAULT_FIREBASE_API_KEY;
|
|
30
|
+
if (cachedToken && !isExpired(cachedToken)) {
|
|
31
|
+
return cachedToken.idToken;
|
|
32
|
+
}
|
|
33
|
+
const rt = cachedToken?.refreshToken ?? config.refreshToken;
|
|
34
|
+
cachedToken = await refreshIdToken(rt, apiKey);
|
|
35
|
+
return cachedToken.idToken;
|
|
36
|
+
}
|
|
37
|
+
export function clearTokenCache() {
|
|
38
|
+
cachedToken = null;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAEA,MAAM,wBAAwB,GAAG,yCAAyC,CAAC;AAE3E,8BAA8B;AAE9B,IAAI,WAAW,GAAsB,IAAI,CAAC;AAE1C,SAAS,SAAS,CAAC,KAAiB;IAClC,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,eAAe;AAChE,CAAC;AAED,iCAAiC;AAEjC,KAAK,UAAU,cAAc,CAC3B,YAAoB,EACpB,cAAsB;IAEtB,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,mDAAmD,cAAc,EAAE,EACnE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,eAAe,CAAC;YACxB,UAAU,EAAE,eAAe;YAC3B,aAAa,EAAE,YAAY;SAC5B,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;IAC3D,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;KACzD,CAAC;AACJ,CAAC;AAED,0DAA0D;AAE1D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAwB;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAEjE,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,MAAM,EAAE,GAAG,WAAW,EAAE,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;IAC5D,WAAW,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,EAAE,SAAS,CAAC;AACzB,eAAO,MAAM,IAAI,uBAAuB,CAAC;AAEzC,wBAAgB,QAAQ,CAAC,SAAS,EAAE,GAAG,QA4PtC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { registerTools } from "./tools";
|
|
2
|
+
import { clearTokenCache, getValidToken } from "./auth";
|
|
3
|
+
import { SETUP_INSTRUCTIONS_CLI, BROWSER_SNIPPET } from "./setup";
|
|
4
|
+
import * as api from "./api";
|
|
5
|
+
export const id = "indy";
|
|
6
|
+
export const name = "Indy.fr Accounting";
|
|
7
|
+
export function register(pluginApi) {
|
|
8
|
+
const getConfig = () => {
|
|
9
|
+
const cfg = pluginApi.config?.plugins?.entries?.indy?.config;
|
|
10
|
+
if (!cfg?.refreshToken)
|
|
11
|
+
return null;
|
|
12
|
+
return cfg;
|
|
13
|
+
};
|
|
14
|
+
const requireConfig = () => {
|
|
15
|
+
const cfg = getConfig();
|
|
16
|
+
if (!cfg) {
|
|
17
|
+
console.log(SETUP_INSTRUCTIONS_CLI);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
throw new Error("unreachable"); // satisfy TS control flow
|
|
20
|
+
}
|
|
21
|
+
return cfg;
|
|
22
|
+
};
|
|
23
|
+
// ── Register agent tools ──
|
|
24
|
+
registerTools(pluginApi, getConfig);
|
|
25
|
+
// ── Register CLI commands ──
|
|
26
|
+
pluginApi.registerCli(({ program }) => {
|
|
27
|
+
const indy = program
|
|
28
|
+
.command("indy")
|
|
29
|
+
.description("Indy.fr accounting commands");
|
|
30
|
+
indy
|
|
31
|
+
.command("login")
|
|
32
|
+
.description("Set up Indy.fr authentication with a refresh token")
|
|
33
|
+
.argument("[token]", "Firebase refresh token (from browser)")
|
|
34
|
+
.action(async (token) => {
|
|
35
|
+
if (!token) {
|
|
36
|
+
console.log(SETUP_INSTRUCTIONS_CLI);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// Verify the token works by doing a refresh
|
|
40
|
+
const testCfg = { refreshToken: token };
|
|
41
|
+
try {
|
|
42
|
+
console.log(" Verifying token...");
|
|
43
|
+
await getValidToken(testCfg);
|
|
44
|
+
console.log(" \u2705 Token is valid!");
|
|
45
|
+
console.log();
|
|
46
|
+
console.log(" Add this to your OpenClaw config:");
|
|
47
|
+
console.log();
|
|
48
|
+
console.log(" plugins:");
|
|
49
|
+
console.log(" entries:");
|
|
50
|
+
console.log(" indy:");
|
|
51
|
+
console.log(" enabled: true");
|
|
52
|
+
console.log(" config:");
|
|
53
|
+
console.log(` refreshToken: \"${token}\"`);
|
|
54
|
+
console.log();
|
|
55
|
+
console.log(" Then restart the gateway.");
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
console.error(`\u274c Token verification failed: ${e.message}`);
|
|
59
|
+
console.log();
|
|
60
|
+
console.log(" The token may be expired or invalid. Try extracting a fresh one:");
|
|
61
|
+
console.log();
|
|
62
|
+
console.log(` ${BROWSER_SNIPPET}`);
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
indy
|
|
67
|
+
.command("status")
|
|
68
|
+
.description("Check Indy login status and token validity")
|
|
69
|
+
.action(async () => {
|
|
70
|
+
try {
|
|
71
|
+
const cfg = requireConfig();
|
|
72
|
+
const user = await api.getMe(cfg);
|
|
73
|
+
const u = user.user || user;
|
|
74
|
+
const name = u.profile?.firstname && u.profile?.name
|
|
75
|
+
? `${u.profile.firstname} ${u.profile.name}`
|
|
76
|
+
: u.company_name || "unknown";
|
|
77
|
+
const email = u.emails?.[0]?.address || u.email || "unknown";
|
|
78
|
+
console.log(`\n✅ Logged in as: ${name}`);
|
|
79
|
+
console.log(` Email: ${email}`);
|
|
80
|
+
console.log(` Company: ${u.company_name || "—"}`);
|
|
81
|
+
console.log(` ID: ${u._id}`);
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
console.error(`❌ ${e.message}`);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
indy
|
|
89
|
+
.command("me")
|
|
90
|
+
.description("Show current user info")
|
|
91
|
+
.option("--json", "Output raw JSON")
|
|
92
|
+
.action(async (opts) => {
|
|
93
|
+
try {
|
|
94
|
+
const cfg = requireConfig();
|
|
95
|
+
const user = await api.getMe(cfg);
|
|
96
|
+
if (opts.json) {
|
|
97
|
+
console.log(JSON.stringify(user, null, 2));
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const u = user.user || user;
|
|
101
|
+
const name = u.profile?.firstname && u.profile?.name
|
|
102
|
+
? `${u.profile.firstname} ${u.profile.name}`
|
|
103
|
+
: u.company_name || "unknown";
|
|
104
|
+
const email = u.emails?.[0]?.address || u.email || "unknown";
|
|
105
|
+
console.log(`\nUser: ${name}`);
|
|
106
|
+
console.log(`Company: ${u.company_name || "—"}`);
|
|
107
|
+
console.log(`Email: ${email}`);
|
|
108
|
+
console.log(`SIRET: ${u.profile?.siret || "—"}`);
|
|
109
|
+
console.log(`Regime: ${u.fiscal_regime || "—"} (${u.legal_form || "—"})`);
|
|
110
|
+
console.log(`Plan: ${u.stripe?.subscription?.plan?.name || "—"}`);
|
|
111
|
+
console.log(`ID: ${u._id}`);
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
console.error(`❌ ${e.message}`);
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
indy
|
|
119
|
+
.command("transactions")
|
|
120
|
+
.alias("tx")
|
|
121
|
+
.description("List transactions")
|
|
122
|
+
.option("-p, --page <page>", "Page number", "1")
|
|
123
|
+
.option("-s, --search <query>", "Search query")
|
|
124
|
+
.option("--account <id>", "Filter by bank account ID")
|
|
125
|
+
.option("--start-date <date>", "Start date (YYYY-MM-DD)")
|
|
126
|
+
.option("--end-date <date>", "End date (YYYY-MM-DD)")
|
|
127
|
+
.option("--json", "Output raw JSON")
|
|
128
|
+
.action(async (opts) => {
|
|
129
|
+
try {
|
|
130
|
+
const cfg = requireConfig();
|
|
131
|
+
const data = await api.listTransactions(cfg, {
|
|
132
|
+
page: parseInt(opts.page),
|
|
133
|
+
search: opts.search,
|
|
134
|
+
accountId: opts.account,
|
|
135
|
+
startDate: opts.startDate,
|
|
136
|
+
endDate: opts.endDate,
|
|
137
|
+
});
|
|
138
|
+
if (opts.json) {
|
|
139
|
+
console.log(JSON.stringify(data, null, 2));
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
console.log(`\n${"DATE".padEnd(12)} ${"AMOUNT".padStart(10)} ${"DESCRIPTION".padEnd(40)} ${"CATEGORY".padEnd(20)} ID`);
|
|
143
|
+
console.log("─".repeat(110));
|
|
144
|
+
for (const t of data.transactions) {
|
|
145
|
+
const amount = formatCents(t.amountInCents);
|
|
146
|
+
const category = t.subdivisions?.[1]?.accounting_account?.number ?? "—";
|
|
147
|
+
const desc = t.description.substring(0, 38).padEnd(40);
|
|
148
|
+
console.log(`${t.date.padEnd(12)} ${amount.padStart(10)} ${desc} ${category.padEnd(20)} ${t._id}`);
|
|
149
|
+
}
|
|
150
|
+
console.log(`\nPage ${opts.page} · ${data.transactions.length} transactions`);
|
|
151
|
+
if (data.totalCount)
|
|
152
|
+
console.log(`Total: ${data.totalCount}`);
|
|
153
|
+
}
|
|
154
|
+
catch (e) {
|
|
155
|
+
console.error(`❌ ${e.message}`);
|
|
156
|
+
process.exit(1);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
indy
|
|
160
|
+
.command("bank")
|
|
161
|
+
.description("List connected bank accounts")
|
|
162
|
+
.option("--json", "Output raw JSON")
|
|
163
|
+
.action(async (opts) => {
|
|
164
|
+
try {
|
|
165
|
+
const cfg = requireConfig();
|
|
166
|
+
const data = await api.listBankAccounts(cfg);
|
|
167
|
+
if (opts.json) {
|
|
168
|
+
console.log(JSON.stringify(data, null, 2));
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
console.log("\n── Bank Accounts ──");
|
|
172
|
+
const accounts = data.bankAccounts || (Array.isArray(data) ? data : []);
|
|
173
|
+
for (const a of accounts) {
|
|
174
|
+
const bal = a.balanceInCents != null
|
|
175
|
+
? ` Balance: ${formatCents(a.balanceInCents)}`
|
|
176
|
+
: "";
|
|
177
|
+
console.log(` ${(a._id || a.id || "").padEnd(24)} ${a.name || "—"}${bal} (last sync: ${a.lastSyncAt?.slice(0, 10) || "—"})`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
console.error(`❌ ${e.message}`);
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
indy
|
|
186
|
+
.command("dashboard")
|
|
187
|
+
.description("Show dashboard periods")
|
|
188
|
+
.argument("[year]", "Fiscal year", new Date().getFullYear().toString())
|
|
189
|
+
.option("--json", "Output raw JSON")
|
|
190
|
+
.action(async (year, opts) => {
|
|
191
|
+
try {
|
|
192
|
+
const cfg = requireConfig();
|
|
193
|
+
const data = await api.getDashboardPeriods(cfg, year);
|
|
194
|
+
console.log(JSON.stringify(data, null, 2));
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
console.error(`❌ ${e.message}`);
|
|
198
|
+
process.exit(1);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
indy
|
|
202
|
+
.command("fetch")
|
|
203
|
+
.description("Make an authenticated GET request to any /api/ path")
|
|
204
|
+
.argument("<path>", "API path")
|
|
205
|
+
.option("-X, --method <method>", "HTTP method", "GET")
|
|
206
|
+
.option("-d, --data <json>", "JSON body for POST/PUT")
|
|
207
|
+
.action(async (path, opts) => {
|
|
208
|
+
try {
|
|
209
|
+
const cfg = requireConfig();
|
|
210
|
+
const data = await api.genericFetch(cfg, path, opts.method, opts.data);
|
|
211
|
+
console.log(JSON.stringify(data, null, 2));
|
|
212
|
+
}
|
|
213
|
+
catch (e) {
|
|
214
|
+
console.error(`❌ ${e.message}`);
|
|
215
|
+
process.exit(1);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}, { commands: ["indy"] });
|
|
219
|
+
// ── Register background service ──
|
|
220
|
+
pluginApi.registerService({
|
|
221
|
+
id: "indy-auth",
|
|
222
|
+
start: () => {
|
|
223
|
+
const cfg = getConfig();
|
|
224
|
+
if (!cfg) {
|
|
225
|
+
pluginApi.logger.warn("Indy plugin: no refresh token configured. Run `openclaw indy login` to set up.");
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
pluginApi.logger.info("Indy plugin loaded and configured");
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
stop: () => {
|
|
232
|
+
clearTokenCache();
|
|
233
|
+
pluginApi.logger.info("Indy plugin stopped, token cache cleared");
|
|
234
|
+
},
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function formatCents(cents) {
|
|
238
|
+
const abs = Math.abs(cents);
|
|
239
|
+
const sign = cents < 0 ? "-" : "";
|
|
240
|
+
return `${sign}€${(abs / 100).toFixed(2)}`;
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const BROWSER_SNIPPET = "(async()=>{const r=indexedDB.open('firebaseLocalStorageDb');r.onsuccess=()=>{const tx=r.result.transaction('firebaseLocalStorage','readonly');tx.objectStore('firebaseLocalStorage').getAll().onsuccess=async(e)=>{const t=e.target.result[0]?.value?.stsTokenManager?.refreshToken;if(!t){console.error('No refresh token found. Are you logged in?');return}try{await navigator.clipboard.writeText(t);console.log('\u2705 Refresh token copied to clipboard!')}catch{console.log('\u26A0\uFE0F Could not auto-copy. Here is your refresh token:\\n\\n'+t)}}}})()";
|
|
2
|
+
export declare const SETUP_INSTRUCTIONS_CLI = "\n\uD83D\uDD10 Indy.fr plugin \u2014 first-time setup\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n1. Open https://app.indy.fr in your browser and log in normally\n2. Open the browser console (F12 \u2192 Console) and paste this:\n\n(async()=>{const r=indexedDB.open('firebaseLocalStorageDb');r.onsuccess=()=>{const tx=r.result.transaction('firebaseLocalStorage','readonly');tx.objectStore('firebaseLocalStorage').getAll().onsuccess=async(e)=>{const t=e.target.result[0]?.value?.stsTokenManager?.refreshToken;if(!t){console.error('No refresh token found. Are you logged in?');return}try{await navigator.clipboard.writeText(t);console.log('\u2705 Refresh token copied to clipboard!')}catch{console.log('\u26A0\uFE0F Could not auto-copy. Here is your refresh token:\\n\\n'+t)}}}})()\n\n3. The refresh token is now on your clipboard.\n4. Then run:\n\n openclaw indy login <paste-token-here>\n\n Or set it directly in your config:\n\n plugins:\n entries:\n indy:\n enabled: true\n config:\n refreshToken: \"<paste-token-here>\"\n";
|
|
3
|
+
export declare const SETUP_INSTRUCTIONS_AGENT: string;
|
|
4
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,yiBAA0hB,CAAC;AAEvjB,eAAO,MAAM,sBAAsB,0uCAqBlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAgBzB,CAAC"}
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// ── Browser snippet to extract the Firebase refresh token from Indy.fr ──
|
|
2
|
+
export const BROWSER_SNIPPET = `(async()=>{const r=indexedDB.open('firebaseLocalStorageDb');r.onsuccess=()=>{const tx=r.result.transaction('firebaseLocalStorage','readonly');tx.objectStore('firebaseLocalStorage').getAll().onsuccess=async(e)=>{const t=e.target.result[0]?.value?.stsTokenManager?.refreshToken;if(!t){console.error('No refresh token found. Are you logged in?');return}try{await navigator.clipboard.writeText(t);console.log('✅ Refresh token copied to clipboard!')}catch{console.log('⚠️ Could not auto-copy. Here is your refresh token:\\n\\n'+t)}}}})()`;
|
|
3
|
+
export const SETUP_INSTRUCTIONS_CLI = `
|
|
4
|
+
🔐 Indy.fr plugin — first-time setup
|
|
5
|
+
──────────────────────────────────────
|
|
6
|
+
1. Open https://app.indy.fr in your browser and log in normally
|
|
7
|
+
2. Open the browser console (F12 → Console) and paste this:
|
|
8
|
+
|
|
9
|
+
${BROWSER_SNIPPET}
|
|
10
|
+
|
|
11
|
+
3. The refresh token is now on your clipboard.
|
|
12
|
+
4. Then run:
|
|
13
|
+
|
|
14
|
+
openclaw indy login <paste-token-here>
|
|
15
|
+
|
|
16
|
+
Or set it directly in your config:
|
|
17
|
+
|
|
18
|
+
plugins:
|
|
19
|
+
entries:
|
|
20
|
+
indy:
|
|
21
|
+
enabled: true
|
|
22
|
+
config:
|
|
23
|
+
refreshToken: "<paste-token-here>"
|
|
24
|
+
`;
|
|
25
|
+
export const SETUP_INSTRUCTIONS_AGENT = [
|
|
26
|
+
"⚠️ The Indy.fr plugin is not configured yet. The user needs to provide their refresh token.",
|
|
27
|
+
"",
|
|
28
|
+
"Please tell the user to follow these steps:",
|
|
29
|
+
"",
|
|
30
|
+
"1. Open https://app.indy.fr in the browser and log in",
|
|
31
|
+
"2. Open the browser console (F12 → Console tab) and paste this snippet:",
|
|
32
|
+
"",
|
|
33
|
+
"```js",
|
|
34
|
+
BROWSER_SNIPPET,
|
|
35
|
+
"```",
|
|
36
|
+
"",
|
|
37
|
+
"3. The refresh token is copied to their clipboard",
|
|
38
|
+
"4. Then run: `openclaw indy login <token>`",
|
|
39
|
+
"",
|
|
40
|
+
"Or set it in the OpenClaw config under `plugins.entries.indy.config.refreshToken`.",
|
|
41
|
+
].join("\n");
|
|
42
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,MAAM,CAAC,MAAM,eAAe,GAAG,uhBAAuhB,CAAC;AAEvjB,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;EAMpC,eAAe;;;;;;;;;;;;;;;CAehB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,6FAA6F;IAC7F,EAAE;IACF,6CAA6C;IAC7C,EAAE;IACF,uDAAuD;IACvD,yEAAyE;IACzE,EAAE;IACF,OAAO;IACP,eAAe;IACf,KAAK;IACL,EAAE;IACF,mDAAmD;IACnD,4CAA4C;IAC5C,EAAE;IACF,oFAAoF;CACrF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,YAAY,GAAG,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAsBlD,wBAAgB,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,QA6OpE"}
|