@api-client/core 0.5.15 → 0.5.18

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 (43) hide show
  1. package/build/browser.d.ts +1 -0
  2. package/build/browser.js +1 -0
  3. package/build/browser.js.map +1 -1
  4. package/build/index.d.ts +1 -0
  5. package/build/index.js +1 -0
  6. package/build/index.js.map +1 -1
  7. package/build/src/lib/parsers/UriTemplate.d.ts +18 -3
  8. package/build/src/lib/parsers/UriTemplate.js +27 -6
  9. package/build/src/lib/parsers/UriTemplate.js.map +1 -1
  10. package/build/src/lib/parsers/UrlProcessor.d.ts +255 -0
  11. package/build/src/lib/parsers/UrlProcessor.js +687 -0
  12. package/build/src/lib/parsers/UrlProcessor.js.map +1 -0
  13. package/build/src/models/HttpProject.d.ts +85 -32
  14. package/build/src/models/HttpProject.js +181 -80
  15. package/build/src/models/HttpProject.js.map +1 -1
  16. package/build/src/models/ProjectFolder.d.ts +43 -6
  17. package/build/src/models/ProjectFolder.js +37 -12
  18. package/build/src/models/ProjectFolder.js.map +1 -1
  19. package/build/src/models/ProjectItem.d.ts +13 -6
  20. package/build/src/models/ProjectItem.js +24 -4
  21. package/build/src/models/ProjectItem.js.map +1 -1
  22. package/build/src/models/ProjectParent.d.ts +1 -42
  23. package/build/src/models/ProjectParent.js +1 -84
  24. package/build/src/models/ProjectParent.js.map +1 -1
  25. package/build/src/models/transformers/PostmanBackupTransformer.js +0 -1
  26. package/build/src/models/transformers/PostmanBackupTransformer.js.map +1 -1
  27. package/build/src/models/transformers/PostmanV21Transformer.js +0 -1
  28. package/build/src/models/transformers/PostmanV21Transformer.js.map +1 -1
  29. package/build/src/models/transformers/PostmanV2Transformer.js +0 -1
  30. package/build/src/models/transformers/PostmanV2Transformer.js.map +1 -1
  31. package/build/src/runtime/node/ProjectRequestRunner.js +1 -1
  32. package/build/src/runtime/node/ProjectRequestRunner.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/lib/parsers/UriTemplate.ts +34 -11
  35. package/src/lib/parsers/UrlProcessor.ts +799 -0
  36. package/src/models/HttpProject.ts +236 -99
  37. package/src/models/ProjectFolder.ts +68 -17
  38. package/src/models/ProjectItem.ts +33 -11
  39. package/src/models/ProjectParent.ts +1 -110
  40. package/src/models/transformers/PostmanBackupTransformer.ts +0 -1
  41. package/src/models/transformers/PostmanV21Transformer.ts +0 -1
  42. package/src/models/transformers/PostmanV2Transformer.ts +0 -1
  43. package/src/runtime/node/ProjectRequestRunner.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlProcessor.js","sourceRoot":"","sources":["../../../../src/lib/parsers/UrlProcessor.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,20 @@ import { ProjectSchema, IProjectSchema } from './ProjectSchema.js';
11
11
  import { ARCSavedRequest, ARCHistoryRequest } from './legacy/request/ArcRequest.js';
12
12
  import { ArcLegacyProject } from './legacy/models/ArcLegacyProject.js';
13
13
  export declare const Kind = "Core#HttpProject";
14
+ export interface IItemOptions {
15
+ /**
16
+ * The parent folder to add the item to.
17
+ */
18
+ parent?: string;
19
+ }
20
+ export interface IItemCreateOptions extends IItemOptions {
21
+ /**
22
+ * The position at which to add the item.
23
+ */
24
+ index?: number;
25
+ }
26
+ export interface IEnvironmentCreateOptions extends IItemCreateOptions {
27
+ }
14
28
  /**
15
29
  * A list of options to initialize a project in various situations.
16
30
  */
@@ -82,20 +96,16 @@ export interface IProjectMoveOptions {
82
96
  */
83
97
  parent?: string;
84
98
  }
