@mxpicture/tesla-superchargers-api 0.1.32 → 0.1.33
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/ChargingProcessesApi.d.ts.map +1 -1
- package/dist/api/ChargingProcessesApi.js +15 -1
- package/dist/api/ChargingProcessesApi.js.map +1 -1
- package/dist/common/fx.common.d.ts +12 -0
- package/dist/common/fx.common.d.ts.map +1 -0
- package/dist/common/fx.common.js +70 -0
- package/dist/common/fx.common.js.map +1 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/types/charging.types.d.ts +1 -1
- package/dist/types/charging.types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChargingProcessesApi.d.ts","sourceRoot":"","sources":["../../src/api/ChargingProcessesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ChargingProcessesApi.d.ts","sourceRoot":"","sources":["../../src/api/ChargingProcessesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,qBAAa,oBAAqB,SAAQ,IAAI;IAC/B,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAkErC,kBAAkB,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAIxD,WAAW,CACtB,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,OAAO,CAAC,iBAAiB,CAAC;CAG9B;AAGD,eAAO,MAAM,oBAAoB,4BAA8C,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { IApi } from "./IApi.js";
|
|
|
5
5
|
import { chargingRate } from "../common/pricebooks.common.js";
|
|
6
6
|
import { FAILURE_DEPRIORITIZE_THRESHOLD, PRICING_FETCH_CONCURRENCY, } from "../common/chargers.common.js";
|
|
7
7
|
import { mapWithConcurrency } from "../common/concurrency.common.js";
|
|
8
|
+
import { BASE_CURRENCY, fxToEur } from "../common/fx.common.js";
|
|
8
9
|
export class ChargingProcessesApi extends IApi {
|
|
9
10
|
async runPricing() {
|
|
10
11
|
const store = chargingProcessesStore();
|
|
@@ -31,7 +32,20 @@ export class ChargingProcessesApi extends IApi {
|
|
|
31
32
|
item.failure_count = await store.incrementFailed(item.charge.id);
|
|
32
33
|
return item;
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
+
// cost is written into TeslaMate's single-currency cost column, so a
|
|
36
|
+
// foreign-currency rate is converted to EUR at the charge's own date;
|
|
37
|
+
// an unresolvable rate leaves the charge unpriced rather than storing
|
|
38
|
+
// a wrong-currency number.
|
|
39
|
+
const local = rate.rate * Number(energy);
|
|
40
|
+
const fx = rate.currencyCode.toUpperCase() === BASE_CURRENCY
|
|
41
|
+
? 1
|
|
42
|
+
: await fxToEur(rate.currencyCode, charge.start_date);
|
|
43
|
+
if (fx === null) {
|
|
44
|
+
item.topic = "noFxRate";
|
|
45
|
+
item.failure_count = await store.incrementFailed(item.charge.id);
|
|
46
|
+
return item;
|
|
47
|
+
}
|
|
48
|
+
const cost = Number((local * fx).toFixed(2));
|
|
35
49
|
item.cost = cost;
|
|
36
50
|
await chargingProcessesApi().updatePrice(charge.id, cost);
|
|
37
51
|
item.topic = "chargeUpdated";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChargingProcessesApi.js","sourceRoot":"","sources":["../../src/api/ChargingProcessesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,iDAAiD,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"ChargingProcessesApi.js","sourceRoot":"","sources":["../../src/api/ChargingProcessesApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** The currency TeslaMate's `cost` column is aggregated in. */
|
|
2
|
+
export declare const BASE_CURRENCY = "EUR";
|
|
3
|
+
/** Fetch the EUR-per-unit rate, primary then fallback; null on any failure. */
|
|
4
|
+
export declare const fetchRateToEur: (rateDate: string, quoteLower: string) => Promise<number | null>;
|
|
5
|
+
/**
|
|
6
|
+
* EUR per 1 unit of `currencyCode` on the day of `at` (UTC), or null when the
|
|
7
|
+
* rate can't be resolved. EUR returns 1 without any store or network access.
|
|
8
|
+
* A cache hit is returned directly; a miss fetches once (single-flighted) and
|
|
9
|
+
* caches the result before returning it.
|
|
10
|
+
*/
|
|
11
|
+
export declare const fxToEur: (currencyCode: string, at: Date) => Promise<number | null>;
|
|
12
|
+
//# sourceMappingURL=fx.common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fx.common.d.ts","sourceRoot":"","sources":["../../src/common/fx.common.ts"],"names":[],"mappings":"AAYA,+DAA+D;AAC/D,eAAO,MAAM,aAAa,QAAQ,CAAC;AAgBnC,+EAA+E;AAC/E,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,EAChB,YAAY,MAAM,KACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAevB,CAAC;AAKF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAClB,cAAc,MAAM,EACpB,IAAI,IAAI,KACP,OAAO,CAAC,MAAM,GAAG,IAAI,CAevB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FX conversion to the base currency for the charge-cost boundary. A charge's
|
|
3
|
+
* cost is written into TeslaMate's single-currency `charging_processes.cost`,
|
|
4
|
+
* so a foreign-currency rate must be converted to EUR first. Rates are looked
|
|
5
|
+
* up per the charge's own (UTC) date and cached write-once in `pic_fx_rates`;
|
|
6
|
+
* a EUR charge short-circuits before any store or network access. A rate that
|
|
7
|
+
* cannot be resolved returns null so the caller can leave the charge unpriced
|
|
8
|
+
* rather than store a wrong-currency cost.
|
|
9
|
+
*/
|
|
10
|
+
import { picFxRatesStore } from "@mxpicture/tesla-superchargers-mate/store";
|
|
11
|
+
import { singleFlight } from "./concurrency.common.js";
|
|
12
|
+
/** The currency TeslaMate's `cost` column is aggregated in. */
|
|
13
|
+
export const BASE_CURRENCY = "EUR";
|
|
14
|
+
/** Abort a stalled FX request rather than block a pricing pass on it. */
|
|
15
|
+
const FX_HTTP_TIMEOUT_MS = 10_000;
|
|
16
|
+
/**
|
|
17
|
+
* Historical daily rates from the keyless fawazahmed0/exchange-api. Primary is
|
|
18
|
+
* the jsDelivr CDN, with the pages.dev mirror as fallback. The response is
|
|
19
|
+
* `{ "date": ..., "{quote}": { "eur": <number>, ... } }`, so `[quote].eur` is
|
|
20
|
+
* EUR per 1 unit of the quote currency.
|
|
21
|
+
*/
|
|
22
|
+
const fxUrls = (rateDate, quoteLower) => [
|
|
23
|
+
`https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@${rateDate}/v1/currencies/${quoteLower}.json`,
|
|
24
|
+
`https://${rateDate}.currency-api.pages.dev/v1/currencies/${quoteLower}.json`,
|
|
25
|
+
];
|
|
26
|
+
/** Fetch the EUR-per-unit rate, primary then fallback; null on any failure. */
|
|
27
|
+
export const fetchRateToEur = async (rateDate, quoteLower) => {
|
|
28
|
+
for (const url of fxUrls(rateDate, quoteLower)) {
|
|
29
|
+
try {
|
|
30
|
+
const res = await fetch(url, {
|
|
31
|
+
signal: AbortSignal.timeout(FX_HTTP_TIMEOUT_MS),
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok)
|
|
34
|
+
continue;
|
|
35
|
+
const body = await res.json();
|
|
36
|
+
const rate = body?.[quoteLower]?.eur;
|
|
37
|
+
if (typeof rate === "number" && Number.isFinite(rate))
|
|
38
|
+
return rate;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// network error / timeout / bad JSON — try the next host
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
};
|
|
46
|
+
/** Coalesce concurrent lookups sharing a (date, currency) into one fetch. */
|
|
47
|
+
const fxInFlight = singleFlight();
|
|
48
|
+
/**
|
|
49
|
+
* EUR per 1 unit of `currencyCode` on the day of `at` (UTC), or null when the
|
|
50
|
+
* rate can't be resolved. EUR returns 1 without any store or network access.
|
|
51
|
+
* A cache hit is returned directly; a miss fetches once (single-flighted) and
|
|
52
|
+
* caches the result before returning it.
|
|
53
|
+
*/
|
|
54
|
+
export const fxToEur = async (currencyCode, at) => {
|
|
55
|
+
if (currencyCode.toUpperCase() === BASE_CURRENCY)
|
|
56
|
+
return 1;
|
|
57
|
+
const rateDate = at.toISOString().slice(0, 10);
|
|
58
|
+
const quote = currencyCode.toUpperCase();
|
|
59
|
+
const cached = await picFxRatesStore().getRate(rateDate, quote);
|
|
60
|
+
if (cached !== null)
|
|
61
|
+
return Number(cached);
|
|
62
|
+
return await fxInFlight(`${rateDate} ${quote}`, async () => {
|
|
63
|
+
const rate = await fetchRateToEur(rateDate, quote.toLowerCase());
|
|
64
|
+
if (rate === null)
|
|
65
|
+
return null;
|
|
66
|
+
await picFxRatesStore().putRate(rateDate, quote, String(rate));
|
|
67
|
+
return rate;
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=fx.common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fx.common.js","sourceRoot":"","sources":["../../src/common/fx.common.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,+DAA+D;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAE,UAAkB,EAAY,EAAE,CAAC;IACjE,0DAA0D,QAAQ,kBAAkB,UAAU,OAAO;IACrG,WAAW,QAAQ,yCAAyC,UAAU,OAAO;CAC9E,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,QAAgB,EAChB,UAAkB,EACM,EAAE;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;aAChD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,SAAS;YACtB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAY,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;YAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,UAAU,GAAG,YAAY,EAAiB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,YAAoB,EACpB,EAAQ,EACgB,EAAE;IAC1B,IAAI,YAAY,CAAC,WAAW,EAAE,KAAK,aAAa;QAAE,OAAO,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChE,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO,MAAM,UAAU,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,MAAM,eAAe,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./chargers.common.js";
|
|
2
2
|
export * from "./concurrency.common.js";
|
|
3
3
|
export * from "./failures.common.js";
|
|
4
|
+
export * from "./fx.common.js";
|
|
4
5
|
export * from "./invoices.common.js";
|
|
5
6
|
export * from "./invoicesCsv.common.js";
|
|
6
7
|
export * from "./pricebooks.common.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
package/dist/common/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export * from "./chargers.common.js";
|
|
3
3
|
export * from "./concurrency.common.js";
|
|
4
4
|
export * from "./failures.common.js";
|
|
5
|
+
export * from "./fx.common.js";
|
|
5
6
|
export * from "./invoices.common.js";
|
|
6
7
|
export * from "./invoicesCsv.common.js";
|
|
7
8
|
export * from "./pricebooks.common.js";
|
package/dist/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { UnpricedChargingProcess } from "@mxpicture/tesla-superchargers-mat
|
|
|
2
2
|
import type { ChargingRate } from "./pricebooks.types.js";
|
|
3
3
|
export interface PricingSummaryItem {
|
|
4
4
|
charge: UnpricedChargingProcess;
|
|
5
|
-
topic: "chargeUpdated" | "noRate" | "noEnergyValue" | "failureLimitReached" | "unknown";
|
|
5
|
+
topic: "chargeUpdated" | "noRate" | "noEnergyValue" | "noFxRate" | "failureLimitReached" | "unknown";
|
|
6
6
|
energy?: string | null;
|
|
7
7
|
rate?: ChargingRate | null;
|
|
8
8
|
cost?: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charging.types.d.ts","sourceRoot":"","sources":["../../src/types/charging.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EACD,eAAe,GACf,QAAQ,GACR,eAAe,GACf,qBAAqB,GACrB,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B"}
|
|
1
|
+
{"version":3,"file":"charging.types.d.ts","sourceRoot":"","sources":["../../src/types/charging.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EACD,eAAe,GACf,QAAQ,GACR,eAAe,GACf,UAAU,GACV,qBAAqB,GACrB,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mxpicture/tesla-superchargers-api",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.33",
|
|
4
4
|
"description": "Fetch + store Tesla Supercharger locations and pricing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "MXPicture",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@mxpicture/tesla-superchargers-generated": "^0.1.
|
|
48
|
-
"@mxpicture/tesla-superchargers-mate": "^0.1.
|
|
49
|
-
"@mxpicture/tesla-superchargers-cloud-store": "^0.1.
|
|
47
|
+
"@mxpicture/tesla-superchargers-generated": "^0.1.33",
|
|
48
|
+
"@mxpicture/tesla-superchargers-mate": "^0.1.33",
|
|
49
|
+
"@mxpicture/tesla-superchargers-cloud-store": "^0.1.33",
|
|
50
50
|
"csv-parse": "^7.0.1",
|
|
51
51
|
"json5": "^2.2.3",
|
|
52
52
|
"zod": "^4.4.3"
|