ofsc-utility 1.0.4 โ†’ 1.0.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.
package/dist/index.d.ts CHANGED
@@ -1,13 +1,19 @@
1
+ export * as InventoryType from './inventoryTypes';
1
2
  export * as OauthTokenService from './oauthTokenService';
2
3
  export * as Resource from './resources';
4
+ export * as User from './users';
3
5
  export * as WorkZone from './workZones';
4
6
  export * from './types';
5
7
  export { getOAuthToken } from './oauthTokenService';
6
8
  export { downloadWorkZoneCSV } from './workZones';
7
9
  export { downloadAllResourcesCSV } from './resources';
10
+ export { downloadAllUsersCSV } from './users';
11
+ export { downloadAllInventoryTypesCSV } from './inventoryTypes';
8
12
  declare const OfscUtility: {
9
13
  getOAuthToken: any;
10
14
  downloadWorkZoneCSV: any;
11
15
  downloadAllResourcesCSV: any;
16
+ downloadAllUsersCSV: any;
17
+ downloadAllInventoryTypesCSV: any;
12
18
  };
13
19
  export default OfscUtility;
package/dist/index.js CHANGED
@@ -36,10 +36,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.downloadAllResourcesCSV = exports.downloadWorkZoneCSV = exports.getOAuthToken = exports.WorkZone = exports.Resource = exports.OauthTokenService = void 0;
39
+ exports.downloadAllInventoryTypesCSV = exports.downloadAllUsersCSV = exports.downloadAllResourcesCSV = exports.downloadWorkZoneCSV = exports.getOAuthToken = exports.WorkZone = exports.User = exports.Resource = exports.OauthTokenService = exports.InventoryType = void 0;
40
40
  // Export all methods grouped by category
41
+ exports.InventoryType = __importStar(require("./inventoryTypes"));
41
42
  exports.OauthTokenService = __importStar(require("./oauthTokenService"));
42
43
  exports.Resource = __importStar(require("./resources"));
44
+ exports.User = __importStar(require("./users"));
43
45
  exports.WorkZone = __importStar(require("./workZones"));
44
46
  // Export types
45
47
  __exportStar(require("./types"), exports);
@@ -50,11 +52,17 @@ var workZones_1 = require("./workZones");
50
52
  Object.defineProperty(exports, "downloadWorkZoneCSV", { enumerable: true, get: function () { return workZones_1.downloadWorkZoneCSV; } });
51
53
  var resources_1 = require("./resources");
52
54
  Object.defineProperty(exports, "downloadAllResourcesCSV", { enumerable: true, get: function () { return resources_1.downloadAllResourcesCSV; } });
55
+ var users_1 = require("./users");
56
+ Object.defineProperty(exports, "downloadAllUsersCSV", { enumerable: true, get: function () { return users_1.downloadAllUsersCSV; } });
57
+ var inventoryTypes_1 = require("./inventoryTypes");
58
+ Object.defineProperty(exports, "downloadAllInventoryTypesCSV", { enumerable: true, get: function () { return inventoryTypes_1.downloadAllInventoryTypesCSV; } });
53
59
  // Default export with all functionality
54
60
  const OfscUtility = {
55
61
  // Case converters
56
62
  getOAuthToken: require('./oauthTokenService').getOAuthToken,
57
63
  downloadWorkZoneCSV: require('./workZones').downloadWorkZoneCSV,
58
- downloadAllResourcesCSV: require('./resources').downloadAllResourcesCSV
64
+ downloadAllResourcesCSV: require('./resources').downloadAllResourcesCSV,
65
+ downloadAllUsersCSV: require('./resources').downloadAllUsersCSV,
66
+ downloadAllInventoryTypesCSV: require('./inventoryTypes').downloadAllInventoryTypesCSV
59
67
  };
60
68
  exports.default = OfscUtility;
