pontus-x_cli 1.1.4 → 1.2.6

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.
Files changed (41) hide show
  1. package/README.md +71 -41
  2. package/dist/commands/compute.d.ts +3 -2
  3. package/dist/commands/compute.js +125 -71
  4. package/dist/commands/compute.js.map +1 -1
  5. package/dist/commands/edit-trusted-algos.d.ts +5 -4
  6. package/dist/commands/edit-trusted-algos.js +132 -21
  7. package/dist/commands/edit-trusted-algos.js.map +1 -1
  8. package/dist/commands/edit-trusted-publishers.d.ts +13 -0
  9. package/dist/commands/edit-trusted-publishers.js +132 -0
  10. package/dist/commands/edit-trusted-publishers.js.map +1 -0
  11. package/dist/commands/publish.js +28 -28
  12. package/dist/commands/publish.js.map +1 -1
  13. package/dist/commands/render.js +5 -1
  14. package/dist/commands/render.js.map +1 -1
  15. package/dist/commands/revoke.js +1 -1
  16. package/dist/commands/revoke.js.map +1 -1
  17. package/dist/lib/aquarius.d.ts +25 -3
  18. package/dist/lib/aquarius.js +161 -20
  19. package/dist/lib/aquarius.js.map +1 -1
  20. package/dist/lib/manifest.d.ts +1 -0
  21. package/dist/lib/manifest.js +4 -0
  22. package/dist/lib/manifest.js.map +1 -1
  23. package/dist/lib/spec.d.ts +3 -3
  24. package/dist/lib/spec.js +30 -39
  25. package/dist/lib/spec.js.map +1 -1
  26. package/dist/lib/wallet.d.ts +2 -1
  27. package/dist/lib/wallet.js +7 -2
  28. package/dist/lib/wallet.js.map +1 -1
  29. package/dist/types/manifest-schema.json +11 -27
  30. package/dist/types/schema.json +22 -85
  31. package/dist/utils/account.d.ts +2 -0
  32. package/dist/utils/account.js +41 -0
  33. package/dist/utils/account.js.map +1 -0
  34. package/dist/utils/asset.d.ts +25 -0
  35. package/dist/utils/asset.js +108 -0
  36. package/dist/utils/asset.js.map +1 -0
  37. package/dist/utils/login.d.ts +14 -0
  38. package/dist/utils/login.js +99 -0
  39. package/dist/utils/login.js.map +1 -0
  40. package/oclif.manifest.json +137 -33
  41. package/package.json +3 -1
