@activepieces/piece-beebole 0.1.5 → 0.1.7

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 (45) hide show
  1. package/package.json +7 -12
  2. package/src/index.js +20 -44
  3. package/src/index.d.ts +0 -2
  4. package/src/index.d.ts.map +0 -1
  5. package/src/index.js.map +0 -1
  6. package/src/lib/actions/create-company.d.ts +0 -5
  7. package/src/lib/actions/create-company.d.ts.map +0 -1
  8. package/src/lib/actions/create-company.js +0 -46
  9. package/src/lib/actions/create-company.js.map +0 -1
  10. package/src/lib/actions/create-multiple-time-entries.d.ts +0 -12
  11. package/src/lib/actions/create-multiple-time-entries.d.ts.map +0 -1
  12. package/src/lib/actions/create-multiple-time-entries.js +0 -136
  13. package/src/lib/actions/create-multiple-time-entries.js.map +0 -1
  14. package/src/lib/actions/create-person.d.ts +0 -8
  15. package/src/lib/actions/create-person.d.ts.map +0 -1
  16. package/src/lib/actions/create-person.js +0 -76
  17. package/src/lib/actions/create-person.js.map +0 -1
  18. package/src/lib/actions/create-project.d.ts +0 -7
  19. package/src/lib/actions/create-project.d.ts.map +0 -1
  20. package/src/lib/actions/create-project.js +0 -59
  21. package/src/lib/actions/create-project.js.map +0 -1
  22. package/src/lib/actions/create-subproject.d.ts +0 -6
  23. package/src/lib/actions/create-subproject.d.ts.map +0 -1
  24. package/src/lib/actions/create-subproject.js +0 -49
  25. package/src/lib/actions/create-subproject.js.map +0 -1
  26. package/src/lib/actions/deactivate-subproject.d.ts +0 -6
  27. package/src/lib/actions/deactivate-subproject.d.ts.map +0 -1
  28. package/src/lib/actions/deactivate-subproject.js +0 -51
  29. package/src/lib/actions/deactivate-subproject.js.map +0 -1
  30. package/src/lib/actions/delete-multiple-time-entries.d.ts +0 -5
  31. package/src/lib/actions/delete-multiple-time-entries.d.ts.map +0 -1
  32. package/src/lib/actions/delete-multiple-time-entries.js +0 -99
  33. package/src/lib/actions/delete-multiple-time-entries.js.map +0 -1
  34. package/src/lib/common/auth.d.ts +0 -2
  35. package/src/lib/common/auth.d.ts.map +0 -1
  36. package/src/lib/common/auth.js +0 -37
  37. package/src/lib/common/auth.js.map +0 -1
  38. package/src/lib/common/client.d.ts +0 -10
  39. package/src/lib/common/client.d.ts.map +0 -1
  40. package/src/lib/common/client.js +0 -24
  41. package/src/lib/common/client.js.map +0 -1
  42. package/src/lib/common/props.d.ts +0 -23
  43. package/src/lib/common/props.d.ts.map +0 -1
  44. package/src/lib/common/props.js +0 -207
  45. package/src/lib/common/props.js.map +0 -1
