bimplus-websdk 1.0.26 → 1.0.28

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/README.md CHANGED
@@ -1,118 +1,118 @@
1
- bim+ websdk
2
- =========
3
-
4
- bim+ websdk is a javascript wrapper around the bim+ api
5
-
6
- Quick Links
7
- -----------
8
-
9
- https://doc.allplan.com/display/bimpluspublic/Bimplus+Web+SDK+Reference
10
-
11
- How to build
12
- ------------
13
-
14
- ### Install nodejs
15
- [http://www.nodejs.org/](http://www.nodejs.org/)
16
-
17
- ### Install local npm modules
18
- Open up a normal command line (admin is not needed) and go to the websdk folder
19
-
20
- npm install
21
-
22
- (whenever package.json has changed, you might to do this again)
23
-
24
- ### Build websdk
25
- Library building process is using UMD (Universal Module Definition) output format so
26
- it's compatible with both cjs and amd module formats. The same library can be use in the
27
- client or on the server. Build process is using babel so it's possible to use new ES2015
28
- code in source codes.
29
-
30
- Library can be build in several ways as a dev or prod version.
31
- To run a dev build with source maps run:
32
-
33
- npm run build
34
-
35
- To build a prod version - uglified, minified run:
36
-
37
- npm run build-prod
38
-
39
- Pulish new release to npm (Hint: Before doing this npm login needs to be done and the package version adjusted) :
40
-
41
- npm run npm-publish
42
-
43
- Check content of npm package (result is bimplus-renderer@(version).tar.gz)
44
-
45
- npm run npm-pack
46
-
47
-
48
- ### Develop/Debug websdk
49
- goto your websdk folder
50
-
51
- npm link
52
-
53
- goto your application folder which uses the websdk
54
-
55
- npm link bimplus-websdk
56
-
57
- Do you changes in the websdk and build
58
-
59
- npm run build
60
-
61
- or
62
-
63
- npm run build-prod
64
-
65
- Your app will automatically get the changes done in the renderer
66
-
67
- After developing it might be wise to unlink:
68
- goto your websdk folder
69
-
70
- npm unlink
71
- goto your application folder which uses the websdk
72
-
73
- npm unlink bimplus-websdk
74
- npm install
75
-
76
- ### Unit testing
77
- With every build output is copied also to the test folder.
78
- To run the unit tests go to the test subfolder and run :
79
-
80
- npm install
81
- npm run test
82
-
83
- For more information see README.md inside the test folder
84
-
85
- ### Documentation
86
- Bimplus WebSDK uses npm documentation plugin for easy documentation generation.
87
- To generate a documentation please install documentation plugin via npm :
88
-
89
- npm install -g documentation
90
-
91
- To create documentation in html format go to your websdk folder and run :
92
-
93
- npm run build-doc
94
-
95
- Documentation output will be in websdk/documentation folder
96
-
97
- To create documentation in markdown format go to your websdk folder and run :
98
-
99
- npm run build-docMd
100
-
101
- Documentation output will be in websdk/documentation/Bimplus_WebSDK_doc.md file.
102
-
103
- To create a markdown suitable for Confluence run script:
104
-
105
- npm run build-docConf
106
-
107
- This script will convert generated markdown into Confluence format. See console
108
- output for converted file name.
109
-
110
- Content of the confluence file can be inserted into Confluence page :
111
- - start confluence page editation mode
112
- - choose Insert more content / {} Markup option from toolbar
113
- - in popup window choose to Insert Markdown format
114
- - copy content of the converted confluence markdown file into the field in Confluence
115
- - save it (Please note that page links doesn't work in page preview mode)
116
-
117
- ### Typescript definitions
118
- - typescript definition file is located in subfolder 'types'
1
+ bim+ websdk
2
+ =========
3
+
4
+ bim+ websdk is a javascript wrapper around the bim+ api
5
+
6
+ Quick Links
7
+ -----------
8
+
9
+ https://doc.allplan.com/display/bimpluspublic/Bimplus+Web+SDK+Reference
10
+
11
+ How to build
12
+ ------------
13
+
14
+ ### Install nodejs
15
+ [http://www.nodejs.org/](http://www.nodejs.org/)
16
+
17
+ ### Install local npm modules
18
+ Open up a normal command line (admin is not needed) and go to the websdk folder
19
+
20
+ npm install
21
+
22
+ (whenever package.json has changed, you might to do this again)
23
+
24
+ ### Build websdk
25
+ Library building process is using UMD (Universal Module Definition) output format so
26
+ it's compatible with both cjs and amd module formats. The same library can be use in the
27
+ client or on the server. Build process is using babel so it's possible to use new ES2015
28
+ code in source codes.
29
+
30
+ Library can be build in several ways as a dev or prod version.
31
+ To run a dev build with source maps run:
32
+
33
+ npm run build
34
+
35
+ To build a prod version - uglified, minified run:
36
+
37
+ npm run build-prod
38
+
39
+ Pulish new release to npm (Hint: Before doing this npm login needs to be done and the package version adjusted) :
40
+
41
+ npm run npm-publish
42
+
43
+ Check content of npm package (result is bimplus-renderer@(version).tar.gz)
44
+
45
+ npm run npm-pack
46
+
47
+
48
+ ### Develop/Debug websdk
49
+ goto your websdk folder
50
+
51
+ npm link
52
+
53
+ goto your application folder which uses the websdk
54
+
55
+ npm link bimplus-websdk
56
+
57
+ Do you changes in the websdk and build
58
+
59
+ npm run build
60
+
61
+ or
62
+
63
+ npm run build-prod
64
+
65
+ Your app will automatically get the changes done in the renderer
66
+
67
+ After developing it might be wise to unlink:
68
+ goto your websdk folder
69
+
70
+ npm unlink
71
+ goto your application folder which uses the websdk
72
+
73
+ npm unlink bimplus-websdk
74
+ npm install
75
+
76
+ ### Unit testing
77
+ With every build output is copied also to the test folder.
78
+ To run the unit tests go to the test subfolder and run :
79
+
80
+ npm install
81
+ npm run test
82
+
83
+ For more information see README.md inside the test folder
84
+
85
+ ### Documentation
86
+ Bimplus WebSDK uses npm documentation plugin for easy documentation generation.
87
+ To generate a documentation please install documentation plugin via npm :
88
+
89
+ npm install -g documentation
90
+
91
+ To create documentation in html format go to your websdk folder and run :
92
+
93
+ npm run build-doc
94
+
95
+ Documentation output will be in websdk/documentation folder
96
+
97
+ To create documentation in markdown format go to your websdk folder and run :
98
+
99
+ npm run build-docMd
100
+
101
+ Documentation output will be in websdk/documentation/Bimplus_WebSDK_doc.md file.
102
+
103
+ To create a markdown suitable for Confluence run script:
104
+
105
+ npm run build-docConf
106
+
107
+ This script will convert generated markdown into Confluence format. See console
108
+ output for converted file name.
109
+
110
+ Content of the confluence file can be inserted into Confluence page :
111
+ - start confluence page editation mode
112
+ - choose Insert more content / {} Markup option from toolbar
113
+ - in popup window choose to Insert Markdown format
114
+ - copy content of the converted confluence markdown file into the field in Confluence
115
+ - save it (Please note that page links doesn't work in page preview mode)
116
+
117
+ ### Typescript definitions
118
+ - typescript definition file is located in subfolder 'types'
package/clean CHANGED
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env bash
2
-
3
- rm -rf ./dist ./node_modules
1
+ #!/usr/bin/env bash
2
+
3
+ rm -rf ./dist ./node_modules
package/eslint.config.mjs CHANGED
@@ -1,35 +1,35 @@
1
- import globals from "globals";
2
- import js from "@eslint/js";
3
-
4
- export default [
5
- js.configs.recommended,
6
- // File-pattern specific overrides
7
- {
8
- files: ["src/**/*", "test/**/*"],
9
- rules: {
10
- semi: ["warn", "always"] // check for missing semicolons at line ends
11
- }
12
- },
13
- {
14
- languageOptions: {
15
- ecmaVersion: 2022,
16
- sourceType: "module",
17
- globals: {
18
- ...globals.browser,
19
- $: true,
20
- QUnit: true,
21
- // Uint8Array: true,
22
- // DataView : true,
23
- // Promise: true,
24
- // ArrayBuffer: true,
25
- // needed for webpack files
26
- define: true,
27
- require: true,
28
- module: true,
29
- __dirname: true,
30
- },
31
- },
32
- plugins: {},
33
- rules: {},
34
- },
35
- ];
1
+ import globals from "globals";
2
+ import js from "@eslint/js";
3
+
4
+ export default [
5
+ js.configs.recommended,
6
+ // File-pattern specific overrides
7
+ {
8
+ files: ["src/**/*", "test/**/*"],
9
+ rules: {
10
+ semi: ["warn", "always"] // check for missing semicolons at line ends
11
+ }
12
+ },
13
+ {
14
+ languageOptions: {
15
+ ecmaVersion: 2022,
16
+ sourceType: "module",
17
+ globals: {
18
+ ...globals.browser,
19
+ $: true,
20
+ QUnit: true,
21
+ // Uint8Array: true,
22
+ // DataView : true,
23
+ // Promise: true,
24
+ // ArrayBuffer: true,
25
+ // needed for webpack files
26
+ define: true,
27
+ require: true,
28
+ module: true,
29
+ __dirname: true,
30
+ },
31
+ },
32
+ plugins: {},
33
+ rules: {},
34
+ },
35
+ ];
package/install CHANGED
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env bash
2
-
3
- yarn install
1
+ #!/usr/bin/env bash
2
+
3
+ yarn install
package/jsinspect CHANGED
@@ -1,20 +1,20 @@
1
- #!/usr/bin/env bash
2
-
3
- #install jsinspect
4
- npm list -g --quiet jsinspect > "/dev/null" 2>&1
5
- OUT=$?
6
- if [ ${OUT} != 0 ]
7
- then
8
- npm install -g jsinspect
9
- RET_VAL=$?
10
- if [ ${RET_VAL} -ne 0 ]
11
- then
12
- echo "Error ---> Unable to install \"jsinspect\""
13
- exit ${RET_VAL}
14
- fi
15
- echo "Info ---> \"jsinspect\" has been installed."
16
- else
17
- echo "Info ---> \"jsinspect\" already installed."
18
- fi
19
-
20
- jsinspect ./src
1
+ #!/usr/bin/env bash
2
+
3
+ #install jsinspect
4
+ npm list -g --quiet jsinspect > "/dev/null" 2>&1
5
+ OUT=$?
6
+ if [ ${OUT} != 0 ]
7
+ then
8
+ npm install -g jsinspect
9
+ RET_VAL=$?
10
+ if [ ${RET_VAL} -ne 0 ]
11
+ then
12
+ echo "Error ---> Unable to install \"jsinspect\""
13
+ exit ${RET_VAL}
14
+ fi
15
+ echo "Info ---> \"jsinspect\" has been installed."
16
+ else
17
+ echo "Info ---> \"jsinspect\" already installed."
18
+ fi
19
+
20
+ jsinspect ./src
package/package.json CHANGED
@@ -1,70 +1,70 @@
1
- {
2
- "name": "bimplus-websdk",
3
- "version": "1.0.26",
4
- "description": "bim+ websdk",
5
- "types": "types/bimplus-websdk.d.ts",
6
- "keywords": [
7
- "Allplan",
8
- "Bimplus",
9
- "library",
10
- "javascript"
11
- ],
12
- "main": "dist/bimplus-websdk.js",
13
- "license": "MIT",
14
- "repository": {
15
- "type": "git",
16
- "url": "."
17
- },
18
- "scripts": {
19
- "eslint": "eslint src/**/*.js test/**/*.js",
20
- "build": "npm run eslint && webpack --config webpack.dev.js",
21
- "build-prod": "npm run eslint && webpack --config webpack.prod.js",
22
- "pub": "yarn run yarn-publish",
23
- "yarn-publish": "npm run build-prod && yarn publish",
24
- "yarn-publish-branch": "npm run build-prod && yarn publish --tag",
25
- "npm-pack": "npm run build-prod && npm pack",
26
- "install-documentation-package": "npm install -g documentation",
27
- "lint-doc": "documentation lint ./src/Api/*.js",
28
- "build-doc": "yarn lint-doc && documentation build ./src/Api/*.js --config doc_config.yml -f html -o ./documentation",
29
- "build-docMd": "yarn lint-doc && documentation build ./src/Api/*.js -f md -o ./documentation/Bimplus_WebSDK_doc.md",
30
- "build-docConf": "yarn build-docMd && cd ./documentation && python convert_to_confluence_md.py",
31
- "build-docAll": "yarn build-doc && yarn build-docConf",
32
- "test": "node node_modules/karma/bin/karma start",
33
- "test-chrome": "npm run test -- --single-run=true --browsers ChromeExt karma.conf.js",
34
- "test-chrome-headless": "npm run test -- --single-run=true --browsers ChromeHeadless karma.conf.js",
35
- "test-firefox": "npm run test -- --single-run=true --browsers Firefox karma.conf.js",
36
- "test-firefox-headless": "npm run test -- --single-run=true --browsers FirefoxHeadless karma.conf.js",
37
- "test-watch": "npm run test -- --browsers=ChromeExt --single-run=false --auto-watch"
38
- },
39
- "devDependencies": {
40
- "@babel/core": "^7.26.0",
41
- "@babel/plugin-transform-runtime": "^7.25.9",
42
- "@babel/preset-env": "^7.26.0",
43
- "@babel/runtime": "^7.26.0",
44
- "babel-loader": "^9.2.1",
45
- "clean-webpack-plugin": "^4.0.0",
46
- "coverage-istanbul-loader": "^3.0.5",
47
- "documentation": "^14.0.3",
48
- "eslint": "^9.14.0",
49
- "globals": "15.12.0",
50
- "host-environment": "^2.1.2",
51
- "karma": "^6.4.4",
52
- "karma-chrome-launcher": "^3.2.0",
53
- "karma-coverage-istanbul-reporter": "^3.0.2",
54
- "karma-firefox-launcher": "^2.1.3",
55
- "karma-host-environment": "^3.0.3",
56
- "karma-jquery": "^0.2.4",
57
- "karma-qunit": "^4.2.1",
58
- "karma-webpack": "^5.0.1",
59
- "qunit": "^2.22.0",
60
- "terser-webpack-plugin": "^5.3.10",
61
- "webpack": "^5.96.1",
62
- "webpack-cli": "^5.1.4",
63
- "webpack-merge": "^6.0.1"
64
- },
65
- "dependencies": {
66
- "async": "^3.2.6",
67
- "dexie": "4.0.9",
68
- "jquery": "3.7.1"
69
- }
70
- }
1
+ {
2
+ "name": "bimplus-websdk",
3
+ "version": "1.0.28",
4
+ "description": "bim+ websdk",
5
+ "types": "types/bimplus-websdk.d.ts",
6
+ "keywords": [
7
+ "Allplan",
8
+ "Bimplus",
9
+ "library",
10
+ "javascript"
11
+ ],
12
+ "main": "dist/bimplus-websdk.js",
13
+ "license": "MIT",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "."
17
+ },
18
+ "scripts": {
19
+ "eslint": "eslint src/**/*.js test/**/*.js",
20
+ "build": "npm run eslint && webpack --config webpack.dev.js",
21
+ "build-prod": "npm run eslint && webpack --config webpack.prod.js",
22
+ "pub": "yarn run yarn-publish",
23
+ "yarn-publish": "npm run build-prod && yarn publish",
24
+ "yarn-publish-branch": "npm run build-prod && yarn publish --tag",
25
+ "npm-pack": "npm run build-prod && npm pack",
26
+ "install-documentation-package": "npm install -g documentation",
27
+ "lint-doc": "documentation lint ./src/Api/*.js",
28
+ "build-doc": "yarn lint-doc && documentation build ./src/Api/*.js --config doc_config.yml -f html -o ./documentation",
29
+ "build-docMd": "yarn lint-doc && documentation build ./src/Api/*.js -f md -o ./documentation/Bimplus_WebSDK_doc.md",
30
+ "build-docConf": "yarn build-docMd && cd ./documentation && python convert_to_confluence_md.py",
31
+ "build-docAll": "yarn build-doc && yarn build-docConf",
32
+ "test": "node node_modules/karma/bin/karma start",
33
+ "test-chrome": "npm run test -- --single-run=true --browsers ChromeExt karma.conf.js",
34
+ "test-chrome-headless": "npm run test -- --single-run=true --browsers ChromeHeadless karma.conf.js",
35
+ "test-firefox": "npm run test -- --single-run=true --browsers Firefox karma.conf.js",
36
+ "test-firefox-headless": "npm run test -- --single-run=true --browsers FirefoxHeadless karma.conf.js",
37
+ "test-watch": "npm run test -- --browsers=ChromeExt --single-run=false --auto-watch"
38
+ },
39
+ "devDependencies": {
40
+ "@babel/core": "^7.26.0",
41
+ "@babel/plugin-transform-runtime": "^7.25.9",
42
+ "@babel/preset-env": "^7.26.0",
43
+ "@babel/runtime": "^7.26.0",
44
+ "babel-loader": "^9.2.1",
45
+ "clean-webpack-plugin": "^4.0.0",
46
+ "coverage-istanbul-loader": "^3.0.5",
47
+ "documentation": "^14.0.3",
48
+ "eslint": "^9.14.0",
49
+ "globals": "15.12.0",
50
+ "host-environment": "^2.1.2",
51
+ "karma": "^6.4.4",
52
+ "karma-chrome-launcher": "^3.2.0",
53
+ "karma-coverage-istanbul-reporter": "^3.0.2",
54
+ "karma-firefox-launcher": "^2.1.3",
55
+ "karma-host-environment": "^3.0.3",
56
+ "karma-jquery": "^0.2.4",
57
+ "karma-qunit": "^4.2.1",
58
+ "karma-webpack": "^5.0.1",
59
+ "qunit": "^2.22.0",
60
+ "terser-webpack-plugin": "^5.3.10",
61
+ "webpack": "^5.96.1",
62
+ "webpack-cli": "^5.1.4",
63
+ "webpack-merge": "^6.0.1"
64
+ },
65
+ "dependencies": {
66
+ "async": "^3.2.6",
67
+ "dexie": "4.0.9",
68
+ "jquery": "3.7.1"
69
+ }
70
+ }
package/reinstall CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env bash
2
-
3
- ./clean
4
- ./install
1
+ #!/usr/bin/env bash
2
+
3
+ ./clean
4
+ ./install
@@ -1,323 +1,369 @@
1
- declare module 'bimplus-websdk' {
2
-
3
- export type HTML = string;
4
- export type Guid = string;
5
- export type ProjectId = Guid;
6
- export type ModelId = Guid;
7
- export type LayerId = Guid;
8
- export type DivisionTopologyId = Guid;
9
- export type RevisionId = string;
10
- export type VisualObjectId = string;
11
-
12
- export type TeamSlug = string;
13
- export type AccessToken = string;
14
- export type AccessTokenType = string;
15
-
16
- export function createDefaultConfig(env?: string): ApiConfig;
17
-
18
- export interface ApiConfig {
19
- protocol: string;
20
- host: string;
21
- version?: string;
22
- cache?: boolean;
23
- }
24
-
25
- export interface AuthorizeData {
26
- access_token: string;
27
- }
28
- export class Authorize {
29
- constructor(api: Api);
30
-
31
- // Define methods and properties of the Teams class here
32
-
33
- post(username: string, password: string, applicationId: string): Promise<AuthorizeData>;
34
- }
35
-
36
- export interface TeamData {
37
- slug: string;
38
- id: string;
39
- name: string;
40
- }
41
-
42
- export interface Subscription {
43
- settingName?: string;
44
- expirationDate?: string;
45
- id?: string;
46
- teamId?: string;
47
- value?: string;
48
- status?: string;
49
- }
50
-
51
- export class Teams {
52
- constructor(api: Api);
53
-
54
- slug: string;
55
-
56
- // Define methods and properties of the Teams class here
57
-
58
- get(teamId?: string, filterEmpty?: boolean): Promise<TeamData[]>;
59
- getAccountSettings(teamId?: string): Promise<Array<Subscription>>;
60
- }
61
-
62
- export interface UserData {
63
- id: string;
64
- name: string;
65
- preferedLanguage: string;
66
- }
67
- export class User {
68
- constructor(api: Api);
69
-
70
- // Define methods and properties of the Teams class here
71
-
72
- get(token: AccessToken | null): Promise<UserData>;
73
- put(userdata): Promise<UserData>;
74
- getSubscriptions(): Promise<Array<Subscription>>;
75
- }
76
-
77
- type AdditionalParams = {
78
- [key: string]: string; // This allows key-value pairs as in json string
79
- };
80
-
81
- export interface Project {
82
- id: ProjectId;
83
- name: string;
84
- teamSlug: TeamSlug;
85
- teamName: string | undefined;
86
- rights: object;
87
- }
88
-
89
- export class Projects {
90
- constructor(api: Api);
91
- get(id?: ProjectId, noDisciplines?: boolean, teamSlug?: TeamSlug, alsoRecycleBin?: boolean, additionalParams?: AdditionalParams): Promise<Project | Project[]>;
92
- }
93
-
94
- export interface ConnexisData {
95
- projectId: ProjectId,
96
- modelId: ModelId,
97
- elements: Guid[];
98
- settings: {
99
- connectionMethod: string;
100
- createRevision?: boolean;
101
- designCode: string;
102
- replace: string;
103
- };
104
- }
105
-
106
- export interface Sds2ConnexisData {
107
- SDS2: ConnexisData;
108
- }
109
- // export interface IdeaStaticaConnexisData {
110
- // IdeaStatica: ConnexisData;
111
- // }
112
-
113
- export class Connexis {
114
- constructor(api: Api);
115
- post(data: Sds2ConnexisData /* | IdeaStaticaConnexisData */) : Promise<void>;
116
- }
117
-
118
- export interface ObjectFilter {
119
- id?: string
120
- module: string
121
- category: string
122
- disciplineID: string
123
- name: string
124
- filterString: string
125
- isDefault: boolean
126
- disableSortByModels: boolean
127
- readableValues?: Record<string, string>
128
- }
129
-
130
- export type ObjectFiltersResponse = Array<ObjectFilter>;
131
-
132
- export class ObjectFilters {
133
- constructor(api: Api);
134
- get(layerId: Guid | undefined, projectId: Guid | undefined): Promise<ObjectFiltersResponse>
135
- getSelectionFilteredObjects(selectionId: Guid, filterId: Guid, properties: boolean | undefined, topology: boolean | undefined): Promise<ObjectFilterStructureResponse>
136
- post(data: string, projectId: string): Promise<ObjectFilter>;
137
- delete(id: string) : void;
138
- }
139
-
140
- export interface ObjectsTopologyNode { }
141
-
142
- export interface ObjectTopologyResponse {
143
- id: string;
144
- children?: ObjectsTopologyNode[];
145
- ifcType?: string;
146
- ifcId?: string;
147
- elementTypeId?: string;
148
- isChild?: boolean;
149
- parent: string;
150
- name: string;
151
- type: string;
152
- layerid?: string;
153
- number: number;
154
- level: number;
155
- }
156
-
157
- export type ObjectComplexPropertyTopologyResponse = ObjectTopologyResponse;
158
-
159
- interface Hyperlink {
160
- id: string;
161
- objectId: string;
162
- orderNumber: number;
163
- name: string;
164
- url: string;
165
- }
166
-
167
- type HyperlinksResponse = Hyperlink[];
168
- type AttachmentLinksResponse = AttachmentLink[];
169
-
170
- export class Objects {
171
- constructor(api: Api);
172
- get(objectId: string, revision: number | undefined, properties: string | undefined, projectId: string | undefined, shortInfo: boolean | undefined, type: string | undefined);
173
- getTopology(objectId: string, revision: number | undefined, hideElements: boolean, shortInfo: boolean, batch: string | undefined): Promise<ObjectTopologyResponse>;
174
- getComplexPropertiesTopology(objectId: string, revision: number | undefined): Promise<ObjectComplexPropertyTopologyResponse>;
175
- getHyperlinks(objectId: string): Promise<HyperlinksResponse>;
176
- postHyperlink(objectId: string, data: string): Promise<Hyperlink>;
177
- getAttachmentLinks(objectId: string): Promise<AttachmentLinksResponse>;
178
- postAttachmentLink(objectId: string, data: string): Promise<AttachmentLink>;
179
- }
180
-
181
- export class Attachments {
182
- constructor(api: Api);
183
- delete(id:string, version?: number): Promise<void>;
184
- }
185
-
186
- export interface SelectionObjectTopologyNode {
187
- id: string;
188
- visible: boolean;
189
- opaque: boolean;
190
- opacity: number;
191
- }
192
-
193
- export interface SelectionObjectLayer {
194
- revision: number;
195
- id: string;
196
- name?: string;
197
- divisionId: string;
198
- divisionName?: string;
199
- visible?: boolean;
200
- opaque?: boolean;
201
- opacity?: number;
202
- valid?: boolean;
203
- }
204
-
205
- export interface SelectionObjectTopology {
206
- topology: SelectionObjectTopologyNode[];
207
- layers: SelectionObjectLayer[];
208
- }
209
-
210
- export interface SelectionObjectTopologyStructure {
211
- layers: SelectionObjectLayer[];
212
- structures: string[];
213
- }
214
-
215
- export interface SelectionObject {
216
- id?: string;
217
- projectid: string;
218
- divisionid?: string;
219
- singleuse: boolean;
220
- revisionnr?: string;
221
- type: string;
222
- elements?: string[];
223
- revisionelements?: string[];
224
- filter?: string;
225
- topology?: SelectionObjectTopology;
226
- topologyStructure?: SelectionObjectTopologyStructure
227
- }
228
-
229
- export interface ExportObject {
230
- description: string;
231
- id?: string;
232
- name: string;
233
- projectId: string;
234
- singleUse: boolean;
235
- selection: SelectionObject
236
- }
237
-
238
- export class ExportService {
239
- constructor(api: Api);
240
- createExportSelection(projectId: Guid, data: string): Promise<ExportObject>;
241
- }
242
-
243
- export interface StructureNode {
244
- id: string;
245
- parent?: string;
246
- name: string;
247
- type: string;
248
- children?: StructureNode[];
249
- lastTopologyId?: string;
250
- count: number;
251
- level: number;
252
- nodeInfo: string;
253
- hasGeometry?: boolean;
254
- }
255
-
256
- export interface ObjectFilterStructureResponse {
257
- structure: StructureNode;
258
- structureDepth: number;
259
- }
260
-
261
- export class PrivacyTexts {
262
- constructor(api: Api);
263
- get(lang: string | undefined, type: string | undefined): Promise<HTML>;
264
- }
265
-
266
- export interface IDBCache {
267
- data: string;
268
-
269
- clear(): void;
270
- }
271
-
272
- export class Hyperlinks {
273
- constructor(api: Api);
274
- delete(id: string): Promise<void>;
275
- }
276
-
277
- export class AttachmentLink {
278
- id: string;
279
- name: string;
280
- fileName:string
281
- size:number;
282
- link:string;
283
- version:number;
284
- fileNameShort:string;
285
- extension:string;
286
- objectIds:string[];
287
- sizeMB: string
288
- }
289
-
290
-
291
- export class Api {
292
- constructor(config: ApiConfig);
293
-
294
- // Define methods and properties of the Teams class here
295
-
296
- authorize: Authorize;
297
- teams: Teams;
298
- user: User;
299
- projects: Projects;
300
- connexis: Connexis;
301
- objectFilters: ObjectFilters;
302
- objects: Objects;
303
- attachments: Attachments;
304
- exportService: ExportService;
305
- terms: PrivacyTexts;
306
- imprints: PrivacyTexts;
307
- dataProtection: PrivacyTexts;
308
- hyperlinks: Hyperlinks;
309
-
310
- setAccessToken(token: AccessToken): void;
311
- getAccessToken(): AccessToken | null;
312
-
313
- setTokenType(tokenType: AccessTokenType): void;
314
- getTokenType(): AccessTokenType | null;
315
-
316
- setAccessTokenAndType(token: AccessToken, tokenType: AccessTokenType): void;
317
- getAccessTokenAndType(): { token: AccessToken | null, tokenType: AccessTokenType | null };
318
-
319
- setTeamSlug(slug: TeamSlug): void;
320
- getCache(): IDBCache;
321
- getApiTeamUrl(): string;
322
- }
323
- }
1
+ declare module 'bimplus-websdk' {
2
+
3
+ export type HTML = string;
4
+ export type Guid = string;
5
+ export type ProjectId = Guid;
6
+ export type ModelId = Guid;
7
+ export type LayerId = Guid;
8
+ export type DivisionTopologyId = Guid;
9
+ export type RevisionId = string;
10
+ export type VisualObjectId = string;
11
+
12
+ export type TeamSlug = string;
13
+ export type AccessToken = string;
14
+ export type AccessTokenType = string;
15
+
16
+ export function createDefaultConfig(env?: string): ApiConfig;
17
+
18
+ export interface ApiConfig {
19
+ protocol: string;
20
+ host: string;
21
+ version?: string;
22
+ cache?: boolean;
23
+ }
24
+
25
+ export interface AuthorizeData {
26
+ access_token: string;
27
+ }
28
+ export class Authorize {
29
+ constructor(api: Api);
30
+
31
+ // Define methods and properties of the Teams class here
32
+
33
+ post(username: string, password: string, applicationId: string): Promise<AuthorizeData>;
34
+ }
35
+
36
+ export interface TeamData {
37
+ slug: string;
38
+ id: string;
39
+ name: string;
40
+ }
41
+
42
+ export interface Subscription {
43
+ settingName?: string;
44
+ expirationDate?: string;
45
+ id?: string;
46
+ teamId?: string;
47
+ value?: string;
48
+ status?: string;
49
+ }
50
+
51
+ export class Teams {
52
+ constructor(api: Api);
53
+
54
+ slug: string;
55
+
56
+ // Define methods and properties of the Teams class here
57
+
58
+ get(teamId?: string, filterEmpty?: boolean): Promise<TeamData[]>;
59
+ getAccountSettings(teamId?: string): Promise<Array<Subscription>>;
60
+ }
61
+
62
+ export interface UserData {
63
+ id: string;
64
+ name: string;
65
+ preferedLanguage: string;
66
+ }
67
+ export class User {
68
+ constructor(api: Api);
69
+
70
+ // Define methods and properties of the Teams class here
71
+
72
+ get(token: AccessToken | null): Promise<UserData>;
73
+ put(userdata): Promise<UserData>;
74
+ getSubscriptions(): Promise<Array<Subscription>>;
75
+ }
76
+
77
+ type AdditionalParams = {
78
+ [key: string]: string; // This allows key-value pairs as in json string
79
+ }
80
+
81
+ export interface Project {
82
+ id: ProjectId;
83
+ name: string;
84
+ teamSlug: TeamSlug;
85
+ teamName: string | undefined;
86
+ rights: object;
87
+ }
88
+
89
+ export class Projects {
90
+ constructor(api: Api);
91
+ get(id?: ProjectId, noDisciplines?: boolean, teamSlug?: TeamSlug, alsoRecycleBin?: boolean, additionalParams?: AdditionalParams): Promise<Project | Project[]>;
92
+ }
93
+
94
+ export interface ConnexisData {
95
+ projectId: ProjectId,
96
+ modelId: ModelId,
97
+ elements: Guid[];
98
+ settings: {
99
+ connectionMethod: string;
100
+ createRevision?: boolean;
101
+ designCode: string;
102
+ replace: string;
103
+ }
104
+ }
105
+
106
+ export interface Sds2ConnexisData {
107
+ SDS2: ConnexisData;
108
+ }
109
+ // export interface IdeaStaticaConnexisData {
110
+ // IdeaStatica: ConnexisData;
111
+ // }
112
+
113
+ export class Connexis {
114
+ constructor(api: Api);
115
+ post(data: Sds2ConnexisData /* | IdeaStaticaConnexisData */) : Promise<void>;
116
+ }
117
+
118
+ export interface ObjectFilter {
119
+ id?: string
120
+ module: string
121
+ category: string
122
+ disciplineID: string
123
+ name: string
124
+ filterString: string
125
+ isDefault: boolean
126
+ disableSortByModels: boolean
127
+ readableValues?: Record<string, string>
128
+ }
129
+
130
+ export type ObjectFiltersResponse = Array<ObjectFilter>;
131
+
132
+ export class ObjectFilters {
133
+ constructor(api: Api);
134
+ get(layerId: Guid | undefined, projectId: Guid | undefined): Promise<ObjectFiltersResponse>
135
+ getSelectionFilteredObjects(selectionId: Guid, filterId: Guid, properties: boolean | undefined, topology: boolean | undefined): Promise<ObjectFilterStructureResponse>
136
+ post(data: string, projectId: string): Promise<ObjectFilter>;
137
+ delete(id: string) : void;
138
+ }
139
+
140
+ export interface ObjectsTopologyNode { }
141
+
142
+ export interface ObjectTopologyResponse {
143
+ id: string;
144
+ children?: ObjectsTopologyNode[];
145
+ ifcType?: string;
146
+ ifcId?: string;
147
+ elementTypeId?: string;
148
+ isChild?: boolean;
149
+ parent: string;
150
+ name: string;
151
+ type: string;
152
+ layerid?: string;
153
+ number: number;
154
+ level: number;
155
+ }
156
+
157
+ export type ObjectComplexPropertyTopologyResponse = ObjectTopologyResponse;
158
+
159
+ interface Hyperlink {
160
+ id: string;
161
+ objectId: string;
162
+ orderNumber: number;
163
+ name: string;
164
+ url: string;
165
+ }
166
+
167
+ interface Attachment {
168
+ id: string;
169
+ fileName: string;
170
+ version: number;
171
+ }
172
+
173
+ type HyperlinksResponse = Hyperlink[];
174
+ type AttachmentLinksResponse = AttachmentLink[];
175
+ type AttachmentResponse = Attachment[];
176
+
177
+ type CommentsResponse = CommentResponse[];
178
+
179
+ export interface CommentResponse {
180
+ id: string;
181
+ issueId?: string;
182
+ status?: string | null;
183
+ verbalStatus?: string | null;
184
+ parentId?: string;
185
+ text?: string;
186
+ createdAt?: string;
187
+ modifiedAt?: string;
188
+ author?: Author;
189
+ }
190
+
191
+ export interface Author {
192
+ id?: string;
193
+ email?: string;
194
+ status?: string | null;
195
+ firstname?: string;
196
+ lastname?: string;
197
+ company?: string;
198
+ fullname?: string;
199
+ displayname?: string;
200
+ shortdisplayname?: string;
201
+ preferedLanguage?: string | null;
202
+ updated?: string;
203
+ tokensInvalidated?: string;
204
+ }
205
+
206
+ export class Objects {
207
+ constructor(api: Api);
208
+ get(objectId: string, revision: number | undefined, properties: string | undefined, projectId: string | undefined, shortInfo: boolean | undefined, type: string | undefined);
209
+ getTopology(objectId: string, revision: number | undefined, hideElements: boolean, shortInfo: boolean, batch: string | undefined): Promise<ObjectTopologyResponse>;
210
+ getComplexPropertiesTopology(objectId: string, revision: number | undefined): Promise<ObjectComplexPropertyTopologyResponse>;
211
+ getHyperlinks(objectId: string): Promise<HyperlinksResponse>;
212
+ postHyperlink(objectId: string, data: string): Promise<Hyperlink>;
213
+ getAttachmentLinks(objectId: string): Promise<AttachmentLinksResponse>;
214
+ postAttachmentLink(objectId: string, data: string): Promise<AttachmentLink>;
215
+ postComment(objectId: string, data: string): Promise<CommentResponse>;
216
+ getComments(objectId: string): Promise<CommentsResponse>;
217
+ postAttachment(objectId: string, data: FormData, uploadProgress: () => void, documentFolderId: string): Promise<Attachment>;
218
+ getAttachments(objectId: string): Promise<Attachment[]>;
219
+ }
220
+
221
+ export class Attachments {
222
+ constructor(api: Api);
223
+ delete(id:string, version?: number): Promise<void>;
224
+ }
225
+
226
+ export interface SelectionObjectTopologyNode {
227
+ id: string;
228
+ visible: boolean;
229
+ opaque: boolean;
230
+ opacity: number;
231
+ }
232
+
233
+ export interface SelectionObjectLayer {
234
+ revision: number;
235
+ id: string;
236
+ name?: string;
237
+ divisionId: string;
238
+ divisionName?: string;
239
+ visible?: boolean;
240
+ opaque?: boolean;
241
+ opacity?: number;
242
+ valid?: boolean;
243
+ }
244
+
245
+ export interface SelectionObjectTopology {
246
+ topology: SelectionObjectTopologyNode[];
247
+ layers: SelectionObjectLayer[];
248
+ }
249
+
250
+ export interface SelectionObjectTopologyStructure {
251
+ layers: SelectionObjectLayer[];
252
+ structures: string[];
253
+ }
254
+
255
+ export interface SelectionObject {
256
+ id?: string;
257
+ projectid: string;
258
+ divisionid?: string;
259
+ singleuse: boolean;
260
+ revisionnr?: string;
261
+ type: string;
262
+ elements?: string[];
263
+ revisionelements?: string[];
264
+ filter?: string;
265
+ topology?: SelectionObjectTopology;
266
+ topologyStructure?: SelectionObjectTopologyStructure
267
+ }
268
+
269
+ export interface ExportObject {
270
+ description: string;
271
+ id?: string;
272
+ name: string;
273
+ projectId: string;
274
+ singleUse: boolean;
275
+ selection: SelectionObject
276
+ }
277
+
278
+ export class ExportService {
279
+ constructor(api: Api);
280
+ createExportSelection(projectId: Guid, data: string): Promise<ExportObject>;
281
+ }
282
+
283
+ export interface StructureNode {
284
+ id: string;
285
+ parent?: string;
286
+ name: string;
287
+ type: string;
288
+ children?: StructureNode[];
289
+ lastTopologyId?: string;
290
+ count: number;
291
+ level: number;
292
+ nodeInfo: string;
293
+ hasGeometry?: boolean;
294
+ }
295
+
296
+ export interface ObjectFilterStructureResponse {
297
+ structure: StructureNode;
298
+ structureDepth: number;
299
+ }
300
+
301
+ export class PrivacyTexts {
302
+ constructor(api: Api);
303
+ get(lang: string | undefined, type: string | undefined): Promise<HTML>;
304
+ }
305
+
306
+ export interface IDBCache {
307
+ data: string;
308
+
309
+ clear(): void;
310
+ }
311
+
312
+ export class Hyperlinks {
313
+ constructor(api: Api);
314
+ delete(id: string): Promise<void>;
315
+ }
316
+
317
+ export class AttachmentLink {
318
+ id: string;
319
+ name: string;
320
+ fileName:string
321
+ size:number;
322
+ link:string;
323
+ version:number;
324
+ fileNameShort:string;
325
+ extension:string;
326
+ objectIds:string[];
327
+ sizeMB: string
328
+ }
329
+
330
+ export class Comments {
331
+ constructor(api: Api);
332
+ delete(id: string): Promise<void>;
333
+ }
334
+
335
+
336
+ export class Api {
337
+ constructor(config: ApiConfig);
338
+
339
+ // Define methods and properties of the Teams class here
340
+
341
+ authorize: Authorize;
342
+ teams: Teams;
343
+ user: User;
344
+ projects: Projects;
345
+ connexis: Connexis;
346
+ objectFilters: ObjectFilters;
347
+ objects: Objects;
348
+ attachments: Attachments;
349
+ exportService: ExportService;
350
+ terms: PrivacyTexts;
351
+ imprints: PrivacyTexts;
352
+ dataProtection: PrivacyTexts;
353
+ hyperlinks: Hyperlinks;
354
+ comments: Comments;
355
+
356
+ setAccessToken(token: AccessToken): void;
357
+ getAccessToken(): AccessToken | null;
358
+
359
+ setTokenType(tokenType: AccessTokenType): void;
360
+ getTokenType(): AccessTokenType | null;
361
+
362
+ setAccessTokenAndType(token: AccessToken, tokenType: AccessTokenType): void;
363
+ getAccessTokenAndType(): { token: AccessToken | null, tokenType: AccessTokenType | null }
364
+
365
+ setTeamSlug(slug: TeamSlug): void;
366
+ getCache(): IDBCache;
367
+ getApiTeamUrl(): string;
368
+ }
369
+ }