@fjall/util 0.1.10

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.
@@ -0,0 +1 @@
1
+ export * from './src';
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMnOyJdfQ==
@@ -0,0 +1,67 @@
1
+ type Provider = "aws";
2
+ type ServiceConfig = {
3
+ id: string;
4
+ type?: string;
5
+ version?: number;
6
+ options?: object;
7
+ };
8
+ type ProviderAccount = {
9
+ id: string;
10
+ name: string;
11
+ };
12
+ type RootConfig = {
13
+ version?: number;
14
+ development?: boolean;
15
+ services?: {
16
+ [key: string]: ServiceConfig;
17
+ };
18
+ provider?: Provider;
19
+ providerAccounts?: ProviderAccount[];
20
+ };
21
+ /**
22
+ * Config class for loading and saving .fjall-config.json file
23
+ */
24
+ export declare class Config {
25
+ config: RootConfig;
26
+ constructor(config?: object);
27
+ isDevelopment(): boolean;
28
+ /**
29
+ * Load config file into memory as a raw JSON string
30
+ * @returns Config as JSON string or NULL if no config file accessible
31
+ */
32
+ private static loadConfigFile;
33
+ /**
34
+ * Load configuration from file
35
+ *
36
+ * @returns Loaded configuration
37
+ */
38
+ static loadConfig(): Config;
39
+ /**
40
+ * Save configuration to file
41
+ */
42
+ saveConfig(): void;
43
+ /**
44
+ * Set the schema version used for this config file
45
+ *
46
+ * @param version Schema Version
47
+ */
48
+ setVersion(version: number): void;
49
+ /**
50
+ * Add a new service to the config file
51
+ * @param serviceKey Name/key of the service
52
+ * @param config Service configuration properties
53
+ */
54
+ addService(serviceKey: string, config: ServiceConfig): void;
55
+ /**
56
+ * Set config options on a previously defined service
57
+ *
58
+ * @param serviceKey Name/key of the service
59
+ * @param config Service configuration properties to set
60
+ */
61
+ setServiceOption(serviceKey: string, config: ServiceConfig): void;
62
+ getServiceConfig(serviceKey: string): ServiceConfig | null;
63
+ setProvider(provider: Provider): void;
64
+ addProviderAccount(account: ProviderAccount): void;
65
+ getProviderAccount(accountName: string): ProviderAccount | null | undefined;
66
+ }
67
+ export {};
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Config = void 0;
4
+ const fs = require("fs");
5
+ /**
6
+ * The current base-version of any newly created config file
7
+ */
8
+ const BASE_CONFIG_VERSION = 0.1;
9
+ /**
10
+ * Config class for loading and saving .fjall-config.json file
11
+ */
12
+ class Config {
13
+ constructor(config) {
14
+ this.config = config
15
+ ? config
16
+ : {
17
+ version: BASE_CONFIG_VERSION,
18
+ services: {},
19
+ providerAccounts: [],
20
+ };
21
+ }
22
+ isDevelopment() {
23
+ return !!this.config?.development;
24
+ }
25
+ /**
26
+ * Load config file into memory as a raw JSON string
27
+ * @returns Config as JSON string or NULL if no config file accessible
28
+ */
29
+ static loadConfigFile() {
30
+ try {
31
+ fs.accessSync(".fjall/.fjall-config.json", fs.constants.R_OK | fs.constants.W_OK);
32
+ return fs.readFileSync(".fjall/.fjall-config.json", {
33
+ encoding: "utf8",
34
+ });
35
+ }
36
+ catch (err) {
37
+ console.log("Expected config file does not exist or cannot be read.");
38
+ return null;
39
+ }
40
+ }
41
+ /**
42
+ * Load configuration from file
43
+ *
44
+ * @returns Loaded configuration
45
+ */
46
+ static loadConfig() {
47
+ try {
48
+ const configJson = this.loadConfigFile();
49
+ return configJson ? new Config(JSON.parse(configJson)) : new Config();
50
+ }
51
+ catch (err) {
52
+ console.log("Unable to parse config file. Aborting.");
53
+ process.exit();
54
+ }
55
+ }
56
+ /**
57
+ * Save configuration to file
58
+ */
59
+ saveConfig() {
60
+ // Ensure .fjall directory exists
61
+ fs.mkdirSync(".fjall", { recursive: true }); // recursive: true prevents error if directory already exists
62
+ // JSON-ify config and write to file
63
+ const jsonString = JSON.stringify(this.config, null, 2);
64
+ fs.writeFileSync(".fjall/.fjall-config.json", jsonString);
65
+ }
66
+ /**
67
+ * Set the schema version used for this config file
68
+ *
69
+ * @param version Schema Version
70
+ */
71
+ setVersion(version) {
72
+ this.config.version = version;
73
+ }
74
+ /**
75
+ * Add a new service to the config file
76
+ * @param serviceKey Name/key of the service
77
+ * @param config Service configuration properties
78
+ */
79
+ addService(serviceKey, config) {
80
+ if (!this.config.services)
81
+ this.config.services = {};
82
+ this.config.services[serviceKey] = config;
83
+ }
84
+ /**
85
+ * Set config options on a previously defined service
86
+ *
87
+ * @param serviceKey Name/key of the service
88
+ * @param config Service configuration properties to set
89
+ */
90
+ setServiceOption(serviceKey, config) {
91
+ if (!this.config.services)
92
+ this.config.services = {};
93
+ const service = this.config.services[serviceKey];
94
+ if (!service)
95
+ return;
96
+ this.config.services[serviceKey] = { ...service, ...config };
97
+ }
98
+ getServiceConfig(serviceKey) {
99
+ if (!this.config.services)
100
+ return null;
101
+ return this.config.services[serviceKey] || null;
102
+ }
103
+ setProvider(provider) {
104
+ this.config.provider = provider;
105
+ }
106
+ addProviderAccount(account) {
107
+ if (!this.config.providerAccounts)
108
+ this.config.providerAccounts = [];
109
+ // ensure account name is always lowercase
110
+ account.name = account.name.toLocaleLowerCase();
111
+ this.config.providerAccounts.push(account);
112
+ }
113
+ getProviderAccount(accountName) {
114
+ if (!this.config.providerAccounts)
115
+ return null;
116
+ return this.config.providerAccounts.find((account) => account.name.toLocaleLowerCase() === accountName.toLocaleLowerCase());
117
+ }
118
+ }
119
+ exports.Config = Config;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUF3QnpCOztHQUVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEM7O0dBRUc7QUFDSCxNQUFhLE1BQU07SUFHakIsWUFBWSxNQUFlO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTTtZQUNsQixDQUFDLENBQUMsTUFBTTtZQUNSLENBQUMsQ0FBQztnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsRUFBRTtnQkFDWixnQkFBZ0IsRUFBRSxFQUFFO2FBQ3JCLENBQUM7SUFDUixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsY0FBYztRQUMzQixJQUFJO1lBQ0YsRUFBRSxDQUFDLFVBQVUsQ0FDWCwyQkFBMkIsRUFDM0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3RDLENBQUM7WUFFRixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsMkJBQTJCLEVBQUU7Z0JBQ2xELFFBQVEsRUFBRSxNQUFNO2FBQ2pCLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJ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QUMsaUJBQWlCLEVBQUUsQ0FDdkUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTNIRCx3QkEySEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcblxudHlwZSBQcm92aWRlciA9IFwiYXdzXCI7XG5cbnR5cGUgU2VydmljZUNvbmZpZyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgdmVyc2lvbj86IG51bWJlcjtcbiAgb3B0aW9ucz86IG9iamVjdDtcbn07XG5cbnR5cGUgUHJvdmlkZXJBY2NvdW50ID0ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFJvb3RDb25maWcgPSB7XG4gIHZlcnNpb24/OiBudW1iZXI7XG4gIGRldmVsb3BtZW50PzogYm9vbGVhbjtcbiAgc2VydmljZXM/OiB7IFtrZXk6IHN0cmluZ106IFNlcnZpY2VDb25maWcgfTtcbiAgcHJvdmlkZXI/OiBQcm92aWRlcjtcbiAgcHJvdmlkZXJBY2NvdW50cz86IFByb3ZpZGVyQWNjb3VudFtdO1xufTtcblxuLyoqXG4gKiBUaGUgY3VycmVudCBiYXNlLXZlcnNpb24gb2YgYW55IG5ld2x5IGNyZWF0ZWQgY29uZmlnIGZpbGVcbiAqL1xuY29uc3QgQkFTRV9DT05GSUdfVkVSU0lPTiA9IDAuMTtcblxuLyoqXG4gKiBDb25maWcgY2xhc3MgZm9yIGxvYWRpbmcgYW5kIHNhdmluZyAuZmphbGwtY29uZmlnLmpzb24gZmlsZVxuICovXG5leHBvcnQgY2xhc3MgQ29uZmlnIHtcbiAgY29uZmlnOiBSb290Q29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IG9iamVjdCkge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnXG4gICAgICA/IGNvbmZpZ1xuICAgICAgOiB7XG4gICAgICAgICAgdmVyc2lvbjogQkFTRV9DT05GSUdfVkVSU0lPTixcbiAgICAgICAgICBzZXJ2aWNlczoge30sXG4gICAgICAgICAgcHJvdmlkZXJBY2NvdW50czogW10sXG4gICAgICAgIH07XG4gIH1cblxuICBpc0RldmVsb3BtZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29uZmlnPy5kZXZlbG9wbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGNvbmZpZyBmaWxlIGludG8gbWVtb3J5IGFzIGEgcmF3IEpTT04gc3RyaW5nXG4gICAqIEByZXR1cm5zIENvbmZpZyBhcyBKU09OIHN0cmluZyBvciBOVUxMIGlmIG5vIGNvbmZpZyBmaWxlIGFjY2Vzc2libGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGxvYWRDb25maWdGaWxlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBmcy5hY2Nlc3NTeW5jKFxuICAgICAgICBcIi5mamFsbC8uZmphbGwtY29uZmlnLmpzb25cIixcbiAgICAgICAgZnMuY29uc3RhbnRzLlJfT0sgfCBmcy5jb25zdGFudHMuV19PS1xuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhcIi5mamFsbC8uZmphbGwtY29uZmlnLmpzb25cIiwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiRXhwZWN0ZWQgY29uZmlnIGZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2Fubm90IGJlIHJlYWQuXCIpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgY29uZmlndXJhdGlvbiBmcm9tIGZpbGVcbiAgICpcbiAgICogQHJldHVybnMgTG9hZGVkIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHN0YXRpYyBsb2FkQ29uZmlnKCk6IENvbmZpZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZ0pzb24gPSB0aGlzLmxvYWRDb25maWdGaWxlKCk7XG4gICAgICByZXR1cm4gY29uZmlnSnNvbiA/IG5ldyBDb25maWcoSlNPTi5wYXJzZShjb25maWdKc29uKSkgOiBuZXcgQ29uZmlnKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlVuYWJsZSB0byBwYXJzZSBjb25maWcgZmlsZS4gQWJvcnRpbmcuXCIpO1xuICAgICAgcHJvY2Vzcy5leGl0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgY29uZmlndXJhdGlvbiB0byBmaWxlXG4gICAqL1xuICBzYXZlQ29uZmlnKCkge1xuICAgIC8vIEVuc3VyZSAuZmphbGwgZGlyZWN0b3J5IGV4aXN0c1xuICAgIGZzLm1rZGlyU3luYyhcIi5mamFsbFwiLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsgLy8gcmVjdXJzaXZlOiB0cnVlIHByZXZlbnRzIGVycm9yIGlmIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0c1xuXG4gICAgLy8gSlNPTi1pZnkgY29uZmlnIGFuZCB3cml0ZSB0byBmaWxlXG4gICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnLCBudWxsLCAyKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKFwiLmZqYWxsLy5mamFsbC1jb25maWcuanNvblwiLCBqc29uU3RyaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNjaGVtYSB2ZXJzaW9uIHVzZWQgZm9yIHRoaXMgY29uZmlnIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHZlcnNpb24gU2NoZW1hIFZlcnNpb25cbiAgICovXG4gIHNldFZlcnNpb24odmVyc2lvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5jb25maWcudmVyc2lvbiA9IHZlcnNpb247XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgbmV3IHNlcnZpY2UgdG8gdGhlIGNvbmZpZyBmaWxlXG4gICAqIEBwYXJhbSBzZXJ2aWNlS2V5IE5hbWUva2V5IG9mIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBjb25maWcgU2VydmljZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIGFkZFNlcnZpY2Uoc2VydmljZUtleTogc3RyaW5nLCBjb25maWc6IFNlcnZpY2VDb25maWcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnNlcnZpY2VzKSB0aGlzLmNvbmZpZy5zZXJ2aWNlcyA9IHt9O1xuICAgIHRoaXMuY29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWcgb3B0aW9ucyBvbiBhIHByZXZpb3VzbHkgZGVmaW5lZCBzZXJ2aWNlXG4gICAqXG4gICAqIEBwYXJhbSBzZXJ2aWNlS2V5IE5hbWUva2V5IG9mIHRoZSBzZXJ2aWNlXG4gICAqIEBwYXJhbSBjb25maWcgU2VydmljZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgdG8gc2V0XG4gICAqL1xuICBzZXRTZXJ2aWNlT3B0aW9uKHNlcnZpY2VLZXk6IHN0cmluZywgY29uZmlnOiBTZXJ2aWNlQ29uZmlnKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5zZXJ2aWNlcykgdGhpcy5jb25maWcuc2VydmljZXMgPSB7fTtcblxuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNvbmZpZy5zZXJ2aWNlc1tzZXJ2aWNlS2V5XTtcbiAgICBpZiAoIXNlcnZpY2UpIHJldHVybjtcblxuICAgIHRoaXMuY29uZmlnLnNlcnZpY2VzW3NlcnZpY2VLZXldID0geyAuLi5zZXJ2aWNlLCAuLi5jb25maWcgfTtcbiAgfVxuXG4gIGdldFNlcnZpY2VDb25maWcoc2VydmljZUtleTogc3RyaW5nKTogU2VydmljZUNvbmZpZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb25maWcuc2VydmljZXMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zZXJ2aWNlc1tzZXJ2aWNlS2V5XSB8fCBudWxsO1xuICB9XG5cbiAgc2V0UHJvdmlkZXIocHJvdmlkZXI6IFByb3ZpZGVyKSB7XG4gICAgdGhpcy5jb25maWcucHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgfVxuXG4gIGFkZFByb3ZpZGVyQWNjb3VudChhY2NvdW50OiBQcm92aWRlckFjY291bnQpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMpIHRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMgPSBbXTtcblxuICAgIC8vIGVuc3VyZSBhY2NvdW50IG5hbWUgaXMgYWx3YXlzIGxvd2VyY2FzZVxuICAgIGFjY291bnQubmFtZSA9IGFjY291bnQubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuXG4gICAgdGhpcy5jb25maWcucHJvdmlkZXJBY2NvdW50cy5wdXNoKGFjY291bnQpO1xuICB9XG5cbiAgZ2V0UHJvdmlkZXJBY2NvdW50KGFjY291bnROYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLnByb3ZpZGVyQWNjb3VudHMpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wcm92aWRlckFjY291bnRzLmZpbmQoXG4gICAgICAoYWNjb3VudCkgPT5cbiAgICAgICAgYWNjb3VudC5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IGFjY291bnROYW1lLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export * from './Config';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Config"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQ29uZmlnJzsiXX0=
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@fjall/util",
3
+ "version": "0.1.10",
4
+ "description": "Common utility methods",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist/"
9
+ ],
10
+ "scripts": {
11
+ "clean": "rm -rf ./dist",
12
+ "build": "npm run clean && npx tsc",
13
+ "watch": "npm run build && npx tsc-watch",
14
+ "publish": "npm run build && npm publish --access restricted"
15
+ },
16
+ "author": "",
17
+ "license": "ISC",
18
+ "devDependencies": {
19
+ "@types/node": "^18.19.34",
20
+ "tsc-watch": "^6.0.0",
21
+ "typescript": "^4.9.4"
22
+ }
23
+ }