callman-core 1.1.0 → 1.2.0

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 (74) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/script/executor.d.ts.map +1 -1
  6. package/dist/script/executor.js +118 -9
  7. package/dist/script/executor.js.map +1 -1
  8. package/dist/script/features/counter.d.ts +11 -0
  9. package/dist/script/features/counter.d.ts.map +1 -0
  10. package/dist/script/features/counter.js +43 -0
  11. package/dist/script/features/counter.js.map +1 -0
  12. package/dist/script/features/cryptojs.d.ts +13 -0
  13. package/dist/script/features/cryptojs.d.ts.map +1 -0
  14. package/dist/script/features/cryptojs.js +63 -0
  15. package/dist/script/features/cryptojs.js.map +1 -0
  16. package/dist/script/features/db.d.ts +36 -0
  17. package/dist/script/features/db.d.ts.map +1 -0
  18. package/dist/script/features/db.js +165 -0
  19. package/dist/script/features/db.js.map +1 -0
  20. package/dist/script/features/feature-policy.d.ts +8 -0
  21. package/dist/script/features/feature-policy.d.ts.map +1 -0
  22. package/dist/script/features/feature-policy.js +88 -0
  23. package/dist/script/features/feature-policy.js.map +1 -0
  24. package/dist/script/features/kafka.d.ts +11 -0
  25. package/dist/script/features/kafka.d.ts.map +1 -0
  26. package/dist/script/features/kafka.js +71 -0
  27. package/dist/script/features/kafka.js.map +1 -0
  28. package/dist/script/features/random.d.ts +13 -0
  29. package/dist/script/features/random.d.ts.map +1 -0
  30. package/dist/script/features/random.js +111 -0
  31. package/dist/script/features/random.js.map +1 -0
  32. package/dist/script/features/redis.d.ts +10 -0
  33. package/dist/script/features/redis.d.ts.map +1 -0
  34. package/dist/script/features/redis.js +22 -0
  35. package/dist/script/features/redis.js.map +1 -0
  36. package/dist/script/features/tests.d.ts +7 -1
  37. package/dist/script/features/tests.d.ts.map +1 -1
  38. package/dist/script/features/tests.js +97 -12
  39. package/dist/script/features/tests.js.map +1 -1
  40. package/dist/script/features/variables.d.ts +6 -0
  41. package/dist/script/features/variables.d.ts.map +1 -0
  42. package/dist/script/features/variables.js +25 -0
  43. package/dist/script/features/variables.js.map +1 -0
  44. package/dist/script/scope.d.ts +7 -0
  45. package/dist/script/scope.d.ts.map +1 -1
  46. package/dist/script/scope.js +21 -0
  47. package/dist/script/scope.js.map +1 -1
  48. package/dist/script/types.d.ts +73 -0
  49. package/dist/script/types.d.ts.map +1 -1
  50. package/dist-cjs/index.js +7 -1
  51. package/dist-cjs/index.js.map +1 -1
  52. package/dist-cjs/script/executor.js +118 -9
  53. package/dist-cjs/script/executor.js.map +1 -1
  54. package/dist-cjs/script/features/counter.js +47 -0
  55. package/dist-cjs/script/features/counter.js.map +1 -0
  56. package/dist-cjs/script/features/cryptojs.js +67 -0
  57. package/dist-cjs/script/features/cryptojs.js.map +1 -0
  58. package/dist-cjs/script/features/db.js +169 -0
  59. package/dist-cjs/script/features/db.js.map +1 -0
  60. package/dist-cjs/script/features/feature-policy.js +94 -0
  61. package/dist-cjs/script/features/feature-policy.js.map +1 -0
  62. package/dist-cjs/script/features/kafka.js +77 -0
  63. package/dist-cjs/script/features/kafka.js.map +1 -0
  64. package/dist-cjs/script/features/random.js +115 -0
  65. package/dist-cjs/script/features/random.js.map +1 -0
  66. package/dist-cjs/script/features/redis.js +26 -0
  67. package/dist-cjs/script/features/redis.js.map +1 -0
  68. package/dist-cjs/script/features/tests.js +97 -12
  69. package/dist-cjs/script/features/tests.js.map +1 -1
  70. package/dist-cjs/script/features/variables.js +29 -0
  71. package/dist-cjs/script/features/variables.js.map +1 -0
  72. package/dist-cjs/script/scope.js +21 -0
  73. package/dist-cjs/script/scope.js.map +1 -1
  74. package/package.json +1 -1
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // pm.redis — collection-runner Redis data view (read-only).
3
+ //
4
+ // Values come from the host (pre-request Redis command results, populated
5
+ // outside the sandbox). The script can fetch by key via `pm.redis.get(key)`
6
+ // and inspect raw command results via `pm.redis.results.{pre, post}`.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.buildRedisApi = void 0;
9
+ const buildRedisApi = (redis) => {
10
+ const values = redis?.values ?? {};
11
+ const pre = Array.isArray(redis?.results?.pre) ? [...redis.results.pre] : [];
12
+ const post = Array.isArray(redis?.results?.post) ? [...redis.results.post] : [];
13
+ return {
14
+ get: (key) => {
15
+ const normalizedKey = String(key ?? "").trim();
16
+ if (!normalizedKey) {
17
+ return null;
18
+ }
19
+ const value = values[normalizedKey];
20
+ return value === undefined ? null : value;
21
+ },
22
+ results: { pre, post },
23
+ };
24
+ };
25
+ exports.buildRedisApi = buildRedisApi;
26
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/script/features/redis.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,sEAAsE;;;AAS/D,MAAM,aAAa,GAAG,CAAC,KAA+C,EAAY,EAAE;IACzF,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhF,OAAO;QACL,GAAG,EAAE,CAAC,GAAY,EAAW,EAAE;YAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAI,MAAkC,CAAC,aAAa,CAAC,CAAC;YACjE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB"}
@@ -2,11 +2,20 @@
2
2
  // pm.test collector — runs each callback as a fire-and-forget Promise that