85
- export interface IReadEnvironmentOptions {
99
+ export interface IReadEnvironmentOptions extends IItemOptions {
86
100
  /**
87
101
  * The name or the key of the environment to select.
88
102
  *
89
103
  * When the name is not specified it selects:
90
104
  * - the first environment from the project, if any
91
- * - any parent folder's first environment to the requested folder, if any (if folderKey is set)
92
- * - the requested folder's first environment, if any (if folderKey is set)
105
+ * - any parent folder's first environment to the requested folder, if any (if parent is set)
106
+ * - the requested folder's first environment, if any (if parent is set)
93
107
  */
94
108
  nameOrKey?: string;
95
- /**
96
- * The key of the folder to collect the environments for.
97
- */
98
- folderKey?: string;
99
109
  }
100
110
  /**
101
111
  * The object stored as a list index for the projects.
@@ -205,11 +215,6 @@ export interface IHttpProject extends IProjectDefinitionProperty {
205
215
  * This is where all the data are stored.
206
216
  */
207
217
  definitions: IHttpProjectDefinitions;
208
- /**
209
- * The list of environment keys to apply to the project.
210
- * Each key references an environment in the `definitions.environments` array.
211
- */
212
- environments?: string[];
213
218
  }
214
219
  export interface IHttpProjectDefinitions {
215
220
  requests?: IProjectRequest[];
@@ -432,26 +437,6 @@ export declare class HttpProject extends ProjectParent {
432
437
  attachedCallback(): void;
433
438
  detachedCallback(): void;
434
439
  getProject(): HttpProject;
435
- /**
436
- * Reads the list of environments from then selected folder up to the project environments.
437
- * It stops going up in the project structure when selected environment has the `encapsulated`
438
- * property set to true.
439
- * The environments are ordered from the top-most level to the selected folder.
440
- *
441
- * @param opts The environment read options
442
- */
443
- readEnvironments(opts?: IReadEnvironmentOptions): Promise<Environment[]>;
444
- /**
445
- * @returns Returns the effective environments. If the project has been initialized with an environment then it is returned. Otherwise other environments.
446
- */
447
- getEnvironments(): Environment[];
448
- /**
449
- * Finds a definition for an environment regardless of its parent.
450
- *
451
- * @param key The Key of the environment to find.
452
- * @returns The environment definition or undefined if not found.
453
- */
454
- findEnvironment(key: string): Environment | undefined;
455
440
  /**
456
441
  * Makes a copy of this project.
457
442
  */
@@ -496,5 +481,73 @@ export declare class HttpProject extends ProjectParent {
496
481
  */
497
482
  folderIterator(opts?: IProjectFolderIterator, indent?: number): Generator<IProjectFolderIteratorResult>;
498
483
  [Symbol.iterator](): Generator<ProjectRequest>;
484
+ /**
485
+ * Depending on the options returns a project or a folder.
486
+ * It throws when parent folder cannot ber found.
487
+ */
488
+ protected _getRoot(opts: IItemOptions): ProjectFolder | HttpProject;
489
+ protected _insertItem(item: ProjectItem, root: ProjectFolder | HttpProject, opts: IItemCreateOptions): void;
490
+ /**
491
+ * Adds an environment to the project.
492
+ *
493
+ * @param env The definition of the environment to use to create the environment
494
+ * @returns The same or created environment.
495
+ */
496
+ addEnvironment(env: IEnvironment, opts?: IEnvironmentCreateOptions): Environment;
497
+ /**
498
+ * Adds an environment to the project.
499
+ *
500
+ * @param env The instance of the environment to add
501
+ * @returns The same or created environment.
502
+ */
503
+ addEnvironment(env: Environment, opts?: IEnvironmentCreateOptions): Environment;
504
+ /**
505
+ * Adds an environment to the project.
506
+ *
507
+ * @param env The name of the environment to create
508
+ * @returns The same or created environment.
509
+ */
510
+ addEnvironment(env: string, opts?: IEnvironmentCreateOptions): Environment;
511
+ protected _createEnv(env: IEnvironment | Environment | string): Environment;
512
+ /**
513
+ * This is different to `readEnvironments()`. While the `readEnvironments()`
514
+ * function generate a list of all environments that apply to a folder, this method
515
+ * just lists this folder's environments.
516
+ *
517
+ * @returns The list of environments defined in this folder
518
+ */
519
+ getEnvironments(opts?: IItemOptions): Environment[];
520
+ /**
521
+ * @param key The environment key to read.
522
+ */
523
+ getEnvironment(key: string, opts?: IItemOptions): Environment | undefined;
524
+ /**
525
+ * Removes an environment from the folder or a sub-folder.
526
+ *
527
+ * @param key the key of the environment to remove
528
+ * @returns The removed environment, if any.
529
+ */
530
+ removeEnvironment(key: string, opts?: IItemOptions): Environment | undefined;
531
+ /**
532
+ * This is a link to the `getEnvironments()`. The difference is that on the
533
+ * project level it won't return environments defined with the class initialization.
534
+ */
535
+ listEnvironments(opts?: IItemOptions): Environment[];
536
+ /**
537
+ * Reads the list of environments from then selected folder up to the project root.
538
+ * It stops going up in the project structure when selected environment has the `encapsulated`
539
+ * property set to true.
540
+ * The environments are ordered from the top-most level to the selected folder.
541
+ *
542
+ * @param opts The environment read options
543
+ */
544
+ readEnvironments(opts?: IReadEnvironmentOptions): Promise<Environment[]>;
545
+ /**
546
+ * Finds a definition for an environment regardless of its parent.
547
+ *
548
+ * @param key The Key of the environment to find.
549
+ * @returns The environment definition or undefined if not found.
550
+ */
551
+ findEnvironment(key: string): Environment | undefined;
499
552
  }
500
553
  export {};
@@ -1,5 +1,5 @@
1
1
  import { ProjectParent } from './ProjectParent.js';
2
- import { Environment } from './Environment.js';
2
+ import { Environment, Kind as EnvironmentKind } from './Environment.js';
3
3
  import { License } from './License.js';
4
4
  import { Provider } from './Provider.js';
5
5
  import { Thing, Kind as ThingKind } from './Thing.js';
@@ -136,12 +136,8 @@ export class HttpProject extends ProjectParent {
136
136
  if (!init || !init.definitions || !init.items) {
137
137
  throw new Error(`Not a project.`);
138
138
  }
139
- const { key = v4(), definitions = {}, items, info, license, provider, environments } = init;
139
+ const { key = v4(), definitions = {}, items, info, license, provider } = init;
140
140
  this.key = key;
141
- this.environments = [];
142
- if (Array.isArray(environments)) {
143
- this.environments = [...environments];
144
- }
145
141
  if (license) {
146
142
  this.license = new License(license);
147
143
  }
@@ -191,7 +187,6 @@ export class HttpProject extends ProjectParent {
191
187
  kind: Kind,
192
188
  key: this.key,
193
189
  definitions: {},
194
- environments: [],
195
190
  items: [],
196
191
  info: this.info.toJSON(),
197
192
  };
@@ -207,9 +202,6 @@ export class HttpProject extends ProjectParent {
207
202
  if (Array.isArray(this.definitions.schemas) && this.definitions.schemas.length) {
208
203
  result.definitions.schemas = this.definitions.schemas.map(i => i.toJSON());
209
204
  }
210
- if (Array.isArray(this.environments) && this.environments.length) {
211
- result.environments = [...this.environments];
212
- }
213
205
  if (Array.isArray(this.items) && this.items.length) {
214
206
  result.items = this.items.map(i => i.toJSON());
215
207
  }
@@ -711,18 +703,13 @@ export class HttpProject extends ProjectParent {
711
703
  else if (item.kind === ProjectRequestKind) {
712
704
  definition = definitions.requests.find(d => item.key === d.key);
713
705
  }
706
+ else if (item.kind === EnvironmentKind) {
707
+ definition = definitions.environments.find(d => item.key === d.key);
708
+ }
714
709
  if (definition) {
715
710
  result.push(definition);
716
711
  }
717
712
  });
718
- if (Array.isArray(root.environments)) {
719
- root.environments.map((id) => {
720
- const definition = definitions.environments.find(d => d.key === id);
721
- if (definition) {
722
- result.push(definition);
723
- }
724
- });
725
- }
726
713
  return result;
727
714
  }
728
715
  /**
@@ -760,55 +747,6 @@ export class HttpProject extends ProjectParent {
760
747
  getProject() {
761
748
  return this;
762
749
  }
763
- /**
764
- * Reads the list of environments from then selected folder up to the project environments.
765
- * It stops going up in the project structure when selected environment has the `encapsulated`
766
- * property set to true.
767
- * The environments are ordered from the top-most level to the selected folder.
768
- *
769
- * @param opts The environment read options
770
- */
771
- async readEnvironments(opts = {}) {
772
- const result = [];
773
- const { folderKey, nameOrKey } = opts;
774
- const root = folderKey ? this.findFolder(folderKey, { keyOnly: true }) : this;
775
- if (!root) {
776
- return result;
777
- }
778
- let current = root;
779
- while (current) {
780
- const environments = current.getEnvironments();
781
- if (environments.length) {
782
- const selected = nameOrKey ? environments.find(i => i.key === nameOrKey || i.info.name === nameOrKey) : environments[0];
783
- if (selected) {
784
- result.push(selected);
785
- if (selected.encapsulated) {
786
- break;
787
- }
788
- }
789
- }
790
- current = current.getParent();
791
- }
792
- return result.reverse();
793
- }
794
- /**
795
- * @returns Returns the effective environments. If the project has been initialized with an environment then it is returned. Otherwise other environments.
796
- */
797
- getEnvironments() {
798
- if (Array.isArray(this.initEnvironments)) {
799
- return this.initEnvironments;
800
- }
801
- return super.getEnvironments();
802
- }
803
- /**
804
- * Finds a definition for an environment regardless of its parent.
805
- *
806
- * @param key The Key of the environment to find.
807
- * @returns The environment definition or undefined if not found.
808
- */
809
- findEnvironment(key) {
810
- return this.definitions.environments.find(i => i.key === key);
811
- }
812
750
  /**
813
751
  * Makes a copy of this project.
814
752
  */
@@ -840,14 +778,14 @@ export class HttpProject extends ProjectParent {
840
778
  flatItems = flatItems.concat(folder.items);
841
779
  }
842
780
  });