@@ -1,136 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMultipleTimeEntriesAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const auth_1 = require("../common/auth");
7
- const client_1 = require("../common/client");
8
- const props_1 = require("../common/props");
9
- const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
10
- exports.createMultipleTimeEntriesAction = (0, pieces_framework_1.createAction)({
11
- auth: auth_1.beeboleAuth,
12
- name: 'create_multiple_time_entries',
13
- displayName: 'Create Multiple Time Entries',
14
- description: 'Creates time entries (working time or absence) across multiple days in Beebole.',
15
- props: {
16
- entryType: pieces_framework_1.Property.StaticDropdown({
17
- displayName: 'Entry Type',
18
- description: 'Choose whether you are logging working time on a subproject or an absence (e.g. vacation, sick leave).',
19
- required: true,
20
- defaultValue: 'working_time',
21
- options: {
22
- options: [
23
- { label: 'Working Time', value: 'working_time' },
24
- { label: 'Absence', value: 'absence' },
25
- ],
26
- },
27
- }),
28
- absence: props_1.beeboleProps.absenceDropdown({
29
- required: false,
30
- description: 'The absence type (e.g. Vacation, Sick Leave) to log on the selected dates.',
31
- }),
32
- company: props_1.beeboleProps.companyDropdown({
33
- required: false,
34
- description: 'The company that owns the project.',
35
- }),
36
- project: props_1.beeboleProps.projectDropdown({
37
- required: false,
38
- description: 'The project containing the subproject.',
39
- }),
40
- subproject: props_1.beeboleProps.subprojectDropdown({
41
- required: false,
42
- description: 'The subproject to log working time against.',
43
- }),
44
- dates: pieces_framework_1.Property.Array({
45
- displayName: 'Dates',
46
- description: 'The dates to create time entries for, each in YYYY-MM-DD format (e.g. "2026-05-21").',
47
- required: true,
48
- }),
49
- hours: pieces_framework_1.Property.Number({
50
- displayName: 'Hours per Day',
51
- description: 'The number of hours to log for each date (e.g. 8 for a full working day).',
52
- required: true,
53
- defaultValue: 8,
54
- }),
55
- comment: pieces_framework_1.Property.LongText({
56
- displayName: 'Comment',
57
- description: 'Optional comment applied to every created time entry.',
58
- required: false,
59
- }),
60
- continueOnError: pieces_framework_1.Property.Checkbox({
61
- displayName: 'Continue on Error',
62
- description: 'If enabled, a failure on one date will not stop creation for the remaining dates.',
63
- required: false,
64
- defaultValue: true,
65
- }),
66
- },
67
- run(context) {
68
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
69
- var _a, _b, _c, _d, _e;
70
- const { entryType, dates, hours, comment, continueOnError } = context.propsValue;
71
- const dateList = dates
72
- .map((d) => (typeof d === 'string' ? d.trim() : ''))
73
- .filter((d) => d.length > 0);
74
- if (dateList.length === 0) {
75
- throw new Error('At least one date is required.');
76
- }
77
- const invalidDates = dateList.filter((d) => !dateRegex.test(d));
78
- if (invalidDates.length > 0) {
79
- throw new Error(`Invalid date format (expected YYYY-MM-DD): ${invalidDates.join(', ')}`);
80
- }
81
- if (entryType === 'absence' && !context.propsValue.absence) {
82
- throw new Error('Absence type is required when Entry Type is Absence.');
83
- }
84
- if (entryType === 'working_time' && !context.propsValue.subproject) {
85
- throw new Error('Subproject is required when Entry Type is Working Time.');
86
- }
87
- const targetBody = {};
88
- if (entryType === 'absence') {
89
- targetBody['absence'] = { id: context.propsValue.absence };
90
- }
91
- else {
92
- targetBody['subproject'] = { id: context.propsValue.subproject };
93
- }
94
- const created = [];
95
- const failed = [];
96
- for (const date of dateList) {
97
- const body = Object.assign(Object.assign({ service: 'time_entry.create' }, targetBody), { date,
98
- hours });
99
- if (comment) {
100
- body['comment'] = comment;
101
- }
102
- try {
103
- const response = yield client_1.beeboleClient.call({
104
- token: context.auth.secret_text,
105
- body,
106
- });
107
- if (response.body.status !== 'ok') {
108
- throw new Error((_a = response.body.message) !== null && _a !== void 0 ? _a : 'Unknown error');
109
- }
110
- const entry = response.body.time_entry;
111
- created.push({
112
- time_entry_id: (_b = entry === null || entry === void 0 ? void 0 : entry.id) !== null && _b !== void 0 ? _b : null,
113
- date,
114
- hours: (_c = entry === null || entry === void 0 ? void 0 : entry.hours) !== null && _c !== void 0 ? _c : hours,
115
- comment: (_e = (_d = entry === null || entry === void 0 ? void 0 : entry.comment) !== null && _d !== void 0 ? _d : comment) !== null && _e !== void 0 ? _e : null,
116
- status: 'ok',
117
- });
118
- }
119
- catch (error) {
120
- const message = error instanceof Error ? error.message : String(error);
121
- if (!continueOnError) {
122
- throw new Error(`Failed to create time entry for ${date}: ${message}`);
123
- }
124
- failed.push({ date, error: message });
125
- }
126
- }
127
- return {
128
- created_count: created.length,
129
- failed_count: failed.length,
130
- created,
131
- failed,
132
- };
133
- });
134
- },
135
- });
136
- //# sourceMappingURL=create-multiple-time-entries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-multiple-time-entries.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-multiple-time-entries.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export declare const createPersonAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
- company: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
- name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- email: import("@activepieces/pieces-framework").ShortTextProperty<false>;
5
- invite: import("@activepieces/pieces-framework").CheckboxProperty<false>;
6
- userGroup: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
7
- }>;
8
- //# sourceMappingURL=create-person.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-person.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-person.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,kBAAkB;;;;;;EAkE7B,CAAC"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createPersonAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const auth_1 = require("../common/auth");
7
- const client_1 = require("../common/client");
8
- const props_1 = require("../common/props");
9
- exports.createPersonAction = (0, pieces_framework_1.createAction)({
10
- auth: auth_1.beeboleAuth,
11
- name: 'create_person',
12
- displayName: 'Create Person',
13
- description: 'Creates a new person in Beebole. An available license is required for the person to be active.',
14
- props: {
15
- company: props_1.beeboleProps.companyDropdown({
16
- required: true,
17
- description: 'The company this person belongs to.',
18
- }),
19
- name: pieces_framework_1.Property.ShortText({
20
- displayName: 'Full Name',
21
- description: 'The full name of the person (e.g. "Jane Doe").',
22
- required: true,
23
- }),
24
- email: pieces_framework_1.Property.ShortText({
25
- displayName: 'Email',
26
- description: 'Email address. Required if you want to invite the person to log in to Beebole.',
27
- required: false,
28
- }),
29
- invite: pieces_framework_1.Property.Checkbox({
30
- displayName: 'Send Invitation Email',
31
- description: 'Send an invitation email so the person can log in to Beebole. Requires an email address.',
32
- required: false,
33
- defaultValue: false,
34
- }),
35
- userGroup: pieces_framework_1.Property.StaticDropdown({
36
- displayName: 'User Group',
37
- description: 'The permission level for this person. "Employee" can log time; "Project Lead" can also manage projects; "Admin" has full access.',
38
- required: false,
39
- defaultValue: 'employee',
40
- options: {
41
- options: [
42
- { label: 'Employee', value: 'employee' },
43
- { label: 'Project Lead', value: 'project_lead' },
44
- { label: 'Administrator', value: 'admin' },
45
- ],
46
- },
47
- }),
48
- },
49
- run(context) {
50
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
51
- var _a;
52
- const person = {
53
- name: context.propsValue.name,
54
- company: { id: context.propsValue.company },
55
- };
56
- if (context.propsValue.email) {
57
- person['email'] = context.propsValue.email;
58
- }
59
- if (context.propsValue.invite !== undefined) {
60
- person['invite'] = context.propsValue.invite;
61
- }
62
- if (context.propsValue.userGroup) {
63
- person['userGroup'] = context.propsValue.userGroup;
64
- }
65
- const response = yield client_1.beeboleClient.call({
66
- token: context.auth.secret_text,
67
- body: { service: 'person.create', person },
68
- });
69
- if (response.body.status !== 'ok') {
70
- throw new Error(`Beebole returned an error: ${(_a = response.body.message) !== null && _a !== void 0 ? _a : 'Unknown error'}`);
71
- }
72
- return response.body;
73
- });
74
- },
75
- });
76
- //# sourceMappingURL=create-person.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-person.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-person.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,yCAA6C;AAC7C,6CAAiD;AACjD,2CAA+C;AAclC,QAAA,kBAAkB,GAAG,IAAA,+BAAY,EAAC;IAC7C,IAAI,EAAE,kBAAW;IACjB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,gGAAgG;IAC7G,KAAK,EAAE;QACL,OAAO,EAAE,oBAAY,CAAC,eAAe,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qCAAqC;SACnD,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACvB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,gFAAgF;YAC7F,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YACxB,WAAW,EAAE,uBAAuB;YACpC,WAAW,EAAE,0FAA0F;YACvG,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,KAAK;SACpB,CAAC;QACF,SAAS,EAAE,2BAAQ,CAAC,cAAc,CAAC;YACjC,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,kIAAkI;YAC/I,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;oBACxC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;oBAChD,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE;iBAC3C;aACF;SACF,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,MAAM,GAA4B;gBACtC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;gBAC7B,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;aAC5C,CAAC;YACF,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC5C,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAC/C,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YACrD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,sBAAa,CAAC,IAAI,CAAuB;gBAC9D,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;gBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE;aAC3C,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,mCAAI,eAAe,EAAE,CAAC,CAAC;YAC5F,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,CAAA;QACtB,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- export declare const createProjectAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
- company: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
- name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- startDate: import("@activepieces/pieces-framework").ShortTextProperty<false>;
5
- description: import("@activepieces/pieces-framework").LongTextProperty<false>;
6
- }>;
7
- //# sourceMappingURL=create-project.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-project.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-project.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,mBAAmB;;;;;EAiD9B,CAAC"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createProjectAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const auth_1 = require("../common/auth");
7
- const client_1 = require("../common/client");
8
- const props_1 = require("../common/props");
9
- exports.createProjectAction = (0, pieces_framework_1.createAction)({
10
- auth: auth_1.beeboleAuth,
11
- name: 'create_project',
12
- displayName: 'Create Project',
13
- description: 'Creates a new project under a company in Beebole.',
14
- props: {
15
- company: props_1.beeboleProps.companyDropdown({
16
- required: true,
17
- description: 'The company (customer) that owns this project.',
18
- }),
19
- name: pieces_framework_1.Property.ShortText({
20
- displayName: 'Project Name',
21
- description: 'The name of the new project (e.g. "Website Redesign").',
22
- required: true,
23
- }),
24
- startDate: pieces_framework_1.Property.ShortText({
25
- displayName: 'Start Date',
26
- description: 'The project start date in YYYY-MM-DD format (e.g. "2026-01-15"). Leave empty for no start date.',
27
- required: false,
28
- }),
29
- description: pieces_framework_1.Property.LongText({
30
- displayName: 'Description',
31
- description: 'Optional description of the project.',
32
- required: false,
33
- }),
34
- },
35
- run(context) {
36
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
- var _a;
38
- const project = {
39
- name: context.propsValue.name,
40
- company: { id: context.propsValue.company },
41
- };
42
- if (context.propsValue.startDate) {
43
- project['startDate'] = context.propsValue.startDate;
44
- }
45
- if (context.propsValue.description) {
46
- project['description'] = context.propsValue.description;
47
- }
48
- const response = yield client_1.beeboleClient.call({
49
- token: context.auth.secret_text,
50
- body: { service: 'project.create', project },
51
- });
52
- if (response.body.status !== 'ok') {
53
- throw new Error(`Beebole returned an error: ${(_a = response.body.message) !== null && _a !== void 0 ? _a : 'Unknown error'}`);
54
- }
55
- return response.body;
56
- });
57
- },
58
- });
59
- //# sourceMappingURL=create-project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-project.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,yCAA6C;AAC7C,6CAAiD;AACjD,2CAA+C;AAclC,QAAA,mBAAmB,GAAG,IAAA,+BAAY,EAAC;IAC9C,IAAI,EAAE,kBAAW;IACjB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,mDAAmD;IAChE,KAAK,EAAE;QACL,OAAO,EAAE,oBAAY,CAAC,eAAe,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gDAAgD;SAC9D,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACvB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,iGAAiG;YAC9G,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC7B,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,OAAO,GAA4B;gBACvC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;gBAC7B,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;aAC5C,CAAC;YACF,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YACtD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gBACnC,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;YAC1D,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,sBAAa,CAAC,IAAI,CAAwB;gBAC/D,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;gBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE;aAC7C,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,mCAAI,eAAe,EAAE,CAAC,CAAC;YAC5F,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,CAAA;QACtB,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare const createSubprojectAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
- company: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
- project: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
- name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
5
- }>;
6
- //# sourceMappingURL=create-subproject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-subproject.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-subproject.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,sBAAsB;;;;EAsCjC,CAAC"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSubprojectAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const auth_1 = require("../common/auth");
7
- const client_1 = require("../common/client");
8
- const props_1 = require("../common/props");
9
- exports.createSubprojectAction = (0, pieces_framework_1.createAction)({
10
- auth: auth_1.beeboleAuth,
11
- name: 'create_subproject',
12
- displayName: 'Create Subproject',
13
- description: 'Creates a new subproject under an existing project in Beebole.',
14
- props: {
15
- company: props_1.beeboleProps.companyDropdown({
16
- required: true,
17
- description: 'The company that owns the parent project.',
18
- }),
19
- project: props_1.beeboleProps.projectDropdown({
20
- required: true,
21
- description: 'The project that will contain this subproject.',
22
- }),
23
- name: pieces_framework_1.Property.ShortText({
24
- displayName: 'Subproject Name',
25
- description: 'The name of the new subproject (e.g. "Prototype", "Phase 1").',
26
- required: true,
27
- }),
28
- },
29
- run(context) {
30
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
- var _a;
32
- const response = yield client_1.beeboleClient.call({
33
- token: context.auth.secret_text,
34
- body: {
35
- service: 'subproject.create',
36
- subproject: {
37
- name: context.propsValue.name,
38
- project: { id: context.propsValue.project },
39
- },
40
- },
41
- });
42
- if (response.body.status !== 'ok') {
43
- throw new Error(`Beebole returned an error: ${(_a = response.body.message) !== null && _a !== void 0 ? _a : 'Unknown error'}`);
44
- }
45
- return response.body;
46
- });
47
- },
48
- });
49
- //# sourceMappingURL=create-subproject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-subproject.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-subproject.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,yCAA6C;AAC7C,6CAAiD;AACjD,2CAA+C;AAYlC,QAAA,sBAAsB,GAAG,IAAA,+BAAY,EAAC;IACjD,IAAI,EAAE,kBAAW;IACjB,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,gEAAgE;IAC7E,KAAK,EAAE;QACL,OAAO,EAAE,oBAAY,CAAC,eAAe,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,2CAA2C;SACzD,CAAC;QACF,OAAO,EAAE,oBAAY,CAAC,eAAe,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gDAAgD;SAC9D,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACvB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,+DAA+D;YAC5E,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,QAAQ,GAAG,MAAM,sBAAa,CAAC,IAAI,CAA2B;gBAClE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;gBAC/B,IAAI,EAAE;oBACJ,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE;wBACV,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;wBAC7B,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;qBAC5C;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,mCAAI,eAAe,EAAE,CAAC,CAAC;YAC5F,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,CAAA;QACtB,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- export declare const deactivateSubprojectAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
- company: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
- project: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
- subproject: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
5
- }>;
6
- //# sourceMappingURL=deactivate-subproject.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deactivate-subproject.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/deactivate-subproject.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,0BAA0B;;;;EAwCrC,CAAC"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deactivateSubprojectAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const auth_1 = require("../common/auth");
7
- const client_1 = require("../common/client");
8
- const props_1 = require("../common/props");
9
- exports.deactivateSubprojectAction = (0, pieces_framework_1.createAction)({
10
- auth: auth_1.beeboleAuth,
11
- name: 'deactivate_subproject',
12
- displayName: 'Deactivate Subproject',
13
- description: 'Marks a subproject as inactive in Beebole. Inactive subprojects are hidden from new time entries.',
14
- props: {
15
- company: props_1.beeboleProps.companyDropdown({
16
- required: true,
17
- description: 'The company that owns the project.',
18
- }),
19
- project: props_1.beeboleProps.projectDropdown({
20
- required: true,
21
- description: 'The project containing the subproject to deactivate.',
22
- }),
23
- subproject: props_1.beeboleProps.subprojectDropdown({
24
- required: true,
25
- description: 'The subproject to deactivate.',
26
- }),
27
- },
28
- run(context) {
29
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
- var _a;
31
- const response = yield client_1.beeboleClient.call({
32
- token: context.auth.secret_text,
33
- body: {
34
- service: 'subproject.deactivate',
35
- id: context.propsValue.subproject,
36
- },
37
- });
38
- if (response.body.status !== 'ok') {
39
- throw new Error(`Beebole returned an error: ${(_a = response.body.message) !== null && _a !== void 0 ? _a : 'Unknown error'}`);
40
- }
41
- return {
42
- subproject_id: context.propsValue.subproject,
43
- project_id: context.propsValue.project,
44
- company_id: context.propsValue.company,
45
- status: response.body.status,
46
- deactivated: true,
47
- };
48
- });
49
- },
50
- });
51
- //# sourceMappingURL=deactivate-subproject.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deactivate-subproject.js","sourceRoot":"","sources":["../../../../src/lib/actions/deactivate-subproject.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,yCAA6C;AAC7C,6CAAiD;AACjD,2CAA+C;AAOlC,QAAA,0BAA0B,GAAG,IAAA,+BAAY,EAAC;IACrD,IAAI,EAAE,kBAAW;IACjB,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,uBAAuB;IACpC,WAAW,EAAE,mGAAmG;IAChH,KAAK,EAAE;QACL,OAAO,EAAE,oBAAY,CAAC,eAAe,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oCAAoC;SAClD,CAAC;QACF,OAAO,EAAE,oBAAY,CAAC,eAAe,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,sDAAsD;SACpE,CAAC;QACF,UAAU,EAAE,oBAAY,CAAC,kBAAkB,CAAC;YAC1C,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,+BAA+B;SAC7C,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,QAAQ,GAAG,MAAM,sBAAa,CAAC,IAAI,CAA+B;gBACtE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;gBAC/B,IAAI,EAAE;oBACJ,OAAO,EAAE,uBAAuB;oBAChC,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU;iBAClC;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,mCAAI,eAAe,EAAE,CAAC,CAAC;YAC5F,CAAC;YAED,OAAO;gBACL,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU;gBAC5C,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;gBACtC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO;gBACtC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAC5B,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const deleteMultipleTimeEntriesAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
- entries: import("@activepieces/pieces-framework").ArrayProperty<true>;
3
- continueOnError: import("@activepieces/pieces-framework").CheckboxProperty<false>;
4
- }>;
5
- //# sourceMappingURL=delete-multiple-time-entries.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-multiple-time-entries.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/delete-multiple-time-entries.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,+BAA+B;;;EA+F1C,CAAC"}
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteMultipleTimeEntriesAction = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const auth_1 = require("../common/auth");
7
- const client_1 = require("../common/client");
8
- const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
9
- exports.deleteMultipleTimeEntriesAction = (0, pieces_framework_1.createAction)({
10
- auth: auth_1.beeboleAuth,
11
- name: 'delete_multiple_time_entries',
12
- displayName: 'Delete Multiple Time Entries',
13
- description: 'Deletes multiple time entries (working time or absence) by their IDs and dates.',
14
- props: {
15
- entries: pieces_framework_1.Property.Array({
16
- displayName: 'Time Entries to Delete',
17
- description: 'List of time entries to delete. Each row requires the time entry ID and the date it was logged on (YYYY-MM-DD).',
18
- required: true,
19
- properties: {
20
- id: pieces_framework_1.Property.Number({
21
- displayName: 'Time Entry ID',
22
- description: 'The numeric ID of the time entry to delete. You can get this from a "List Time Entries" step or the Beebole API response when the entry was created.',
23
- required: true,
24
- }),
25
- date: pieces_framework_1.Property.ShortText({
26
- displayName: 'Date',
27
- description: 'The date the entry was logged, in YYYY-MM-DD format (e.g. "2026-05-21").',
28
- required: true,
29
- }),
30
- },
31
- }),
32
- continueOnError: pieces_framework_1.Property.Checkbox({
33
- displayName: 'Continue on Error',
34
- description: 'If enabled, a failure on one entry will not stop deletion for the remaining entries.',
35
- required: false,
36
- defaultValue: true,
37
- }),
38
- },
39
- run(context) {
40
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
41
- var _a, _b;
42
- const { entries, continueOnError } = context.propsValue;
43
- const rows = entries;
44
- if (!rows || rows.length === 0) {
45
- throw new Error('At least one time entry is required.');
46
- }
47
- const deleted = [];
48
- const failed = [];
49
- for (const row of rows) {
50
- const id = typeof row.id === 'string' ? Number(row.id) : row.id;
51
- const date = typeof row.date === 'string' ? row.date.trim() : '';
52
- if (!id || Number.isNaN(id)) {
53
- const message = 'Missing or invalid time entry ID.';
54
- if (!continueOnError) {
55
- throw new Error(message);
56
- }
57
- failed.push({ time_entry_id: (_a = row.id) !== null && _a !== void 0 ? _a : null, date: date || null, error: message });
58
- continue;
59
- }
60
- if (!dateRegex.test(date)) {
61
- const message = `Invalid date format (expected YYYY-MM-DD): "${date}"`;
62
- if (!continueOnError) {
63
- throw new Error(message);
64
- }
65
- failed.push({ time_entry_id: id, date: date || null, error: message });
66
- continue;
67
- }
68
- try {
69
- const response = yield client_1.beeboleClient.call({
70
- token: context.auth.secret_text,
71
- body: {
72
- service: 'time_entry.delete',
73
- id,
74
- date,
75
- },
76
- });
77
- if (response.body.status !== 'ok') {
78
- throw new Error((_b = response.body.message) !== null && _b !== void 0 ? _b : 'Unknown error');
79
- }
80
- deleted.push({ time_entry_id: id, date, status: 'ok' });
81
- }
82
- catch (error) {
83
- const message = error instanceof Error ? error.message : String(error);
84
- if (!continueOnError) {
85
- throw new Error(`Failed to delete time entry ${id} on ${date}: ${message}`);
86
- }
87
- failed.push({ time_entry_id: id, date, error: message });
88
- }
89
- }
90
- return {
91
- deleted_count: deleted.length,
92
- failed_count: failed.length,
93
- deleted,
94
- failed,
95
- };
96
- });
97
- },
98
- });
99
- //# sourceMappingURL=delete-multiple-time-entries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-multiple-time-entries.js","sourceRoot":"","sources":["../../../../src/lib/actions/delete-multiple-time-entries.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const beeboleAuth: import("@activepieces/pieces-framework").SecretTextProperty<true>;
2
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/auth.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,mEA4BtB,CAAC"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.beeboleAuth = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_common_1 = require("@activepieces/pieces-common");
6
- const pieces_framework_1 = require("@activepieces/pieces-framework");
7
- exports.beeboleAuth = pieces_framework_1.PieceAuth.SecretText({
8
- displayName: 'API Token',
9
- description: `To get your Beebole API token:
10
-
11
- 1. Log in to your Beebole account at https://beebole-apps.com
12
- 2. Go to **Customize → API Token**
13
- 3. Generate a new API token
14
- 4. Copy the token and paste it below
15
-
16
- Need help? See https://beebole.com/help/api`,
17
- required: true,
18
- validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
19
- try {
20
- yield pieces_common_1.httpClient.sendRequest({
21
- method: pieces_common_1.HttpMethod.POST,
22
- url: 'https://beebole-apps.com/api/v2',
23
- authentication: {
24
- type: pieces_common_1.AuthenticationType.BASIC,
25
- username: auth,
26
- password: 'x',
27
- },
28
- body: { service: 'company.list' },
29
- });
30
- return { valid: true };
31
- }
32
- catch (_b) {
33
- return { valid: false, error: 'Invalid Beebole API token.' };
34
- }
35
- }),
36
- });
37
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/lib/common/auth.ts"],"names":[],"mappings":";;;;AAAA,+DAAyF;AACzF,qEAA2D;AAE9C,QAAA,WAAW,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC9C,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE;;;;;;;4CAO6B;IAC1C,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC3B,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,GAAG,EAAE,iCAAiC;gBACtC,cAAc,EAAE;oBACd,IAAI,EAAE,kCAAkB,CAAC,KAAK;oBAC9B,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,GAAG;iBACd;gBACD,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;aAClC,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC"}