@forge/util 1.3.1-next.0 → 1.3.1-next.2

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/CHANGELOG.md +12 -0
  2. package/package.json +3 -3
  3. package/packages/cs-ari/CHANGELOG.md +63 -1
  4. package/packages/cs-ari/dist/app-ari-impls.d.ts +31 -0
  5. package/packages/cs-ari/dist/app-ari-impls.d.ts.map +1 -0
  6. package/packages/cs-ari/dist/app-ari-impls.js +234 -0
  7. package/packages/cs-ari/dist/app-ari-impls.js.map +1 -0
  8. package/packages/cs-ari/dist/app-aris.d.ts +7 -0
  9. package/packages/cs-ari/dist/app-aris.d.ts.map +1 -0
  10. package/packages/cs-ari/dist/app-aris.js +16 -0
  11. package/packages/cs-ari/dist/app-aris.js.map +1 -0
  12. package/packages/cs-ari/dist/app-family-ari.d.ts +10 -0
  13. package/packages/cs-ari/dist/app-family-ari.d.ts.map +1 -0
  14. package/packages/cs-ari/dist/app-family-ari.js +30 -0
  15. package/packages/cs-ari/dist/app-family-ari.js.map +1 -0
  16. package/packages/cs-ari/dist/{AppAris.d.ts → ari.d.ts} +29 -18
  17. package/packages/cs-ari/dist/ari.d.ts.map +1 -0
  18. package/packages/cs-ari/dist/ari.js +25 -0
  19. package/packages/cs-ari/dist/ari.js.map +1 -0
  20. package/packages/cs-ari/dist/{Constraints.d.ts → constraints.d.ts} +3 -2
  21. package/packages/cs-ari/dist/constraints.d.ts.map +1 -0
  22. package/packages/cs-ari/dist/{Constraints.js → constraints.js} +11 -6
  23. package/packages/cs-ari/dist/constraints.js.map +1 -0
  24. package/packages/cs-ari/dist/index.d.ts +21 -0
  25. package/packages/cs-ari/dist/index.d.ts.map +1 -0
  26. package/packages/cs-ari/dist/index.js +40 -0
  27. package/packages/cs-ari/dist/index.js.map +1 -0
  28. package/packages/cs-ari/dist/{Index.d.ts → resource-identifier.d.ts} +11 -43
  29. package/packages/cs-ari/dist/resource-identifier.d.ts.map +1 -0
  30. package/packages/cs-ari/dist/{Index.js → resource-identifier.js} +47 -67
  31. package/packages/cs-ari/dist/resource-identifier.js.map +1 -0
  32. package/packages/cs-ari/package.json +20 -31
  33. package/packages/cs-ari/dist/AppAriImpls.d.ts +0 -27
  34. package/packages/cs-ari/dist/AppAriImpls.js +0 -172
  35. package/packages/cs-ari/dist/AppAriImpls.js.map +0 -1
  36. package/packages/cs-ari/dist/AppAris.js +0 -45
  37. package/packages/cs-ari/dist/AppAris.js.map +0 -1
  38. package/packages/cs-ari/dist/Constraints.js.map +0 -1
  39. package/packages/cs-ari/dist/Index.js.map +0 -1
  40. package/packages/cs-ari/xunit.xml +0 -109
  41. package/packages/cs-ari/yarn.lock +0 -643
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateField = exports.pattern = exports.lengthBetween = exports.ConstraintViolation = exports.GeneralValidationError = exports.RegexConstraint = exports.LengthConstraint = void 0;
3
4
  const ts_is_present_1 = require("ts-is-present");
4
5
  class LengthConstraint {
5
6
  constructor(min, max) {
@@ -22,7 +23,7 @@ class RegexConstraint {
22
23
  return `value must match regex ${this.regex.source}`;
23
24
  }
24
25
  isValid(value) {
25
- return !value || (this.regex.test(value));
26
+ return !value || this.regex.test(value);
26
27
  }
27
28
  }
28
29
  exports.RegexConstraint = RegexConstraint;
@@ -42,7 +43,7 @@ class ConstraintViolation {
42
43
  this.constraints = constraints;
43
44
  }
44
45
  toString() {
45
- const constraintSummary = this.constraints.map((c) => ` - ${c.description}`).join('\n');
46
+ const constraintSummary = this.constraints.map(c => ` - ${c.description}`).join('\n');
46
47
  return `'${this.value}' is not a valid value for ${this.fieldName} as it violates the following constraints:\n${constraintSummary}`;
47
48
  }
48
49
  }