843
- const withEnvironments = [];
844
- if (Array.isArray(src.environments) && src.environments.length) {
845
- withEnvironments.push(src);
846
- }
781
+ // const withEnvironments: (HttpProject | ProjectFolder)[] = [];
782
+ // if (Array.isArray(src.environments) && src.environments.length) {
783
+ // withEnvironments.push(src);
784
+ // }
847
785
  (definitions.folders || []).forEach((folder) => {
848
- if (Array.isArray(folder.environments) && folder.environments.length) {
849
- withEnvironments.push(folder);
850
- }
786
+ // if (Array.isArray(folder.environments) && folder.environments.length) {
787
+ // withEnvironments.push(folder);
788
+ // }
851
789
  const oldKey = folder.key;
852
790
  const indexObject = flatItems.find(i => i.key === oldKey);
853
791
  if (!indexObject) {
@@ -871,15 +809,14 @@ export class HttpProject extends ProjectParent {
871
809
  schema.key = v4();
872
810
  });
873
811
  (definitions.environments || []).forEach((environment) => {
874
- // project or folder that has the environment.
875
- const parent = withEnvironments.find(item => item.environments.includes(environment.key));
876
812
  const oldKey = environment.key;
813
+ const indexObject = flatItems.find(i => i.key === oldKey);
814
+ if (!indexObject) {
815
+ return;
816
+ }
877
817
  const newKey = v4();
818
+ indexObject.key = newKey;
878
819
  environment.key = newKey;
879
- if (parent) {
880
- const index = parent.environments.indexOf(oldKey);
881
- parent.environments[index] = newKey;
882
- }
883
820
  });
884
821
  }
885
822
  /**
@@ -1043,5 +980,169 @@ export class HttpProject extends ProjectParent {
1043
980
  recursive: true,
1044
981
  });
1045
982
  }
983
+ /**
984
+ * Depending on the options returns a project or a folder.
985
+ * It throws when parent folder cannot ber found.
986
+ */
987
+ _getRoot(opts) {
988
+ const project = this.getProject();
989
+ if (opts.parent) {
990
+ const parent = project.findFolder(opts.parent);
991
+ if (!parent) {
992
+ throw new Error(`Unable to find the parent folder ${opts.parent}.`);
993
+ }
994
+ return parent;
995
+ }
996
+ return project;
997
+ }
998
+ _insertItem(item, root, opts) {
999
+ if (!Array.isArray(root.items)) {
1000
+ root.items = [];
1001
+ }
1002
+ if (typeof opts.index === 'number') {
1003
+ root.items.splice(opts.index, 0, item);
1004
+ }
1005
+ else {
1006
+ root.items.push(item);
1007
+ }
1008
+ }
1009
+ /**
1010
+ * Adds an environment to the project.
1011
+ * @returns The same or created environment.
1012
+ */
1013
+ addEnvironment(env, opts = {}) {
1014
+ const environment = this._createEnv(env);
1015
+ const root = this._getRoot(opts);
1016
+ const project = this.getProject();
1017
+ if (!project.definitions.environments) {
1018
+ project.definitions.environments = [];
1019
+ }
1020
+ project.definitions.environments.push(environment);
1021
+ const item = ProjectItem.projectEnvironment(project, environment.key);
1022
+ this._insertItem(item, root, opts);
1023
+ return environment;
1024
+ }
1025
+ _createEnv(env) {
1026
+ let finalEnv;
1027
+ if (env instanceof Environment) {
1028
+ finalEnv = env;
1029
+ }
1030
+ else if (typeof env === 'string') {
1031
+ finalEnv = Environment.fromName(env);
1032
+ }
1033
+ else {
1034
+ finalEnv = new Environment(env);
1035
+ }
1036
+ if (!finalEnv.key) {
1037
+ finalEnv.key = v4();
1038
+ }
1039
+ return finalEnv;
1040
+ }
1041
+ /**
1042
+ * This is different to `readEnvironments()`. While the `readEnvironments()`
1043
+ * function generate a list of all environments that apply to a folder, this method
1044
+ * just lists this folder's environments.
1045
+ *
1046
+ * @returns The list of environments defined in this folder
1047
+ */
1048
+ getEnvironments(opts = {}) {
1049
+ if (Array.isArray(this.initEnvironments)) {
1050
+ return this.initEnvironments;
1051
+ }
1052
+ return this.listEnvironments(opts);
1053
+ }
1054
+ /**
1055
+ * @param key The environment key to read.
1056
+ */
1057
+ getEnvironment(key, opts = {}) {
1058
+ const root = this._getRoot(opts);
1059
+ const item = root.items.find(i => i.key === key);
1060
+ if (!item) {
1061
+ return undefined;
1062
+ }
1063
+ const project = this.getProject();
1064
+ if (!Array.isArray(project.definitions.environments)) {
1065
+ project.definitions.environments = [];
1066
+ }
1067
+ return project.definitions.environments.find(e => e.key === key);
1068
+ }
1069
+ /**
1070
+ * Removes an environment from the folder or a sub-folder.
1071
+ *
1072
+ * @param key the key of the environment to remove
1073
+ * @returns The removed environment, if any.
1074
+ */
1075
+ removeEnvironment(key, opts = {}) {
1076
+ const root = this._getRoot(opts);
1077
+ const itemIndex = root.items.findIndex(i => i.key === key);
1078
+ if (itemIndex < 0) {
1079
+ return undefined;
1080
+ }
1081
+ root.items.splice(itemIndex, 1);
1082
+ const project = this.getProject();
1083
+ if (!Array.isArray(project.definitions.environments)) {
1084
+ project.definitions.environments = [];
1085
+ }
1086
+ const defIndex = project.definitions.environments.findIndex(i => i.key === key);
1087
+ if (defIndex < 0) {
1088
+ return undefined;
1089
+ }
1090
+ const env = project.definitions.environments[defIndex];
1091
+ project.definitions.environments.splice(defIndex, 1);
1092
+ return env;
1093
+ }
1094
+ /**
1095
+ * This is a link to the `getEnvironments()`. The difference is that on the
1096
+ * project level it won't return environments defined with the class initialization.
1097
+ */
1098
+ listEnvironments(opts = {}) {
1099
+ const root = this._getRoot(opts);
1100
+ const items = root.items.filter(i => i.kind === EnvironmentKind).map(i => i.key);
1101
+ const project = this.getProject();
1102
+ if (!Array.isArray(project.definitions.environments)) {
1103
+ project.definitions.environments = [];
1104
+ }
1105
+ return project.definitions.environments.filter(e => items.includes(e.key));
1106
+ }
1107
+ /**
1108
+ * Reads the list of environments from then selected folder up to the project root.
1109
+ * It stops going up in the project structure when selected environment has the `encapsulated`
1110
+ * property set to true.
1111
+ * The environments are ordered from the top-most level to the selected folder.
1112
+ *
1113
+ * @param opts The environment read options
1114
+ */
1115
+ async readEnvironments(opts = {}) {
1116
+ const result = [];
1117
+ const { parent, nameOrKey } = opts;
1118
+ const root = parent ? this.findFolder(parent, { keyOnly: true }) : this;
1119
+ if (!root) {
1120
+ return result;
1121
+ }
1122
+ let current = root;
1123
+ while (current) {
1124
+ const environments = current.getEnvironments();
1125
+ if (environments.length) {
1126
+ const selected = nameOrKey ? environments.find(i => i.key === nameOrKey || i.info.name === nameOrKey) : environments[0];
1127
+ if (selected) {
1128
+ result.push(selected);
1129
+ if (selected.encapsulated) {
1130
+ break;
1131
+ }
1132
+ }
1133
+ }
1134
+ current = current.getParent();
1135
+ }
1136
+ return result.reverse();
1137
+ }
1138
+ /**
1139
+ * Finds a definition for an environment regardless of its parent.
1140
+ *
1141
+ * @param key The Key of the environment to find.
1142
+ * @returns The environment definition or undefined if not found.
1143
+ */
1144
+ findEnvironment(key) {
1145
+ return this.definitions.environments.find(i => i.key === key);
1146
+ }
1046
1147
  }
1047
1148
  //# sourceMappingURL=HttpProject.js.map