apify-schema-tools 2.0.1 → 2.0.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.3
4
+
5
+ ### Fixed
6
+
7
+ - Input utils now include the correct DefaultInputs interface.
8
+ - Dataset path in `actor.json` now is relative to the `actor.json`'s dirname.
9
+
10
+ ## 2.0.2
11
+
12
+ ### Fixed
13
+
14
+ - Input utils now satisfy TypeScript constraints.
15
+
16
+ ### Removed
17
+
18
+ - The constant
19
+
3
20
  ## 2.0.1
4
21
 
5
22
  ### Added
@@ -2,7 +2,7 @@
2
2
  import { existsSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { ArgumentDefaultsHelpFormatter, ArgumentParser } from "argparse";
5
- import { ACTOR_CONFIG_PATH, DATASET_SCHEMA_FIELD, filterValidInputSchemaProperties, generateInputDefaultsTSFileContent, } from "./apify.js";
5
+ import { ACTOR_CONFIG_PATH, DATASET_SCHEMA_FIELD, filterValidInputSchemaProperties, generateInputDefaultsTSFileContent, getPathRelativeToActorConfig, } from "./apify.js";
6
6
  import { addCommonCLIArgs, parseConfigurationFromFileOrDefault, writeConfigurationToPackageJson, } from "./configuration.js";
7
7
  import { readFile, writeFile } from "./filesystem.js";
8
8
  import { compareSchemas, mergeObjectSchemas, readJsonSchema, readJsonSchemaField, writeJsonSchema, writeSchemaToField, } from "./json-schemas.js";
@@ -66,7 +66,13 @@ function init(args) {
66
66
  }
67
67
  const actorConfig = JSON.parse(readFile(ACTOR_CONFIG_PATH));
68
68
  if (actorConfig.storages?.dataset !== args.dataset_schema) {
69
- writeFile(ACTOR_CONFIG_PATH, JSON.stringify({ ...actorConfig, storages: { ...actorConfig.storages, dataset: args.dataset_schema } }, null, 4));
69
+ writeFile(ACTOR_CONFIG_PATH, JSON.stringify({
70
+ ...actorConfig,
71
+ storages: {
72
+ ...actorConfig.storages,
73
+ dataset: getPathRelativeToActorConfig(args.dataset_schema),
74
+ },
75
+ }, null, 4));
70
76
  console.log(`Updated ${ACTOR_CONFIG_PATH} to use the dataset schema at ${args.dataset_schema}`);
71
77
  }
72
78
  if (!existsSync(args.dataset_schema)) {
@@ -1 +1 @@
1
- {"version":3,"file":"apify-schema-tools.js","sourceRoot":"","sources":["../src/apify-schema-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apify-schema-tools.js","sourceRoot":"","sources":["../src/apify-schema-tools.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAwB,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,gCAAgC,EAChC,kCAAkC,EAClC,4BAA4B,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAEN,gBAAgB,EAChB,mCAAmC,EACnC,+BAA+B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,2BAA2B,EAC3B,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,aAAa,GAAG,mCAAmC,EAAE,CAAC;AAE5D,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC;IACrC,WAAW,EAAE,qGAAqG;IAClH,eAAe,EAAE,6BAA6B;CAC9C,CAAC,CAAC;AAEH,mFAAmF;AAEnF,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;AAE/C,MAAM,gBAAgB,GAAG,cAAuB,CAAC;AACjD,MAAM,kBAAkB,GAAoB;IAC3C,IAAI,EAAE,+DAA+D;IACrE,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,KAAK;CACd,CAAC;AASF,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;IAChD,IAAI,EAAE,kEAAkE;IACxE,eAAe,EAAE,6BAA6B;CAC9C,CAAC,CAAC;AACH,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC5C,UAAU,CAAC,YAAY,CAAC,kBAAkB,EAAE;IAC3C,IAAI,EAAE,oDAAoD;IAC1D,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,KAAK;CACd,CAAC,CAAC;AACH,UAAU,CAAC,YAAY,CAAC,oBAAoB,EAAE;IAC7C,IAAI,EAAE,kFAAkF;IACxF,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,KAAK;CACd,CAAC,CAAC;AAEH,SAAS,IAAI,CAAC,IAAc;IAC3B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAEzE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,+BAA+B,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAChF,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtD,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACzE,CAAC;IACF,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,sCAAsC,iBAAiB,sBAAsB,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5D,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3D,SAAS,CACR,iBAAiB,EACjB,IAAI,CAAC,SAAS,CACb;gBACC,GAAG,WAAW;gBACd,QAAQ,EAAE;oBACT,GAAG,WAAW,CAAC,QAAQ;oBACvB,OAAO,EAAE,4BAA4B,CAAC,IAAI,CAAC,cAAc,CAAC;iBAC1D;aACD,EACD,IAAI,EACJ,CAAC,CACD,CACD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,WAAW,iBAAiB,iCAAiC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,SAAS,CACR,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,CACb;gBACC,kBAAkB,EAAE,CAAC;gBACrB,CAAC,oBAAoB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;aAC1D,EACD,IAAI,EACJ,CAAC,CACD,CACD,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;QACzF,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACtD,CAAC;AACF,CAAC;AACD,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AASxC,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;IAChD,IAAI,EAAE,qEAAqE;IAC3E,eAAe,EAAE,6BAA6B;CAC9C,CAAC,CAAC;AACH,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC5C,UAAU,CAAC,YAAY,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AAC9D,UAAU,CAAC,YAAY,CAAC,uBAAuB,EAAE;IAChD,IAAI,EACH,4DAA4D,GAAG,mDAAmD;IACnH,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM;CACf,CAAC,CAAC;AAEH,SAAS,IAAI,CAAC,IAAc;IAC3B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAElC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,WAAW,GAAG,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChG,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,gCAAgC,CAAC,WAAW,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,mBAAmB,CAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EACpC,4BAA4B,CAAC,OAAO,EAAE,+BAA+B,CAAC,WAAW,CAAC,CAAC,CACnF,CAAC;YACF,IAAI,IAAI,CAAC,mBAAmB,KAAK,MAAM,EAAE,CAAC;gBACzC,mBAAmB,CAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAC1C,kCAAkC,CAAC,WAAW,CAAC,CAC/C,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,IAAI,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,aAAa,GAAG,kBAAkB,CAAC,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,mBAAmB,CAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EACtC,4BAA4B,CAAC,aAAa,EAAE,+BAA+B,CAAC,aAAa,CAAC,CAAC,CAC3F,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC;AACD,UAAU,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AASxC,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,gGAAgG;IACtG,eAAe,EAAE,6BAA6B;CAC9C,CAAC,CAAC;AACH,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAC7C,WAAW,CAAC,YAAY,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AAC/D,WAAW,CAAC,YAAY,CAAC,uBAAuB,EAAE;IACjD,IAAI,EAAE,mEAAmE;IACzE,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,KAAK;CACd,CAAC,CAAC;AAEH,SAAS,KAAK,CAAC,IAAe;IAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,IAAI,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,iBAAiB,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,oBAAoB,GAAG,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,MAAM,qBAAqB,GAAG,cAAc,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChH,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;gBACpG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;YACtE,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1F,MAAM,sBAAsB,GAAG,+BAA+B,CAAC,iBAAiB,CAAC,CAAC;YAClF,MAAM,iBAAiB,GAAG,2BAA2B,CACpD,sBAAsB,EACtB,gBAAgB,EAChB,IAAI,CAAC,mBAAmB,CACxB,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CACZ,0GAA0G,CAC1G,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;IACF,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,IAAI,mBAAmB,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,mBAAmB,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;YAC3F,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,yBAAyB,oBAAoB,kBAAkB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;gBACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,uBAAuB,GAAG,cAAc,CAC7C,mBAAmB,EACnB,mBAAmB,EACnB,IAAI,CAAC,mBAAmB,CACxB,CAAC;YACF,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;gBACxG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;YAC1E,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9F,MAAM,wBAAwB,GAAG,+BAA+B,CAAC,mBAAmB,CAAC,CAAC;YACtF,MAAM,mBAAmB,GAAG,2BAA2B,CACtD,wBAAwB,EACxB,kBAAkB,EAClB,IAAI,CAAC,mBAAmB,CACxB,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CACZ,4GAA4G,CAC5G,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC9B,CAAC;AACD,WAAW,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAE1C,oBAAoB;AAEpB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;AAC3C,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC"}
package/dist/apify.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { type ObjectSchema } from "./json-schemas.js";
2
2
  export declare const ACTOR_CONFIG_PATH = ".actor/actor.json";
3
+ export declare function getPathRelativeToActorConfig(path: string): string;
3
4
  export declare function filterValidInputSchemaProperties(schema: ObjectSchema): ObjectSchema;
4
5
  /**
5
6
  * Generates the content of a TypeScript file that exports a function to fill
@@ -1 +1 @@
1
- {"version":3,"file":"apify.d.ts","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA+B,MAAM,mBAAmB,CAAC;AAGnF,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AA+CrD,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAQnF;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,YAAY,UAwD3E;AAED,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
1
+ {"version":3,"file":"apify.d.ts","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAA+B,MAAM,mBAAmB,CAAC;AAGnF,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE;AA+CD,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAQnF;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,YAAY,UAyE3E;AAED,eAAO,MAAM,oBAAoB,WAAW,CAAC"}
package/dist/apify.js CHANGED
@@ -1,6 +1,10 @@
1
+ import { dirname, relative } from "node:path";
1
2
  import { filterValidSchemaProperties } from "./json-schemas.js";
2
3
  import { jsonSchemaToTypeScriptInterface, serializeTypeScriptSchema } from "./typescript.js";
3
4
  export const ACTOR_CONFIG_PATH = ".actor/actor.json";
5
+ export function getPathRelativeToActorConfig(path) {
6
+ return `./${relative(dirname(ACTOR_CONFIG_PATH), path)}`;
7
+ }
4
8
  const VALID_INPUT_ROOT_KEYS = ["title", "description", "type", "schemaVersion", "properties", "required"];
5
9
  const VALID_INPUT_PROPERTY_KEYS = [
6
10
  "type",
@@ -57,16 +61,16 @@ export function generateInputDefaultsTSFileContent(inputSchema) {
57
61
  defaultValues[property] = definition.default;
58
62
  }
59
63
  }
60
- const tsInterfaceSchema = jsonSchemaToTypeScriptInterface(inputSchema);
61
- const optionalParamsWithDefaults = {
64
+ const tsInterface = jsonSchemaToTypeScriptInterface(inputSchema);
65
+ const defaultInterface = {
62
66
  isArray: false,
63
67
  isRequired: true,
64
68
  properties: {},
65
69
  };
66
70
  const requiredParamsWithoutDefaults = [];
67
- for (const [key, schema] of Object.entries(tsInterfaceSchema.properties)) {
68
- if (!schema.isRequired && key in defaultValues) {
69
- optionalParamsWithDefaults.properties[key] = {
71
+ for (const [key, schema] of Object.entries(tsInterface.properties)) {
72
+ if (key in defaultValues) {
73
+ defaultInterface.properties[key] = {
70
74
  ...schema,
71
75
  isRequired: true,
72
76
  };
@@ -75,31 +79,43 @@ export function generateInputDefaultsTSFileContent(inputSchema) {
75
79
  requiredParamsWithoutDefaults.push(key);
76
80
  }
77
81
  }
82
+ const areThereDefaults = Object.keys(defaultInterface.properties).length > 0;
78
83
  return `\
79
84
  import { Actor } from "apify";
80
85
  import type { Input } from "./input.js";
81
86
 
82
- export const DEFAULT_INPUT_VALUES = ${JSON.stringify(defaultValues, null, "\t")};
87
+ ${areThereDefaults
88
+ ? `\
89
+ interface DefaultInputs ${serializeTypeScriptSchema(defaultInterface)};
90
+
91
+ export type InputWithDefaults = Input & DefaultInputs;
83
92
 
84
- export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ${JSON.stringify(requiredParamsWithoutDefaults, null, "\t")};
93
+ export const DEFAULT_INPUT_VALUES: DefaultInputs = ${JSON.stringify(defaultValues, null, "\t")};`
94
+ : `\
95
+ export type InputWithDefaults = Input;
85
96
 
86
- export type InputWithDefaults = Input & ${serializeTypeScriptSchema(optionalParamsWithDefaults)}
97
+ export const DEFAULT_INPUT_VALUES: Record<string, unknown> = {};`}
98
+
99
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ${JSON.stringify(requiredParamsWithoutDefaults, null, "\t")};
87
100
 
88
101
  export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
89
102
  if (Actor.isAtHome()) {
90
103
  // The platform is supposed to fill in the default values
91
104
  return input as InputWithDefaults;
92
- }
93
- ${requiredParamsWithoutDefaults.length > 0
94
- ? `\
105
+ }${requiredParamsWithoutDefaults.length > 0
106
+ ? `
95
107
  if (!input) {
96
108
  throw new Error(\`Input is required, because the following fields are required: $\{REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT.join(", ")\}\`);
97
109
  }`
98
110
  : ""}
111
+ ${areThereDefaults
112
+ ? `\
99
113
  return {
100
114
  ...DEFAULT_INPUT_VALUES,
101
115
  ...(input ?? {} as Input),
102
- };
116
+ };`
117
+ : `\
118
+ return input ?? {} as Input;`}
103
119
  }
104
120
  `;
105
121
  }
package/dist/apify.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apify.js","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apify.js","sourceRoot":"","sources":["../src/apify.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apify-schema-tools",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Apify schema managing tools.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -7,19 +7,13 @@
7
7
  import { Actor } from "apify";
8
8
  import type { Input } from "./input.js";
9
9
 
10
- export const DEFAULT_INPUT_VALUES = {
11
- startUrls: [],
12
- categories: [],
13
- maxPages: 10,
14
- proxy: {
15
- useApifyProxy: true,
16
- },
17
- debugMode: false,
18
- };
19
-
20
- export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
21
-
22
- export type InputWithDefaults = Input & {
10
+ interface DefaultInputs {
11
+ /**
12
+ * List of URLs to scrape
13
+ */
14
+ startUrls: {
15
+ url?: string;
16
+ }[];
23
17
  /**
24
18
  * List of categories to filter results
25
19
  */
@@ -41,8 +35,22 @@ export type InputWithDefaults = Input & {
41
35
  * Enable debug logging
42
36
  */
43
37
  debugMode: boolean;
38
+ }
39
+
40
+ export type InputWithDefaults = Input & DefaultInputs;
41
+
42
+ export const DEFAULT_INPUT_VALUES: DefaultInputs = {
43
+ startUrls: [],
44
+ categories: [],
45
+ maxPages: 10,
46
+ proxy: {
47
+ useApifyProxy: true,
48
+ },
49
+ debugMode: false,
44
50
  };
45
51
 
52
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
53
+
46
54
  export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
47
55
  if (Actor.isAtHome()) {
48
56
  // The platform is supposed to fill in the default values
@@ -7,20 +7,13 @@
7
7
  import { Actor } from "apify";
8
8
  import type { Input } from "./input.js";
9
9
 
10
- export const DEFAULT_INPUT_VALUES = {
11
- startUrls: [],
12
- categories: [],
13
- maxPages: 10,
14
- proxy: {
15
- useApifyProxy: true,
16
- },
17
- maxRetries: 3,
18
- debugMode: false,
19
- };
20
-
21
- export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
22
-
23
- export type InputWithDefaults = Input & {
10
+ interface DefaultInputs {
11
+ /**
12
+ * List of URLs to scrape
13
+ */
14
+ startUrls: {
15
+ url?: string;
16
+ }[];
24
17
  /**
25
18
  * List of categories to filter results
26
19
  */
@@ -47,8 +40,23 @@ export type InputWithDefaults = Input & {
47
40
  * Enable debug logging
48
41
  */
49
42
  debugMode: boolean;
43
+ }
44
+
45
+ export type InputWithDefaults = Input & DefaultInputs;
46
+
47
+ export const DEFAULT_INPUT_VALUES: DefaultInputs = {
48
+ startUrls: [],
49
+ categories: [],
50
+ maxPages: 10,
51
+ proxy: {
52
+ useApifyProxy: true,
53
+ },
54
+ maxRetries: 3,
55
+ debugMode: false,
50
56
  };
51
57
 
58
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
59
+
52
60
  export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
53
61
  if (Actor.isAtHome()) {
54
62
  // The platform is supposed to fill in the default values
@@ -7,19 +7,13 @@
7
7
  import { Actor } from "apify";
8
8
  import type { Input } from "./input.js";
9
9
 
10
- export const DEFAULT_INPUT_VALUES = {
11
- startUrls: [],
12
- maxPages: 10,
13
- proxy: {
14
- useApifyProxy: true,
15
- },
16
- maxRetries: 3,
17
- debugMode: false,
18
- };
19
-
20
- export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
21
-
22
- export type InputWithDefaults = Input & {
10
+ interface DefaultInputs {
11
+ /**
12
+ * List of URLs to scrape
13
+ */
14
+ startUrls: {
15
+ url?: string;
16
+ }[];
23
17
  /**
24
18
  * Maximum number of pages to scrape
25
19
  */
@@ -38,8 +32,22 @@ export type InputWithDefaults = Input & {
38
32
  * Enable debug logging
39
33
  */
40
34
  debugMode: boolean;
35
+ }
36
+
37
+ export type InputWithDefaults = Input & DefaultInputs;
38
+
39
+ export const DEFAULT_INPUT_VALUES: DefaultInputs = {
40
+ startUrls: [],
41
+ maxPages: 10,
42
+ proxy: {
43
+ useApifyProxy: true,
44
+ },
45
+ maxRetries: 3,
46
+ debugMode: false,
41
47
  };
42
48
 
49
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
50
+
43
51
  export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
44
52
  if (Actor.isAtHome()) {
45
53
  // The platform is supposed to fill in the default values
@@ -7,19 +7,13 @@
7
7
  import { Actor } from "apify";
8
8
  import type { Input } from "./input.js";
9
9
 
10
- export const DEFAULT_INPUT_VALUES = {
11
- startUrls: [],
12
- categories: [],
13
- maxPages: 10,
14
- proxy: {
15
- useApifyProxy: true,
16
- },
17
- debugMode: false,
18
- };
19
-
20
- export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
21
-
22
- export type InputWithDefaults = Input & {
10
+ interface DefaultInputs {
11
+ /**
12
+ * List of URLs to scrape
13
+ */
14
+ startUrls: {
15
+ url?: string;
16
+ }[];
23
17
  /**
24
18
  * List of categories to filter results
25
19
  */
@@ -41,8 +35,22 @@ export type InputWithDefaults = Input & {
41
35
  * Enable debug logging
42
36
  */
43
37
  debugMode: boolean;
38
+ }
39
+
40
+ export type InputWithDefaults = Input & DefaultInputs;
41
+
42
+ export const DEFAULT_INPUT_VALUES: DefaultInputs = {
43
+ startUrls: [],
44
+ categories: [],
45
+ maxPages: 10,
46
+ proxy: {
47
+ useApifyProxy: true,
48
+ },
49
+ debugMode: false,
44
50
  };
45
51
 
52
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ["searchTerm"];
53
+
46
54
  export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
47
55
  if (Actor.isAtHome()) {
48
56
  // The platform is supposed to fill in the default values
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { existsSync, read } from "node:fs";
3
+ import { existsSync } from "node:fs";
4
4
  import { join } from "node:path";
5
5
  import { ArgumentDefaultsHelpFormatter, type ArgumentOptions, ArgumentParser } from "argparse";
6
6
  import {
@@ -8,6 +8,7 @@ import {
8
8
  DATASET_SCHEMA_FIELD,
9
9
  filterValidInputSchemaProperties,
10
10
  generateInputDefaultsTSFileContent,
11
+ getPathRelativeToActorConfig,
11
12
  } from "./apify.js";
12
13
  import {
13
14
  type CommonCLIArgs,
@@ -113,7 +114,13 @@ function init(args: InitArgs) {
113
114
  writeFile(
114
115
  ACTOR_CONFIG_PATH,
115
116
  JSON.stringify(
116
- { ...actorConfig, storages: { ...actorConfig.storages, dataset: args.dataset_schema } },
117
+ {
118
+ ...actorConfig,
119
+ storages: {
120
+ ...actorConfig.storages,
121
+ dataset: getPathRelativeToActorConfig(args.dataset_schema),
122
+ },
123
+ },
117
124
  null,
118
125
  4,
119
126
  ),
package/src/apify.ts CHANGED
@@ -1,8 +1,13 @@
1
+ import { dirname, relative } from "node:path";
1
2
  import { type ObjectSchema, filterValidSchemaProperties } from "./json-schemas.js";
2
3
  import { type TypeScriptInterface, jsonSchemaToTypeScriptInterface, serializeTypeScriptSchema } from "./typescript.js";
3
4
 
4
5
  export const ACTOR_CONFIG_PATH = ".actor/actor.json";
5
6
 
7
+ export function getPathRelativeToActorConfig(path: string): string {
8
+ return `./${relative(dirname(ACTOR_CONFIG_PATH), path)}`;
9
+ }
10
+
6
11
  const VALID_INPUT_ROOT_KEYS = ["title", "description", "type", "schemaVersion", "properties", "required"];
7
12
 
8
13
  const VALID_INPUT_PROPERTY_KEYS = [
@@ -65,23 +70,23 @@ export function filterValidInputSchemaProperties(schema: ObjectSchema): ObjectSc
65
70
  */
66
71
  export function generateInputDefaultsTSFileContent(inputSchema: ObjectSchema) {
67
72
  const defaultValues: Record<string, unknown> = {};
68
-
69
73
  for (const [property, definition] of Object.entries(inputSchema.properties ?? {})) {
70
74
  if ("default" in definition) {
71
75
  defaultValues[property] = definition.default;
72
76
  }
73
77
  }
74
- const tsInterfaceSchema = jsonSchemaToTypeScriptInterface(inputSchema);
75
78
 
76
- const optionalParamsWithDefaults: TypeScriptInterface = {
79
+ const tsInterface = jsonSchemaToTypeScriptInterface(inputSchema);
80
+
81
+ const defaultInterface: TypeScriptInterface = {
77
82
  isArray: false,
78
83
  isRequired: true,
79
84
  properties: {},
80
85
  };
81
86
  const requiredParamsWithoutDefaults: string[] = [];
82
- for (const [key, schema] of Object.entries(tsInterfaceSchema.properties)) {
83
- if (!schema.isRequired && key in defaultValues) {
84
- optionalParamsWithDefaults.properties[key] = {
87
+ for (const [key, schema] of Object.entries(tsInterface.properties)) {
88
+ if (key in defaultValues) {
89
+ defaultInterface.properties[key] = {
85
90
  ...schema,
86
91
  isRequired: true,
87
92
  };
@@ -90,33 +95,50 @@ export function generateInputDefaultsTSFileContent(inputSchema: ObjectSchema) {
90
95
  }
91
96
  }
92
97
 
98
+ const areThereDefaults = Object.keys(defaultInterface.properties).length > 0;
99
+
93
100
  return `\
94
101
  import { Actor } from "apify";
95
102
  import type { Input } from "./input.js";
96
103
 
97
- export const DEFAULT_INPUT_VALUES = ${JSON.stringify(defaultValues, null, "\t")};
104
+ ${
105
+ areThereDefaults
106
+ ? `\
107
+ interface DefaultInputs ${serializeTypeScriptSchema(defaultInterface)};
98
108
 
99
- export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ${JSON.stringify(requiredParamsWithoutDefaults, null, "\t")};
109
+ export type InputWithDefaults = Input & DefaultInputs;
100
110
 
101
- export type InputWithDefaults = Input & ${serializeTypeScriptSchema(optionalParamsWithDefaults)}
111
+ export const DEFAULT_INPUT_VALUES: DefaultInputs = ${JSON.stringify(defaultValues, null, "\t")};`
112
+ : `\
113
+ export type InputWithDefaults = Input;
114
+
115
+ export const DEFAULT_INPUT_VALUES: Record<string, unknown> = {};`
116
+ }
117
+
118
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = ${JSON.stringify(requiredParamsWithoutDefaults, null, "\t")};
102
119
 
103
120
  export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
104
121
  if (Actor.isAtHome()) {
105
122
  // The platform is supposed to fill in the default values
106
123
  return input as InputWithDefaults;
107
- }
108
- ${
109
- requiredParamsWithoutDefaults.length > 0
110
- ? `\
124
+ }${
125
+ requiredParamsWithoutDefaults.length > 0
126
+ ? `
111
127
  if (!input) {
112
128
  throw new Error(\`Input is required, because the following fields are required: $\{REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT.join(", ")\}\`);
113
129
  }`
114
- : ""
115
- }
130
+ : ""
131
+ }
132
+ ${
133
+ areThereDefaults
134
+ ? `\
116
135
  return {
117
136
  ...DEFAULT_INPUT_VALUES,
118
137
  ...(input ?? {} as Input),
119
- };
138
+ };`
139
+ : `\
140
+ return input ?? {} as Input;`
141
+ }
120
142
  }
121
143
  `;
122
144
  }
@@ -131,7 +131,7 @@ describe("The apify-schema-tools cli", () => {
131
131
 
132
132
  // Check that actor config was updated
133
133
  const updatedActorConfig = JSON.parse(readFileSync(actorConfigPath, "utf8"));
134
- expect(updatedActorConfig.storages?.dataset).toBe(".actor/dataset_schema.json");
134
+ expect(updatedActorConfig.storages?.dataset).toBe("./dataset_schema.json");
135
135
 
136
136
  // Check that dataset schema file was created
137
137
  expect(existsSync(DATASET_SCHEMA_PATH)).toBe(true);
@@ -1,9 +1,11 @@
1
1
  import { describe, expect, it } from "vitest";
2
+
3
+ import { generateInputDefaultsTSFileContent } from "../src/apify.js";
2
4
  import type { ObjectSchema } from "../src/json-schemas";
3
5
 
4
6
  describe("Apify utilities", () => {
5
7
  describe("generateInputDefaultsTSFileContent", () => {
6
- it("should generate TypeScript content with default values", async () => {
8
+ it("should generate the correct content with default values", async () => {
7
9
  const inputSchema: ObjectSchema = {
8
10
  type: "object",
9
11
  properties: {
@@ -14,15 +16,77 @@ describe("Apify utilities", () => {
14
16
  required: ["name"],
15
17
  };
16
18
 
17
- const tsContent = await import("../src/apify.js").then((mod) =>
18
- mod.generateInputDefaultsTSFileContent(inputSchema),
19
+ const tsContent = generateInputDefaultsTSFileContent(inputSchema);
20
+
21
+ expect(tsContent).toEqual(
22
+ `import { Actor } from "apify";
23
+ import type { Input } from "./input.js";
24
+
25
+ interface DefaultInputs {
26
+ name: string;
27
+ age: number;
28
+ };
29
+
30
+ export type InputWithDefaults = Input & DefaultInputs;
31
+
32
+ export const DEFAULT_INPUT_VALUES: DefaultInputs = {
33
+ "name": "John Doe",
34
+ "age": 30
35
+ };
36
+
37
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = [];
38
+
39
+ export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
40
+ if (Actor.isAtHome()) {
41
+ // The platform is supposed to fill in the default values
42
+ return input as InputWithDefaults;
43
+ }
44
+ return {
45
+ ...DEFAULT_INPUT_VALUES,
46
+ ...(input ?? {} as Input),
47
+ };
48
+ }
49
+ `,
19
50
  );
51
+ });
52
+
53
+ it("should generate the correct content without default values", async () => {
54
+ const inputSchema: ObjectSchema = {
55
+ type: "object",
56
+ properties: {
57
+ name: { type: "string" },
58
+ age: { type: "number" },
59
+ email: { type: "string" },
60
+ },
61
+ required: ["name"],
62
+ };
63
+
64
+ const tsContent = generateInputDefaultsTSFileContent(inputSchema);
20
65
 
21
- expect(tsContent).toContain("export type InputWithDefaults = Input & {");
22
- expect(tsContent).toContain("export const DEFAULT_INPUT_VALUES = {");
23
- expect(tsContent).toContain('"name": "John Doe"');
24
- expect(tsContent).toContain('"age": 30');
25
- expect(tsContent).toContain("age: number;");
66
+ expect(tsContent).toEqual(
67
+ `import { Actor } from "apify";
68
+ import type { Input } from "./input.js";
69
+
70
+ export type InputWithDefaults = Input;
71
+
72
+ export const DEFAULT_INPUT_VALUES: Record<string, unknown> = {};
73
+
74
+ export const REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT = [
75
+ "name"
76
+ ];
77
+
78
+ export function getInputWithDefaultValues(input?: Input | null): InputWithDefaults {
79
+ if (Actor.isAtHome()) {
80
+ // The platform is supposed to fill in the default values
81
+ return input as InputWithDefaults;
82
+ }
83
+ if (!input) {
84
+ throw new Error(\`Input is required, because the following fields are required: $\{REQUIRED_INPUT_FIELDS_WITHOUT_DEFAULT.join(", ")\}\`);
85
+ }
86
+ return input ?? {} as Input;
87
+ }
88
+ `,
89
+ );
26
90
  });
27
91
  });
28
92
  });