@@ -0,0 +1 @@
1
+ export declare function downloadAllInventoryTypesCSV(clientId: string, clientSecret: string, instanceUrl: string): Promise<void>;
@@ -0,0 +1,115 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.downloadAllInventoryTypesCSV = downloadAllInventoryTypesCSV;
40
+ const fs = __importStar(require("fs"));
41
+ const node_fetch_1 = __importDefault(require("node-fetch"));
42
+ const index_1 = require("../oauthTokenService/index");
43
+ async function downloadAllInventoryTypesCSV(clientId, clientSecret, instanceUrl) {
44
+ let offset = 0;
45
+ const limit = 100;
46
+ let allItems = [];
47
+ let totalFetched = 0;
48
+ console.log("๐Ÿš€ Starting all nventory type download...");
49
+ console.log("-------------------------------------");
50
+ while (true) {
51
+ const url = `https://${instanceUrl}.fs.ocs.oraclecloud.com/rest/ofscMetadata/v1/inventoryTypes/?offset=${offset}&limit=${limit}`;
52
+ const token = await (0, index_1.getOAuthToken)(clientId, clientSecret, instanceUrl);
53
+ console.log(`โžก๏ธ Fetching offset=${offset} limit=${limit}`);
54
+ const res = await (0, node_fetch_1.default)(url, {
55
+ method: "GET",
56
+ headers: {
57
+ Authorization: `Bearer ${token}`,
58
+ Accept: "application/json"
59
+ }
60
+ });
61
+ if (!res.ok) {
62
+ throw new Error(`โŒ Fetch failed: ${res.status} ${res.statusText}`);
63
+ }
64
+ const data = (await res.json());
65
+ allItems.push(...data.items);
66
+ totalFetched += data.items.length;
67
+ console.log(` โœ” Received ${data.items.length} items (Total: ${totalFetched})`);
68
+ if (offset + limit >= data.totalResults)
69
+ break;
70
+ offset += limit;
71
+ }
72
+ console.log("-------------------------------------");
73
+ console.log("๐Ÿงฉ Collecting all unique properties...");
74
+ // Collect union of all properties
75
+ const allProperties = new Set();
76
+ for (const item of allItems) {
77
+ for (const key of Object.keys(item)) {
78
+ if (!["resources", "collaborationGroups", "resourceInternalIds", "links"].includes(key)) {
79
+ allProperties.add(key);
80
+ }
81
+ }
82
+ }
83
+ const headers = Array.from(allProperties);
84
+ console.log(`๐Ÿ“ Total unique fields: ${headers.length}`);
85
+ // Build CSV rows
86
+ const csvRows = [];
87
+ csvRows.push(headers.join(","));
88
+ for (const item of allItems) {
89
+ const row = headers.map(field => {
90
+ let value = item[field];
91
+ if (field === "keys") {
92
+ if (Array.isArray(value))
93
+ return `"${value.join("|")}"`;
94
+ if (value)
95
+ return `"${String(value)}"`;
96
+ return "";
97
+ }
98
+ // Objects โ†’ JSON-safe string
99
+ if (typeof value === "object" && value !== null) {
100
+ return `"${JSON.stringify(value).replace(/"/g, "'")}"`;
101
+ }
102
+ return value !== undefined ? `"${String(value).replace(/"/g, "'")}"` : "";
103
+ });
104
+ csvRows.push(row.join(","));
105
+ }
106
+ const filePath = "./all_inventories.csv";
107
+ fs.writeFileSync(filePath, csvRows.join("\n"));
108
+ console.log("-------------------------------------");
109
+ console.log("โœ… Inventories CSV Created Successfully!");
110
+ console.log(`๐Ÿ“ File: ${filePath}`);
111
+ console.log(`๐Ÿ“ฆ Total Records: ${totalFetched}`);
112
+ console.log(`๐Ÿงฉ Total Columns (Dynamic): ${headers.length}`);
113
+ console.log(`๐Ÿงฉ Date Time: ${new Date()}`);
114
+ console.log("-------------------------------------");
115
+ }
@@ -0,0 +1 @@
1
+ export declare function downloadAllUsersCSV(clientId: string, clientSecret: string, instanceUrl: string): Promise<void>;
@@ -0,0 +1,115 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.downloadAllUsersCSV = downloadAllUsersCSV;
40
+ const fs = __importStar(require("fs"));
41
+ const node_fetch_1 = __importDefault(require("node-fetch"));
42
+ const index_1 = require("../oauthTokenService/index");
43
+ async function downloadAllUsersCSV(clientId, clientSecret, instanceUrl) {
44
+ let offset = 0;
45
+ const limit = 100;
46
+ let allItems = [];
47
+ let totalFetched = 0;
48
+ console.log("๐Ÿš€ Starting users download...");
49
+ console.log("-------------------------------------");
50
+ while (true) {
51
+ const url = `https://${instanceUrl}.fs.ocs.oraclecloud.com/rest/ofscCore/v1/users/?offset=${offset}&limit=${limit}`;
52
+ const token = await (0, index_1.getOAuthToken)(clientId, clientSecret, instanceUrl);
53
+ console.log(`โžก๏ธ Fetching offset=${offset} limit=${limit}`);
54
+ const res = await (0, node_fetch_1.default)(url, {
55
+ method: "GET",
56
+ headers: {
57
+ Authorization: `Bearer ${token}`,
58
+ Accept: "application/json"
59
+ }
60
+ });
61
+ if (!res.ok) {
62
+ throw new Error(`โŒ Fetch failed: ${res.status} ${res.statusText}`);
63
+ }
64
+ const data = (await res.json());
65
+ allItems.push(...data.items);
66
+ totalFetched += data.items.length;
67
+ console.log(` โœ” Received ${data.items.length} items (Total: ${totalFetched})`);
68
+ if (offset + limit >= data.totalResults)
69
+ break;
70
+ offset += limit;
71
+ }
72
+ console.log("-------------------------------------");
73
+ console.log("๐Ÿงฉ Collecting all unique properties...");
74
+ // Collect union of all properties
75
+ const allProperties = new Set();
76
+ for (const item of allItems) {
77
+ for (const key of Object.keys(item)) {
78
+ if (!["resources", "collaborationGroups", "resourceInternalIds", "links"].includes(key)) {
79
+ allProperties.add(key);
80
+ }
81
+ }
82
+ }
83
+ const headers = Array.from(allProperties);
84
+ console.log(`๐Ÿ“ Total unique fields: ${headers.length}`);
85
+ // Build CSV rows
86
+ const csvRows = [];
87
+ csvRows.push(headers.join(","));
88
+ for (const item of allItems) {
89
+ const row = headers.map(field => {
90
+ let value = item[field];
91
+ if (field === "keys") {
92
+ if (Array.isArray(value))
93
+ return `"${value.join("|")}"`;
94
+ if (value)
95
+ return `"${String(value)}"`;
96
+ return "";
97
+ }
98
+ // Objects โ†’ JSON-safe string
99
+ if (typeof value === "object" && value !== null) {
100
+ return `"${JSON.stringify(value).replace(/"/g, "'")}"`;
101
+ }
102
+ return value !== undefined ? `"${String(value).replace(/"/g, "'")}"` : "";
103
+ });
104
+ csvRows.push(row.join(","));
105
+ }
106
+ const filePath = "./users.csv";
107
+ fs.writeFileSync(filePath, csvRows.join("\n"));
108
+ console.log("-------------------------------------");
109
+ console.log("โœ… Users CSV Created Successfully!");
110
+ console.log(`๐Ÿ“ File: ${filePath}`);
111
+ console.log(`๐Ÿ“ฆ Total Records: ${totalFetched}`);
112
+ console.log(`๐Ÿงฉ Total Columns (Dynamic): ${headers.length}`);
113
+ console.log(`๐Ÿงฉ Date Time: ${new Date()}`);
114
+ console.log("-------------------------------------");
115
+ }
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "ofsc-utility",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "A wrapper for Oracle Field Service REST API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
- "build": "tsc",
8
+ "build": "tsc && npm link",
9
9
  "prepublishOnly": "npm run build",