3
3
  // resolves to PASS/FAIL/SKIP and surfaces the result via `flush()`.
4
4
  //
5
- // The collector is shared by the script's `pm.test` and the script-level
6
- // SKIP path. Errors thrown synchronously inside the callback or rejected
7
- // from an async callback land in the FAIL branch with the error message.
5
+ // Two collection-runner extensions:
6
+ // 1. selectedTestNames when present, only tests whose name appears in
7
+ // the set actually execute. Used for kafka-deferred re-runs where the
8
+ // caller wants to retry only previously-pending tests.
9
+ // 2. allowDeferredKafkaTests — when true, a thrown
10
+ // PendingKafkaDependencyError is caught and routed to deferredTestNames
11
+ // (instead of being recorded as a FAIL). The caller re-invokes the
12
+ // script later with kafka data populated.
13
+ // 3. DisabledFeatureDependencyError is recognized regardless and produces
14
+ // a SKIP test result with a descriptive error message.
8
15
  Object.defineProperty(exports, "__esModule", { value: true });
9
16
  exports.buildTestCollector = void 0;
17
+ const feature_policy_js_1 = require("./feature-policy.js");
18
+ const kafka_js_1 = require("./kafka.js");
10
19
  // Errors thrown inside the vm context cross a realm boundary, which means
11
20
  // `error instanceof Error` from the host's perspective is FALSE even when
12
21
  // the value has a real .message property. Read the message structurally
@@ -23,44 +32,120 @@ const extractErrorMessage = (error) => {
23
32
  }
24
33
  return String(error);
25
34
  };
35
+ // Cross-realm error name extraction — used to recognize symbolically named
36
+ // errors like PendingKafkaDependencyError that may arrive as cross-realm
37
+ // values failing instanceof checks.
38
+ const extractErrorName = (error) => {
39
+ if (error instanceof Error) {
40
+ return error.name;
41
+ }
42
+ if (error &&
43
+ typeof error === "object" &&
44
+ "name" in error &&
45
+ typeof error.name === "string") {
46
+ return error.name;
47
+ }
48
+ return "";
49
+ };
50
+ const isPendingKafkaError = (error) => error instanceof kafka_js_1.PendingKafkaDependencyError ||
51
+ extractErrorName(error) === "PendingKafkaDependencyError";
52
+ const isDisabledFeatureError = (error) => {
53
+ if (error instanceof feature_policy_js_1.DisabledFeatureDependencyError) {
54
+ return { feature: error.feature };
55
+ }
56
+ if (extractErrorName(error) === "DisabledFeatureDependencyError") {
57
+ const feature = error.feature;
58
+ if (feature === "database" || feature === "kafka") {
59
+ return { feature };
60
+ }
61
+ return { feature: "database" };
62
+ }
63
+ return null;
64
+ };
26
65
  const normalizeName = (name) => {
27
66
  const trimmed = String(name ?? "").trim();
28
67
  return trimmed || "Unnamed test";
29
68
  };