@@ -2,95 +2,36 @@
2
2
  "$ref": "#/definitions/PublishConfig",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "definitions": {
5
- "ConsumerParameter": {
6
- "additionalProperties": false,
7
- "properties": {
8
- "default": {
9
- "description": "Field default value. For select types, string key of default option.",
10
- "type": "string"
11
- },
12
- "description": {
13
- "description": "Field description.",
14
- "type": "string"
15
- },
16
- "label": {
17
- "description": "Displayed field label.",
18
- "type": "string"
19
- },
20
- "name": {
21
- "description": "Parameter name.",
22
- "type": "string"
23
- },
24
- "options": {
25
- "description": "For select types, a list of options.",
26
- "type": "string"
27
- },
28
- "required": {
29
- "description": "Defines if customer input for this field is mandatory.",
30
- "type": "boolean"
31
- },
32
- "type": {
33
- "description": "Field type.",
34
- "enum": ["text", "number", "boolean", "select"],
35
- "type": "string"
36
- }
37
- },
38
- "required": [
39
- "name",
40
- "type",
41
- "label",
42
- "required",
43
- "description",
44
- "default"
45
- ],
46
- "type": "object"
47
- },
48
5
  "ExtendedConsumerParameter": {
49
6
  "additionalProperties": false,
50
7
  "properties": {
51
8
  "default": {
52
- "description": "Field default value. For select types, string key of default option.",
53
9
  "type": "string"
54
10
  },
55
11
  "description": {
56
- "description": "Field description.",
57
12
  "type": "string"
58
13
  },
59
14
  "label": {
60
- "description": "Displayed field label.",
61
15
  "type": "string"
62
16
  },
63
17
  "name": {
64
- "description": "Parameter name.",
65
18
  "type": "string"
66
19
  },
67
20
  "options": {
68
21
  "items": {
69
- "additionalProperties": {
70
- "type": "string"
71
- },
72
- "type": "object"
22
+ "$ref": "#/definitions/Options"
73
23
  },
74
24
  "type": "array"
75
25
  },
76
26
  "required": {
77
- "description": "Defines if customer input for this field is mandatory.",
78
27
  "type": "boolean"
79
28
  },
80
29
  "type": {
81
- "description": "Field type.",
82
30
  "enum": ["text", "number", "boolean", "select"],
83
31
  "type": "string"
84
32
  }
85
33
  },
86
- "required": [
87
- "default",
88
- "description",
89
- "label",
90
- "name",
91
- "required",
92
- "type"
93
- ],
34
+ "required": ["name", "type", "label", "required", "description", "default"],
94
35
  "type": "object"
95
36
  },
96
37
  "FileTypes": {
@@ -107,24 +48,21 @@
107
48
  "additionalProperties": false,
108
49
  "properties": {
109
50
  "consumerParameters": {
110
- "description": "Array of objects describing the consumer parameters",
111
51
  "items": {
112
- "$ref": "#/definitions/ConsumerParameter"
52
+ "$ref": "#/definitions/ExtendedConsumerParameter"
113
53
  },
114
54
  "type": "array"
115
55
  },
116
56
  "container": {
117
57
  "additionalProperties": false,
118
- "description": "Object describing the Docker container image.",
119
58
  "properties": {
120
59
  "checksum": {
121
60
  "description": "Checksum of the Docker image.",
122
61
  "type": "string"
123
62
  },
124
63
  "consumerParameters": {
125
- "description": "Array of objects describing the consumer parameters",
126
64
  "items": {
127
- "$ref": "#/definitions/ConsumerParameter"
65
+ "$ref": "#/definitions/ExtendedConsumerParameter"
128
66
  },
129
67
  "type": "array"
130
68
  },
@@ -141,7 +79,7 @@
141
79
  "type": "string"
142
80
  }
143
81
  },
144
- "required": ["entrypoint", "image", "tag", "checksum"],
82
+ "required": ["checksum", "entrypoint", "image", "tag"],
145
83
  "type": "object"
146
84
  },
147
85
  "language": {
@@ -241,13 +179,20 @@
241
179
  "type": "boolean"
242
180
  }
243
181
  },
244
- "required": [
245
- "name",
246
- "symbol",
247
- "templateIndex",
248
- "tokenURI",
249
- "transferable"
250
- ],
182
+ "required": ["name", "symbol", "templateIndex", "tokenURI", "transferable"],
183
+ "type": "object"
184
+ },
185
+ "Options": {
186
+ "additionalProperties": false,
187
+ "properties": {
188
+ "key": {
189
+ "type": "string"
190
+ },
191
+ "value": {
192
+ "type": "string"
193
+ }
194
+ },
195
+ "required": ["key", "value"],
251
196
  "type": "object"
252
197
  },
253
198
  "PublishConfig": {
@@ -318,11 +263,11 @@
318
263
  "type": "number"
319
264
  },
320
265
  "currency": {
321
- "enum": ["OCEAN", "EUROe", "EURAU"],
266
+ "enum": ["EURAU", "EUROe", "OCEAN"],
322
267
  "type": "string"
323
268
  },
324
269
  "type": {
325
- "enum": ["free", "fixed"],
270
+ "enum": ["fixed", "free"],
326
271
  "type": "string"
327
272
  }
328
273
  },
@@ -339,15 +284,7 @@
339
284
  "type": "number"
340
285
  }
341
286
  },
342
- "required": [
343
- "serviceType",
344
- "fileType",
345
- "serviceEndpoint",
346
- "timeout",
347
- "files",
348
- "pricing",
349
- "datatoken"
350
- ],
287
+ "required": ["datatoken", "files", "fileType", "pricing", "serviceEndpoint", "serviceType", "timeout"],
351
288
  "type": "object"
352
289
  },
