@adminide-stack/core 0.1.0-alpha.63f55470 → 1.0.201-alpha.1
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/LICENSE +674 -0
- package/README.md +2 -2
- package/lib/constants/billing-plan.d.ts +1 -0
- package/lib/constants/billing-plan.js +5 -0
- package/lib/constants/billing-plan.js.map +1 -0
- package/lib/constants/configuration.d.ts +6 -0
- package/lib/constants/configuration.js +10 -0
- package/lib/constants/configuration.js.map +1 -0
- package/lib/constants/constants.d.ts +2 -7
- package/lib/constants/constants.js +6 -0
- package/lib/constants/constants.js.map +1 -0
- package/lib/constants/default-workspace-config.d.ts +3 -0
- package/lib/constants/default-workspace-config.js +7 -0
- package/lib/constants/default-workspace-config.js.map +1 -0
- package/lib/constants/index.d.ts +6 -0
- package/lib/constants/index.js +20 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/constants/routes.d.ts +4 -0
- package/lib/constants/routes.js +10 -0
- package/lib/constants/routes.js.map +1 -0
- package/lib/constants/types.d.ts +19 -0
- package/lib/constants/types.js +23 -0
- package/lib/constants/types.js.map +1 -0
- package/lib/constants/urls.d.ts +3 -0
- package/lib/constants/urls.js +7 -0
- package/lib/constants/urls.js.map +1 -0
- package/lib/core/configurations/configuration.d.ts +64 -0
- package/lib/core/configurations/configuration.js +236 -0
- package/lib/core/configurations/configuration.js.map +1 -0
- package/lib/core/configurations/events/abstract-configuration-change-event.d.ts +6 -0
- package/lib/core/configurations/events/abstract-configuration-change-event.js +27 -0
- package/lib/core/configurations/events/abstract-configuration-change-event.js.map +1 -0
- package/lib/core/configurations/events/all-keys-configuration-change-event.d.ts +17 -0
- package/lib/core/configurations/events/all-keys-configuration-change-event.js +33 -0
- package/lib/core/configurations/events/all-keys-configuration-change-event.js.map +1 -0
- package/lib/core/configurations/events/configuration-change-event.d.ts +24 -0
- package/lib/core/configurations/events/configuration-change-event.js +84 -0
- package/lib/core/configurations/events/configuration-change-event.js.map +1 -0
- package/lib/core/configurations/events/index.d.ts +4 -0
- package/lib/core/configurations/events/index.js +17 -0
- package/lib/core/configurations/events/index.js.map +1 -0
- package/lib/core/configurations/events/organization-configuration-change-event.d.ts +15 -0
- package/lib/core/configurations/events/organization-configuration-change-event.js +39 -0
- package/lib/core/configurations/events/organization-configuration-change-event.js.map +1 -0
- package/lib/core/configurations/helpers/configuration.d.ts +26 -0
- package/lib/core/configurations/helpers/configuration.js +203 -0
- package/lib/core/configurations/helpers/configuration.js.map +1 -0
- package/lib/core/configurations/helpers/index.d.ts +1 -0
- package/lib/core/configurations/helpers/index.js +14 -0
- package/lib/core/configurations/helpers/index.js.map +1 -0
- package/lib/core/configurations/index.d.ts +4 -0
- package/lib/core/configurations/index.js +17 -0
- package/lib/core/configurations/index.js.map +1 -0
- package/lib/core/configurations/models/configuration-model.d.ts +24 -0
- package/lib/core/configurations/models/configuration-model.js +143 -0
- package/lib/core/configurations/models/configuration-model.js.map +1 -0
- package/lib/core/configurations/models/index.d.ts +1 -0
- package/lib/core/configurations/models/index.js +14 -0
- package/lib/core/configurations/models/index.js.map +1 -0
- package/lib/core/disposable.d.ts +28 -0
- package/lib/core/disposable.js +82 -0
- package/lib/core/disposable.js.map +1 -0
- package/lib/core/event.d.ts +76 -0
- package/lib/core/event.js +262 -0
- package/lib/core/event.js.map +1 -0
- package/lib/core/event.test.d.ts +1 -0
- package/lib/core/event.test.js +15 -0
- package/lib/core/event.test.js.map +1 -0
- package/lib/core/index.d.ts +6 -0
- package/lib/core/index.js +19 -0
- package/lib/core/index.js.map +1 -0
- package/lib/core/organization/configuration.d.ts +31 -0
- package/lib/core/organization/configuration.js +87 -0
- package/lib/core/organization/configuration.js.map +1 -0
- package/lib/core/organization/helpers/index.d.ts +1 -0
- package/lib/core/organization/helpers/index.js +14 -0
- package/lib/core/organization/helpers/index.js.map +1 -0
- package/lib/core/organization/helpers/organization-helpers.d.ts +6 -0
- package/lib/core/organization/helpers/organization-helpers.js +34 -0
- package/lib/core/organization/helpers/organization-helpers.js.map +1 -0
- package/lib/core/organization/index.d.ts +3 -0
- package/lib/core/organization/index.js +16 -0
- package/lib/core/organization/index.js.map +1 -0
- package/lib/core/organization/organization.d.ts +31 -0
- package/lib/core/organization/organization.js +135 -0
- package/lib/core/organization/organization.js.map +1 -0
- package/lib/core/path.d.ts +58 -0
- package/lib/core/path.js +189 -0
- package/lib/core/path.js.map +1 -0
- package/lib/core/path.test.d.ts +1 -0
- package/lib/core/path.test.js +205 -0
- package/lib/core/path.test.js.map +1 -0
- package/lib/core/types.d.ts +1 -0
- package/lib/core/types.js +3 -0
- package/lib/core/types.js.map +1 -0
- package/lib/core/uri.d.ts +68 -0
- package/lib/core/uri.js +158 -0
- package/lib/core/uri.js.map +1 -0
- package/lib/core/uri.test.d.ts +1 -0
- package/lib/core/uri.test.js +136 -0
- package/lib/core/uri.test.js.map +1 -0
- package/lib/enums/connection-status.d.ts +6 -0
- package/lib/enums/connection-status.js +11 -0
- package/lib/enums/connection-status.js.map +1 -0
- package/lib/enums/index.d.ts +7 -0
- package/lib/enums/index.js +20 -0
- package/lib/enums/index.js.map +1 -0
- package/lib/enums/integration-configuration-status.d.ts +5 -0
- package/lib/enums/integration-configuration-status.js +10 -0
- package/lib/enums/integration-configuration-status.js.map +1 -0
- package/lib/enums/integrations-configuration-steps.d.ts +7 -0
- package/lib/enums/integrations-configuration-steps.js +12 -0
- package/lib/enums/integrations-configuration-steps.js.map +1 -0
- package/lib/enums/integrations-connection-names.d.ts +11 -0
- package/lib/enums/integrations-connection-names.js +17 -0
- package/lib/enums/integrations-connection-names.js.map +1 -0
- package/lib/enums/integrations.d.ts +9 -0
- package/lib/enums/integrations.js +14 -0
- package/lib/enums/integrations.js.map +1 -0
- package/lib/enums/permissions.d.ts +7 -0
- package/lib/enums/permissions.js +12 -0
- package/lib/enums/permissions.js.map +1 -0
- package/lib/enums/team-member-status.d.ts +4 -0
- package/lib/enums/team-member-status.js +9 -0
- package/lib/enums/team-member-status.js.map +1 -0
- package/lib/errors/auth-error-messages.d.ts +25 -0
- package/lib/errors/auth-error-messages.js +31 -0
- package/lib/errors/auth-error-messages.js.map +1 -0
- package/lib/errors/auth-error.d.ts +8 -0
- package/lib/errors/auth-error.js +13 -0
- package/lib/errors/auth-error.js.map +1 -0
- package/lib/errors/index.d.ts +2 -0
- package/lib/errors/index.js +15 -0
- package/lib/errors/index.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +19 -143
- package/lib/index.js.map +1 -1
- package/lib/interfaces/apollo-context.d.ts +48 -0
- package/lib/interfaces/apollo-context.js +3 -0
- package/lib/interfaces/apollo-context.js.map +1 -0
- package/lib/interfaces/common.d.ts +7 -0
- package/lib/interfaces/common.js +3 -0
- package/lib/interfaces/common.js.map +1 -0
- package/lib/interfaces/configuration/configuration-file-service.d.ts +5 -0
- package/lib/interfaces/configuration/configuration-file-service.js +3 -0
- package/lib/interfaces/configuration/configuration-file-service.js.map +1 -0
- package/lib/interfaces/configuration/configuration-server-service.d.ts +10 -0
- package/lib/interfaces/configuration/configuration-server-service.js +3 -0
- package/lib/interfaces/configuration/configuration-server-service.js.map +1 -0
- package/lib/interfaces/configuration/configuration.d.ts +39 -0
- package/lib/interfaces/configuration/configuration.js +51 -0
- package/lib/interfaces/configuration/configuration.js.map +1 -0
- package/lib/interfaces/configuration/configuraton-service.d.ts +60 -0
- package/lib/interfaces/configuration/configuraton-service.js +3 -0
- package/lib/interfaces/configuration/configuraton-service.js.map +1 -0
- package/lib/interfaces/configuration/event.d.ts +12 -0
- package/lib/interfaces/configuration/event.js +3 -0
- package/lib/interfaces/configuration/event.js.map +1 -0
- package/lib/interfaces/configuration/index.d.ts +5 -0
- package/lib/interfaces/configuration/index.js +18 -0
- package/lib/interfaces/configuration/index.js.map +1 -0
- package/lib/interfaces/contex-key-service.d.ts +2 -0
- package/lib/interfaces/contex-key-service.js +3 -0
- package/lib/interfaces/contex-key-service.js.map +1 -0
- package/lib/interfaces/database-migration.d.ts +8 -0
- package/lib/interfaces/database-migration.js +3 -0
- package/lib/interfaces/database-migration.js.map +1 -0
- package/lib/interfaces/enum.d.ts +26 -0
- package/lib/interfaces/enum.js +71 -0
- package/lib/interfaces/enum.js.map +1 -0
- package/lib/interfaces/environment/argv.d.ts +6 -0
- package/lib/interfaces/environment/argv.js +3 -0
- package/lib/interfaces/environment/argv.js.map +1 -0
- package/lib/interfaces/environment/environment-service.d.ts +7 -0
- package/lib/interfaces/environment/environment-service.js +3 -0
- package/lib/interfaces/environment/environment-service.js.map +1 -0
- package/lib/interfaces/environment/index.d.ts +2 -0
- package/lib/interfaces/environment/index.js +15 -0
- package/lib/interfaces/environment/index.js.map +1 -0
- package/lib/interfaces/generated/generated-models.d.ts +10956 -0
- package/lib/interfaces/generated/generated-models.js +3980 -0
- package/lib/interfaces/generated/generated-models.js.map +1 -0
- package/lib/interfaces/generated/index.d.ts +1 -0
- package/lib/interfaces/generated/index.js +14 -0
- package/lib/interfaces/generated/index.js.map +1 -0
- package/lib/interfaces/index.d.ts +17 -1
- package/lib/interfaces/index.js +30 -0
- package/lib/interfaces/index.js.map +1 -0
- package/lib/interfaces/lifecycle-service.d.ts +1 -0
- package/lib/interfaces/lifecycle-service.js +8 -0
- package/lib/interfaces/lifecycle-service.js.map +1 -0
- package/lib/interfaces/log/index.d.ts +1 -0
- package/lib/interfaces/log/index.js +14 -0
- package/lib/interfaces/log/index.js.map +1 -0
- package/lib/interfaces/log/log-service.d.ts +16 -0
- package/lib/interfaces/log/log-service.js +3 -0
- package/lib/interfaces/log/log-service.js.map +1 -0
- package/lib/interfaces/nav-items.d.ts +5 -0
- package/lib/interfaces/nav-items.js +3 -0
- package/lib/interfaces/nav-items.js.map +1 -0
- package/lib/interfaces/organization/index.d.ts +3 -0
- package/lib/interfaces/organization/index.js +16 -0
- package/lib/interfaces/organization/index.js.map +1 -0
- package/lib/interfaces/organization/organization-context-service.d.ts +65 -0
- package/lib/interfaces/organization/organization-context-service.js +3 -0
- package/lib/interfaces/organization/organization-context-service.js.map +1 -0
- package/lib/interfaces/organization/organization-context.d.ts +39 -0
- package/lib/interfaces/organization/organization-context.js +31 -0
- package/lib/interfaces/organization/organization-context.js.map +1 -0
- package/lib/interfaces/organization/organizations-context.d.ts +35 -0
- package/lib/interfaces/organization/organizations-context.js +3 -0
- package/lib/interfaces/organization/organizations-context.js.map +1 -0
- package/lib/interfaces/page-store.d.ts +16 -0
- package/lib/interfaces/page-store.js +3 -0
- package/lib/interfaces/page-store.js.map +1 -0
- package/lib/interfaces/permissions.d.ts +2 -0
- package/lib/interfaces/permissions.js +3 -0
- package/lib/interfaces/permissions.js.map +1 -0
- package/lib/interfaces/preferences-service.d.ts +40 -0
- package/lib/interfaces/preferences-service.js +3 -0
- package/lib/interfaces/preferences-service.js.map +1 -0
- package/lib/interfaces/service.d.ts +18 -0
- package/lib/interfaces/service.js +3 -0
- package/lib/interfaces/service.js.map +1 -0
- package/lib/interfaces/workbench-exports.d.ts +5 -0
- package/lib/interfaces/workbench-exports.js +6 -0
- package/lib/interfaces/workbench-exports.js.map +1 -0
- package/lib/modules/account-api/enums/index.d.ts +51 -0
- package/lib/modules/account-api/enums/index.js +56 -0
- package/lib/modules/account-api/enums/index.js.map +1 -0
- package/lib/modules/account-api/index.d.ts +1 -0
- package/lib/modules/account-api/index.js +14 -0
- package/lib/modules/account-api/index.js.map +1 -0
- package/lib/modules/billing-api/enums/index.d.ts +22 -0
- package/lib/modules/billing-api/enums/index.js +28 -0
- package/lib/modules/billing-api/enums/index.js.map +1 -0
- package/lib/modules/billing-api/index.d.ts +1 -0
- package/lib/modules/billing-api/index.js +14 -0
- package/lib/modules/billing-api/index.js.map +1 -0
- package/lib/modules/index.d.ts +2 -0
- package/lib/modules/index.js +15 -0
- package/lib/modules/index.js.map +1 -0
- package/lib/services/abstract-configuration.d.ts +54 -0
- package/lib/services/abstract-configuration.js +80 -0
- package/lib/services/abstract-configuration.js.map +1 -0
- package/lib/services/abstract-organization-context-service.d.ts +40 -0
- package/lib/services/abstract-organization-context-service.js +115 -0
- package/lib/services/abstract-organization-context-service.js.map +1 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.js +15 -0
- package/lib/services/index.js.map +1 -0
- package/lib/utils/configuration-utils.d.ts +4 -0
- package/lib/utils/configuration-utils.js +15 -0
- package/lib/utils/configuration-utils.js.map +1 -0
- package/lib/utils/date-utils.d.ts +1 -0
- package/lib/utils/date-utils.js +9 -0
- package/lib/utils/date-utils.js.map +1 -0
- package/lib/utils/flatten-utils.d.ts +1 -0
- package/lib/utils/flatten-utils.js +20 -0
- package/lib/utils/flatten-utils.js.map +1 -0
- package/lib/utils/generate-uri.d.ts +35 -0
- package/lib/utils/generate-uri.js +49 -0
- package/lib/utils/generate-uri.js.map +1 -0
- package/lib/utils/generated-settings-id.d.ts +2 -0
- package/lib/utils/generated-settings-id.js +12 -0
- package/lib/utils/generated-settings-id.js.map +1 -0
- package/lib/utils/index.d.ts +9 -0
- package/lib/utils/index.js +22 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/omit-deep.d.ts +1 -0
- package/lib/utils/omit-deep.js +16 -0
- package/lib/utils/omit-deep.js.map +1 -0
- package/lib/utils/roles-utils.d.ts +2 -0
- package/lib/utils/roles-utils.js +11 -0
- package/lib/utils/roles-utils.js.map +1 -0
- package/lib/utils/uri.d.ts +3 -0
- package/lib/utils/uri.js +21 -0
- package/lib/utils/uri.js.map +1 -0
- package/lib/utils/utils.d.ts +3 -0
- package/lib/utils/utils.js +37 -0
- package/lib/utils/utils.js.map +1 -0
- package/lib/utils/validations.d.ts +1 -0
- package/lib/utils/validations.js +9 -0
- package/lib/utils/validations.js.map +1 -0
- package/package.json +34 -25
- package/lib/interfaces/workspace.d.ts +0 -37
package/lib/core/path.js
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
"use strict";
|
2
|
+
/* tslint:disable */
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.Path = void 0;
|
5
|
+
/**
|
6
|
+
* On POSIX:
|
7
|
+
* ┌──────────────────────┬────────────┐
|
8
|
+
* │ dir │ base │
|
9
|
+
* ├──────┬ ├──────┬─────┤
|
10
|
+
* │ root │ │ name │ ext │
|
11
|
+
* " / home/user/dir / file .txt "
|
12
|
+
* └──────┴───────────────┴──────┴─────┘
|
13
|
+
*
|
14
|
+
* On Windows:
|
15
|
+
* ┌──────────────────────┬────────────┐
|
16
|
+
* │ dir │ base │
|
17
|
+
* ├──────┬ ├──────┬─────┤
|
18
|
+
* │ root │ │ name │ ext │
|
19
|
+
* " /c: / home/user/dir / file .txt "
|
20
|
+
* └──────┴───────────────┴──────┴─────┘
|
21
|
+
*/
|
22
|
+
class Path {
|
23
|
+
/**
|
24
|
+
* The raw should be normalized, meaning that only '/' is allowed as a path separator.
|
25
|
+
*/
|
26
|
+
constructor(raw) {
|
27
|
+
this.raw = Path.normalizeDrive(raw);
|
28
|
+
const firstIndex = raw.indexOf(Path.separator);
|
29
|
+
const lastIndex = raw.lastIndexOf(Path.separator);
|
30
|
+
this.isAbsolute = firstIndex === 0;
|
31
|
+
this.base = lastIndex === -1 ? raw : raw.substr(lastIndex + 1);
|
32
|
+
this.isRoot = this.isAbsolute && firstIndex === lastIndex && (!this.base || Path.isDrive(this.base));
|
33
|
+
this.root = this.computeRoot();
|
34
|
+
const extIndex = this.base.lastIndexOf('.');
|
35
|
+
this.name = extIndex === -1 ? this.base : this.base.substr(0, extIndex);
|
36
|
+
this.ext = extIndex === -1 ? '' : this.base.substr(extIndex);
|
37
|
+
}
|
38
|
+
static isDrive(segment) {
|
39
|
+
return segment.endsWith(':');
|
40
|
+
}
|
41
|
+
/**
|
42
|
+
* vscode-uri always normalizes drive letters to lower case:
|
43
|
+
* https://github.com/Microsoft/vscode-uri/blob/b1d3221579f97f28a839b6f996d76fc45e9964d8/src/index.ts#L1025
|
44
|
+
* Theia path should be adjusted to this.
|
45
|
+
*/
|
46
|
+
static normalizeDrive(path) {
|
47
|
+
// lower-case windows drive letters in /C:/fff or C:/fff
|
48
|
+
if (path.length >= 3 && path.charCodeAt(0) === 47 /* '/' */ && path.charCodeAt(2) === 58 /* ':' */) {
|
49
|
+
const code = path.charCodeAt(1);
|
50
|
+
if (code >= 65 /* A */ && code <= 90 /* Z */) {
|
51
|
+
path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // "/c:".length === 3
|
52
|
+
}
|
53
|
+
}
|
54
|
+
else if (path.length >= 2 && path.charCodeAt(1) === 58 /* ':' */) {
|
55
|
+
const code = path.charCodeAt(0);
|
56
|
+
if (code >= 65 /* A */ && code <= 90 /* Z */) {
|
57
|
+
path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // "/c:".length === 3
|
58
|
+
}
|
59
|
+
}
|
60
|
+
return path;
|
61
|
+
}
|
62
|
+
computeRoot() {
|
63
|
+
// '/' -> '/'
|
64
|
+
// '/c:' -> '/c:'
|
65
|
+
if (this.isRoot) {
|
66
|
+
return this;
|
67
|
+
}
|
68
|
+
// 'foo/bar' -> `undefined`
|
69
|
+
if (!this.isAbsolute) {
|
70
|
+
return undefined;
|
71
|
+
}
|
72
|
+
const index = this.raw.indexOf(Path.separator, Path.separator.length);
|
73
|
+
if (index === -1) {
|
74
|
+
// '/foo/bar' -> '/'
|
75
|
+
return new Path(Path.separator);
|
76
|
+
}
|
77
|
+
// '/c:/foo/bar' -> '/c:'
|
78
|
+
// '/foo/bar' -> '/'
|
79
|
+
return new Path(this.raw.substr(0, index)).root;
|
80
|
+
}
|
81
|
+
/**
|
82
|
+
* Returns the parent directory if it exists (`hasDir === true`) or `this` otherwise.
|
83
|
+
*/
|
84
|
+
get dir() {
|
85
|
+
if (this._dir === undefined) {
|
86
|
+
this._dir = this.computeDir();
|
87
|
+
}
|
88
|
+
return this._dir;
|
89
|
+
}
|
90
|
+
/**
|
91
|
+
* Returns `true` if this has a parent directory, `false` otherwise.
|
92
|
+
*
|
93
|
+
* _This implementation returns `true` if and only if this is not the root dir and
|
94
|
+
* there is a path separator in the raw path._
|
95
|
+
*/
|
96
|
+
get hasDir() {
|
97
|
+
return !this.isRoot && this.raw.lastIndexOf(Path.separator) !== -1;
|
98
|
+
}
|
99
|
+
computeDir() {
|
100
|
+
if (!this.hasDir) {
|
101
|
+
return this;
|
102
|
+
}
|
103
|
+
const lastIndex = this.raw.lastIndexOf(Path.separator);
|
104
|
+
if (this.isAbsolute) {
|
105
|
+
const firstIndex = this.raw.indexOf(Path.separator);
|
106
|
+
if (firstIndex === lastIndex) {
|
107
|
+
return new Path(this.raw.substr(0, firstIndex + 1));
|
108
|
+
}
|
109
|
+
}
|
110
|
+
return new Path(this.raw.substr(0, lastIndex));
|
111
|
+
}
|
112
|
+
join(...paths) {
|
113
|
+
const relativePath = paths.filter(s => !!s).join(Path.separator);
|
114
|
+
if (!relativePath) {
|
115
|
+
return this;
|
116
|
+
}
|
117
|
+
if (this.raw.endsWith(Path.separator)) {
|
118
|
+
return new Path(this.raw + relativePath);
|
119
|
+
}
|
120
|
+
return new Path(this.raw + Path.separator + relativePath);
|
121
|
+
}
|
122
|
+
toString() {
|
123
|
+
return this.raw;
|
124
|
+
}
|
125
|
+
relative(path) {
|
126
|
+
if (this.raw === path.raw) {
|
127
|
+
return new Path('');
|
128
|
+
}
|
129
|
+
if (!this.raw || !path.raw) {
|
130
|
+
return undefined;
|
131
|
+
}
|
132
|
+
const raw = this.base ? this.raw + Path.separator : this.raw;
|
133
|
+
if (!path.raw.startsWith(raw)) {
|
134
|
+
return undefined;
|
135
|
+
}
|
136
|
+
const relativePath = path.raw.substr(raw.length);
|
137
|
+
return new Path(relativePath);
|
138
|
+
}
|
139
|
+
isEqualOrParent(path) {
|
140
|
+
return !!this.relative(path);
|
141
|
+
}
|
142
|
+
relativity(path) {
|
143
|
+
const relative = this.relative(path);
|
144
|
+
if (relative) {
|
145
|
+
const relativeStr = relative.toString();
|
146
|
+
if (relativeStr === '') {
|
147
|
+
return 0;
|
148
|
+
}
|
149
|
+
return relativeStr.split(Path.separator).length;
|
150
|
+
}
|
151
|
+
return -1;
|
152
|
+
}
|
153
|
+
/*
|
154
|
+
* return a normalized Path, resolving '..' and '.' segments
|
155
|
+
*/
|
156
|
+
normalize() {
|
157
|
+
const trailingSlash = this.raw.endsWith('/');
|
158
|
+
const pathArray = this.toString().split('/');
|
159
|
+
const resultArray = [];
|
160
|
+
pathArray.forEach((value, index) => {
|
161
|
+
if (!value || value === '.') {
|
162
|
+
return;
|
163
|
+
}
|
164
|
+
if (value === '..') {
|
165
|
+
if (resultArray.length && resultArray[resultArray.length - 1] !== '..') {
|
166
|
+
resultArray.pop();
|
167
|
+
}
|
168
|
+
else if (!this.isAbsolute) {
|
169
|
+
resultArray.push('..');
|
170
|
+
}
|
171
|
+
}
|
172
|
+
else {
|
173
|
+
resultArray.push(value);
|
174
|
+
}
|
175
|
+
});
|
176
|
+
if (resultArray.length === 0) {
|
177
|
+
if (this.isRoot) {
|
178
|
+
return new Path('/');
|
179
|
+
}
|
180
|
+
else {
|
181
|
+
return new Path('.');
|
182
|
+
}
|
183
|
+
}
|
184
|
+
return new Path((this.isAbsolute ? '/' : '') + resultArray.join('/') + (trailingSlash ? '/' : ''));
|
185
|
+
}
|
186
|
+
}
|
187
|
+
exports.Path = Path;
|
188
|
+
Path.separator = '/';
|
189
|
+
//# sourceMappingURL=path.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/core/path.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,205 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assert = require("assert");
|
4
|
+
const path_1 = require("./path");
|
5
|
+
describe('Path', () => {
|
6
|
+
it('new from /foo/bar/file.txt', () => {
|
7
|
+
const path = new path_1.Path('/foo/bar/file.txt');
|
8
|
+
assert.deepEqual(path.isRoot, false);
|
9
|
+
assert.deepEqual(path.isAbsolute, true);
|
10
|
+
assert.deepEqual(path.root.toString(), '/');
|
11
|
+
assert.deepEqual(path.dir.toString(), '/foo/bar');
|
12
|
+
assert.deepEqual(path.hasDir, true);
|
13
|
+
assert.deepEqual(path.base, 'file.txt');
|
14
|
+
assert.deepEqual(path.name, 'file');
|
15
|
+
assert.deepEqual(path.ext, '.txt');
|
16
|
+
});
|
17
|
+
it('new from foo/bar/file.txt', () => {
|
18
|
+
const path = new path_1.Path('foo/bar/file.txt');
|
19
|
+
assert.deepEqual(path.isRoot, false);
|
20
|
+
assert.deepEqual(path.isAbsolute, false);
|
21
|
+
assert.deepEqual(path.root, undefined);
|
22
|
+
assert.deepEqual(path.dir.toString(), 'foo/bar');
|
23
|
+
assert.deepEqual(path.hasDir, true);
|
24
|
+
assert.deepEqual(path.base, 'file.txt');
|
25
|
+
assert.deepEqual(path.name, 'file');
|
26
|
+
assert.deepEqual(path.ext, '.txt');
|
27
|
+
});
|
28
|
+
it('new from /foo', () => {
|
29
|
+
const path = new path_1.Path('/foo');
|
30
|
+
assert.deepEqual(path.isRoot, false);
|
31
|
+
assert.deepEqual(path.isAbsolute, true);
|
32
|
+
assert.deepEqual(path.root.toString(), '/');
|
33
|
+
assert.deepEqual(path.dir.toString(), '/');
|
34
|
+
assert.deepEqual(path.hasDir, true);
|
35
|
+
assert.deepEqual(path.base, 'foo');
|
36
|
+
assert.deepEqual(path.name, 'foo');
|
37
|
+
assert.deepEqual(path.ext, '');
|
38
|
+
});
|
39
|
+
it('new from foo', () => {
|
40
|
+
const path = new path_1.Path('foo');
|
41
|
+
assert.deepEqual(path.isRoot, false);
|
42
|
+
assert.deepEqual(path.isAbsolute, false);
|
43
|
+
assert.deepEqual(path.root, undefined);
|
44
|
+
assert.deepEqual(path.dir.toString(), 'foo');
|
45
|
+
assert.deepEqual(path.hasDir, false);
|
46
|
+
assert.deepEqual(path.base, 'foo');
|
47
|
+
assert.deepEqual(path.name, 'foo');
|
48
|
+
assert.deepEqual(path.ext, '');
|
49
|
+
});
|
50
|
+
it('new from /', () => {
|
51
|
+
const path = new path_1.Path('/');
|
52
|
+
assert.deepEqual(path.isRoot, true);
|
53
|
+
assert.deepEqual(path.isAbsolute, true);
|
54
|
+
assert.deepEqual(path.root.toString(), '/');
|
55
|
+
assert.deepEqual(path.dir.toString(), '/');
|
56
|
+
assert.deepEqual(path.hasDir, false);
|
57
|
+
assert.deepEqual(path.base, '');
|
58
|
+
assert.deepEqual(path.name, '');
|
59
|
+
assert.deepEqual(path.ext, '');
|
60
|
+
});
|
61
|
+
it('new from /c:/foo/bar/file.txt', () => {
|
62
|
+
const path = new path_1.Path('/c:/foo/bar/file.txt');
|
63
|
+
assert.deepEqual(path.isRoot, false);
|
64
|
+
assert.deepEqual(path.isAbsolute, true);
|
65
|
+
assert.deepEqual(path.root.toString(), '/c:');
|
66
|
+
assert.deepEqual(path.dir.toString(), '/c:/foo/bar');
|
67
|
+
assert.deepEqual(path.hasDir, true);
|
68
|
+
assert.deepEqual(path.base, 'file.txt');
|
69
|
+
assert.deepEqual(path.name, 'file');
|
70
|
+
assert.deepEqual(path.ext, '.txt');
|
71
|
+
});
|
72
|
+
it('new from /c:/foo', () => {
|
73
|
+
const path = new path_1.Path('/c:/foo');
|
74
|
+
assert.deepEqual(path.isRoot, false);
|
75
|
+
assert.deepEqual(path.isAbsolute, true);
|
76
|
+
assert.deepEqual(path.root.toString(), '/c:');
|
77
|
+
assert.deepEqual(path.dir.toString(), '/c:');
|
78
|
+
assert.deepEqual(path.hasDir, true);
|
79
|
+
assert.deepEqual(path.base, 'foo');
|
80
|
+
assert.deepEqual(path.name, 'foo');
|
81
|
+
assert.deepEqual(path.ext, '');
|
82
|
+
});
|
83
|
+
it('new from /c:/', () => {
|
84
|
+
const path = new path_1.Path('/c:/');
|
85
|
+
assert.deepEqual(path.isRoot, false);
|
86
|
+
assert.deepEqual(path.isAbsolute, true);
|
87
|
+
assert.deepEqual(path.root.toString(), '/c:');
|
88
|
+
assert.deepEqual(path.dir.toString(), '/c:');
|
89
|
+
assert.deepEqual(path.hasDir, true);
|
90
|
+
assert.deepEqual(path.base, '');
|
91
|
+
assert.deepEqual(path.name, '');
|
92
|
+
assert.deepEqual(path.ext, '');
|
93
|
+
});
|
94
|
+
it('new from /c:', () => {
|
95
|
+
const path = new path_1.Path('/c:');
|
96
|
+
assert.deepEqual(path.isRoot, true);
|
97
|
+
assert.deepEqual(path.isAbsolute, true);
|
98
|
+
assert.deepEqual(path.root.toString(), '/c:');
|
99
|
+
assert.deepEqual(path.dir.toString(), '/c:');
|
100
|
+
assert.deepEqual(path.hasDir, false);
|
101
|
+
assert.deepEqual(path.base, 'c:');
|
102
|
+
assert.deepEqual(path.name, 'c:');
|
103
|
+
assert.deepEqual(path.ext, '');
|
104
|
+
});
|
105
|
+
assertRelative({
|
106
|
+
from: '/foo',
|
107
|
+
to: '/foo',
|
108
|
+
expectation: ''
|
109
|
+
});
|
110
|
+
assertRelative({
|
111
|
+
from: '/foo',
|
112
|
+
to: '/foo/bar',
|
113
|
+
expectation: 'bar'
|
114
|
+
});
|
115
|
+
assertRelative({
|
116
|
+
from: '/foo/',
|
117
|
+
to: '/foo/bar',
|
118
|
+
expectation: 'bar'
|
119
|
+
});
|
120
|
+
assertRelative({
|
121
|
+
from: '/f',
|
122
|
+
to: '/foo/bar',
|
123
|
+
expectation: undefined
|
124
|
+
});
|
125
|
+
function assertRelative({ from, to, expectation }) {
|
126
|
+
it(`the relative path from '${from}' to '${to}' should be '${expectation}'`, () => {
|
127
|
+
const path = new path_1.Path(from).relative(new path_1.Path(to));
|
128
|
+
assert.deepEqual(expectation, path && path.toString());
|
129
|
+
});
|
130
|
+
}
|
131
|
+
assertNormalize({
|
132
|
+
from: '/',
|
133
|
+
expectation: '/'
|
134
|
+
});
|
135
|
+
assertNormalize({
|
136
|
+
from: '/c://',
|
137
|
+
expectation: '/c:/'
|
138
|
+
});
|
139
|
+
assertNormalize({
|
140
|
+
from: '/foo',
|
141
|
+
expectation: '/foo'
|
142
|
+
});
|
143
|
+
assertNormalize({
|
144
|
+
from: '/foo/',
|
145
|
+
expectation: '/foo/'
|
146
|
+
});
|
147
|
+
assertNormalize({
|
148
|
+
from: '/foo/bar',
|
149
|
+
expectation: '/foo/bar'
|
150
|
+
});
|
151
|
+
assertNormalize({
|
152
|
+
from: '/foo/../file.txt',
|
153
|
+
expectation: '/file.txt'
|
154
|
+
});
|
155
|
+
assertNormalize({
|
156
|
+
from: '/foo/bar/../file.txt',
|
157
|
+
expectation: '/foo/file.txt'
|
158
|
+
});
|
159
|
+
assertNormalize({
|
160
|
+
from: '/foo/../../file.txt',
|
161
|
+
expectation: '/file.txt'
|
162
|
+
});
|
163
|
+
assertNormalize({
|
164
|
+
from: '',
|
165
|
+
expectation: '.'
|
166
|
+
});
|
167
|
+
assertNormalize({
|
168
|
+
from: '.',
|
169
|
+
expectation: '.'
|
170
|
+
});
|
171
|
+
assertNormalize({
|
172
|
+
from: '..',
|
173
|
+
expectation: '..'
|
174
|
+
});
|
175
|
+
assertNormalize({
|
176
|
+
from: './foo',
|
177
|
+
expectation: 'foo'
|
178
|
+
});
|
179
|
+
assertNormalize({
|
180
|
+
from: './foo/./.',
|
181
|
+
expectation: 'foo'
|
182
|
+
});
|
183
|
+
assertNormalize({
|
184
|
+
from: './foo/',
|
185
|
+
expectation: 'foo/'
|
186
|
+
});
|
187
|
+
assertNormalize({
|
188
|
+
from: '../foo',
|
189
|
+
expectation: '../foo'
|
190
|
+
});
|
191
|
+
assertNormalize({
|
192
|
+
from: 'foo/..',
|
193
|
+
expectation: '.'
|
194
|
+
});
|
195
|
+
assertNormalize({
|
196
|
+
from: 'foo/bar/../../../',
|
197
|
+
expectation: '../'
|
198
|
+
});
|
199
|
+
function assertNormalize({ from, expectation }) {
|
200
|
+
it(`path ${from} should be normalized as ${expectation}`, () => {
|
201
|
+
assert.deepStrictEqual(new path_1.Path(from).normalize().toString(), expectation);
|
202
|
+
});
|
203
|
+
}
|
204
|
+
});
|
205
|
+
//# sourceMappingURL=path.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"path.test.js","sourceRoot":"","sources":["../../src/core/path.test.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare type MaybePromise<T> = T | PromiseLike<T>;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import Uri from 'vscode-uri';
|
2
|
+
import { Path } from './path';
|
3
|
+
export default class URI {
|
4
|
+
private readonly codeUri;
|
5
|
+
private _path;
|
6
|
+
constructor(uri?: string | Uri);
|
7
|
+
/**
|
8
|
+
* TODO move implementation to `DefaultUriLabelProviderContribution.getName`
|
9
|
+
*
|
10
|
+
* @deprecated use `LabelProvider.getName` instead
|
11
|
+
*/
|
12
|
+
get displayName(): string;
|
13
|
+
/**
|
14
|
+
* Return all uri from the current to the top most.
|
15
|
+
*/
|
16
|
+
get allLocations(): URI[];
|
17
|
+
get parent(): URI;
|
18
|
+
relative(uri: URI): Path | undefined;
|
19
|
+
resolve(path: string | Path): URI;
|
20
|
+
/**
|
21
|
+
* return a new URI replacing the current with the given scheme
|
22
|
+
*/
|
23
|
+
withScheme(scheme: string): URI;
|
24
|
+
/**
|
25
|
+
* return a new URI replacing the current with the given authority
|
26
|
+
*/
|
27
|
+
withAuthority(authority: string): URI;
|
28
|
+
/**
|
29
|
+
* return this URI without a authority
|
30
|
+
*/
|
31
|
+
withoutAuthority(): URI;
|
32
|
+
/**
|
33
|
+
* return a new URI replacing the current with the given path
|
34
|
+
*/
|
35
|
+
withPath(path: string | Path): URI;
|
36
|
+
/**
|
37
|
+
* return this URI without a path
|
38
|
+
*/
|
39
|
+
withoutPath(): URI;
|
40
|
+
/**
|
41
|
+
* return a new URI replacing the current with the given query
|
42
|
+
*/
|
43
|
+
withQuery(query: string): URI;
|
44
|
+
/**
|
45
|
+
* return this URI without a query
|
46
|
+
*/
|
47
|
+
withoutQuery(): URI;
|
48
|
+
/**
|
49
|
+
* return a new URI replacing the current with the given fragment
|
50
|
+
*/
|
51
|
+
withFragment(fragment: string): URI;
|
52
|
+
/**
|
53
|
+
* return this URI without a fragment
|
54
|
+
*/
|
55
|
+
withoutFragment(): URI;
|
56
|
+
/**
|
57
|
+
* return a new URI replacing the current with its normalized path, resolving '..' and '.' segments
|
58
|
+
*/
|
59
|
+
normalizePath(): URI;
|
60
|
+
get scheme(): string;
|
61
|
+
get authority(): string;
|
62
|
+
get path(): Path;
|
63
|
+
get query(): string;
|
64
|
+
get fragment(): string;
|
65
|
+
toString(skipEncoding?: boolean): string;
|
66
|
+
isEqualOrParent(uri: URI): boolean;
|
67
|
+
static getDistinctParents(uris: URI[]): URI[];
|
68
|
+
}
|
package/lib/core/uri.js
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
"use strict";
|
2
|
+
/* tslint:disable */
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
const vscode_uri_1 = require("vscode-uri");
|
5
|
+
const path_1 = require("./path");
|
6
|
+
class URI {
|
7
|
+
constructor(uri = '') {
|
8
|
+
if (uri instanceof vscode_uri_1.default) {
|
9
|
+
this.codeUri = uri;
|
10
|
+
}
|
11
|
+
else {
|
12
|
+
this.codeUri = vscode_uri_1.default.parse(uri);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
/**
|
16
|
+
* TODO move implementation to `DefaultUriLabelProviderContribution.getName`
|
17
|
+
*
|
18
|
+
* @deprecated use `LabelProvider.getName` instead
|
19
|
+
*/
|
20
|
+
get displayName() {
|
21
|
+
const base = this.path.base;
|
22
|
+
if (base) {
|
23
|
+
return base;
|
24
|
+
}
|
25
|
+
if (this.path.isRoot) {
|
26
|
+
return this.path.toString();
|
27
|
+
}
|
28
|
+
return '';
|
29
|
+
}
|
30
|
+
/**
|
31
|
+
* Return all uri from the current to the top most.
|
32
|
+
*/
|
33
|
+
get allLocations() {
|
34
|
+
const locations = [];
|
35
|
+
let location = this;
|
36
|
+
while (!location.path.isRoot && location.path.hasDir) {
|
37
|
+
locations.push(location);
|
38
|
+
location = location.parent;
|
39
|
+
}
|
40
|
+
locations.push(location);
|
41
|
+
return locations;
|
42
|
+
}
|
43
|
+
get parent() {
|
44
|
+
if (this.path.isRoot) {
|
45
|
+
return this;
|
46
|
+
}
|
47
|
+
return this.withPath(this.path.dir);
|
48
|
+
}
|
49
|
+
relative(uri) {
|
50
|
+
if (this.authority !== uri.authority || this.scheme !== uri.scheme) {
|
51
|
+
return undefined;
|
52
|
+
}
|
53
|
+
return this.path.relative(uri.path);
|
54
|
+
}
|
55
|
+
resolve(path) {
|
56
|
+
return this.withPath(this.path.join(path.toString()));
|
57
|
+
}
|
58
|
+
/**
|
59
|
+
* return a new URI replacing the current with the given scheme
|
60
|
+
*/
|
61
|
+
withScheme(scheme) {
|
62
|
+
const newCodeUri = vscode_uri_1.default.from(Object.assign(Object.assign({}, this.codeUri.toJSON()), { scheme }));
|
63
|
+
return new URI(newCodeUri);
|
64
|
+
}
|
65
|
+
/**
|
66
|
+
* return a new URI replacing the current with the given authority
|
67
|
+
*/
|
68
|
+
withAuthority(authority) {
|
69
|
+
const newCodeUri = vscode_uri_1.default.from(Object.assign(Object.assign({}, this.codeUri.toJSON()), { scheme: this.codeUri.scheme, authority }));
|
70
|
+
return new URI(newCodeUri);
|
71
|
+
}
|
72
|
+
/**
|
73
|
+
* return this URI without a authority
|
74
|
+
*/
|
75
|
+
withoutAuthority() {
|
76
|
+
return this.withAuthority('');
|
77
|
+
}
|
78
|
+
/**
|
79
|
+
* return a new URI replacing the current with the given path
|
80
|
+
*/
|
81
|
+
withPath(path) {
|
82
|
+
const newCodeUri = vscode_uri_1.default.from(Object.assign(Object.assign({}, this.codeUri.toJSON()), { scheme: this.codeUri.scheme, path: path.toString() }));
|
83
|
+
return new URI(newCodeUri);
|
84
|
+
}
|
85
|
+
/**
|
86
|
+
* return this URI without a path
|
87
|
+
*/
|
88
|
+
withoutPath() {
|
89
|
+
return this.withPath('');
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* return a new URI replacing the current with the given query
|
93
|
+
*/
|
94
|
+
withQuery(query) {
|
95
|
+
const newCodeUri = vscode_uri_1.default.from(Object.assign(Object.assign({}, this.codeUri.toJSON()), { scheme: this.codeUri.scheme, query }));
|
96
|
+
return new URI(newCodeUri);
|
97
|
+
}
|
98
|
+
/**
|
99
|
+
* return this URI without a query
|
100
|
+
*/
|
101
|
+
withoutQuery() {
|
102
|
+
return this.withQuery('');
|
103
|
+
}
|
104
|
+
/**
|
105
|
+
* return a new URI replacing the current with the given fragment
|
106
|
+
*/
|
107
|
+
withFragment(fragment) {
|
108
|
+
const newCodeUri = vscode_uri_1.default.from(Object.assign(Object.assign({}, this.codeUri.toJSON()), { scheme: this.codeUri.scheme, fragment }));
|
109
|
+
return new URI(newCodeUri);
|
110
|
+
}
|
111
|
+
/**
|
112
|
+
* return this URI without a fragment
|
113
|
+
*/
|
114
|
+
withoutFragment() {
|
115
|
+
return this.withFragment('');
|
116
|
+
}
|
117
|
+
/**
|
118
|
+
* return a new URI replacing the current with its normalized path, resolving '..' and '.' segments
|
119
|
+
*/
|
120
|
+
normalizePath() {
|
121
|
+
return this.withPath(this.path.normalize());
|
122
|
+
}
|
123
|
+
get scheme() {
|
124
|
+
return this.codeUri.scheme;
|
125
|
+
}
|
126
|
+
get authority() {
|
127
|
+
return this.codeUri.authority;
|
128
|
+
}
|
129
|
+
get path() {
|
130
|
+
if (this._path === undefined) {
|
131
|
+
this._path = new path_1.Path(this.codeUri.path);
|
132
|
+
}
|
133
|
+
return this._path;
|
134
|
+
}
|
135
|
+
get query() {
|
136
|
+
return this.codeUri.query;
|
137
|
+
}
|
138
|
+
get fragment() {
|
139
|
+
return this.codeUri.fragment;
|
140
|
+
}
|
141
|
+
toString(skipEncoding) {
|
142
|
+
return this.codeUri.toString(skipEncoding);
|
143
|
+
}
|
144
|
+
isEqualOrParent(uri) {
|
145
|
+
return this.authority === uri.authority && this.scheme === uri.scheme && this.path.isEqualOrParent(uri.path);
|
146
|
+
}
|
147
|
+
static getDistinctParents(uris) {
|
148
|
+
const result = [];
|
149
|
+
uris.forEach((uri, i) => {
|
150
|
+
if (!uris.some((otherUri, index) => index !== i && otherUri.isEqualOrParent(uri))) {
|
151
|
+
result.push(uri);
|
152
|
+
}
|
153
|
+
});
|
154
|
+
return result;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
exports.default = URI;
|
158
|
+
//# sourceMappingURL=uri.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/core/uri.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|