10
10
  "test": "jest",
11
11
  "test:watch": "jest --watch",
package/readme.md CHANGED
@@ -4,7 +4,7 @@ A lightweight utility library for interacting with **Oracle Field Service Cloud
4
4
 
5
5
  ## Features
6
6
 
7
- - ๐Ÿš€ **40+ utility methods**
7
+ - ๐Ÿš€ **40+ utility methods**
8
8
  - ๐Ÿ“š **Written in TypeScript** with full type definitions
9
9
  - ๐Ÿงช **Completely tested** with Jest
10
10
  - ๐Ÿ“ฆ **Zero dependencies**
@@ -13,53 +13,84 @@ A lightweight utility library for interacting with **Oracle Field Service Cloud
13
13
 
14
14
  ## Installation
15
15
 
16
- ``` bash
16
+ ```bash
17
17
  npm install ofsc-utility
18
18
  ```
19
19
 
20
20
  ## Functions implemented
21
21
 
22
22
  ### Download
23
- downloadWorkZoneCSV(clientId, clientSecret, instanceId)
24
- downloadAllResourcesCSV(clientId, clientSecret, instanceId)
25
- getOAuthToken(clientId, clientSecret, instanceId)
23
+
24
+ #### csv
25
+
26
+ downloadWorkZoneCSV("clientId", "clientSecret", "instanceId")
27
+ downloadAllResourcesCSV("clientId", "clientSecret", "instanceId")
28
+ downloadAllUsersCSV("clientId", "clientSecret", "instanceId")
29
+ downloadAllInventoryTypesCSV("clientId", "clientSecret", "instanceId")
30
+
31
+
32
+ #### records
33
+
34
+ getOAuthToken("clientId", "clientSecret", "instanceId")
26
35
 
27
36
 
28
37
  ## Usage
29
38
 
39
+ downloadWorkZoneCSV("bot", "XXXXXXXXX", "compXXX.test")
40
+
30
41
  ### CommonJS
31
42
 
32
- ``` js
33
- const ofs = require('ofsc-utility');
43
+ ```js
44
+ const ofs = require("ofsc-utility");
34
45
 
35
- ofs.getOAuthToken("clientId", "clientSecret", "instanceId")
46
+ ofs
47
+ .getOAuthToken("clientId", "clientSecret", "instanceId")
36
48
  .then((token) => {
37
- console.log(token);
49
+ console.log(token);
38
50
  })
39
51
  .catch((err) => {
40
- console.error("Error fetching token:", err);
52
+ console.error("Error fetching token:", err);
41
53
  });
42
54
  ```