353
290
  "trustOwnerAlgorithms": {
@@ -0,0 +1,2 @@
1
+ import { type Publisher } from "../lib/aquarius";
2
+ export declare function PromptForPublishers(): Promise<Publisher[]>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromptForPublishers = PromptForPublishers;
4
+ const prompts_1 = require("@inquirer/prompts");
5
+ const aquarius_1 = require("../lib/aquarius");
6
+ async function PromptForPublishers() {
7
+ const knownAddresses = await (0, aquarius_1.getKnownAddresses)();
8
+ const publishers = [];
9
+ while (true) {
10
+ const publisher = await (0, prompts_1.search)({
11
+ message: "Search for a publisher by name or address (leave empty to finish):",
12
+ pageSize: 10,
13
+ source: async (input) => {
14
+ if (!input) {
15
+ return [{ name: "Finish selection", value: null }];
16
+ }
17
+ const choices = [];
18
+ for (const [address, name] of Object.entries(knownAddresses)) {
19
+ if (name.toLowerCase().includes(input.toLowerCase()) ||
20
+ address.toLowerCase().includes(input.toLowerCase())) {
21
+ choices.push({
22
+ name: `${name} (${address})`,
23
+ value: { name, address },
24
+ });
25
+ }
26
+ }
27
+ const userChoice = {
28
+ name: input,
29
+ value: { name: "", address: input },
30
+ };
31
+ return [...choices, userChoice];
32
+ },
33
+ });
34
+ if (!publisher || !publisher.address) {
35
+ break;
36
+ }
37
+ publishers.push(publisher);
38
+ }
39
+ return publishers;
40
+ }
41
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/utils/account.ts"],"names":[],"mappings":";;AAGA,kDA4CC;AA/CD,+CAA2C;AAC3C,6CAAmE;AAE5D,KAAK,UAAU,mBAAmB;IACvC,MAAM,cAAc,GAAG,MAAM,IAAA,4BAAiB,GAAE,CAAC;IAEjD,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,MAAM,IAAA,gBAAM,EAAC;YAC7B,OAAO,EACL,oEAAoE;YACtE,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,OAAO,GAAG,EAAE,CAAC;gBAEnB,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC7D,IACE,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;wBAChD,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EACnD,CAAC;wBACD,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,GAAG,IAAI,KAAK,OAAO,GAAG;4BAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;yBACzB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,MAAM,UAAU,GAAG;oBACjB,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBACpC,CAAC;gBAEF,OAAO,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC;YAClC,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM;QACR,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type AssetInfo } from "../lib/aquarius";
2
+ type Choice<Value> = {
3
+ value: Value;
4
+ name?: string;
5
+ checkedName?: string;
6
+ description?: string;
7
+ short?: string;
8
+ disabled?: boolean | string;
9
+ checked?: boolean;
10
+ type?: never;
11
+ };
12
+ interface PromptProps {
13
+ chainIds?: number[];
14
+ assetTypes?: string[];
15
+ accessTypes?: string[];
16
+ owners?: string[];
17
+ tagSets?: string[][];
18
+ networkChoices?: Choice<number>[];
19
+ assetTypeChoices?: Choice<string>[];
20
+ accessTypeChoices?: Choice<string>[];
21
+ ownerChoices?: Choice<string>[];
22
+ promptType?: "checkbox" | "select";
23
+ }
24
+ export declare function PromptForAssets({ chainIds, assetTypes, accessTypes, owners, tagSets, networkChoices, assetTypeChoices, accessTypeChoices, ownerChoices, promptType, }?: PromptProps): Promise<AssetInfo[]>;
25
+ export {};
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PromptForAssets = PromptForAssets;
7
+ const prompts_1 = require("@inquirer/prompts");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const aquarius_1 = require("../lib/aquarius");
10
+ const defaultChainIds = [
11
+ { name: "PONTUSXDEV", value: 32456 },
12
+ { name: "PONTUSXTEST", value: 32457 },
13
+ ];
14
+ const defaultAssetTypes = [
15
+ { name: "Dataset", value: "dataset" },
16
+ { name: "Algorithm", value: "algorithm" },
17
+ ];
18
+ const defaultAccessTypes = [
19
+ { name: "Download", value: "access" },
20
+ { name: "Compute", value: "compute" },
21
+ ];
22
+ async function PromptForAssets({ chainIds, assetTypes, accessTypes, owners, tagSets, networkChoices = defaultChainIds, assetTypeChoices = defaultAssetTypes, accessTypeChoices = defaultAccessTypes, ownerChoices = [], promptType = "checkbox", } = {}) {
23
+ const selectedChainIds = chainIds ||
24
+ (await (0, prompts_1.checkbox)({
25
+ message: "Select networks:",
26
+ choices: networkChoices,
27
+ }));
28
+ const selectedAssetTypes = assetTypes ||
29
+ (await (0, prompts_1.checkbox)({
30
+ message: "Select asset types:",
31
+ choices: assetTypeChoices,
32
+ }));
33
+ const selectedAccessTypes = accessTypes ||
34
+ (await (0, prompts_1.checkbox)({
35
+ message: "Select access types:",
36
+ choices: accessTypeChoices,
37
+ }));
38
+ const selectedOwners = owners || ownerChoices.length > 0
39
+ ? await (0, prompts_1.checkbox)({
40
+ message: "Select owners:",
41
+ choices: ownerChoices,
42
+ })
43
+ : undefined;
44
+ const selectedTagSets = tagSets ||
45
+ (await (async () => {
46
+ const tagSets = [];
47
+ while (true) {
48
+ const tagSet = await (0, prompts_1.input)({
49
+ message: "Enter a tag set (comma-separated), or leave blank to finish:",
50
+ });
51
+ if (!tagSet) {
52
+ break;
53
+ }
54
+ tagSets.push(tagSet.split(",").map((tag) => tag.trim()));
55
+ }
56
+ return tagSets;
57
+ })());
58
+ const assets = await (0, aquarius_1.searchAssets)({
59
+ chainIds: selectedChainIds,
60
+ assetTypes: selectedAssetTypes,
61
+ accessTypes: selectedAccessTypes,
62
+ tagSets: selectedTagSets,
63
+ owners: selectedOwners,
64
+ });
65
+ const sortedAssets = assets.sort((a, b) => b.created.localeCompare(a.created));
66
+ const assetChoices = [];
67
+ for (const [index, asset] of sortedAssets.entries()) {
68
+ const ownerName = await (0, aquarius_1.getOwnerName)(asset.owner);
69
+ assetChoices.push({
70
+ name: `${(index + 1).toString().padStart(2, "0")}. ${chalk_1.default.blue(asset.did)} | ${chalk_1.default.green(asset.created.split("T")[0])} | ${chalk_1.default.yellow(ownerName)} | ${chalk_1.default.magenta(asset.name)}`,
71
+ value: asset,
72
+ });
73
+ }
74
+ if (assetChoices.length === 0) {
75
+ console.log(chalk_1.default.red("No assets found matching the criteria."));
76
+ return [];
77
+ }
78
+ if (promptType === "checkbox") {
79
+ return await (0, prompts_1.checkbox)({
80
+ message: "Select assets to edit:",
81
+ choices: assetChoices,
82
+ loop: false,
83
+ pageSize: 10,
84
+ theme: {
85
+ style: {
86
+ answer: (text) => `\n ${text.split(",").join("\n")}\n`,
87
+ },
88
+ },
89
+ });
90
+ }
91
+ if (promptType === "select") {
92
+ return [
93
+ await (0, prompts_1.select)({
94
+ message: "Select an asset to edit:",
95
+ choices: assetChoices,
96
+ loop: false,
97
+ pageSize: 10,
98
+ theme: {
99
+ style: {
100
+ answer: (text) => `\n ${text}\n`,
101
+ },
102
+ },
103
+ }),
104
+ ];
105
+ }
106
+ return [];
107
+ }
108
+ //# sourceMappingURL=asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/utils/asset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type Network } from "../config";
2
+ import type { Manifest } from "../types/manifest";
3
+ export interface LoginInfo {
4
+ privateKey: string;
5
+ ownerAddress: string;
6
+ ownerName: string;
7
+ }
8
+ export declare function getPrivateKeyForOwner(loginInfos: LoginInfo[], ownerAddress: string): string;
9
+ export declare function manifestToLoginInfos(manifest: Manifest): Promise<LoginInfo[]>;
10
+ export declare function getEnvLoginInfo(): Promise<LoginInfo>;
11
+ export declare function printLoginInfos(loginInfos: LoginInfo[]): void;
12
+ export declare function getLoginInfos(manifestPath?: string): Promise<LoginInfo[]>;
13
+ export declare function askForNetwork(): Promise<Network>;
14
+ export declare function getEnvNetwork(): Network | null;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPrivateKeyForOwner = getPrivateKeyForOwner;
7
+ exports.manifestToLoginInfos = manifestToLoginInfos;
8
+ exports.getEnvLoginInfo = getEnvLoginInfo;
9
+ exports.printLoginInfos = printLoginInfos;
10
+ exports.getLoginInfos = getLoginInfos;
11
+ exports.askForNetwork = askForNetwork;
12
+ exports.getEnvNetwork = getEnvNetwork;
13
+ const prompts_1 = require("@inquirer/prompts");
14
+ const chalk_1 = __importDefault(require("chalk"));
15
+ const config_1 = require("../config");
16
+ const aquarius_1 = require("../lib/aquarius");
17
+ const manifest_1 = require("../lib/manifest");
18
+ const wallet_1 = require("../lib/wallet");
19
+ function getPrivateKeyForOwner(loginInfos, ownerAddress) {
20
+ const address = ownerAddress.toLowerCase();
21
+ const loginInfo = loginInfos.find((info) => info.ownerAddress.toLowerCase() === address);
22
+ if (!loginInfo) {
23
+ throw new Error(`No login info found for address ${ownerAddress}`);
24
+ }
25
+ return loginInfo.privateKey;
26
+ }
27
+ async function manifestToLoginInfos(manifest) {
28
+ return Promise.all(manifest.accounts.map(async (account) => {
29
+ try {
30
+ const password = process.env[account.passwordEnvKey || ""] || "";
31
+ const privateKey = await (0, wallet_1.readPrivateKey)(account.privateKeyPath, password);
32
+ const ownerAddress = await (0, wallet_1.getOwnerAddress)(privateKey);
33
+ const ownerName = await (0, aquarius_1.getOwnerName)(ownerAddress);
34
+ return {
35
+ privateKey,
36
+ ownerAddress,
37
+ ownerName,
38
+ };
39
+ }
40
+ catch (err) {
41
+ throw new Error(`Failed processing account with keyPath=${account.privateKeyPath}: ${err instanceof Error ? err.message : String(err)}`);
42
+ }
43
+ }));
44
+ }
45
+ async function getEnvLoginInfo() {
46
+ const privateKey = process.env.PRIVATE_KEY || "";
47
+ if (privateKey === "") {
48
+ throw new Error(`You are not logged in. Please login using "pontus-x_cli login" or set the PRIVATE_KEY environment variable.`);
49
+ }
50
+ const ownerAddress = await (0, wallet_1.getOwnerAddress)(privateKey);
51
+ const ownerName = await (0, aquarius_1.getOwnerName)(ownerAddress);
52
+ return {
53
+ privateKey,
54
+ ownerAddress,
55
+ ownerName,
56
+ };
57
+ }
58
+ function printLoginInfos(loginInfos) {
59
+ loginInfos.forEach((loginInfo, index) => {
60
+ console.log(chalk_1.default.bold(`Account ${(index + 1).toString().padStart(2, "0")}: ${chalk_1.default.gray(loginInfo.ownerAddress)} ${chalk_1.default.magenta(loginInfo.ownerName)}`));
61
+ });
62
+ console.log();
63
+ }
64
+ async function getLoginInfos(manifestPath) {
65
+ let loginInfos = [];
66
+ if (manifestPath) {
67
+ console.log(chalk_1.default.green(`Using manifest file for authentication ${chalk_1.default.gray(`(path: ${manifestPath})\n`)}`));
68
+ const manifest = (0, manifest_1.readManifest)(manifestPath);
69
+ loginInfos = await manifestToLoginInfos(manifest);
70
+ }
71
+ else {
72
+ console.log(chalk_1.default.green(`Using environment variables for authentication ${chalk_1.default.gray("(env: PRIVATE_KEY)")}\n`));
73
+ loginInfos = [await getEnvLoginInfo()];
74
+ }
75
+ return loginInfos;
76
+ }
77
+ async function askForNetwork() {
78
+ const network = await (0, prompts_1.select)({
79
+ message: "Select network:",
80
+ choices: Object.keys(config_1.NETWORK_CONFIGS).map((network) => ({
81
+ name: network,
82
+ value: network,
83
+ })),
84
+ });
85
+ return network;
86
+ }
87
+ function getEnvNetwork() {
88
+ var _a;
89
+ const envNetwork = (_a = process.env.NETWORK) === null || _a === void 0 ? void 0 : _a.toUpperCase();
90
+ if (!envNetwork) {
91
+ return null;
92
+ }
93
+ const network = Object.keys(config_1.NETWORK_CONFIGS).find((network) => network === envNetwork);
94
+ if (!network) {
95
+ throw new Error(`Invalid NETWORK environment variable value "${envNetwork}". Please set it to one of: ${Object.keys(config_1.NETWORK_CONFIGS).join(", ")}`);
96
+ }
97
+ return network;
98
+ }
99
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/utils/login.ts"],"names":[],"mappings":"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"}