30
- const buildTestCollector = (_stage) => {
31
- const testResults = [];
69
+ const buildTestCollector = (_stage, options = {}) => {
70
+ const orderedResults = [];
71
+ const finalResults = [];
72
+ const deferredTestNames = [];
32
73
  const pending = [];
74
+ const selected = options.selectedTestNames ? new Set(options.selectedTestNames) : null;
75
+ let activeCallbackCount = 0;
33
76
  const test = (name, fn) => {
34
77
  const normalizedName = normalizeName(name);
78
+ if (selected && !selected.has(normalizedName)) {
79
+ return Promise.resolve();
80
+ }
81
+ const resultIndex = orderedResults.push(null) - 1;
35
82
  const task = Promise.resolve()
36
83
  .then(async () => {
37
84
  if (typeof fn !== "function") {
38
85
  throw new Error("pm.test requires a callback function");
39
86
  }
40
- await fn();
41
- testResults.push({ name: normalizedName, status: "PASS" });
87
+ activeCallbackCount += 1;
88
+ try {
89
+ await fn();
90
+ }
91
+ finally {
92
+ activeCallbackCount = Math.max(0, activeCallbackCount - 1);
93
+ }
94
+ orderedResults[resultIndex] = {
95
+ name: normalizedName,
96
+ status: "PASS",
97
+ };
42
98
  })
43
99
  .catch((error) => {
44
- testResults.push({
100
+ const disabled = isDisabledFeatureError(error);
101
+ if (disabled) {
102
+ orderedResults[resultIndex] = {
103
+ name: normalizedName,
104
+ status: "SKIP",
105
+ error: disabled.feature === "database"
106
+ ? "Skipped because database execution is disabled for this collection runner."
107
+ : "Skipped because Kafka execution is disabled for this collection runner.",
108
+ };
109
+ return;
110
+ }
111
+ if (options.allowDeferredKafkaTests && isPendingKafkaError(error)) {
112
+ orderedResults[resultIndex] = null;
113
+ deferredTestNames.push(normalizedName);
114
+ return;
115
+ }
116
+ orderedResults[resultIndex] = {
45
117
  name: normalizedName,
46
118
  status: "FAIL",
47
119
  error: extractErrorMessage(error),
48
- });
120
+ };
49
121
  });
50
122
  pending.push(task);
51
123
  return task;
52
124
  };
53
125
  const skip = (name, reason) => {
54
- testResults.push({
126
+ const result = {
55
127
  name: normalizeName(name),
56
128
  status: "SKIP",
57
129
  ...(reason ? { error: reason } : {}),
58
- });
130
+ };
131
+ orderedResults.push(result);
59
132
  };
60
133
  const flush = async () => {
61
134
  await Promise.allSettled(pending);
135
+ for (const entry of orderedResults) {
136
+ if (entry !== null) {
137
+ finalResults.push(entry);
138
+ }
139
+ }
140
+ };
141
+ return {
142
+ test,
143
+ skip,
144
+ testResults: finalResults,
145
+ deferredTestNames,
146
+ flush,
147
+ isInsideCallback: () => activeCallbackCount > 0,
62
148
  };
63
- return { test, skip, testResults, flush };
64
149
  };
65
150
  exports.buildTestCollector = buildTestCollector;
66
151
  //# sourceMappingURL=tests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tests.js","sourceRoot":"","sources":["../../../src/script/features/tests.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,yEAAyE;;;AAIzE,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,gEAAgE;AAChE,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAU,EAAE;IACrD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IACE,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,SAAS,IAAI,KAAK;QAClB,OAAQ,KAA8B,CAAC,OAAO,KAAK,QAAQ,EAC3D,CAAC;QACD,OAAQ,KAA6B,CAAC,OAAO,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AAYF,MAAM,aAAa,GAAG,CAAC,IAAa,EAAU,EAAE;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,OAAO,OAAO,IAAI,cAAc,CAAC;AACnC,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAAC,MAAmB,EAAiB,EAAE;IACvE,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,CACX,IAAY,EACZ,EAAoD,EACrC,EAAE;QACjB,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aAC3B,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,EAAE,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,MAAe,EAAQ,EAAE;QACnD,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC,CAAC;AAzCW,QAAA,kBAAkB,sBAyC7B"}
1
+ {"version":3,"file":"tests.js","sourceRoot":"","sources":["../../../src/script/features/tests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ // pm.variables — collection-runner template resolver.
3
+ //
4
+ // Bridges the script sandbox to callman-core's existing template resolver
5
+ // (callman_core/src/variables/resolver.ts). Merges env + globals into a
6
+ // single lookup table so user scripts can call:
7
+ // pm.variables.resolve("Hello {{name}}")
8
+ // regardless of which scope `name` lives in.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.buildVariablesApi = void 0;
11
+ const resolver_js_1 = require("../../variables/resolver.js");
12
+ const stringifyInput = (value) => {
13
+ if (value === undefined || value === null) {
14
+ return "";
15
+ }
16
+ return String(value);
17
+ };
18
+ const buildVariablesApi = (environment, globals) => {
19
+ // Merge with environment taking precedence over globals (matches the
20
+ // electron runtime.ts behavior where env was spread after globals).
21
+ const mergedScope = { ...globals, ...environment };
22
+ const resolve = (input) => (0, resolver_js_1.resolveTemplate)(stringifyInput(input), { env: mergedScope });
23
+ return {
24
+ resolve,
25
+ replaceIn: resolve,
26
+ };
27
+ };
28
+ exports.buildVariablesApi = buildVariablesApi;
29
+ //# sourceMappingURL=variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/script/features/variables.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,gDAAgD;AAChD,2CAA2C;AAC3C,6CAA6C;;;AAE7C,6DAA8D;AAO9D,MAAM,cAAc,GAAG,CAAC,KAAc,EAAU,EAAE;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAC/B,WAAmC,EACnC,OAA+B,EACjB,EAAE;IAChB,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,WAAW,GAA2B,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;IAE3E,MAAM,OAAO,GAAG,CAAC,KAAc,EAAU,EAAE,CACzC,IAAA,6BAAe,EAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAE/D,OAAO;QACL,OAAO;QACP,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,iBAAiB,qBAe5B"}
@@ -123,6 +123,27 @@ const buildScopeTarget = (bindings) => {
123
123
  if (bindings.console !== undefined) {
124
124
  target.console = bindings.console;
125
125
  }
126
+ if (bindings.db !== undefined) {
127
+ target.db = bindings.db;
128
+ }
129
+ if (bindings.kafka !== undefined) {
130
+ target.kafka = bindings.kafka;
131
+ }
132
+ if (bindings.redis !== undefined) {
133
+ target.redis = bindings.redis;
134
+ }
135
+ if (bindings.random !== undefined) {
136
+ target.random = bindings.random;
137
+ }
138
+ if (bindings.counter !== undefined) {
139
+ target.counter = bindings.counter;
140
+ }
141
+ if (bindings.variables !== undefined) {
142
+ target.variables = bindings.variables;
143
+ }
144
+ if (bindings.CryptoJS !== undefined) {
145
+ target.CryptoJS = bindings.CryptoJS;
146
+ }
126
147
  if (bindings.labelGlobals) {
127
148
  for (const [name, value] of Object.entries(bindings.labelGlobals)) {
128
149
  target[name] = value;
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,yBAAyB;AACzB,EAAE;AACF,0EAA0E;AAC1E,uEAAuE;;;AAEvE,MAAM,eAAe,GAA4B;IAC/C,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,OAAO;IACP,KAAK;IACL,SAAS;IACT,cAAc;IACd,WAAW;IACX,UAAU;IACV,SAAS;IACT,QAAQ;IACR,cAAc;IACd,GAAG;IACH,GAAG;IACH,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,GAAG;IACH,eAAe;IACf,WAAW;IACX,WAAW;IACX,QAAQ;IACR,UAAU;IACV,kBAAkB;IAClB,kBAAkB;IAClB,QAAQ;IACR,KAAK;IACL,sEAAsE;IACtE,SAAS;IACT,GAAG;IACH,QAAQ;CACT,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,MAAM;IACN,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,aAAa;IACb,eAAe;IACf,OAAO;IACP,gBAAgB;IAChB,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;IACX,eAAe;CACP,CAAC;AAEX,wEAAwE;AACxE,0EAA0E;AAC1E,uEAAuE;AACvE,+BAA+B;AAClB,QAAA,oBAAoB,GAAG,IAAI,GAAG,CAAS;IAClD,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IAC/B,GAAG,eAAe;IAClB,IAAI;IACJ,KAAK;IACL,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,QAAQ;IACR,UAAU;IACV,0EAA0E;IAC1E,iEAAiE;IACjE,IAAI;IACJ,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEU,QAAA,8BAA8B,GAAG,oBAAoB,CAAC;AAgC5D,MAAM,gBAAgB,GAAG,CAAC,QAAuB,EAA2B,EAAE;IACnF,MAAM,MAAM,GAA4B;QACtC,GAAG,eAAe;QAClB,EAAE,EAAE,QAAQ,CAAC,EAAE;KAChB,CAAC;IAEF,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA5DW,QAAA,gBAAgB,oBA4D3B;AAEK,MAAM,gBAAgB,GAAG,CAAC,MAA+B,EAA2B,EAAE,CAC3F,IAAI,KAAK,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI;IACf,GAAG,CAAC,WAAW,EAAE,QAAQ;QACvB,IAAI,QAAQ,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,WAAW,CAAC,QAAoC,CAAC,CAAC;IAC3D,CAAC;IACD,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK;QAC9B,WAAW,CAAC,QAAoC,CAAC,GAAG,KAAK,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,cAAc,CAAC,WAAW,EAAE,QAAQ;QAClC,OAAO,WAAW,CAAC,QAAoC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAjBQ,QAAA,gBAAgB,oBAiBxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "callman-core",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "main": "dist-cjs/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",