43
55
 
56
+ ```js
57
+ const ofs = require("ofsc-utility");
44
58
 
45
- ``` js
46
- const ofs = require('ofsc-utility');
59
+ ofs.WorkZone.downloadWorkZoneCSV("clientId", "clientSecret", "instanceId")
60
+ .then(() => {
61
+ console.log("successful");
62
+ })
63
+ .catch((err) => {
64
+ console.error("Error:", err);
65
+ });
66
+ ```
47
67
 
48
- ofs.WorkZone.downloadWorkZoneCSV("clientId", "clientSecret", "instanceId").then((token) => {
49
- console.log(token);
50
- });
68
+ ```js
69
+ const ofs = require("ofsc-utility");
70
+
71
+ ofs
72
+ .downloadAllResourcesCSV("clientId", "clientSecret", "instanceId")
73
+ .then(() => {
74
+ console.log("successful");
75
+ })
76
+ .catch((err) => {
77
+ console.error("Error:", err);
78
+ });
51
79
  ```
52
80
 
53
- ``` js
54
- const ofs = require('ofsc-utility');
81
+ ```js
82
+ const ofs = require("ofsc-utility");
55
83
 
56
- ofs.downloadAllResourcesCSV("clientId", "clientSecret", "instanceId").then((token) => {
57
- console.log(token);
58
- });
84
+ ofs
85
+ .downloadAllUsersCSV("clientId", "clientSecret", "instanceId")
86
+ .then(() => {
87
+ console.log("successful");
88
+ })
89
+ .catch((err) => {
90
+ console.error("Error:", err);
91
+ });
59
92
  ```
60
93
 
61
94
  ## License
62
95
 
63
96
  MIT
64
-
65
-