@epsilon-asi/actors 0.0.42 → 0.0.44

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.
@@ -1,12 +1,14 @@
1
- import type { UpworkApplyToJobInput, UpworkApplyToJobResult, UpworkJobSearchFields } from './upwork-com.types.js';
2
- import { ScrapeDashboardInput } from "../example/index.js";
1
+ import { UpworkApplyToJobInput, UpworkApplyToJobResult, UpworkJobSearchFields, UpworkJobSelector } from './upwork-com.types.js';
3
2
  import { UpworkJobListing } from "./util/scrapeJobListing.js";
4
3
  import { UpworkProposalAnswers, UpworkProposalQuestions } from "./util/parseJobApplicationDetails.js";
4
+ import { UpworkJobDetails } from "./util/parseJobDetails.js";
5
5
  export declare const upworkComActor: import("../../index.js").Actor<{
6
6
  test: (context: import("../../index.js").ActorContext, input: any) => Promise<void>;
7
7
  searchJobs: (context: import("../../index.js").ActorContext, input?: UpworkJobSearchFields) => Promise<UpworkJobListing[]>;
8
- scrapeJobs: (context: import("../../index.js").ActorContext, input?: ScrapeDashboardInput) => Promise<any>;
9
- getJobQuestions: (_context: import("../../index.js").ActorContext, input: UpworkApplyToJobInput) => Promise<UpworkProposalQuestions>;
8
+ getJob: (_context: import("../../index.js").ActorContext, input: UpworkJobSelector) => Promise<{
9
+ jobDetails: UpworkJobDetails;
10
+ jobQuestions: UpworkProposalQuestions;
11
+ }>;
10
12
  applyToJob: (_context: import("../../index.js").ActorContext, input: UpworkApplyToJobInput & UpworkProposalAnswers) => Promise<UpworkApplyToJobResult>;
11
13
  }>;
12
14
  //# sourceMappingURL=upwork-com.actor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upwork-com.actor.d.ts","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,qBAAqB,EAAE,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAEhH,OAAO,EAAC,oBAAoB,EAAC,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAA2B,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAE2B,qBAAqB,EACnD,uBAAuB,EAC1B,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,cAAc;;yEAuDgB,qBAAqB,KAAQ,OAAO,CAAC,gBAAgB,EAAE,CAAC;yEAOxD,oBAAoB,KAAQ,OAAO,CAAC,GAAG,CAAC;8EAGlC,qBAAqB,KAAG,OAAO,CAAC,uBAAuB,CAAC;yEAK7D,qBAAqB,GAAG,qBAAqB,KAAG,OAAO,CAAC,sBAAsB,CAAC;EAsCzH,CAAC"}
1
+ {"version":3,"file":"upwork-com.actor.d.ts","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAA2B,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAE2B,qBAAqB,EACnD,uBAAuB,EAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAEtF,eAAO,MAAM,cAAc;;yEAuDgB,qBAAqB,KAAQ,OAAO,CAAC,gBAAgB,EAAE,CAAC;qEAO3D,iBAAiB,KAAG,OAAO,CAAC;QACxD,UAAU,EAAE,gBAAgB,CAAC;QAC7B,YAAY,EAAE,uBAAuB,CAAA;KACxC,CAAC;yEAakC,qBAAqB,GAAG,qBAAqB,KAAG,OAAO,CAAC,sBAAsB,CAAC;EAsCzH,CAAC"}
@@ -4,6 +4,7 @@ import { upworkComSelectors } from './upwork-com.selectors.js';
4
4
  import { parseRate } from "./upwork-com.util.js";
5
5
  import { parseUpworkSearchResults } from "./util/scrapeJobListing.js";
6
6
  import { fillUpworkProposalQuestions, parseUpworkProposalQuestions } from "./util/parseJobApplicationDetails.js";