@@ -57,10 +58,14 @@ function pattern(regex) {
57
58
  exports.pattern = pattern;
58
59
  function validateField(object, fieldName, constraints) {
59
60
  const value = object[fieldName];
60
- const violatedConstraints = constraints.map((c) => {
61
+ const violatedConstraints = constraints
62
+ .map(c => {
61
63
  return c.isValid(value) ? undefined : c;
62
- }).filter(ts_is_present_1.isDefined);
63
- return violatedConstraints.length > 0 ? new ConstraintViolation(fieldName, value, violatedConstraints) : undefined;
64
+ })
65
+ .filter(ts_is_present_1.isDefined);
66
+ return violatedConstraints.length > 0
67
+ ? new ConstraintViolation(fieldName, value, violatedConstraints)
68
+ : undefined;
64
69
  }
65
70
  exports.validateField = validateField;
66
- //# sourceMappingURL=Constraints.js.map
71
+ //# sourceMappingURL=constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.js","sourceRoot":"","sources":["../src/constraints.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAQ1C,MAAa,gBAAgB;IAI3B,YAAY,GAAW,EAAE,GAAW;QAClC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,0BAA0B,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;CACF;AAhBD,4CAgBC;AAED,MAAa,eAAe;IAC1B,YAAqB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAEtC,IAAI,WAAW;QACb,OAAO,0BAA0B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AAVD,0CAUC;AAMD,MAAa,sBAAsB;IACjC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAC9C,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AALD,wDAKC;AAED,MAAa,mBAAmB;IAK9B,YAAY,SAAiB,EAAE,KAAQ,EAAE,WAA4B;QACnE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,OAAO,IAAI,IAAI,CAAC,KAAK,8BAA8B,IAAI,CAAC,SAAS,+CAA+C,iBAAiB,EAAE,CAAC;IACtI,CAAC;CACF;AAfD,kDAeC;AAED,SAAgB,aAAa,CAAC,GAAW,EAAE,GAAW;IACpD,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAFD,sCAEC;AAED,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAFD,0BAEC;AAED,SAAgB,aAAa,CAC3B,MAAS,EACT,SAAY,EACZ,WAA+B;IAE/B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,mBAAmB,GAAG,WAAW;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC;SACD,MAAM,CAAC,yBAAS,CAAC,CAAC;IAErB,OAAO,mBAAmB,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC,IAAI,mBAAmB,CAAO,SAAmB,EAAE,KAAK,EAAE,mBAAmB,CAAC;QAChF,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAfD,sCAeC"}
@@ -0,0 +1,21 @@
1
+ import { Ari } from './ari';
2
+ export * from './ari';
3
+ export * from './app-aris';
4
+ export * from './resource-identifier';
5
+ /**
6
+ * Parse a string as an Ari
7
+ *
8
+ * @param {string} ariString - the string to parse
9
+ * @returns {Ari} the parsed ari
10
+ * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
11
+ */
12
+ export declare function parse(ariString: string): Ari;
13
+ /**
14
+ * Parse a URL encoded string as an Ari
15
+ *
16
+ * @param {string} encodedAriString - the string to parse
17
+ * @returns {Ari} the parsed ari
18
+ * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
19
+ */
20
+ export declare function parseEncoded(encodedAriString: string): Ari;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AAEtC;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAE5C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,GAAG,CAE1D"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.parseEncoded = exports.parse = void 0;
14
+ const resource_identifier_1 = require("./resource-identifier");
15
+ __exportStar(require("./ari"), exports);
16
+ __exportStar(require("./app-aris"), exports);
17
+ __exportStar(require("./resource-identifier"), exports);
18
+ /**
19
+ * Parse a string as an Ari
20
+ *
21
+ * @param {string} ariString - the string to parse
22
+ * @returns {Ari} the parsed ari
23
+ * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
24
+ */
25
+ function parse(ariString) {
26
+ return resource_identifier_1.ResourceIdentifier.parse(ariString);
27
+ }
28
+ exports.parse = parse;
29
+ /**
30
+ * Parse a URL encoded string as an Ari
31
+ *
32
+ * @param {string} encodedAriString - the string to parse
33
+ * @returns {Ari} the parsed ari
34
+ * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
35
+ */
36
+ function parseEncoded(encodedAriString) {
37
+ return resource_identifier_1.ResourceIdentifier.parseEncoded(encodedAriString);
38
+ }
39
+ exports.parseEncoded = parseEncoded;
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,+DAA2D;AAE3D,wCAAsB;AACtB,6CAA2B;AAC3B,wDAAsC;AAEtC;;;;;;GAMG;AACH,SAAgB,KAAK,CAAC,SAAiB;IACrC,OAAO,wCAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAFD,sBAEC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,gBAAwB;IACnD,OAAO,wCAAkB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAC3D,CAAC;AAFD,oCAEC"}
@@ -1,5 +1,5 @@
1
- import { ValidationError } from './Constraints';
2
- export * from './AppAris';
1
+ import { Ari } from './ari';
2
+ import { ValidationError } from './constraints';
3
3
  /**
4
4
  * InvalidAriError - an error thrown if an invalid Ari is constructed
5
5
  */
@@ -27,30 +27,13 @@ export declare type AriConstructorType = {
27
27
  readonly resourceType?: string;
28
28
  readonly resourceId?: string;
29
29
  };
30
- /**
31
- * ARI - an Atlassian Resource Identifier used within connect to describe installation contexts.
32
- *
33
- * an implementation of https://product-fabric.atlassian.net/wiki/display/PRODUCT/Atlassian+Resource+Identifier
34
- */
35
- export interface Ari {
36
- readonly resourceOwner: string;
37
- readonly cloudId?: string;
38
- readonly resourceType?: string;
39
- readonly resourceId?: string;
40
- toString: () => string;
41
- toJSON: () => string;
42
- equals: (other: any) => boolean;
43
- contains: (other: Ari) => boolean;
44
- urlEncode: () => string;
45
- urlDecode: () => string;
46
- }
47
30
  export declare class ResourceIdentifier implements Ari {
48
31
  readonly resourceOwner: string;
49
32
  readonly resourceType?: string;
50
33
  readonly resourceId?: string;
51
34
  private ariString?;
52
35
  private readonly internalCloudId?;
53
- readonly cloudId: string | undefined;
36
+ get cloudId(): string | undefined;
54
37
  /**
55
38
  * Create a new Ari
56
39
  *
@@ -66,12 +49,12 @@ export declare class ResourceIdentifier implements Ari {
66
49
  */
67
50
  constructor(values: AriConstructorType);
68
51
  /**
69
- * Parse a string as an Ari
70
- *
71
- * @param {string} ariString - the string to parse
72
- * @returns {Ari} the parsed ari
73
- * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
74
- */
52
+ * Parse a string as an Ari
53
+ *
54
+ * @param {string} ariString - the string to parse
55
+ * @returns {Ari} the parsed ari
56
+ * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
57
+ */
75
58
  static parse(ariString: string): Ari;
76
59
  static parseEncoded(encodedAriString: string): Ari;
77
60
  /**
@@ -88,7 +71,7 @@ export declare class ResourceIdentifier implements Ari {
88
71
  * @param {Ari} other - the other parameter to match with
89
72
  * @returns {boolean} - true if all segments of both Aris are equal, false otherwise
90
73
  */
91
- equals(other: any): boolean;
74
+ equals(other: unknown): boolean;
92
75
  /**
93
76
  * This method checks if the current context contains the other context.
94
77
  *
@@ -119,19 +102,4 @@ export declare class ResourceIdentifier implements Ari {
119
102
  urlEncode(): string;
120
103
  urlDecode(): string;
121
104
  }
122
- /**
123
- * Parse a string as an Ari
124
- *
125
- * @param {string} ariString - the string to parse
126
- * @returns {Ari} the parsed ari
127
- * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
128
- */
129
- export declare function parse(ariString: string): Ari;
130
- /**
131
- * Parse a URL encoded string as an Ari
132
- *
133
- * @param {string} encodedAriString - the string to parse
134
- * @returns {Ari} the parsed ari
135
- * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
136
- */
137
- export declare function parseEncoded(encodedAriString: string): Ari;
105
+ //# sourceMappingURL=resource-identifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-identifier.d.ts","sourceRoot":"","sources":["../src/resource-identifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAIL,eAAe,EAIhB,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;gBACS,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAQnD;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe;CAGnG;AAYD,oBAAY,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAsCF,qBAAa,kBAAmB,YAAW,GAAG;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAE1C,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAKhC;IAED;;;;;;;;;;;;OAYG;gBACS,MAAM,EAAE,kBAAkB;IAStC;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG;IAuBpC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,GAAG;IAIlD;;OAEG;IACH,QAAQ,IAAI,MAAM;IAWlB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAU/B;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAI7B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,QAAQ;IAkBhB,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,MAAM;CAGpB"}
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const Constraints_1 = require("./Constraints");
5
- tslib_1.__exportStar(require("./AppAris"), exports);
3
+ exports.ResourceIdentifier = exports.InvalidAriError = void 0;
4
+ const constraints_1 = require("./constraints");
6
5
  /**
7
6
  * InvalidAriError - an error thrown if an invalid Ari is constructed
8
7
  */
@@ -40,19 +39,21 @@ function matchesSegment(value1, value2) {
40
39
  return false;
41
40
  }
42
41
  // constraints are based on draft of v2 spec https://hello.atlassian.net/wiki/spaces/ARCH/pages/161909310/Atlassian+Resource+Identifier+Spec+draft-2.0#AtlassianResourceIdentifierSpec(draft-2.0)-Syntax
43
- const basicCharConstraint = Constraints_1.pattern(/^[a-z][a-z.-]*$/);
42
+ const basicCharConstraint = (0, constraints_1.pattern)(/^[a-z][a-z.-]*$/);
44
43
  /**
45
44
  * resourceType allows for capitalized letters to support Identity ARIs (`ari:cloud:identity::userGrant/<...>`)
46
45
  * It's a violation of the spec, but we still need to support that.
47
46
  * See https://hello.atlassian.net/wiki/spaces/ARCH/pages/161909310/Atlassian+Resource+Identifier+Spec+draft-2.0
48
47
  */
49
- const resourceTypeCharConstraints = Constraints_1.pattern(/^[a-z][a-z.-]*$/i);
50
- const resourceOwnerConstraints = [Constraints_1.lengthBetween(3, 255), basicCharConstraint];
51
- const resourceTypeConstraints = [Constraints_1.lengthBetween(3, 255), resourceTypeCharConstraints];
52
- const cloudIdConstraints = [Constraints_1.lengthBetween(3, 255)];
48
+ const resourceTypeCharConstraints = (0, constraints_1.pattern)(/^[a-z][a-z.-]*$/i);
49
+ const resourceOwnerConstraints = [(0, constraints_1.lengthBetween)(3, 255), basicCharConstraint];
50
+ const resourceTypeConstraints = [(0, constraints_1.lengthBetween)(3, 255), resourceTypeCharConstraints];
51
+ const cloudIdConstraints = [(0, constraints_1.lengthBetween)(3, 255)];
53
52
  const siteResourceType = 'site';
54
53
  const resourceIdChars = /[\w-._~:@#]/.source;
55
- const resourceIdConstraints = [Constraints_1.pattern(new RegExp(`^${resourceIdChars}+(/${resourceIdChars}*)*(;v=${resourceIdChars}*)*$`))];
54
+ const resourceIdConstraints = [
55
+ (0, constraints_1.pattern)(new RegExp(`^${resourceIdChars}+(/${resourceIdChars}*)*(;v=${resourceIdChars}*)*$`)),
56
+ ];
56
57
  /**
57
58
  * Returns an Ari that is of the latest version of the Ari spec that we support. Any legacy formats
58
59
  * (like those for site wide ARIs) are upgraded to their latest form.
@@ -72,12 +73,6 @@ function upgrade(values) {
72
73
  }
73
74
  }
74
75
  class ResourceIdentifier {
75
- get cloudId() {
76
- if (this.resourceType === siteResourceType) {
77
- return this.internalCloudId ? this.internalCloudId : this.resourceId;
78
- }
79
- return this.internalCloudId;
80
- }
81
76
  /**
82
77
  * Create a new Ari
83
78
  *
@@ -99,22 +94,28 @@ class ResourceIdentifier {
99
94
  this.resourceId = resourceId;
100
95
  this.validate();
101
96
  }
97
+ get cloudId() {
98
+ if (this.resourceType === siteResourceType) {
99
+ return this.internalCloudId ? this.internalCloudId : this.resourceId;
100
+ }
101
+ return this.internalCloudId;
102
+ }
102
103
  /**
103
- * Parse a string as an Ari
104
- *
105
- * @param {string} ariString - the string to parse
106
- * @returns {Ari} the parsed ari
107
- * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
108
- */
104
+ * Parse a string as an Ari
105
+ *
106
+ * @param {string} ariString - the string to parse
107
+ * @returns {Ari} the parsed ari
108
+ * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
109
+ */
109
110
  static parse(ariString) {
110
111
  if (!ariString) {
111
112
  throw new InvalidAriError(ariString);
112
113
  }
113
- const match = ariString.match(/^ari:cloud:([^:/]+):([^:/]*):([^:/]*)\/(.*)$/);
114
- if (!match || (match.length !== 5)) {
114
+ const match = new RegExp(/^ari:cloud:([^:/]+):([^:/]*):([^:/]*)\/(.*)$/).exec(ariString);
115
+ if (!match || match.length !== 5) {
115
116
  throw new InvalidAriError(ariString);
116
117
  }
117
- const terms = match.map((a) => a && a.length > 0 ? a : undefined);
118
+ const terms = match.map((a) => (a && a.length > 0 ? a : undefined));
118
119
  const resourceOwner = terms[1];
119
120
  if (!resourceOwner) {
120
121
  throw new InvalidAriError(ariString);
@@ -123,18 +124,18 @@ class ResourceIdentifier {
123
124
  resourceOwner: resourceOwner,
124
125
  cloudId: terms[2],
125
126
  resourceType: terms[3],
126
- resourceId: terms[4]
127
+ resourceId: terms[4],
127
128
  });
128
129
  }
129
130
  static parseEncoded(encodedAriString) {
130
- return parse(decodeURIComponent(encodedAriString));
131
+ return ResourceIdentifier.parse(decodeURIComponent(encodedAriString));
131
132
  }
132
133
  /**
133
134
  * Converts this Ari to a string.
134
135
  */
135
136
  toString() {
136
137
  if (!this.ariString) {
137
- const resourceId = this.resourceType === siteResourceType && this.internalCloudId ? this.internalCloudId : (this.resourceId || '');
138
+ const resourceId = this.resourceType === siteResourceType && this.internalCloudId ? this.internalCloudId : this.resourceId || '';
138
139
  const resourceType = this.resourceType || '';
139
140
  const sanitizedCloudId = this.resourceType === siteResourceType ? '' : this.internalCloudId || '';
140
141
  this.ariString = `ari:cloud:${this.resourceOwner}:${sanitizedCloudId}:${resourceType}/${resourceId}`;
@@ -154,11 +155,11 @@ class ResourceIdentifier {
154
155
  * @returns {boolean} - true if all segments of both Aris are equal, false otherwise
155
156
  */
156
157
  equals(other) {
157
- return other instanceof ResourceIdentifier
158
- && this.resourceOwner === other.resourceOwner
159
- && this.cloudId === other.cloudId
160
- && this.resourceType === other.resourceType
161
- && this.resourceId === other.resourceId;
158
+ return (other instanceof ResourceIdentifier &&
159
+ this.resourceOwner === other.resourceOwner &&
160
+ this.cloudId === other.cloudId &&
161
+ this.resourceType === other.resourceType &&
162
+ this.resourceId === other.resourceId);
162
163
  }
163
164
  /**
164
165
  * This method checks if the current context contains the other context.
@@ -187,26 +188,27 @@ class ResourceIdentifier {
187
188
  * @returns {boolean} true if this Ari is the same as the other Ari, or matches the other Ari. False otherwise.
188
189
  */
189
190
  matches(other) {
190
- return matchesSegment(this.resourceOwner, other.resourceOwner)
191
- && matchesSegment(this.cloudId, other.cloudId)
192
- && ((this.resourceType === siteResourceType && !!other.resourceType) || matchesSegment(this.resourceType, other.resourceType))
193
- && ((this.resourceType === siteResourceType && !!other.resourceType) || matchesSegment(this.resourceId, other.resourceId));
191
+ return (matchesSegment(this.resourceOwner, other.resourceOwner) &&
192
+ matchesSegment(this.cloudId, other.cloudId) &&
193
+ ((this.resourceType === siteResourceType && !!other.resourceType) ||
194
+ matchesSegment(this.resourceType, other.resourceType)) &&
195
+ ((this.resourceType === siteResourceType && !!other.resourceType) ||
196
+ matchesSegment(this.resourceId, other.resourceId)));
194
197
  }
195
198
  validateSiteWide() {
196
199
  const { resourceType, cloudId } = this;
197
200
  if (resourceType === siteResourceType && !cloudId) {
198
- return new Constraints_1.GeneralValidationError('site wide ARIs must have a cloudId');
201
+ return new constraints_1.GeneralValidationError('site wide ARIs must have a cloudId');
199
202
  }
200
203
  }
201
204
  validate() {
202
205
  const constraintViolations = [
203
- Constraints_1.validateField(this, 'resourceOwner', resourceOwnerConstraints),
204
- Constraints_1.validateField(this, 'resourceType', resourceTypeConstraints),
205
- Constraints_1.validateField(this, 'resourceId', resourceIdConstraints),
206
- Constraints_1.validateField(this, 'cloudId', cloudIdConstraints),
207
- this.validateSiteWide()
208
- ]
209
- .filter((v) => v);
206
+ (0, constraints_1.validateField)(this, 'resourceOwner', resourceOwnerConstraints),
207
+ (0, constraints_1.validateField)(this, 'resourceType', resourceTypeConstraints),
208
+ (0, constraints_1.validateField)(this, 'resourceId', resourceIdConstraints),
209
+ (0, constraints_1.validateField)(this, 'cloudId', cloudIdConstraints),
210
+ this.validateSiteWide(),
211
+ ].filter((v) => v);
210
212
  if (constraintViolations.length > 0) {
211
213
  throw InvalidAriError.withConstraintViolations(this.toString(), constraintViolations);
212
214
  }
@@ -222,26 +224,4 @@ class ResourceIdentifier {
222
224
  }
223
225
  }
224
226
  exports.ResourceIdentifier = ResourceIdentifier;
225
- /**
226
- * Parse a string as an Ari
227
- *
228
- * @param {string} ariString - the string to parse
229
- * @returns {Ari} the parsed ari
230
- * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
231
- */
232
- function parse(ariString) {
233
- return ResourceIdentifier.parse(ariString);
234
- }
235
- exports.parse = parse;
236
- /**
237
- * Parse a URL encoded string as an Ari
238
- *
239
- * @param {string} encodedAriString - the string to parse
240
- * @returns {Ari} the parsed ari
241
- * @throws {InvalidAriError} if the string could not be correctly parsed as an Ari.
242
- */
243
- function parseEncoded(encodedAriString) {
244
- return ResourceIdentifier.parseEncoded(encodedAriString);
245
- }
246
- exports.parseEncoded = parseEncoded;
247
- //# sourceMappingURL=Index.js.map
227
+ //# sourceMappingURL=resource-identifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-identifier.js","sourceRoot":"","sources":["../src/resource-identifier.ts"],"names":[],"mappings":"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"}
@@ -1,40 +1,29 @@
1
1
  {
2
2
  "name": "cs-ari",
3
- "version": "1.12.1",
3
+ "version": "3.0.0",
4
4
  "license": "ISC",
5
5
  "description": "An implementation of the Atlassian Resource Identifier (ARI) scheme for Connect as a Service (CaaS)",
6
- "publishConfig": {
7
- "registry": "https://packages.atlassian.com"
8
- },
9
6
  "author": "Atlassian",
10
- "main": "dist/Index.js",
11
- "scripts": {
12
- "clean": "shx rm -rf ./dist",
13
- "build": "npm run clean && npm run lint && tsc",
14
- "prepublishOnly": "npm run build",
15
- "test": "mocha --reporter mocha-multi --reporter-options spec=-,xunit=xunit.xml --require ts-node/register `find ./lib -name '*.spec.ts' -print`",
16
- "lint": "tslint -c ../../tslint.json --project tsconfig.json --project",
17
- "format": "tsfmt -r && tslint -c ../../tslint.json --project tsconfig.json --fix --force",
18
- "bamboo": "npm install -g yarn@0.18.0 && yarn && yarn test",
19
- "yarn-deduplicate": "yarn-deduplicate"
20
- },
7
+ "main": "dist/index",
21
8
  "dependencies": {
22
- "ts-is-present": "^1.1.1"
9
+ "ts-is-present": "^1.1.3"
10
+ },
11
+ "typings": "dist/index.d.ts",
12
+ "types": "dist/index.d.ts",
13
+ "config": {
14
+ "registry": "atlassian"
23
15
  },
24
- "devDependencies": {
25
- "@types/chai": "^4.1.7",
26
- "@types/mocha": "^5.2.7",
27
- "@types/sinon": "^7.0.12",
28
- "chai": "4.2.0",
29
- "mocha": "^5.2.0",
30
- "mocha-multi": "^1.1.0",
31
- "shx": "^0.3.2",
32
- "sinon": "^7.3.2",
33
- "ts-node": "^8.2.0",
34
- "tslint": "^5.17.0",
35
- "typescript": "^3.5.1",
36
- "typescript-formatter": "7.2.2",
37
- "yarn-deduplicate": "^1.1.1"
16
+ "repository": {
17
+ "directory": "src/packages/ecosystem/cs-ari",
18
+ "type": "git",
19
+ "url": "git@bitbucket.org:atlassian/incredible-monorepo.git"
38
20
  },
39
- "typings": "./dist/Index.d.ts"
21
+ "homepage": "https://bitbucket.org/atlassian/incredible-monorepo/src/master/src/packages/ecosystem/cs-ari",
22
+ "files": [
23
+ "bin/",
24
+ "dist/",
25
+ "package.json",
26
+ "CHANGELOG.md",
27
+ "README.md"
28
+ ]
40
29
  }
@@ -1,27 +0,0 @@
1
- import { AppAri, AppAriJson, AppEnvironmentAri, AppEnvironmentAriJson, AppFamilyAriJson, AppFamilyAriOperations, ExtensionAri, ExtensionAriJson, ExtensionGroupAri, ExtensionGroupAriJson } from './AppAris';
2
- import { Ari } from './Index';
3
- export declare class AppFamilyAriImpl<J extends AppFamilyAriJson> implements AppAriJson, Partial<AppEnvironmentAriJson>, Partial<ExtensionGroupAriJson>, Partial<ExtensionAriJson>, AppFamilyAriOperations<J> {
4
- private readonly json;
5
- constructor(json: J);
6
- readonly appId: string;
7
- readonly environmentId: string | undefined;
8
- readonly version: string | undefined;
9
- readonly extensionGroupId: string | undefined;
10
- readonly extensionKey: string | undefined;
11
- toJSON(): J;
12
- static parse<J extends AppFamilyAriJson>(ari: Ari): AppFamilyAriImpl<J>;
13
- asAppAri(): AppAri;
14
- asAppEnvironmentAri(): AppEnvironmentAri;
15
- asExtensionGroupAri(): ExtensionGroupAri;
16
- asExtensionAri(): ExtensionAri;
17
- isAppAri(): this is AppAri;
18
- isAppEnvironmentAri(): this is AppEnvironmentAri;
19
- isExtensionGroupAri(): this is ExtensionGroupAri;
20
- isExtensionAri(): this is ExtensionAri;
21
- private returnIf;
22
- private readonly isAtLeastAppEnvironmentAri;
23
- private readonly isAtLeastExtensionGroupAri;
24
- private validate;
25
- toAri(): Ari;
26
- toString(): string;
27
- }