@signageos/webpack-plugin 0.3.0 → 1.0.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.
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.createOrganizationRestApi = exports.API_URL = void 0;
51
- var RestApi_1 = require("@signageos/sdk/dist/RestApi/RestApi");
52
- var sosControlHelper_1 = require("@signageos/sdk/dist/SosHelper/sosControlHelper");
53
- var parameters = require("../../config/parameters");
54
- exports.API_URL = parameters.apiUrl;
55
- function createOrganizationRestApi() {
56
- return __awaiter(this, void 0, void 0, function () {
57
- var config, accountAuth, accountOptions, organization, organizationAuth, organizationOptions;
58
- return __generator(this, function (_a) {
59
- switch (_a.label) {
60
- case 0: return [4 /*yield*/, (0, sosControlHelper_1.loadConfig)()];
61
- case 1:
62
- config = _a.sent();
63
- accountAuth = {
64
- url: exports.API_URL,
65
- auth: {
66
- clientId: config.identification,
67
- secret: config.apiSecurityToken,
68
- },
69
- version: 'v1',
70
- };
71
- accountOptions = __assign({}, accountAuth);
72
- return [4 /*yield*/, new RestApi_1.default(accountAuth, accountOptions).organization.get(config.defaultOrganizationUid)];
73
- case 2:
74
- organization = _a.sent();
75
- organizationAuth = {
76
- url: exports.API_URL,
77
- auth: {
78
- clientId: organization.oauthClientId,
79
- secret: organization.oauthClientSecret,
80
- },
81
- version: 'v1',
82
- };
83
- organizationOptions = __assign({}, organizationAuth);
84
- return [2 /*return*/, new RestApi_1.default(organizationAuth, organizationOptions)];
85
- }
86
- });
87
- });
88
- }
89
- exports.createOrganizationRestApi = createOrganizationRestApi;
90
- //# sourceMappingURL=apiHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apiHelper.js","sourceRoot":"","sources":["../../src/ConnectControl/apiHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+DAA0D;AAC1D,mFAA4E;AAC5E,oDAAsD;AAEzC,QAAA,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AAEzC,SAAsB,yBAAyB;;;;;wBAE/B,qBAAM,IAAA,6BAAU,GAAE,EAAA;;oBAA3B,MAAM,GAAG,SAAkB;oBAC3B,WAAW,GAAoB;wBACpC,GAAG,EAAE,eAAO;wBACZ,IAAI,EAAE;4BACL,QAAQ,EAAE,MAAM,CAAC,cAAe;4BAChC,MAAM,EAAE,MAAM,CAAC,gBAAiB;yBAChC;wBACD,OAAO,EAAE,IAAY;qBACrB,CAAC;oBACI,cAAc,gBAChB,WAAW,CACd,CAAC;oBACmB,qBAAM,IAAI,iBAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAuB,CAAC,EAAA;;oBAA9G,YAAY,GAAG,SAA+F;oBAC9G,gBAAgB,GAAoB;wBACzC,GAAG,EAAE,eAAO;wBACZ,IAAI,EAAE;4BACL,QAAQ,EAAE,YAAY,CAAC,aAAc;4BACrC,MAAM,EAAE,YAAY,CAAC,iBAAkB;yBACvC;wBACD,OAAO,EAAE,IAAY;qBACrB,CAAC;oBACI,mBAAmB,gBACrB,gBAAgB,CACnB,CAAC;oBACF,sBAAO,IAAI,iBAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAC;;;;CAC1D;AA3BD,8DA2BC"}
@@ -1,11 +0,0 @@
1
- /// <reference types="node" />
2
- import * as nativeFs from "fs";
3
- declare type FileSystem = typeof nativeFs;
4
- export declare const ignoredFiles: string[];
5
- export declare function reloadConnectedDevices(): Promise<void>;
6
- export declare function loadConnectedDeviceUids(): Promise<string[]>;
7
- export declare function createAllAppletZips(outputFileSystem: FileSystem): Promise<string[]>;
8
- export declare function createAppletZip(deviceUid: string, outputFileSystem: FileSystem): Promise<string>;
9
- export declare function getAllFiles(directory: string, outputFileSystem: FileSystem): Promise<string[]>;
10
- export declare function getAppletFileRelativePath(fileAbsolutePath: string, directoryAbsolutePath: string): string;
11
- export {};
@@ -1,247 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
- if (ar || !(i in from)) {
41
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
- ar[i] = from[i];
43
- }
44
- }
45
- return to.concat(ar || Array.prototype.slice.call(from));
46
- };
47
- Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.getAppletFileRelativePath = exports.getAllFiles = exports.createAppletZip = exports.createAllAppletZips = exports.loadConnectedDeviceUids = exports.reloadConnectedDevices = exports.ignoredFiles = void 0;
49
- var os = require("os");
50
- var _ = require("lodash");
51
- var fsExtra = require("fs-extra");
52
- var nativeFs = require("fs");
53
- var path = require("path");
54
- var IPowerAction_1 = require("@signageos/sdk/dist/RestApi/Device/PowerAction/IPowerAction");
55
- var apiHelper_1 = require("./apiHelper");
56
- var archiver = require("archiver");
57
- var CONNECT_DIRECTORY = 'signageos';
58
- var connectRuntimeDirPath = path.join(os.tmpdir(), CONNECT_DIRECTORY);
59
- exports.ignoredFiles = ["node_modules", "package-lock.json", "src", "public", ".gitignore", "README.md"];
60
- function reloadConnectedDevices() {
61
- return __awaiter(this, void 0, void 0, function () {
62
- var connectedDeviceUids, resApi_1;
63
- var _this = this;
64
- return __generator(this, function (_a) {
65
- switch (_a.label) {
66
- case 0: return [4 /*yield*/, loadConnectedDeviceUids()];
67
- case 1:
68
- connectedDeviceUids = _a.sent();
69
- if (!(connectedDeviceUids.length >= 1)) return [3 /*break*/, 4];
70
- return [4 /*yield*/, (0, apiHelper_1.createOrganizationRestApi)()];
71
- case 2:
72
- resApi_1 = _a.sent();
73
- return [4 /*yield*/, Promise.all(connectedDeviceUids.map(function (deviceUid) { return __awaiter(_this, void 0, void 0, function () {
74
- var error_1;
75
- return __generator(this, function (_a) {
76
- switch (_a.label) {
77
- case 0:
78
- _a.trys.push([0, 2, , 3]);
79
- return [4 /*yield*/, resApi_1.device.powerAction.set(deviceUid, {
80
- devicePowerAction: IPowerAction_1.DevicePowerAction.AppletReload,
81
- })];
82
- case 1:
83
- _a.sent();
84
- console.log("Successfully reloaded device ".concat(deviceUid, " "));
85
- return [3 /*break*/, 3];
86
- case 2:
87
- error_1 = _a.sent();
88
- console.log("Reload Failed", error_1);
89
- return [3 /*break*/, 3];
90
- case 3: return [2 /*return*/];
91
- }
92
- });
93
- }); }))];
94
- case 3:
95
- _a.sent();
96
- _a.label = 4;
97
- case 4: return [2 /*return*/];
98
- }
99
- });
100
- });
101
- }
102
- exports.reloadConnectedDevices = reloadConnectedDevices;
103
- function loadConnectedDeviceUids() {
104
- return __awaiter(this, void 0, void 0, function () {
105
- var connectFileContent, connectedDeviceUids, _i, connectFileContent_1, file;
106
- return __generator(this, function (_a) {
107
- switch (_a.label) {
108
- case 0: return [4 /*yield*/, fsExtra.pathExists(connectRuntimeDirPath)];
109
- case 1:
110
- if (!(_a.sent())) {
111
- return [2 /*return*/, []];
112
- }
113
- return [4 /*yield*/, fsExtra.readdir(connectRuntimeDirPath)];
114
- case 2:
115
- connectFileContent = _a.sent();
116
- connectedDeviceUids = [];
117
- if (!(connectFileContent.length >= 1)) return [3 /*break*/, 6];
118
- _i = 0, connectFileContent_1 = connectFileContent;
119
- _a.label = 3;
120
- case 3:
121
- if (!(_i < connectFileContent_1.length)) return [3 /*break*/, 6];
122
- file = connectFileContent_1[_i];
123
- return [4 /*yield*/, fsExtra.stat(path.join(connectRuntimeDirPath, file))];
124
- case 4:
125
- if ((_a.sent()).isDirectory()) {
126
- connectedDeviceUids.push(file);
127
- }
128
- _a.label = 5;
129
- case 5:
130
- _i++;
131
- return [3 /*break*/, 3];
132
- case 6: return [2 /*return*/, connectedDeviceUids];
133
- }
134
- });
135
- });
136
- }
137
- exports.loadConnectedDeviceUids = loadConnectedDeviceUids;
138
- function createAllAppletZips(outputFileSystem) {
139
- return __awaiter(this, void 0, void 0, function () {
140
- var connectedDeviceUids, packageZipPaths;
141
- var _this = this;
142
- return __generator(this, function (_a) {
143
- switch (_a.label) {
144
- case 0: return [4 /*yield*/, loadConnectedDeviceUids()];
145
- case 1:
146
- connectedDeviceUids = _a.sent();
147
- return [4 /*yield*/, Promise.all(connectedDeviceUids.map(function (deviceUid) { return __awaiter(_this, void 0, void 0, function () {
148
- return __generator(this, function (_a) {
149
- switch (_a.label) {
150
- case 0: return [4 /*yield*/, createAppletZip(deviceUid, outputFileSystem)];
151
- case 1: return [2 /*return*/, _a.sent()];
152
- }
153
- });
154
- }); }))];
155
- case 2:
156
- packageZipPaths = _a.sent();
157
- return [2 /*return*/, packageZipPaths];
158
- }
159
- });
160
- });
161
- }
162
- exports.createAllAppletZips = createAllAppletZips;
163
- function createAppletZip(deviceUid, outputFileSystem) {
164
- return __awaiter(this, void 0, void 0, function () {
165
- var archive, deviceConnectDir, packageZipPath, output, actualDirectory, outputFiles, realFiles, oldRealFiles, _i, oldRealFiles_1, fileAbsolutePath, fileRelativePath, _a, outputFiles_1, fileAbsolutePath, fileRelativePath, promise;
166
- return __generator(this, function (_b) {
167
- switch (_b.label) {
168
- case 0:
169
- archive = archiver('zip');
170
- deviceConnectDir = path.join(connectRuntimeDirPath, deviceUid);
171
- packageZipPath = path.join(deviceConnectDir, "package.zip" + "".concat(deviceUid));
172
- output = fsExtra.createWriteStream(packageZipPath);
173
- archive.pipe(output);
174
- actualDirectory = process.cwd();
175
- return [4 /*yield*/, getAllFiles(actualDirectory, outputFileSystem)];
176
- case 1:
177
- outputFiles = _b.sent();
178
- return [4 /*yield*/, getAllFiles(actualDirectory, nativeFs)];
179
- case 2:
180
- realFiles = _b.sent();
181
- oldRealFiles = _.difference(realFiles, outputFiles);
182
- // First put all old real files from general file system to zip
183
- for (_i = 0, oldRealFiles_1 = oldRealFiles; _i < oldRealFiles_1.length; _i++) {
184
- fileAbsolutePath = oldRealFiles_1[_i];
185
- fileRelativePath = getAppletFileRelativePath(fileAbsolutePath, actualDirectory);
186
- archive.append(nativeFs.createReadStream(fileAbsolutePath), { name: fileRelativePath });
187
- }
188
- // Then extend zip with files from output file system (which is usually in memory FS from webpack in memory compilation)
189
- for (_a = 0, outputFiles_1 = outputFiles; _a < outputFiles_1.length; _a++) {
190
- fileAbsolutePath = outputFiles_1[_a];
191
- fileRelativePath = getAppletFileRelativePath(fileAbsolutePath, actualDirectory);
192
- archive.append(outputFileSystem.createReadStream(fileAbsolutePath), { name: fileRelativePath });
193
- }
194
- promise = new Promise(function (resolve, reject) {
195
- archive.on('end', function () { return resolve(); });
196
- archive.on('error', function (error) { return reject(error); });
197
- });
198
- archive.finalize();
199
- return [4 /*yield*/, promise];
200
- case 3:
201
- _b.sent();
202
- return [2 /*return*/, packageZipPath];
203
- }
204
- });
205
- });
206
- }
207
- exports.createAppletZip = createAppletZip;
208
- function getAllFiles(directory, outputFileSystem) {
209
- return __awaiter(this, void 0, void 0, function () {
210
- var fileList, files, _i, files_1, file, p, _a;
211
- return __generator(this, function (_b) {
212
- switch (_b.label) {
213
- case 0:
214
- fileList = [];
215
- files = outputFileSystem.readdirSync(directory);
216
- _i = 0, files_1 = files;
217
- _b.label = 1;
218
- case 1:
219
- if (!(_i < files_1.length)) return [3 /*break*/, 5];
220
- file = files_1[_i];
221
- if (!!exports.ignoredFiles.includes(file)) return [3 /*break*/, 4];
222
- p = path.join(directory, file);
223
- if (!outputFileSystem.statSync(p).isDirectory()) return [3 /*break*/, 3];
224
- _a = [__spreadArray([], fileList, true)];
225
- return [4 /*yield*/, getAllFiles(p, outputFileSystem)];
226
- case 2:
227
- fileList = __spreadArray.apply(void 0, _a.concat([(_b.sent()), true]));
228
- return [3 /*break*/, 4];
229
- case 3:
230
- fileList.push(p);
231
- _b.label = 4;
232
- case 4:
233
- _i++;
234
- return [3 /*break*/, 1];
235
- case 5: return [2 /*return*/, fileList];
236
- }
237
- });
238
- });
239
- }
240
- exports.getAllFiles = getAllFiles;
241
- function getAppletFileRelativePath(fileAbsolutePath, directoryAbsolutePath) {
242
- var directoryAbsolutePathNormalized = path.normalize(directoryAbsolutePath);
243
- var fileAbsolutePathNormalized = path.normalize(fileAbsolutePath);
244
- return fileAbsolutePathNormalized.substring(directoryAbsolutePathNormalized.length + 1);
245
- }
246
- exports.getAppletFileRelativePath = getAppletFileRelativePath;
247
- //# sourceMappingURL=helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/ConnectControl/helper.ts"],"names":[],"mappings":"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"}