7
+ import { parseUpworkJobDetailsPage } from "./util/parseJobDetails.js";
7
8
  export const upworkComActor = defineActor({
8
9
  id: 'upwork-com',
9
10
  baseUrl: 'https://upwork.com',
@@ -64,12 +65,15 @@ export const upworkComActor = defineActor({
64
65
  await context.nav.goto(path, {});
65
66
  return await parseUpworkSearchResults(context.session.page);
66
67
  },
67
- scrapeJobs: async (context, input = {}) => {
68
- await parseUpworkSearchResults(context.session.page);
69
- },
70
- getJobQuestions: async (_context, input) => {
68
+ getJob: async (_context, input) => {
69
+ await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/`);
70
+ const jobDetails = parseUpworkJobDetailsPage(await _context.session.page.content());
71
71
  await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/apply/`);
72
- return await parseUpworkProposalQuestions(_context.session.page);
72
+ const jobQuestions = await parseUpworkProposalQuestions(_context.session.page);
73
+ return {
74
+ jobDetails,
75
+ jobQuestions
76
+ };
73
77
  },
74
78
  applyToJob: async (_context, input) => {
75
79
  await _context.cursor.scrollIntoView(`[data-ev-job-uid="${input.jobId}"]`);
@@ -1 +1 @@
1
- {"version":3,"file":"upwork-com.actor.js","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upwork-com.actor.js","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,9 @@ export interface UpworkJobSearchResult {
78
78
  query: string;
79
79
  filters: UpworkJobSearchFields;
80
80
  }
81
+ export interface UpworkJobSelector {
82
+ jobId: string;
83
+ }
81
84
  export interface UpworkApplyToJobInput {
82
85
  jobId: string;
83
86
  rate: number | string;
@@ -1 +1 @@
1
- {"version":3,"file":"upwork-com.types.d.ts","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAC,MAAM,sCAAsC,CAAC;AAEnF,oBAAY,aAAa;IACvB,SAAS,eAAe;CACzB;AAED,oBAAY,cAAc;IACxB,MAAM,YAAY;CACnB;AAED,oBAAY,cAAc;IACxB,UAAU,MAAM;IAChB,YAAY,MAAM;IAClB,MAAM,MAAM;CACb;AAED,oBAAY,OAAO;IACjB,MAAM,WAAW;IACjB,UAAU,gBAAgB;CAC3B;AAED,oBAAY,eAAe;IACzB,WAAW,WAAW;IACtB,YAAY,eAAe;IAC3B,aAAa,gBAAgB;IAC7B,cAAc,iBAAiB;IAC/B,eAAe,aAAa;CAC7B;AAED,oBAAY,aAAa;IACvB,UAAU,QAAQ;IAClB,SAAS,QAAQ;IACjB,UAAU,UAAU;IACpB,UAAU,UAAU;IACpB,UAAU,UAAU;CACrB;AAED,oBAAY,gBAAgB;IAC1B,eAAe,qBAAqB;IACpC,eAAe,qBAAqB;CACrC;AAED,oBAAY,gBAAgB;IAC1B,OAAO,MAAM;IACb,QAAQ,QAAQ;IAChB,OAAO,QAAQ;CAChB;AAED,oBAAY,aAAa;IACvB,gBAAgB,SAAS;IACzB,gBAAgB,UAAU;IAC1B,gBAAgB,aAAa;IAC7B,iBAAiB,YAAY;CAC9B;AAED,oBAAY,YAAY;IACtB,UAAU,cAAc;IACxB,UAAU,cAAc;CACzB;AAED,oBAAY,WAAW;IACrB,cAAc,qBAAqB;CACpC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,EAAE,6BAA6B,CAAA;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"upwork-com.types.d.ts","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,6BAA6B,EAAC,MAAM,sCAAsC,CAAC;AAEnF,oBAAY,aAAa;IACvB,SAAS,eAAe;CACzB;AAED,oBAAY,cAAc;IACxB,MAAM,YAAY;CACnB;AAED,oBAAY,cAAc;IACxB,UAAU,MAAM;IAChB,YAAY,MAAM;IAClB,MAAM,MAAM;CACb;AAED,oBAAY,OAAO;IACjB,MAAM,WAAW;IACjB,UAAU,gBAAgB;CAC3B;AAED,oBAAY,eAAe;IACzB,WAAW,WAAW;IACtB,YAAY,eAAe;IAC3B,aAAa,gBAAgB;IAC7B,cAAc,iBAAiB;IAC/B,eAAe,aAAa;CAC7B;AAED,oBAAY,aAAa;IACvB,UAAU,QAAQ;IAClB,SAAS,QAAQ;IACjB,UAAU,UAAU;IACpB,UAAU,UAAU;IACpB,UAAU,UAAU;CACrB;AAED,oBAAY,gBAAgB;IAC1B,eAAe,qBAAqB;IACpC,eAAe,qBAAqB;CACrC;AAED,oBAAY,gBAAgB;IAC1B,OAAO,MAAM;IACb,QAAQ,QAAQ;IAChB,OAAO,QAAQ;CAChB;AAED,oBAAY,aAAa;IACvB,gBAAgB,SAAS;IACzB,gBAAgB,UAAU;IAC1B,gBAAgB,aAAa;IAC7B,iBAAiB,YAAY;CAC9B;AAED,oBAAY,YAAY;IACtB,UAAU,cAAc;IACxB,UAAU,cAAc;CACzB;AAED,oBAAY,WAAW;IACrB,cAAc,qBAAqB;CACpC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,EAAE,6BAA6B,CAAA;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epsilon-asi/actors",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "description": "A TypeScript Puppeteer actor framework using existing Chrome profiles and ghost-cursor.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,7 +1,12 @@
1
1
  import {defineLoginFlow} from '../../auth/LoginFlow.types.js';
2
2
  import {defineActor} from '../../core/defineActor.js';
3
3
  import {upworkComSelectors} from './upwork-com.selectors.js';
4
- import type {UpworkApplyToJobInput, UpworkApplyToJobResult, UpworkJobSearchFields} from './upwork-com.types.js';
4
+ import {
5
+ UpworkApplyToJobInput,
6
+ UpworkApplyToJobResult,
7
+ UpworkJobSearchFields,
8
+ UpworkJobSelector
9
+ } from './upwork-com.types.js';
5
10
  import {parseRate} from "./upwork-com.util.js";
6
11
  import {ScrapeDashboardInput} from "../example/index.js";
7
12
  import {parseUpworkSearchResults, UpworkJobListing} from "./util/scrapeJobListing.js";
@@ -11,6 +16,7 @@ import {
11
16
  parseUpworkProposalQuestions, UpworkProposalAnswers, UpworkProposalQuestionKind,
12
17
  UpworkProposalQuestions
13
18
  } from "./util/parseJobApplicationDetails.js";
19
+ import {parseUpworkJobDetailsPage, UpworkJobDetails} from "./util/parseJobDetails.js";
14
20
 
15
21
  export const upworkComActor = defineActor({
16
22
  id: 'upwork-com',
@@ -74,13 +80,21 @@ export const upworkComActor = defineActor({
74
80
 
75
81
  return await parseUpworkSearchResults(context.session.page as Page);
76
82
  },
77
- scrapeJobs: async (context, input: ScrapeDashboardInput = {}): Promise<any> => {
78
- await parseUpworkSearchResults(context.session.page as Page)
79
- },
80
- getJobQuestions: async (_context, input: UpworkApplyToJobInput): Promise<UpworkProposalQuestions> => {
83
+ getJob: async (_context, input: UpworkJobSelector): Promise<{
84
+ jobDetails: UpworkJobDetails,
85
+ jobQuestions: UpworkProposalQuestions
86
+ }> => {
87
+ await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/`);
88
+
89
+ const jobDetails = parseUpworkJobDetailsPage(await _context.session.page.content());
90
+
81
91
  await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/apply/`);
82
92
 
83
- return await parseUpworkProposalQuestions(_context.session.page as Page);
93
+ const jobQuestions = await parseUpworkProposalQuestions(_context.session.page as Page);
94
+ return {
95
+ jobDetails,
96
+ jobQuestions
97
+ }
84
98
  },
85
99
  applyToJob: async (_context, input: UpworkApplyToJobInput & UpworkProposalAnswers): Promise<UpworkApplyToJobResult> => {
86
100
  await _context.cursor.scrollIntoView(`[data-ev-job-uid="${input.jobId}"]`);
@@ -93,6 +93,10 @@ export interface UpworkJobSearchResult {
93
93
  filters: UpworkJobSearchFields;
94
94
  }
95
95
 
96
+ export interface UpworkJobSelector {
97
+ jobId: string;
98
+ }
99
+
96
100
  export interface UpworkApplyToJobInput {
97
101
  jobId: string;
98
102
  rate: number | string;