hackmud-script-manager 0.20.4-67aeb81 → 0.20.4-698da0d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/bin/hsm.js +194 -247
- package/env.d.ts +174 -122
- package/generateTypeDeclaration.js +2 -1
- package/index.js +2 -1
- package/package.json +39 -39
- package/processScript/index.js +3 -3
- package/processScript/minify.js +11 -17
- package/processScript/postprocess.d.ts +1 -1
- package/processScript/postprocess.js +3 -3
- package/processScript/preprocess.js +5 -3
- package/processScript/transform.js +99 -95
- package/push.js +4 -4
- package/watch.js +9 -7
package/env.d.ts
CHANGED
@@ -3,13 +3,7 @@ type ScriptSuccess<T = object> = { ok: true } & T
|
|
3
3
|
type ScriptFailure = { ok: false, msg?: string }
|
4
4
|
type ScriptResponse<T = object> = ScriptSuccess<T> | ScriptFailure
|
5
5
|
type ErrorScripts = Record<string, () => ScriptFailure>
|
6
|
-
|
7
|
-
type AllOptional<T> = { [K in keyof T]-?: {} extends Pick<T, K> ? true : false }[keyof T]
|
8
|
-
|
9
|
-
type Scriptor<Args = unknown, Ret = unknown> = {
|
10
|
-
name: string
|
11
|
-
call: AllOptional<Args> extends true ? (args?: Args) => Ret : (args: Args) => Ret
|
12
|
-
}
|
6
|
+
type Scriptor<TArgs extends any[] = any[]> = { name: string, call: (...args: TArgs) => unknown }
|
13
7
|
|
14
8
|
type Subscripts = Record<string, Record<string, (...args: any) => any>> & {
|
15
9
|
accts: ErrorScripts
|
@@ -34,8 +28,8 @@ interface PlayerLowsec {}
|
|
34
28
|
interface PlayerNullsec {}
|
35
29
|
|
36
30
|
type UpgradeRarityString = "`0noob`" | "`1kiddie`" | "`2h4x0r`" | "`3h4rdc0r3`" | "`4|_|b3|2`" | "`531337`"
|
37
|
-
type UpgradeRarityNumber = 0 | 1 | 2 | 3 | 4 | 5
|
38
|
-
type UpgradeRarity = UpgradeRarityString | UpgradeRarityNumber
|
31
|
+
type UpgradeRarityNumber = 0 | 1 | 2 | 3 | 4 | 5
|
32
|
+
type UpgradeRarity = UpgradeRarityString | UpgradeRarityNumber
|
39
33
|
|
40
34
|
type UpgradeBase = {
|
41
35
|
name: string
|
@@ -51,10 +45,8 @@ type UpgradeBase = {
|
|
51
45
|
|
52
46
|
type Upgrade = UpgradeBase & Record<string, null | boolean | number | string>
|
53
47
|
|
54
|
-
type CliUpgrade = Omit<UpgradeBase, `rarity`> &
|
55
|
-
[
|
56
|
-
rarity: UpgradeRarityString
|
57
|
-
}
|
48
|
+
type CliUpgrade = Omit<UpgradeBase, `rarity`> &
|
49
|
+
{ [k: string]: null | boolean | number | string, rarity: UpgradeRarityString }
|
58
50
|
|
59
51
|
type UsersTopItem<R> = { rank: R, name: string, last_activity: string, balance: string }
|
60
52
|
type CorpsTopItem<R> = { rank: R, name: string, worth: string }
|
@@ -132,26 +124,25 @@ type Fullsec = Subscripts & PlayerFullsec & {
|
|
132
124
|
}
|
133
125
|
|
134
126
|
escrow: {
|
135
|
-
/** **FULLSEC** */ charge: (args: {
|
136
|
-
cost: number | string
|
137
|
-
is_unlim?: boolean
|
138
|
-
}) => null | ScriptFailure
|
139
|
-
|
127
|
+
/** **FULLSEC** */ charge: (args: { cost: number | string, is_unlim?: boolean }) => null | ScriptFailure
|
140
128
|
confirm: never
|
141
129
|
}
|
142
130
|
|
143
|
-
gui: {
|
144
|
-
chats: never
|
145
|
-
quiet: never
|
146
|
-
size: never
|
147
|
-
vfx: never
|
148
|
-
vol: never
|
149
|
-
}
|
131
|
+
gui: { chats: never, quiet: never, size: never, vfx: never, vol: never }
|
150
132
|
|
151
133
|
market: {
|
152
134
|
/** **FULLSEC** */ browse: {
|
153
135
|
(args:
|
154
|
-
Partial<{
|
136
|
+
Partial<{
|
137
|
+
seller: string | MongoQuerySelector<string>,
|
138
|
+
listed_before: number | MongoQuerySelector<number>,
|
139
|
+
listed_after: number,
|
140
|
+
cost: number | MongoQuerySelector<number> | string,
|
141
|
+
rarity: UpgradeRarityNumber | MongoQuerySelector<UpgradeRarityNumber>,
|
142
|
+
name: string | MongoQuerySelector<string>
|
143
|
+
} & Omit<{
|
144
|
+
[k in keyof CliUpgrade]: CliUpgrade[k] | MongoQuerySelector<CliUpgrade[k]>
|
145
|
+
}, "rarity">>
|
155
146
|
): { i: string, name: string, rarity: Upgrade["rarity"], cost: number }[] | ScriptFailure
|
156
147
|
|
157
148
|
<I extends string>(args: { i: I }): {
|
@@ -456,7 +447,10 @@ type Highsec = Fullsec & PlayerHighsec & {
|
|
456
447
|
/** **HIGHSEC**
|
457
448
|
* @returns GC balance as number if `is_script` is true (default).
|
458
449
|
* @returns GC balance as string if `is_script` is false. */
|
459
|
-
balance:
|
450
|
+
balance: {
|
451
|
+
(args?: { is_script?: true }): number
|
452
|
+
(args: { is_script: false }): string
|
453
|
+
}
|
460
454
|
|
461
455
|
/** **HIGHSEC**
|
462
456
|
* @returns Transaction history according to filter.
|
@@ -626,6 +620,9 @@ type Lowsec = Midsec & PlayerLowsec & {
|
|
626
620
|
(args: { i: number | number[], to: string, memo?: string }): ScriptResponse
|
627
621
|
(args: { sn: string | string[], to: string, memo?: string }): ScriptResponse
|
628
622
|
}
|
623
|
+
/** **LOWSEC** */ expose_access_log: (args: { target: string }) => ScriptResponse
|
624
|
+
/** **LOWSEC** */ xfer_gc_from: (args: { target: string, amount: number | string }) => ScriptResponse
|
625
|
+
/** **LOWSEC** */ expose_balance: (args: { target: string }) => ScriptResponse
|
629
626
|
}
|
630
627
|
}
|
631
628
|
|
@@ -710,55 +707,146 @@ type Nullsec = Lowsec & PlayerNullsec & {
|
|
710
707
|
}
|
711
708
|
}
|
712
709
|
|
713
|
-
|
710
|
+
// database
|
711
|
+
type MongoPrimitive = null | boolean | number | Date | string
|
712
|
+
type MongoValue = MongoPrimitive | MongoValue[] | MongoObject
|
713
|
+
type MongoObject = { [k: string]: MongoValue, [k: `$${string}`]: never }
|
714
|
+
type MongoQueryValue = MongoPrimitive | MongoQueryValue[] | MongoQueryObject
|
715
|
+
|
716
|
+
type MongoQueryObject =
|
717
|
+
{ [k: string]: MongoQueryValue, [k: `$${string}`]: MongoValue, $type?: keyof MongoTypeStringsToTypes | (string & {}) }
|
718
|
+
|
719
|
+
type MongoTypeStringsToTypes = {
|
720
|
+
double: number
|
721
|
+
string: string
|
722
|
+
object: MongoObject
|
723
|
+
array: MongoValue[]
|
724
|
+
objectId: ObjectId
|
725
|
+
bool: boolean
|
726
|
+
date: Date
|
727
|
+
null: null
|
728
|
+
int: number
|
729
|
+
long: number
|
730
|
+
}
|
714
731
|
|
715
|
-
type
|
716
|
-
|
732
|
+
type MongoTypeString = keyof MongoTypeStringsToTypes
|
733
|
+
type MongoTypeNumber = -1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 127
|
734
|
+
type MongoId = Exclude<MongoPrimitive, null> | MongoObject
|
735
|
+
type MongoQueryId = Exclude<MongoPrimitive, null> | MongoQueryObject
|
736
|
+
type MongoDocument = MongoObject & { _id?: MongoId }
|
737
|
+
|
738
|
+
type MongoQueryType<TQuery extends MongoQueryObject> = {
|
739
|
+
-readonly [K in keyof TQuery]:
|
740
|
+
TQuery[K] extends MongoPrimitive ?
|
741
|
+
TQuery[K]
|
742
|
+
: TQuery[K] extends { $type: infer TType } ?
|
743
|
+
TType extends keyof MongoTypeStringsToTypes ? MongoTypeStringsToTypes[TType] : unknown
|
744
|
+
: TQuery[K] extends { $in: (infer TIn)[] } ?
|
745
|
+
TIn
|
746
|
+
: keyof TQuery[K] extends `$${string}` ?
|
747
|
+
unknown
|
748
|
+
: TQuery[K] extends { [k: string]: any } ?
|
749
|
+
MongoQueryType<TQuery[K]>
|
750
|
+
: never
|
751
|
+
}
|
717
752
|
|
718
|
-
type
|
719
|
-
type
|
753
|
+
type MongoCommandValue = MongoPrimitive | MongoCommandValue[] | { [k: string]: MongoCommandValue }
|
754
|
+
type MongoArraySelectors<T extends MongoValue[] = MongoValue[]> = { $all: T, $elemMatch: T, $size: number }
|
720
755
|
|
721
|
-
type
|
722
|
-
{ $
|
756
|
+
type MongoComparisonSelectors<T extends MongoValue = MongoValue> =
|
757
|
+
{ $eq: T, $gt: T, $gte: T, $in: T[], $lt: T, $lte: T, $ne: T, $nin: T[] }
|
758
|
+
|
759
|
+
type MongoElementSelectors = { $exists: boolean, $type: MongoTypeNumber | MongoTypeString }
|
760
|
+
|
761
|
+
type MongoQuerySelector<T extends MongoValue> = Partial<
|
762
|
+
T extends []
|
763
|
+
? MongoArraySelectors<T> & MongoElementSelectors & MongoComparisonSelectors<T>
|
764
|
+
: MongoElementSelectors & MongoComparisonSelectors<T>
|
723
765
|
>
|
724
766
|
|
725
|
-
type
|
726
|
-
type
|
767
|
+
type MongoQuery<T extends MongoObject> = { [K in keyof T]?: T[K] | MongoQuerySelector<T[K]> } & { _id?: MongoId }
|
768
|
+
type Projection = Record<string, boolean | 0 | 1>
|
769
|
+
|
770
|
+
type MongoUpdateOperators<T extends MongoObject> = Partial<{
|
771
|
+
/* Universal operators */
|
772
|
+
$set: Partial<Record<string, MongoCommandValue> & T>
|
773
|
+
$setOnInsert: Partial<Record<string, MongoCommandValue> & T>
|
774
|
+
$unset: Partial<Record<string, ""> & T>
|
775
|
+
|
776
|
+
$rename: Partial<Record<string, string> & { [key in keyof T]: string }>
|
777
|
+
|
778
|
+
/* Date & number operators */
|
779
|
+
$inc: Record<string, number> &
|
780
|
+
{ [K in keyof T as T[K] extends number | Date ? K : never]?: T[K] extends number ? number : Date }
|
781
|
+
|
782
|
+
$mul: Record<string, number> & { [K in keyof T as T[K] extends number ? K : never]?: number }
|
783
|
+
$min: Record<string, number> & { [K in keyof T as T[K] extends number ? K : never]?: number }
|
784
|
+
$max: Record<string, number> & { [K in keyof T as T[K] extends number ? K : never]?: number }
|
785
|
+
|
786
|
+
/* Array operators */
|
787
|
+
$pop: Record<string, -1 | 1> & { [K in keyof T as T[K] extends [] ? K : never]?: -1 | 1 }
|
788
|
+
|
789
|
+
$push: Record<string, MongoCommandValue> & {
|
790
|
+
[K in keyof T as T[K] extends [] ? K : never]?: (T[K] extends (infer U)[] ? U : never)
|
791
|
+
| MongoUpdateArrayOperatorModifiers<T[K]>
|
792
|
+
}
|
793
|
+
|
794
|
+
$addToSet: Partial<Record<string, MongoCommandValue> & {
|
795
|
+
[K in keyof T as T[K] extends [] ? K : never]: (T[K] extends (infer U)[] ? U : never)
|
796
|
+
| MongoUpdateArrayOperatorUniversalModifiers<T[K]>
|
797
|
+
}>
|
798
|
+
|
799
|
+
$pull: Partial<Record<string, MongoCommandValue> & {
|
800
|
+
[K in keyof T as T[K] extends [] ? K : never]: (T[K] extends (infer U)[] ? U : never)
|
801
|
+
| MongoQuerySelector<T[K]>
|
802
|
+
}>
|
803
|
+
|
804
|
+
$pullAll: Record<string, MongoCommandValue> & { [K in keyof T as T[K] extends [] ? K : never]?: T[K] }
|
805
|
+
}>
|
806
|
+
|
807
|
+
type MongoUpdateArrayOperatorUniversalModifiers<T> = { $each?: T extends [] ? T : T[] }
|
808
|
+
|
809
|
+
type MongoUpdateArrayOperatorModifiers<T> = MongoUpdateArrayOperatorUniversalModifiers<T> &
|
810
|
+
{ $position?: number, $slice?: number, $sort?: 1 | -1 }
|
811
|
+
|
812
|
+
type MongoUpdateCommand<Schema extends MongoObject> = MongoUpdateOperators<Schema>
|
813
|
+
|
727
814
|
type SortOrder = { [key: string]: 1 | -1 | SortOrder }
|
728
815
|
|
729
|
-
type Cursor = {
|
730
|
-
/** Returns the first document that satisfies the query. */ first: () =>
|
731
|
-
/** Returns an array of documents that satisfy the query. */ array: () =>
|
816
|
+
type Cursor<T> = {
|
817
|
+
/** Returns the first document that satisfies the query. */ first: () => T | null
|
818
|
+
/** Returns an array of documents that satisfy the query. */ array: () => T[]
|
732
819
|
/** Returns the number of documents that match the query. */ count: () => number
|
733
820
|
|
734
821
|
/** Returns the first document that satisfies the query. Also makes cursor unusable. */
|
735
|
-
first_and_close: () =>
|
822
|
+
first_and_close: () => T
|
736
823
|
|
737
824
|
/** Returns an array of documents that satisfy the query. Also makes cursor unusable. */
|
738
|
-
array_and_close: () =>
|
825
|
+
array_and_close: () => T[]
|
739
826
|
|
740
827
|
/** Returns the number of documents that match the query. Also makes cursor unusable. */
|
741
828
|
count_and_close: () => number
|
742
829
|
|
743
830
|
/** Run `callback` on each document that satisfied the query. */
|
744
|
-
each: (callback: (document:
|
831
|
+
each: (callback: (document: T) => void) => null
|
745
832
|
|
746
833
|
/** Returns a new cursor with documents sorted as specified.
|
747
834
|
* A value of 1 sorts the property ascending, and -1 descending.
|
748
835
|
* @param order The way the documents are to be sorted. */
|
749
|
-
sort: (order?: SortOrder) => Cursor
|
836
|
+
sort: (order?: SortOrder) => Cursor<T>
|
750
837
|
|
751
838
|
/** Returns a new cursor without the first number of documents.
|
752
839
|
* @param count Number of documents to skip. */
|
753
|
-
skip: (count: number) => Cursor
|
840
|
+
skip: (count: number) => Cursor<T>
|
754
841
|
|
755
842
|
/** Returns a new cursor limited to a number of documents as specified.
|
756
843
|
* @param count Number of documents. */
|
757
|
-
limit: (count: number) => Cursor
|
844
|
+
limit: (count: number) => Cursor<T>
|
758
845
|
|
759
|
-
/** @param key The key of the documents. */ distinct: (
|
846
|
+
/** @param key The key of the documents. */ distinct: { (key: string): MongoValue[], (key: "_id"): MongoId[] }
|
760
847
|
/** Make cursor unusable. */ close: () => null
|
761
848
|
NumberLong: (number: number) => number
|
849
|
+
// TODO what actually is the type here?
|
762
850
|
ObjectId: () => any
|
763
851
|
}
|
764
852
|
|
@@ -769,7 +857,9 @@ type CliContext = {
|
|
769
857
|
/** The number of rows in the caller’s terminal. */ rows: number
|
770
858
|
|
771
859
|
/** The name of the script that directly called this script, or null if called on the command line or as a
|
772
|
-
* scriptor. */
|
860
|
+
* scriptor. */
|
861
|
+
calling_script: null
|
862
|
+
|
773
863
|
is_scriptor?: undefined
|
774
864
|
is_brain?: undefined
|
775
865
|
}
|
@@ -780,12 +870,8 @@ type SubscriptContext = Replace<CliContext, {
|
|
780
870
|
calling_script: string
|
781
871
|
}>
|
782
872
|
|
783
|
-
type ScriptorContext =
|
784
|
-
|
785
|
-
|
786
|
-
type BrainContext =
|
787
|
-
Replace<CliContext, { /** Whether the script is being run via a bot brain. */ is_brain: true }>
|
788
|
-
|
873
|
+
type ScriptorContext = Replace<CliContext, { /** Whether the script is being run as a scriptor. */ is_scriptor: true }>
|
874
|
+
type BrainContext = Replace<CliContext, { /** Whether the script is being run via a bot brain. */ is_brain: true }>
|
789
875
|
type Context = CliContext | SubscriptContext | ScriptorContext | BrainContext
|
790
876
|
|
791
877
|
/** Subscript space that can call FULLSEC scripts. */ declare const $fs: Fullsec
|
@@ -822,8 +908,8 @@ declare const $0s: typeof $ns
|
|
822
908
|
|
823
909
|
/** Subscript space that can call any script. Uses seclevel provided in comment before script (defaults to NULLSEC)
|
824
910
|
* @example
|
825
|
-
* //
|
826
|
-
* //
|
911
|
+
* // @seclevel MIDSEC
|
912
|
+
* // note, do NOT copy paste the above line because there is a zero-width space inserted between "@" and "s"
|
827
913
|
* export function script() {
|
828
914
|
* $s.foo.bar() // will be converted to #ms.foo.bar()
|
829
915
|
* } */
|
@@ -831,99 +917,65 @@ declare const $s: Nullsec
|
|
831
917
|
|
832
918
|
type ObjectId = { $oid: string }
|
833
919
|
|
920
|
+
// _id is always returned unless _id: false is passed
|
921
|
+
// when anyField: true is given, other fields (except _id) are omitted
|
922
|
+
|
923
|
+
type MongoProject<TDocument, TProjection> =
|
924
|
+
true extends (1 extends TProjection[keyof TProjection] ? true : TProjection[keyof TProjection]) ?
|
925
|
+
(TProjection extends { _id: false | 0 } ? {} : { _id: TDocument extends { _id: infer TId } ? TId : MongoId }) &
|
926
|
+
{
|
927
|
+
[K in
|
928
|
+
keyof TDocument as K extends keyof TProjection ? TProjection[K] extends true | 1 ? K : never : never
|
929
|
+
]: TDocument[K]
|
930
|
+
} &
|
931
|
+
{
|
932
|
+
-readonly [K in
|
933
|
+
keyof TProjection as TProjection[K] extends true | 1 ? K extends keyof TDocument ? never : K : never
|
934
|
+
]?: MongoValue
|
935
|
+
}
|
936
|
+
: { [k: string]: MongoValue } & { [K in keyof TDocument as K extends keyof TProjection ? never : K]: TDocument[K] }
|
937
|
+
|
834
938
|
declare const $db: {
|
835
939
|
/** Insert a document or documents into a collection.
|
836
940
|
* @param documents A document or array of documents to insert into the collection. */
|
837
|
-
i: (documents:
|
838
|
-
ok: 1
|
839
|
-
n: number
|
840
|
-
opTime: { ts: "Undefined Conversion", t: number }
|
841
|
-
electionId: "Undefined Conversion"
|
842
|
-
operationTime: "Undefined Conversion"
|
843
|
-
$clusterTime: {
|
844
|
-
clusterTime: "Undefined Conversion"
|
845
|
-
signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
|
846
|
-
}
|
847
|
-
}
|
941
|
+
i: <T extends MongoDocument>(documents: (T & { _id?: MongoId }) | (T & { _id?: MongoId })[]) =>
|
942
|
+
{ n: number, opTime: { t: number }, ok: 0 | 1 }[]
|
848
943
|
|
849
944
|
/** Remove documents from a collection.
|
850
945
|
* @param query Specifies deletion criteria using query operators. */
|
851
|
-
r: (query:
|
852
|
-
ok: 0 | 1
|
853
|
-
n: number
|
854
|
-
opTime: { ts: "Undefined Conversion", t: number }
|
855
|
-
electionId: "Undefined Conversion"
|
856
|
-
operationTime: "Undefined Conversion"
|
857
|
-
$clusterTime: {
|
858
|
-
clusterTime: "Undefined Conversion"
|
859
|
-
signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
|
860
|
-
}
|
861
|
-
}
|
946
|
+
r: <T extends MongoDocument>(query: MongoQuery<T>) => { n: number, opTime: { t: number }, ok: 0 | 1 }[]
|
862
947
|
|
863
948
|
/** Find documents in a collection or view and returns a cursor to the selected documents.
|
864
949
|
* @param query Specifies deletion criteria using query operators.
|
865
950
|
* @param projection Specifies the fields to return in the documents that match the query filter. */
|
866
|
-
f:
|
951
|
+
f: <
|
952
|
+
const TQuery extends MongoQueryObject & { _id?: MongoQueryId },
|
953
|
+
const TProjection extends { [k: string]: boolean | 0 | 1 } = {}
|
954
|
+
>(query: TQuery, projection?: TProjection) => Cursor<MongoProject<MongoQueryType<TQuery>, TProjection>>
|
867
955
|
|
868
|
-
/** Update
|
956
|
+
/** Update existing documents in a collection.
|
869
957
|
* @param query Specifies deletion criteria using query operators.
|
870
958
|
* @param command The modifications to apply.
|
871
959
|
* {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters} */
|
872
|
-
u: (query:
|
873
|
-
ok: 0 | 1
|
874
|
-
nModified: number
|
875
|
-
n: number
|
876
|
-
opTime: { ts: "Undefined Conversion", t: number }
|
877
|
-
electionId: "Undefined Conversion"
|
878
|
-
operationTime: "Undefined Conversion"
|
879
|
-
$clusterTime: {
|
880
|
-
clusterTime: "Undefined Conversion"
|
881
|
-
signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
|
882
|
-
}
|
883
|
-
}
|
960
|
+
u: <T extends MongoDocument>(query: MongoQuery<T> | MongoQuery<T>[], command: MongoUpdateCommand<T>) =>
|
961
|
+
{ n: number, opTime: { t: number }, ok: 0 | 1, nModified: number }[]
|
884
962
|
|
885
963
|
/** Updates one document within the collection based on the filter.
|
886
964
|
* @param query Specifies deletion criteria using query operators.
|
887
965
|
* @param command The modifications to apply.
|
888
966
|
* {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters} */
|
889
|
-
u1: (query:
|
890
|
-
ok: 0 | 1
|
891
|
-
nModified: number
|
892
|
-
n: number
|
893
|
-
opTime: {
|
894
|
-
ts: "Undefined Conversion"
|
895
|
-
t: number
|
896
|
-
}
|
897
|
-
electionId: "Undefined Conversion"
|
898
|
-
operationTime: "Undefined Conversion"
|
899
|
-
$clusterTime: {
|
900
|
-
clusterTime: "Undefined Conversion"
|
901
|
-
signature: {
|
902
|
-
hash: "Undefined Conversion"
|
903
|
-
keyId: "Undefined Conversion"
|
904
|
-
}
|
905
|
-
}
|
906
|
-
}
|
967
|
+
u1: <T extends MongoDocument>(query: MongoQuery<T> | MongoQuery<T>[], command: MongoUpdateCommand<T>) =>
|
968
|
+
{ n: number, ok: 0 | 1, opTime: { t: number }, nModified: number }[]
|
907
969
|
|
908
|
-
/** Update or insert
|
970
|
+
/** Update or insert document.
|
909
971
|
* Same as Update, but if no documents match the query, one document will be inserted based on the properties in
|
910
972
|
* both the query and the command.
|
911
973
|
* The `$setOnInsert` operator is useful to set defaults.
|
912
974
|
* @param query Specifies deletion criteria using query operators.
|
913
975
|
* @param command The modifications to apply.
|
914
976
|
* {@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#parameters} */
|
915
|
-
us: (query:
|
916
|
-
ok: 0 | 1
|
917
|
-
nModified: number
|
918
|
-
n: number
|
919
|
-
opTime: { ts: "Undefined Conversion", t: number }
|
920
|
-
electionId: "Undefined Conversion"
|
921
|
-
operationTime: "Undefined Conversion"
|
922
|
-
$clusterTime: {
|
923
|
-
clusterTime: "Undefined Conversion"
|
924
|
-
signature: { hash: "Undefined Conversion", keyId: "Undefined Conversion" }
|
925
|
-
}
|
926
|
-
}
|
977
|
+
us: <T extends MongoDocument>(query: MongoQuery<T> | MongoQuery<T>[], command: MongoUpdateCommand<T>) =>
|
978
|
+
{ n: number, ok: 0 | 1, opTime: { t: number }, nModified: number }[]
|
927
979
|
|
928
980
|
ObjectId: () => ObjectId
|
929
981
|
}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { readDirectoryWithStats } from "@samual/lib/readDirectoryWithStats"
|
2
2
|
import { basename, resolve } from "path"
|
3
|
+
import * as PathPosix from "path/posix"
|
3
4
|
async function generateTypeDeclaration(sourceDirectory, hackmudPath) {
|
4
5
|
const users = new Set()
|
5
6
|
if (hackmudPath)
|
@@ -29,7 +30,7 @@ async function generateTypeDeclaration(sourceDirectory, hackmudPath) {
|
|
29
30
|
}
|
30
31
|
})
|
31
32
|
)
|
32
|
-
sourceDirectory = resolve(sourceDirectory)
|
33
|
+
sourceDirectory = PathPosix.resolve(sourceDirectory)
|
33
34
|
let o = ""
|
34
35
|
for (const script of wildScripts) o += `type $${script}$ = typeof import("${sourceDirectory}/${script}").default\n`
|
35
36
|
o += "\n"
|
package/index.js
CHANGED
@@ -7,6 +7,7 @@ export { syncMacros } from "./syncMacros.js"
|
|
7
7
|
export { watch } from "./watch.js"
|
8
8
|
import "@samual/lib/readDirectoryWithStats"
|
9
9
|
import "path"
|
10
|
+
import "path/posix"
|
10
11
|
import "@babel/generator"
|
11
12
|
import "@babel/parser"
|
12
13
|
import "@babel/plugin-proposal-decorators"
|
@@ -45,7 +46,7 @@ import "import-meta-resolve"
|
|
45
46
|
import "./processScript/transform.js"
|
46
47
|
import "@samual/lib/clearObject"
|
47
48
|
import "@samual/lib/copyFilePersistent"
|
48
|
-
import "@samual/lib/
|
49
|
+
import "@samual/lib/AutoMap"
|
49
50
|
import "@samual/lib/writeFilePersistent"
|
50
51
|
import "fs/promises"
|
51
52
|
import "chokidar"
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "hackmud-script-manager",
|
3
|
-
"version": "0.20.4-
|
3
|
+
"version": "0.20.4-698da0d",
|
4
4
|
"description": "Script manager for game hackmud, with minification, TypeScript support, and player script type definition generation.",
|
5
5
|
"keywords": [
|
6
6
|
"api",
|
@@ -31,50 +31,50 @@
|
|
31
31
|
"url": "https://github.com/samualtnorman/hackmud-script-manager.git"
|
32
32
|
},
|
33
33
|
"dependencies": {
|
34
|
-
"@babel/generator": "^7.
|
35
|
-
"@babel/parser": "^7.
|
36
|
-
"@babel/plugin-proposal-decorators": "^7.
|
37
|
-
"@babel/plugin-proposal-destructuring-private": "^7.
|
38
|
-
"@babel/plugin-proposal-do-expressions": "^7.
|
39
|
-
"@babel/plugin-proposal-explicit-resource-management": "^7.
|
40
|
-
"@babel/plugin-proposal-function-bind": "^7.
|
41
|
-
"@babel/plugin-proposal-function-sent": "^7.
|
42
|
-
"@babel/plugin-proposal-partial-application": "^7.
|
43
|
-
"@babel/plugin-proposal-pipeline-operator": "^7.
|
44
|
-
"@babel/plugin-proposal-record-and-tuple": "^7.
|
45
|
-
"@babel/plugin-proposal-throw-expressions": "^7.
|
46
|
-
"@babel/plugin-transform-class-properties": "^7.
|
47
|
-
"@babel/plugin-transform-class-static-block": "^7.
|
48
|
-
"@babel/plugin-transform-exponentiation-operator": "^7.
|
49
|
-
"@babel/plugin-transform-json-strings": "^7.
|
50
|
-
"@babel/plugin-transform-logical-assignment-operators": "^7.
|
51
|
-
"@babel/plugin-transform-nullish-coalescing-operator": "^7.
|
52
|
-
"@babel/plugin-transform-numeric-separator": "^7.
|
53
|
-
"@babel/plugin-transform-object-rest-spread": "^7.
|
54
|
-
"@babel/plugin-transform-optional-catch-binding": "^7.
|
55
|
-
"@babel/plugin-transform-optional-chaining": "^7.
|
56
|
-
"@babel/plugin-transform-private-property-in-object": "^7.
|
57
|
-
"@babel/plugin-transform-typescript": "^7.
|
58
|
-
"@babel/plugin-transform-unicode-sets-regex": "^7.
|
59
|
-
"@babel/traverse": "^7.
|
60
|
-
"@babel/types": "^7.
|
34
|
+
"@babel/generator": "^7.26.2",
|
35
|
+
"@babel/parser": "^7.26.2",
|
36
|
+
"@babel/plugin-proposal-decorators": "^7.25.9",
|
37
|
+
"@babel/plugin-proposal-destructuring-private": "^7.26.0",
|
38
|
+
"@babel/plugin-proposal-do-expressions": "^7.25.9",
|
39
|
+
"@babel/plugin-proposal-explicit-resource-management": "^7.25.9",
|
40
|
+
"@babel/plugin-proposal-function-bind": "^7.25.9",
|
41
|
+
"@babel/plugin-proposal-function-sent": "^7.25.9",
|
42
|
+
"@babel/plugin-proposal-partial-application": "^7.25.9",
|
43
|
+
"@babel/plugin-proposal-pipeline-operator": "^7.25.9",
|
44
|
+
"@babel/plugin-proposal-record-and-tuple": "^7.25.9",
|
45
|
+
"@babel/plugin-proposal-throw-expressions": "^7.25.9",
|
46
|
+
"@babel/plugin-transform-class-properties": "^7.25.9",
|
47
|
+
"@babel/plugin-transform-class-static-block": "^7.26.0",
|
48
|
+
"@babel/plugin-transform-exponentiation-operator": "^7.25.9",
|
49
|
+
"@babel/plugin-transform-json-strings": "^7.25.9",
|
50
|
+
"@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
|
51
|
+
"@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9",
|
52
|
+
"@babel/plugin-transform-numeric-separator": "^7.25.9",
|
53
|
+
"@babel/plugin-transform-object-rest-spread": "^7.25.9",
|
54
|
+
"@babel/plugin-transform-optional-catch-binding": "^7.25.9",
|
55
|
+
"@babel/plugin-transform-optional-chaining": "^7.25.9",
|
56
|
+
"@babel/plugin-transform-private-property-in-object": "^7.25.9",
|
57
|
+
"@babel/plugin-transform-typescript": "^7.25.9",
|
58
|
+
"@babel/plugin-transform-unicode-sets-regex": "^7.25.9",
|
59
|
+
"@babel/traverse": "^7.25.9",
|
60
|
+
"@babel/types": "^7.26.0",
|
61
61
|
"@bloomberg/record-tuple-polyfill": "^0.0.4",
|
62
62
|
"@rollup/plugin-babel": "^6.0.4",
|
63
|
-
"@rollup/plugin-commonjs": "^
|
63
|
+
"@rollup/plugin-commonjs": "^28.0.1",
|
64
64
|
"@rollup/plugin-json": "^6.1.0",
|
65
|
-
"@rollup/plugin-node-resolve": "^15.
|
66
|
-
"@samual/lib": "0.
|
67
|
-
"acorn": "^8.
|
65
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
66
|
+
"@samual/lib": "^0.13.0",
|
67
|
+
"acorn": "^8.14.0",
|
68
68
|
"chalk": "^5.3.0",
|
69
|
-
"chokidar": "^
|
70
|
-
"import-meta-resolve": "^4.
|
71
|
-
"prettier": "^3.
|
69
|
+
"chokidar": "^4.0.1",
|
70
|
+
"import-meta-resolve": "^4.1.0",
|
71
|
+
"prettier": "^3.3.3",
|
72
72
|
"proxy-polyfill": "^0.3.2",
|
73
|
-
"rollup": "^4.
|
74
|
-
"terser": "^5.
|
73
|
+
"rollup": "^4.27.4",
|
74
|
+
"terser": "^5.36.0"
|
75
75
|
},
|
76
76
|
"peerDependencies": {
|
77
|
-
"typescript": "5.4.5"
|
77
|
+
"typescript": "^5.4.5"
|
78
78
|
},
|
79
79
|
"type": "module",
|
80
80
|
"exports": {
|
@@ -86,6 +86,6 @@
|
|
86
86
|
"hsm": "bin/hsm.js"
|
87
87
|
},
|
88
88
|
"engines": {
|
89
|
-
"node": "^18 || >=
|
89
|
+
"node": "^18 || ^20 || >=22"
|
90
90
|
}
|
91
91
|
}
|
package/processScript/index.js
CHANGED
@@ -204,6 +204,7 @@ async function processScript(
|
|
204
204
|
const bundle = await rollup({
|
205
205
|
input: filePathResolved,
|
206
206
|
plugins: [
|
207
|
+
rollupPluginJSON({ preferConst: !0 }),
|
207
208
|
{
|
208
209
|
name: "hackmud-script-manager",
|
209
210
|
async transform(code, id) {
|
@@ -227,8 +228,7 @@ async function processScript(
|
|
227
228
|
},
|
228
229
|
babel({ babelHelpers: "bundled", plugins, configFile: !1, extensions: supportedExtensions }),
|
229
230
|
rollupPluginCommonJS(),
|
230
|
-
rollupPluginNodeResolve({ extensions: supportedExtensions })
|
231
|
-
rollupPluginJSON()
|
231
|
+
rollupPluginNodeResolve({ extensions: supportedExtensions })
|
232
232
|
],
|
233
233
|
treeshake: { moduleSideEffects: !1 }
|
234
234
|
}),
|
@@ -323,7 +323,7 @@ async function processScript(
|
|
323
323
|
trailingComma: "none"
|
324
324
|
})
|
325
325
|
}
|
326
|
-
code = postprocess(code,
|
326
|
+
code = postprocess(code, uniqueId)
|
327
327
|
if (includesIllegalString(code))
|
328
328
|
throw Error(
|
329
329
|
'you found a weird edge case where I wasn\'t able to replace illegal strings like "SC$", please report thx'
|